Scratch MIDI

こちらの記事は以前Quitaに書いた 「Scratch 3 MIDI Extension(機能拡張)」を加筆修正したものです。

MIT Scratch(スクラッチ)は、マサチューセッツ工科大学(MIT)メディアラボが開発した、子ども向けの無料プログラミング学習環境です。 ブロックをパズルのようにマウスでつなぎ合わせるだけで、直感的にアニメーションやゲームを作成できます。

Scratch 3.0の正式版は2019年1月2日リリースされ、HTML、CSS、JavaScriptのセットであるHTML5で記述されています。 また、ソースコードがGithubに公開されています。 この公開されているソースコードに自前の機能拡張(Extension)を追加する仕組みを持っています。 HTML5で記載されていますので、機能拡張の制作は敷居が低くなりました。

一方、ブラウザがMIDIを扱うWeb MIDI APIもHTML5で記述されていますので、ScratchでMIDIを扱う機能拡張を作成することができます。

Scratch からMIDIを扱うとは、例えばスクラッチキャットが壁にぶつかったらNote Onを出すことができます。 あるいは、鍵盤を押すと風船が出るといったプログラムも書くことができます。

Web MIDI APIを使った、MIDI機能拡張が使えるScratchは、こちらのサイトからアクセスしてください。

MIDI機能拡張の使い方

Scratch MIDIを立ち上げる前に、MIDIデバイスを接続して下さい。 立ち上げた後ではデバイスを認識してくれないことがあります。 Web MIDI APIに対応しているブラウザ Chrome や Edge でこちらのサイトにアクセスしてください。


Scratchを開きます。左のブロックパレットの下段の機能拡張追加をクリックします。 機能拡張を選択する画面が表示されます。

MIDI(WebMIDI)をクリックします。「mikatahara.github.ioの内容」と書かれたダイアログが表示されます。


このダイアログには、「Success MIDI!」Web MIDI APIが使えること、「Input Device」入力デバイスとして ここでは2つのデバイス 1:NSX-39と 2:NanoKEY2 KEYBOARDが接続されていること、 「Output Device」出力デバイスとして ここでは2つのデバイス 1:NSX-39と 2:NanoKEY2 CTRLが接続されていること、が表示されています。 ここで表示されている、"1", "2"は後で使いますので覚えておいて下さい。「OK]を押します。


左に示すようにWeb MIDIに関わるブロックが表示されます。

ここでは簡単に、NanoKEY2の鍵盤を押すと、スクラッチキャットが左に動くようにプログラミングします。