ひとまず、ポケットミクでも使われている音源チップ、YAMAHA NSX-1を搭載したシールド「eVY1」を使ってDTMしてみました。
接続するのは3本だけ!MIDIケーブルを介さず、直結できます。
eVY1シールドを開封したらまずはピンソケットをハンダ付けします。使用するのは3ピンだけです。
接続ピン
上CN5-2 (MIDI-RXD)に、IchigoJamのTXDを接続
下CN2-5(5V)に、IchigoJamなどから5Vを接続(※VCCは3.3Vなので動作しません)
下CN2-6(または7)(GND)に、IchigoJamのGNDを接続
簡単ですね!あとはプログラムです。起動後、ひとまずシリアル出力を UART0 で止めて、BPS31250 としてシリアル出力を初期設定すれば、MIDIへ信号送って演奏し放題です!
久しぶりのDTM、まずはシンプルにかえるの歌をドラムパターン付きで演奏するプログラムを作ってみます。
1' KAERU's song 10 M="CDEFEDC EFGAGFE C C C C CDEFEDC " 20 D="0-0-0-0C0-0-0-0C0P0P0P0P0-0-0- 1" 30 GOSUB @PLAY
MML風にメロディを書き、時間軸を合わせてドラムパターンを書いて、サブルーチン呼び出しで鳴ることをゴールとしました。
下記が最終的なプログラム(IchigoJam ver 1.2β8用)
1 'KAERU's song (MIDI) 5 BPS31250 10 M="CDEFEDC EFGAGFE C C C C CDEFEDC " 20 D="0-0-0-0C0-0-0-0C0P0P0P0P0-0-0- 1" 30 GOSUB @PLAY 40 END 200 @MIDI:UART1:LC0,-1:IF N ?CHR$(#90+H,N,127);:WAITW:?CHR$(#80+H,N,0); ELSE WAIT W 210 UART0:LC0,0:RTN 300 @PLAY:CLS:W=0:P=0:LET[0],69,71,60,62,64,65,67 310 C=ASC(M+P):?CHR$(C) 315 B=ASC(D+P):?CHR$(B) 320 IF C=ASC("2") WAIT W 330 IF C>=ASC("A") AND C<=ASC("G") N=[C-ASC("A")]:H=1:GOSUB@MIDI 334 IF B!=ASC(" ") N=B:H=9:GOSUB@MIDI 338 WAIT 30 340 P=P+1:IF P<LEN(M) GOTO 310 350 RTN
200-210:チャンネルHで、音階N、長さWで鳴らす(N=0の時は鳴らさない)
300-350:文字列Mをメロディ、文字列Dをドラムパターンとして鳴らす(@MIDI使用)
IchigoJamだけで、さらさらっとプログラミングDTM、なかなか楽しいです!
おまけ1、ランダムに鳴らす
20 N=RND(70)+35:H=1:GOSUB@MIDI:IF INKEY() END ELSE CONT GOTO 20
おまけ2、ドラムを試す
30 N=INKEY():IF !N CONT ELSE H=9:GOSUB@MIDI:CONT GOTO30
おまけ3、画面左上のヨコ8文字、タテ5文字を使ったリズムシーケンサー
40 H=9:W=20:FOR I=0 TO 7:FOR J=0 TO 4:N=SCR(I,J):GOSUB@MIDI:LC0,8:NEXT:WAIT20:IF INKEY() END ELSE NEXT:CONT GOTO 40
音楽演奏が苦手なら、コンピューターに演奏させればいい!
かつてのMIDI流行もそういう背景があったとのこと。
小中学生対象のPCNこどもプロコン、音楽プログラムもぜひどうぞ!MIDIがなくても付属の圧電サウンダーで単音はなりますよ!
締め切りは、2/29(月)!