iOSのCore MIDI


iOSの勉強会用にCoreMIDIを調べてみたりしたのはいいものの、まだ発表する機会がなさそうなのと、気がつけば3ヶ月もブログを更新していなかったので、ちょっと書いておこうかなと思います。とりあえずこのエントリは、CoreMIDI対応アプリを開発する前の準備の話です。(※2011/7/26に内容を変更しています)

CoreMIDIはiPadだけ?

iOS 4.3.3より前のOSだと、外部とMIDIデータの送受信をできるのはiPadだけだったのですが、iOS 4.3.3以降だとiPhoneでもWi-fi経由でiPadと同じく使えるようになったようです。また、iPadではMIDIインターフェースをCamera Connection Kitにつなげれば使えたのですが、最近YAMAHAなどからドックに直接つなげるタイプのMIDIインターフェースが発売されましたので、iPhoneでもそれらをつかえばMIDIの送受信を実機だけで出来るようになりました。

デバッグはWi-Fiで!

MIDIインターフェースをドックに付けた状態だと、Macとつなげる事が出来ないので非常にデバッグがめんどくさいです。なので開発中はドックにつながず、iPhone/iPad(実機)とMacをWi-Fiで接続してWi-Fi経由でMIDIを送受信するようにした方が良いと思います。MacにMIDIインターフェースをつなげるのも良いですが、何かMIDIを送受信出来るアプリケーションがあれば別にMIDIインターフェースがなくても問題ありません。むしろ、いろいろなMIDIメッセージを送信出来るMacアプリケーションを作ってデバッグに活用する方が良いんじゃないでしょうか。

以下は、Macと実機をWi-Fi経由でMIDIの送受信をする接続方法を解説します。これはアプリの開発者に関わらず、MacのシーケンスソフトなどからiOSアプリの音をならしたい、でもケーブルでごちゃごちゃしたくないというユーザーの方にも参考になると思います。ですがWi-Fi経由だと、直接MIDIインターフェースをドックにつなげた場合と違って、それなりに発音の遅れや揺れがあると思いますのでご注意ください。

Wi-Fi経由のCore MIDIの接続方法

まず、実機になにかCoreMIDI対応アプリを入れておきましょう。何も持っていなければ無料の「Midi Monitor」あたりをダウンロードしておけば良いと思います(僕の環境ではしょっちゅう落ちるアプリですが…)。もちろん、自分のアプリを開発するときにはそれを立ち上げればいいので、それで。

Macと実機を同じWi-Fiネットワークに接続してください。Wi-Fiアクセスポイントがない場所でも、MacでAd-Hocネットワークを作成して接続する方法もありますので、わからない方は適当にぐぐってください。

Macの「Audio MIDI 設定」アプリケーションを起動して、「MIDI スタジオ」というウィンドウが開いていなければ、メニューのウィンドウの「MIDI ウィンドウを開く」を選択して開いてください。

MIDIスタジオのなかにネットワークというアイコンがありますのでダブルクリックして「MIDIネットワーク設定」というウィンドウを開きます。

CoreMIDI01.jpg

ウィンドウ左上の「自分のセッション」の「+」をクリックして、ネットワークセッションを作ります。

CoreMIDI03.jpg

おそらく「セッション1」という名前のセッションが出来ると思いますので、そこの左のボタンにチェックを入れます。

CoreMIDI04.jpg

実機側で、CoreMIDI対応のアプリを起動してください。実機では、アプリでMIDIClientを作成する事で自動的にネットワークセッションが作成されます。ちゃんと実機側のネットワークセッションがMacで認識されていれば、ウィンドウ左真ん中の「ディレクトリ」に実機の名前が表示されています。もし、CoreMIDI対応アプリを起動しても名前が現れない場合は、一度実機を再起動してみてからアプリを起動しなおすと良いかもしれません。

CoreMIDI05.jpg

実機の名前が現れたら選択して、下の「接続」ボタンをクリックしてください。接続に成功すれば、右側の「構成」のところに実機の名前が表示されているはずです。

CoreMIDI06.jpg

MacのMIDIアプリケーションからMIDIを送受信する場合は、この時点でMacアプリケーションのMIDIインやアウトでネットワークセッションを選択出来るようになっていると思いますので、Audio MIDI 設定での設定は以上です。

アプリケーションを使わずMIDIインターフェースと実機をつなげたい場合は、ウィンドウ右下のライブルーティングを使います。実機へMIDIメッセージを送りたいMIDIインターフェース(MIDI IN)を上のポップアップボタンで選択してください。逆に実機から送りたいMIDIインターフェース(MIDI OUT)は下のポップアップボタンで選択してください。(手元にUSB接続のMIDIキーボードしかなかったので、下のスクリーンショットではIN側だけ選択した状態です。)

CoreMIDI07.jpg

あとは実機アプリ側の設定ですが、MIDI INやOUTが選択出来るアプリであれば、「Network Session 1」というのがあるはずですので選択してください。そのような設定がないものはつながるものは全部つなげてしまう仕様になっていると思いますので、特に設定する必要はないと思います。

と、今回はこの辺で。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です