create every day - 福野泰介の一日一創

IchigoJamで音楽づくり PSG単音での音遊びから、MIDIキーボード&MIDI音源をつないだ本格DTMまで

2016/05/07 23:55:00
#IchigoJam #midi 

プログラミングの必修化では、「全て教科」でのICT活用が謳われています。 鯖江の小中学校でのIchigoJamクラブでは、IchigoJamのMMLを使った音楽づくりが人気です。

MML(Music Macro Language)とは、「ドレミ」を"CDE"で表す。BASIC時代から使われている曲記述言語です。 そういえば、MSXのFM音源で音楽の教科書の「コンドルは飛んで行く」とかをMMLにして、PLAYコマンドで鳴らしてました!

こちらおなじみ、学校のチャイムのMMLです

'MML SCHOOL CHIME PLAY"T60 BGAD2.R DABG2.R"

※Tはテンポ、Rが休符、基本は4分音符で後ろに2など付けると2分音符などにできます

'MML HAPPY BIRTH DAY PLAY"T180G.G8A2G2<C2>B2.R G.G8A2G2<D2C2.>R G.G8<G2E2C.C8>B2A2.R <F.F8E2C2D2C2.R

誕生日の定番!(ver1.2用のMMLです、オクターブの上げ下げがver1.1やMSXでは逆なので注意!)

'MML NEKO FUNJATTA PLAY"T200< D+8C+8>F+8R8<F+F+ D+8C+8>F+8R8<F+F+ D+8C+8>F+8R8<F+>D+<F+>C+<FF D+8C+8>C+8R8<FF D+8C+8>C+8R8<FF D+8C+8>C+<F>D+<F>F+<F+F+

唯一弾けるピアノ曲「ねこふんじゃった」

'SKATER'S WALTZ PLAY"T140 $E2.G2AA1R2 F2.A2BB1R2 <D2.C2>EA2.G2FE2.D2.C1R2

レトロゲームといえばクラシック!スケーターズワルツのループ(MML内の$があると末尾からそこに飛びます)
MixJuice で ?"MJ GET ichigojam.net/p/ からダウンロードできます!)


これら曲の打ち込みに活躍したのは、中古で手に入れた小型MIDIキーボード x SC-88 Pro を使ったIchigoJam DTM環境!
※最近の小型はMIDI端子が非搭載なのが多いので注意!

MIDIキーボードで演奏した曲をMMLにするプログラムをつくってみました。音の長さの判定がいい加減なので、手で修正は必要ですが、これでだいぶ楽になりました。 メトロノーム機能付き!(テンポは変数Dで調整、不要な場合は11行を消してください、50行でMIDIキーボードの拡張キーを使ったちょっとした編集機能を追加)

1 'MIDI-RECORD for 1.2 2 LET[0],"C","C+","D","D+","E","F","F+","G","G+","A","A+","B" 5 BPS31250:UART0,2:D=30:T=D:N=0:CLT 6 C=0:S=0:U=0 7 CLS:LC0,2:?"PLAY";CHR$(34);:L=5:O=5 10 K=INKEY() 11 IF TICK()>T BEEP 10-(N%4=0)*4:N=N+1:T=T+D 12 IF K=0 GOTO 10 ELSE K=K&#FF 25 UART1,2:LC0,-1:?CHR$(K);:UART0,2 30 IF K&#80 C=K:S=0:GOTO 10 40 IF C=#91 S=S+1:IF S=1 M=K ELSE V=K:S=0:IF V GOSUB300:GOSUB400:?STR$([M%12]);:L=L+LEN([M%12]):U=TICK() ELSE U=TICK()-U:IF U>D GOSUB300:?2;:L=L+1:'?" ";U 50 IF C=#B1 S=S+1:IF S=1 IF K=#19:GOTO 7 ELSE IF K=#15 L=L-1:GOSUB300:?" " ELSE IF K=#16 GOSUB300:?" ":L=L+1 200 GOTO 10 300 LC L%32,L/32+2:RETURN 400 IF M/12>O ?"<";:L=L+1:O=O+1:RETURN 410 IF M/12<O ?">";:L=L+1:O=O-1 420 RETURN

動画 on Vine

こちらは単純にMIDI入力をMIDI出力にスルーするプログラム。
作曲ツールや、演奏ツールの雛形として活用ください。

1 'MIDI-THRU for 1.2 5 BPS31250:UART0,2 10 K=INKEY():IF K=0 GOTO10 20 ?HEX$(K,2);" "; 25 UART1,2:LC0,-1:?CHR$(K);:UART0,2 30 GOTO 10


YAMAHAのMIDI音源、eVY1ボードへの接続はMIDIケーブルも不要!(つなぎかた


IchigoJamでMIDI音源を鳴らすのはとっても簡単!
MIDI端子にジャンパー線を2つはんだづけして、片方をVCCに片方をTXDに挿しこむだけ!(つくりかた
MIDI楽器もっている方、昔DTMに憧れた方、家にMIDI端子があるエレクトーン/電子ピアノがあるご家庭の方にオススメです!(MIDI入力は、IchigoJam BASIC ver1.2以降で対応します)
→ 秋月電子から「IchigoJam用MIDIインタフェース基板キット: 組立キット」も登場!

関連リンク
- Web MIDIでつなぐパソコンとIchigoJam
- 夢の明和電機楽器をIchigoJamで演奏!まだまだ使える日本発の規格「MIDI」
- MIDIキーボードをIchigoJamにつないで明和電機ごっこ!?
- 再燃!?MIDI音源であそぼう! IchigoJam 1.2β シリアル入力バイナリ対応
- YAMAHA NSX-1 x IchigoJam eVY1とBASICを使ったお手軽DTM
- 1行プログラムでつくる楽器、IchigoJamでPS/2キーボードがMIDIドラムパッドに変身!
- 150円でつなぐ!MIDI音源で音楽あそび - Roland SC-88 Pro x IchigoJam
- 電子ピアノをMIDIとマイコンでIoTに

Tweet
クリエイティブ・コモンズ・ライセンス
この作品は「Creative Commons — CC BY 4.0」の下に提供されています。
CC BY 福野泰介 - Taisuke Fukuno / @taisukef / high-res profile image