6弦のハーモニー・・・か。
ピッチをバリュー値いっぱいに下げた(-8000)。
残触覚の調整要。
コントロールチェンジ76番ビブラート(100)かけるも、自分の耳では分からず調整できない。
ポリフォニックプレッシャーで各弦ごとの圧力を調整できる余地がある。

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 9
void 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(76,100,1);
MIDI.sendAfterTouch(261,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;
default:
MIDI.sendNoteOn(40, 100, 1);
break;
}
delay(50);
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;
default:
MIDI.sendNoteOn(45, 100, 1);
break;
}
delay(50);
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;
default:
MIDI.sendNoteOn(50, 100, 1);
break;
}
delay(50);
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;
default:
MIDI.sendNoteOn(55, 100, 1);
break;
}
delay(50);
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;
default:
MIDI.sendNoteOn(59, 100, 1);
break;
}
delay(50);
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;
default:
MIDI.sendNoteOn(64, 100, 1);
break;
}
delay(50);
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);
}
}