« SC-04EのカスタムROM入れ直し | トップページ

2017年10月12日 (木曜日)

BLE-MIDIをSC-04E Dirty Unicornsで使う

 SC-04EをカスタムROMのDirty UnicornsのAndroid 7.1.2にしたのだけど、Android 6.0(Marshmallow)以降で使えるというBLE-MIDI(MIDI over Bluetooth LE / Bluetooth MIDI)が使えない。いろいろ調べて、なんとか動くようにした。という話。長い。

 きっかけは「Chrome 62 on Android M以降でnative MIDI APIの利用が始まります」という記事を読んだこと。それならということで、Chrome Devを入れて試すも、ポートに何も出ず。Bluetoothの設定でQUICCO SOUND mi.1とのペアリングが済んでるにも関わらず、だ。

 で、調べると「MIDI BLE Connect」というアプリがあり、これで認識させてから、他のMIDI関連アプリを起動すると、BLE-MIDIで接続されたデバイスが見えるということがわかる。

 Adafruitのデバイスを使うための記事「Wireless UNTZtrument Using BLE MIDI」に出ていた。

 「BLE MIDI Connect」と「General MIDI Synth」を使うという例だ。

 しかし、両アプリともGoogle Playで探しても出てこない。上記ページのリンクから開くと、アプリが出てくるものの「この端末には対応していない」みたいなことを言われる。「このアプリはお使いの端末に対応していません。」だったかも。

 あらら。

 カスタムROMだからなのか、SC-04Eだからなのか? それとも日本からはアクセスできないとかか? わからないので、とりあえず、怪しげなサイトからMIDI BLE Connectのapkファイルをダウンロードして試す。起動はするものの、「MIDI not supported」と言われる。これはOSのMIDI機能(native MIDI?)が機能してないっぽい。

 だいたい、上記2つのアプリのレビューを見ると、日本語のものもあるので、国の規制はないんだろう。これは端末の状態か何かを見てGoogle Playが表示しないようになってるんだろうなあ。という、何も解決につながらない結論に。

 困ったので、今のよりも新しいカスタムROMがないかと探したら、あった。今使っているやつのより新しい(ずっと更新されているようだ。ありがとうございます)。とりあえず、インストール(その話は一つ前でした)。しかし、ダメ。結果は変わらず。

 さらに調べる。

 こんなページに行き当たる。

 「MIDI | Android Open Source Project

 これによれば、MIDIサポートを加えるには、device.mkというファイルに2行追加すればいいらしい。なんのことやらわからない。OSをビルドする際のメイクファイルなのか? OSのビルドなんてまったくわからない。

 とはいえ、単に、android.software.midi.xmlってファイルをしかるべきところに加えるってことかと、勝手に解釈。

 このファイルが置かれるべきところはどこか? おそらく「system/etc/permissions/」なんだろう。

 で、このファイルはどこにあるのか? ここか。

 ファイルの中身が書かれている。この中身を新規に作ったファイルにコピペしてandroid.software.midi.xmlとする。単なる宣言とか定義みたいなやつなので、これのほかにも何かが必要な気もする。それでもとりあえず、これをAndroidに突っ込んでみる。Root Explorer的なアプリでコピー(もちろん、すでにrootedな状態で)。でもって、そのディレクトリにあるほかのファイルと同じ属性(rw/r/r)にして、再起動。

 MIDI BLE Connectを起動。「MIDI not supported」の文字が出てこない。これは期待できそう。

 続いて、MIDIデバイス化したmicro:bitを接続してみる。しかし、同アプリからは認識されず。がーん。

 ここでめげずにmicro:bitを削除してmi.1を接続。すると、MIDI BLE Connectから認識された。ナイス! この状態でGeneral MIDI Synthesizerを起動すると、mk.1が認識される。mi.1をつないだMIDIキーボードを弾くと、SC-04Eから音が出た。やっと来た!

 さらにChrome Devを起動。自分で作ったWeb MIDI Appを試す。ちゃんとmi.1のポートが認識される。音もなった。ゴール!

 長かった。

 いまのところ、Chrome Devでない正式なChromeではまだ認識されてない。flagsで指定すればいけそうだけど、そのへんはあとで。どうせもうすぐバージョン上がるみたいだし(最初のリンク参照。今のは61.0,3163,98だった)。

 これで、ウチのAndroid端末でもAndroidのnative MIDI APIが試せる。かなりうれしい。ほかの端末、ROMで行けるかどうかはまったくわからないけど。


|

« SC-04EのカスタムROM入れ直し | トップページ

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/35726/65907530

この記事へのトラックバック一覧です: BLE-MIDIをSC-04E Dirty Unicornsで使う:

« SC-04EのカスタムROM入れ直し | トップページ