2023年1月3日火曜日

IchigoJamでPS/2キーボードを鍵盤のように使うプログラム

以前前回の続きです。この実験を続けているうちに、音を出すたびに「PLAY "C1"」コマンドを書いて実行するのが面倒に感じるようになりました。すぐに思いつくのは、IchigoJamにつないでいるPS/2キーボードを鍵盤のように使うことです。そこで、「IchigoJamチップチューン!? PLAY文とMMLで音楽演奏」を参考に、PS/2キーボードを鍵盤のように使って音を鳴らすプログラムを作ってみました。

110 K=INKEY()
119 IF K=ASC(”A”) PLAY “O2A-”
120 IF K=ASC(”Z”) PLAY “O2A”
121 IF K=ASC(”S”) PLAY “O2A+”
130 IF K=ASC(”X”) PLAY “O2B”
140 IF K=ASC(“C”) PLAY “O3C”
141 IF K=ASC(“F”) PLAY “O3C+”
150 IF K=ASC(“V”) PLAY “O3D”
151 IF K=ASC(“G”) PLAY “O3D+”
160 IF K=ASC(“B”) PLAY “O3E”
170 IF K=ASC(“N”) PLAY “O3F”
171 IF K=ASC(“J”) PLAY “O3F+”
180 IF K=ASC(“M”) PLAY “O3G”
181 IF K=ASC(“K”) PLAY “O3G+”
190 IF K=ASC(“,”) PLAY “O3A”
191 IF K=ASC(“L”) PLAY “O3A+”
200 IF K=ASC(“.”) PLAY “O3B”
210 IF K=ASC(“Q”) PLAY “O4C”
211 IF K=ASC(“2”) PLAY “O4C+”
220 IF K=ASC(“W”) PLAY “O4D”
221 IF K=ASC(“3”) PLAY “O4D+”
230 IF K=ASC(“E”) PLAY “O4E”
240 IF K=ASC(“R”) PLAY “O4F”
241 IF K=ASC(“5”) PLAY “O4F+”
250 IF K=ASC(“T”) PLAY “O4G”
251 IF K=ASC(“6”) PLAY “O4G+”
260 IF K=ASC(“Y”) PLAY “O4A”
261 IF K=ASC(“7”) PLAY “O4A+”
270 IF K=ASC(“U”) PLAY “O4B”
280 IF K=ASC(“I”) PLAY “O5C”
281 IF K=ASC(“9”) PLAY “O5C+”
290 IF K=ASC(“O”) PLAY “O5D”
291 IF K=ASC(“0”) PLAY “O5D+”
300 IF K=ASC(“P”) PLAY “O5E”
410 GOTO 110

「ASC」でキーボードからの入力を文字コードに変換し、「INKEY」に入れて「PLAY」で音を出すという仕組みです。ネットでいろいろ調べてみると「C」のキーを「C(ド)」に当てている例が多かったので、それに習ってプログラムしてみました。出来上がったプログラムを「SAVE0」で保存して、使うときに「LOAD0」で呼び出せるようにしました。
(「プログラムのほぞん」を参考にしました)

ところどころ不具合があって、何度かやり直しをしましたがようやくまともに動くプログラムになりました。音痴なところは「仕様」なのでとりあえず我慢することにします。

0 件のコメント: