chibi:bitでBluetooth MIDI接続する – iOSとWindowsで成功

Youtube
 英BBCが教育用に開発したマイコン「micro:bit」の互換製品である、スイッチサイエンスの「chibi:bit」でBluetooth MIDI接続するという話。chibi:bitでシンセを演奏する、というか鳴らす。iOSとWindowsで成功しました。
 micro:bitでBluetooth MIDI接続できると知って、すぐにchibi:bitを購入。試し始めたのが確か5月末。最初に見つけたのがこれ。
 How do I play a MIDI instrument on the micro:bit : Support
 でもって、Javascript Blocks Editor(旧称 PXT)用のパッケージがこれ。
 Microsoft/pxt-bluetooth-midi: A Bluetooth Midi package for Microsoft Make Code – beta
 ドキュメントによれば、送信のみ対応。それでも十分楽しめるはず。ということで、着手。しかし、パッケージ付属のサンプルを試すもどうもうまくいかない。
 Windows、iOSともペアリングはできてる。WindowsではMIDIデバイスとして認識されるまでは行く。しかし、MIDIデータをWindowsが受信している気配がない。ここからが大変。
 


 Twitterで見つけた開発者の発言によれば、micro:bitでは問題なく動いてるらしい。しかし、本人以外でそれでうまくいったという話はどこにもない。普通なら、成功例がどっかにあったりするものだけど。
 ここで、「micro:bitはOKだけど、chibi:bitではだめ」みたいなことがあるのかも。両者の互換性の問題はないのだろうか? とか思ったり。スイッチサイエンスに問い合わせると、こんな答えがきた。

 ファームウェアが異なるので、100%互換とは言えないが、プログラムに関する動作としてはmicro:bitでも動くはず

 ありがとうございます! これに勇気づけられ、さらにテストを続けた。
 そこで、気づいたのが、パッケージのサンプルでは、「ノートは送れない」が、「プログラムチェンジだけは送れる」ということ。
 どういうことだ? とりあえず、全部がおかしいわけではない。少なくとも、chibi:bitでMIDIデータの送信はできそう。ということで、いろいろ試す。そんなこんなでやっとたどり着いたのが、この状態。


Bluetooth MIDI / chibi:bit (micro:bit compatible)
 Windowsでは動いた。Windowsでのポイントはペアリングなしにすること。これがわかったのは6月半ば。
 さらにテストを続ける。micro:bitのBluetooth MIDIパッケージは、iOSのみの対応、ということになっている。そっちができないとおかしい。そうこうしているうちに、GitHubに海外の人のissueが上がる。
 How to get a note to play in GarageBand? · Issue #3 · Microsoft/pxt-bluetooth-midi
 海外の人もiOSで接続できてないという。1週間たっても返事がつかない。こっちと同じ状態かあ。と、思いつつ、さらにテスト。
 そういえば、chibi:bit用のIDEで作業してたけど、micro:bit用のIDEはどうだろう? そんなことを思い始める。Twitterで、両者のバージョンが違うらしいというのを見つけたからだ。ということで、試す。
 そしたら、すんなりiOSでも接続できた。ここでのポイントは、ペアリングありにすること。iOSでは、ペアリングありならMIDIデバイスとして認識はされていた。しかし、データが受信できてない状態だったのだ。で、micro:bitのIDEを試したらすんなりいったという。なんだよ、遠回りしちゃったな。という感じでアップロードしたのがこれだった。

iOS and chibi:bit (micro:bit campatible) Bluetooth MIDI
 これが7月10日だ。この時点で、iOSのシンセアプリなどを中心に取り上げているdiscchordのTimさんからコメントがあり。これはうれしかった。
 Windows、iOS共通でポイントとなるのが、「bluetooth start midi service」の位置だ。サンプルでは「on start」にあるんだけど、正しくは「on bluetooth connected」に置く。
 でもって、接続できた際になんらかの表示をしたほうがわかりやすいということも。接続完了時に「C」、解除時に「D」を表示するのが定番のようだ。これはなんかのサンプルで見つけた。
 で、その後、手順を紹介しようと作ったのが、これ。

Tutorial Bluetooth MIDI – chibi:bit (BBC micro:bit compatible) and GarageBand iOS
 できあがった時点でTimさんに教えたら、discchordでも取り上げてくれた。
 Tutorial Bluetooth MIDI – chibi:bit with GarageBand iOS | discchord
 ありがとう、Tim。
 でもって、GitHubでissueを書いてた人にも、これでできたよ、というコメントをGoogleの翻訳を使って書いた。なんとか通じたらしく、感謝されたようでなにより。これで、海外でもmicro:bitでBluetooth MIDI接続しておもしろいことをする人が増えればいいなあ、と思ったり。
 その間、ニコニコ動画にも日本語版という感じでアップロードしたり。まあ、そんなに注目されてる感じはなかったんですけどね。
 現時点では、micro:bit IDE用のBluetooth MIDIパッケージがβ版ということもあってか、まだまだ不安定。chibi:bitをリセットして、iOSやWindowsにBluetooth MIDI接続が完了した時点で、多くのMIDIデータを送るとかなりの確率でハングアップっぽい感じになる。困った顔のアイコンが出たりするのだ(動画の最初にある顔)。10秒ほどたってからやるとまあまあ安定。それでも、安定してるとはいえない状態。
 これを解決するには、たぶんユーザーのレスポンスが必要なんだろう。まずはユーザーが増えなくては! ということで、このエントリーを書いた次第。GitHubやYouTubeへの投稿もその一環。とはいいつつ。
 なんかあっても英語で質問とかできないので、どなたかお願いします。というのが本音です。よろしくお願いします。

 ニコニコ動画には日本語字幕で投稿しました。

コメント