2016年5月7日土曜日

Arduino midiシールドで遊ぶ

midi シールドができたので遊んでいる。

はじめてやることというのはまたいろいろ手間のかかるもので、わかってしまえばなんともないこともわからずにうろうろしてしまう。

スケッチの書き込みにエラーが出るわ、音も出んわ、あれこれさわってるうちに鳴り出した。

書き込むときにはシールドのスイッチをPROGにしてやらなあかん、というのがわかった。
なんで音が鳴らなかったのか、また、なぜ鳴り出したのかはまだよくわかりませんが。

midi音源は EZ-EG 笑  我が家に数ある midi 音源の中で、今座っているとこから一番近くで見つけたからコレにした。また、midi in でスイッチ類が光るのかどうか試してみたかった。光ったらきれいやろな、と期待したが、そうはならなんだ。



「かえるの歌」 を作ってみた。すんごくキホン的なことだけを組み合わせたらできた。




-------------------------------------------------

#include <MIDI.h>
MIDI_CREATE_DEFAULT_INSTANCE();

void setup() {
  MIDI.begin();
}

void loop() {
  // play notes from F#-0 (0x1E) to F#-5 (0x5A):

//C
      MIDI.sendNoteOn(36,100,1); //Note No 36をオンベロシティ100,1chで送信
    delay(500); //0.5秒待つ
      MIDI.sendNoteOn(36,0,1); //Note off
//D
      MIDI.sendNoteOn(38,100,1); //Note No 386をオンベロシティ100,1chで送信
    delay(500);
      MIDI.sendNoteOn(38,0,1); //Note off
//E
      MIDI.sendNoteOn(40,100,1); //Note No 40をオンベロシティ100,1chで送信
    delay(500);
      MIDI.sendNoteOn(40,0,1); //Note off
//F    
      MIDI.sendNoteOn(41,100,1); //Note No 41をオンベロシティ100,1chで送信
    delay(500);
      MIDI.sendNoteOn(41,0,1); //Note off
//E
      MIDI.sendNoteOn(40,100,1); //Note No 40をオンベロシティ100,1chで送信
    delay(500);
      MIDI.sendNoteOn(40,0,1); //Note off
//D
      MIDI.sendNoteOn(38,100,1); //Note No 38をオンベロシティ100,1chで送信
    delay(500);
      MIDI.sendNoteOn(38,0,1); //Note off
//C
      MIDI.sendNoteOn(36,100,1); //Note No 36をオンベロシティ100,1chで送信
    delay(500);
      MIDI.sendNoteOn(36,0,1); //Note off

    delay(500);
 
//E
      MIDI.sendNoteOn(40,100,1);
    delay(500);
      MIDI.sendNoteOn(40,0,1);
//F    
      MIDI.sendNoteOn(41,100,1);
    delay(500);
      MIDI.sendNoteOn(41,0,1);
//G
      MIDI.sendNoteOn(43,100,1);
    delay(500);
      MIDI.sendNoteOn(43,0,1);
//A
      MIDI.sendNoteOn(45,100,1);
    delay(500);
      MIDI.sendNoteOn(45,0,1); //Note off
//G
      MIDI.sendNoteOn(43,100,1);
    delay(500);
      MIDI.sendNoteOn(43,0,1);
//F    
      MIDI.sendNoteOn(41,100,1);
    delay(500);
      MIDI.sendNoteOn(41,0,1);
//E
      MIDI.sendNoteOn(40,100,1);
    delay(500);
      MIDI.sendNoteOn(40,0,1);

    delay(500);

//C
      MIDI.sendNoteOn(36,100,1);
    delay(500);
      MIDI.sendNoteOn(36,0,1);
   
    delay(500);

//C
      MIDI.sendNoteOn(36,100,1);
    delay(500);
      MIDI.sendNoteOn(36,0,1);

    delay(500);

//C
      MIDI.sendNoteOn(36,100,1);
    delay(500);
      MIDI.sendNoteOn(36,0,1);

    delay(500); //1秒待つ

//C
      MIDI.sendNoteOn(36,100,1);
    delay(500);
      MIDI.sendNoteOn(36,0,1);

    delay(500); //1秒待つ
   
//C
      MIDI.sendNoteOn(36,100,1);
    delay(250);
      MIDI.sendNoteOn(36,0,1);
//C
      MIDI.sendNoteOn(36,100,1);
    delay(250);
      MIDI.sendNoteOn(36,0,1);
//D
      MIDI.sendNoteOn(38,100,1);
    delay(250);
      MIDI.sendNoteOn(38,0,1);
//D
      MIDI.sendNoteOn(38,100,1);
    delay(250);
      MIDI.sendNoteOn(38,0,1);
//E
      MIDI.sendNoteOn(40,100,1);
    delay(250);
      MIDI.sendNoteOn(40,0,1);
//E
      MIDI.sendNoteOn(40,100,1);
    delay(250);
      MIDI.sendNoteOn(40,0,1);
//F    
      MIDI.sendNoteOn(41,100,1);
    delay(250);
      MIDI.sendNoteOn(41,0,1);
//F    
      MIDI.sendNoteOn(41,100,1);
    delay(250);
      MIDI.sendNoteOn(41,0,1);
//E
      MIDI.sendNoteOn(40,100,1);
    delay(500);
      MIDI.sendNoteOn(40,0,1);
//D
      MIDI.sendNoteOn(38,100,1);
    delay(500);
      MIDI.sendNoteOn(38,0,1);
//C
      MIDI.sendNoteOn(36,100,1);
    delay(500);
      MIDI.sendNoteOn(36,0,1);

    delay(500);
 
}


---------------------------------------------------------------------



コンピュータにやらせるより手で弾いた方が死ぬほどラクだということが、死ぬほどよぉくわかりまくった。

0 件のコメント:

コメントを投稿