Macで外部MIDI音源をソフトウェア化する方法

背景

 以前作った「ProcessingとKinectで作る身体全体をシーケンサにするマジキチ楽器」の記事に対して、コメント欄でハードMIDI音源の代わりにソフト音源使う方法ないでしょうか?という質問があって、そのときは調べてもよくわからなかったのですが、色々調べ続けた結果ようやくできるようになったのでメモ代わりに公開します。
 やってみたら、Macの場合は思ったよりシンプルにできて凄く便利でした。「you got mail」さんのコメントのおかげです。ありがとうございました。

やり方

 Mac限定です、Windowの人はグーグル先生に聞けばなんとかしてくれるでしょう。まずはAudio MIDI設定という標準アプリを起動して下さい。アプリケーション→ユーティリティの下にあります(/Applications/Utilities)。そこでMIDIウインドウを開いて以下の図のように設定します。

130606_MacMIDI

 IACドライバというのがMacの仮想MIDIポートっぽいもの(?)らしいです。よくわかりません。こいつをダブルクリックして、装置はオンラインにチェックを入れ、ポートの名前を設定してやります。ポートの名前は何でもよいのですが、2バイト文字(日本語)は使わない方が無難でしょう。設定はこれでOK。ね、簡単でしょ?あとは適当なソフトシンセが入ったソフトを立ち上げましょう。Garagebandが無難かな、Garagebandは自動でIACドライバを認識してくれるらしく、環境設定からオーディオ/MIDIのタブを選ぶとMIDIのステータスでMIDI入力が検出されていることがわかります。

 あとはMIDIを送信するソフト(今回だとProcessingで作った自作ソフトね)で、MIDIデバイスとしてIASドライバを指定してやればよいです。
プログラムのソースとしては、midiOut = midiIO.getMidiOut(0,1); の一番最後の1をIACのドライバのデバイスナンバに変えてやればよいです。デバイスナンバは、プログラム実行すると下のデバッグウィンドに「output 0 : IACBUS」 といった感じに表示されます。この場合は、midiOut = midiIO.getMidiOut(0,0); と設定してやればよいことになります。
 これ、他にも応用効きそうですね。色々試してみようかなと思います。

おまけ

 ソフトシンセ、MacだとGaragebandの他、MainStageというアプリが色んな音源使えてオススメです。価格も今日現在で2600円とお値打ち。

GarageBand App

カテゴリ: ミュージック

価格: ¥1,300

MainStage App

カテゴリ: ミュージック

価格: ¥2,600