調整なんてしている時間はない。
なんか違う音がする。
各弦の残響時間と弦ごとの遅延を再現すること大切。
ChordBuddyを使っている。
情けない。
立派な音がすると思ったが、やはりダメ。
調整が必要。
Arduinoスケッチを残しておく。
あくまでも参考に。
途中経過ですんで。
#include <MIDI.h>MIDI_CREATE_DEFAULT_INSTANCE();int i;int j;int k;int sign;int waon[7];//int notenumber[]={0,36,38,40,41,43,45,47,48,50,52,53,55,57,59,60,62,64,65,67,69,71,72,74,76,77,79,81,83,84,86,88,89,91,93,95,96,98,100,101};int notenumber[]{0,41,42,43,46,47,48,51,52,53,56,57,58,60,61,62,65,66,67};int gaugePin = 2;#define fretPin_1 8#define fretPin_2 9void setup(){MIDI.begin();// Serial.begin(9600);pinMode( 2, OUTPUT);pinMode( 3, OUTPUT);pinMode( 4, OUTPUT);pinMode( 5, OUTPUT);pinMode( 6, OUTPUT);pinMode( 7, OUTPUT);pinMode( fretPin_1, INPUT);pinMode( fretPin_2, INPUT);//MIDI.sendPitchBend(8000,1);MIDI.sendProgramChange(25,1);//MIDI.sendControlChange(73,100,1);MIDI.sendAfterTouch(1,1);}void loop() {for(i = 1 ; i < 19 ; i++){SoundRead();j++;gaugePin++;}k = 777;if(sign == 1){PLAY();}sign = 0;gaugePin = 2;for(j = 1 ; j < 7 ; j++){waon[j] = 0;}j = 1;}void SoundRead (){digitalWrite(gaugePin,HIGH);delay(50);if(digitalRead(fretPin_1) == LOW && digitalRead(fretPin_2) == LOW){waon[j] = 0;}delay(5);if(digitalRead(fretPin_1) == LOW && digitalRead(fretPin_2) == HIGH){waon[j] = i;sign = 1;}i = i + 1;delay(5);if(digitalRead(fretPin_1) == HIGH && digitalRead(fretPin_2) == HIGH){waon[j] = i ;sign = 1;}i = i + 1;delay(5);if(digitalRead(fretPin_1) == HIGH && digitalRead(fretPin_2) == LOW){waon[j] = i;sign = 1;}delay(5);digitalWrite(gaugePin,LOW);delay(5);}void PLAY (){k = waon[1];switch (k) {case 1:MIDI.sendNoteOn(notenumber[waon[1]], 100, 1);//MIDI.sendPolyPressure(notenumber[waon[1]],10,1);break;case 2:MIDI.sendNoteOn(notenumber[waon[1]], 100, 1);break;case 3:MIDI.sendNoteOn(notenumber[waon[1]], 100, 1);break;case 0:MIDI.sendNoteOn(40, 100, 1);break;delay(100);}k = waon[2];switch (k) {case 4:MIDI.sendNoteOn(notenumber[waon[2]], 100, 1);break;case 5:MIDI.sendNoteOn(notenumber[waon[2]], 100, 1);break;case 6:MIDI.sendNoteOn(notenumber[waon[2]], 100, 1);break;case 0:MIDI.sendNoteOn(45, 100, 1);break;delay(100);}k = waon[3];switch (k) {case 7:MIDI.sendNoteOn(notenumber[waon[3]], 100, 1);break;case 8:MIDI.sendNoteOn(notenumber[waon[3]], 100, 1);break;case 9:MIDI.sendNoteOn(notenumber[waon[3]], 100, 1);break;case 0:MIDI.sendNoteOn(50, 100, 1);break;delay(100);}k = waon[4];switch (k) {case 10:MIDI.sendNoteOn(notenumber[waon[4]], 100, 1);break;case 11:MIDI.sendNoteOn(notenumber[waon[4]], 100, 1);break;case 12:MIDI.sendNoteOn(notenumber[waon[4]], 100, 1);break;case 0:MIDI.sendNoteOn(55, 100, 1);break;delay(100);}k = waon[5];switch (k) {case 13:MIDI.sendNoteOn(notenumber[waon[5]], 100, 1);break;case 14:MIDI.sendNoteOn(notenumber[waon[5]], 100, 1);break;case 15:MIDI.sendNoteOn(notenumber[waon[5]], 100, 1);break;case 0:MIDI.sendNoteOn(59, 100, 1);break;delay(100);}k = waon[6];switch (k) {case 16:MIDI.sendNoteOn(notenumber[waon[6]], 100, 1);break;case 17:MIDI.sendNoteOn(notenumber[waon[6]], 100, 1);break;case 18:MIDI.sendNoteOn(notenumber[waon[6]], 100, 1);break;case 0:MIDI.sendNoteOn(64, 100, 1);break;delay(100);}delay(500);k = waon[1];if(k != 0){MIDI.sendNoteOff(notenumber[waon[1]], 0, 1);delay(5);}else if(k == 0){MIDI.sendNoteOff(40, 0, 1);delay(5);}k = waon[2];if(k != 0){MIDI.sendNoteOff(notenumber[waon[2]], 0, 1);delay(5);}else if(k == 0){MIDI.sendNoteOff(45, 0, 1);delay(5);}k = waon[3];if(k != 0){MIDI.sendNoteOff(notenumber[waon[3]], 0, 1);delay(5);}else if(k == 0){MIDI.sendNoteOff(50, 0, 1);delay(5);}k = waon[4];if(k != 0){MIDI.sendNoteOff(notenumber[waon[4]], 0, 1);delay(5);}else if(k == 0){MIDI.sendNoteOff(55, 0, 1);delay(5);}k = waon[5];if(k != 0){MIDI.sendNoteOff(notenumber[waon[5]], 0, 1);delay(5);}else if(k == 0){MIDI.sendNoteOff(59, 0, 1);delay(5);}k = waon[6];if(k != 0){MIDI.sendNoteOff(notenumber[waon[6]], 0, 1);delay(5);}else if(k == 0){MIDI.sendNoteOff(64, 0, 1);delay(5);}}
