餅は餅屋、憧れのMIDI音源、Roland SOUND CANVAS SC-88 Proにつないで演奏してみました。
MIDIは、電子ピアノやエレクトーンにもついているので、お家にある楽器をハックしちゃおう!
IchigoJamからたった2本、線をつなぐだけ!(ケーブルは2年前つくったもの)
MIDI端子は5ピンDINという規格。マルツで5ピンDINプラグ(150円)を買って、ピンを正面から見て左から2番目に赤色、と4番目に黄色の線をはんだづけ。写真の細い線ではなくジャンパーピンを使うのがオススメ。
5ピンDINソケット(120円)の方を買って、MIDIケーブルで接続するようにするのもアリ!
MIDIの正体は31250bpsのシリアル信号。IchigoJamのシリアル出力TXDに黄色、VCCに赤色を接続すれば準備OK!
IchigoJamで鳴らしてみよう!MIDIのお約束(プロトコル)を見て、ドの音を鳴らしてみます。
(参考、MIDI - Wikipedia)
BPS 31250 ?CHR$(#90,60,127);
#90は1chに音鳴らすというコマンド、60が音階(半音で1上がる)、127が音の強さ。
画面に表示したものをそのまま鳴らそうとしてしまうので、鳴らさない時は UART0 でシリアル出力をオフにしよう。
おかしなことになったらMIDI音源の電源を一旦か、?CHR$(#ff); とシステムリセット信号を送ってみよう。
こちら和音の鳴らすプログラム
1 'MIDI WAON 10 BPS 31250:T=1 20 ?CHR$(#C0,T); 30 ?CHR$(#90,60,127,#90,64,127,#90,67,127); 40 WAIT 60 50 ?CHR$(#80,60,0,#80,64,0,#80,67,0); 60 UART0
減衰音の場合50行のノートオフはなくてもOK。
続いて、ドラムパート用に用意された特殊な10chを使ってドラム音を順番に鳴らすプログラム。
1 'MIDI DRUMS 10 BPS 31250:CLS 20 FOR I=35 TO 81 30 LC0,-1:?CHR$(#99,I,127); 40 LC0,0:UART0:?I:UART1 50 WAIT 30 60 NEXT 70 UART0
MIDI信号用の表示を画面に表示しないために、LC0,-1で画面外へ。
画面にだけ表示する場合は、LC0,0で位置を戻して、UART0で一時的にシリアル信号をオフにしよう。
以前つくったリズムマシーンをMIDI用に改造するのも楽しいかも?
本格DTM(for PanCake)、ゲームの効果音、加速度センサーを使ったオリジナル楽器作り、温度や距離測センサーを使って、外部環境に合わせたリズムを奏でるマシンづくりなど、発想自由自在!
IchigoJamイベント紹介
- 2016/2/20 第一回 PCNサミット IchigoJamワークショップ&こどもロボットpaprika 先着10名
- 2016/3/5 「きょうりゅうゲームをつくろう」IchigoJamプログラミングワークショップ 先着20組 - IODD2016