簡単に通った。
ただ、フレットが錆びているのか、接触が悪かった。
弦は新しいので問題はないだろうけど、どれだけの時間使えるのか問題だ。
ここで、ひとつ、大きな障害があることに気が付いた。
携帯電話などの電源が落ちるときに、弦がアンテナになってノイズを拾ってしまうことだ。
心臓に悪そうな、お皿を地面に落として割ったような音がする。
これがきれいな音ならば、効果音として楽器に取り入れることが出来るだろうけど、不気味な破壊音だ。
Arduinoのプログラム(スケッチ)をちょっとはカッコがつくように書き換えてみる。
それから和音の出音に挑戦してみる。
今回はサックスの音を使ったけど、チープだなあ。
小細工ができないかな。
オンドマルトノのこともあるし、どう繋がるかだな。
追記!
とりあえずのスケッチ。
#include
MIDI_CREATE_DEFAULT_INSTANCE();
int i;
int notenumber[]={72,74,76,77,79,81,83,84,86,88,89,91,93,95,96,98,100,101};
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);
}
void loop() {
for(i = 0 ; i < 18 ; i = i + 3){
PLAY();
gaugePin++;
}
i = 0;
gaugePin = 2;
}
void PLAY ()
{
digitalWrite(gaugePin,HIGH);
delay(100);
if(digitalRead(fretPin_1) == LOW && digitalRead(fretPin_2) == HIGH){
MIDI.sendNoteOn(notenumber[i], 500, 1);
delay(500);
MIDI.sendNoteOff(notenumber[i], 0, 1);
}
else if(digitalRead(fretPin_1) == HIGH && digitalRead(fretPin_2) == HIGH){
i++;
MIDI.sendNoteOn(notenumber[i], 500, 1);
delay(500);
MIDI.sendNoteOff(notenumber[i], 0, 1);
}
else if(digitalRead(fretPin_1) == HIGH && digitalRead(fretPin_2) == LOW){
i = i +2;
MIDI.sendNoteOn(notenumber[i], 500, 1);
delay(500);
MIDI.sendNoteOff(notenumber[i], 0, 1);
}
digitalWrite(gaugePin,LOW);
delay(1);
}