いくらSnifferでBLEパケットを取ろうとしてもAdvertiseしか取れない状況なので、何が正しいのか分からずじまいだけど、、MicroPythonで実装したBLEMIDIとiPhone上の音楽アプリ(KORG Module)と接続はできた*1。
MicroPython側ではドレミファ・・・と連続的にNoteOn/Offさせていて、それに合わせてピアノやシンセが再生されるまでにはなった。MicroPythonでBLE MIDIのひな型ができたので、次は、MIDIプログラミングにより、ドミナントとかコード進行を鳴らしたり、各コードでアルペジエータとかを演奏させたい。
ご参考に。。GATTのServiceとCharacteristicの定義は以下
#//BLE MIDI #//Service 03B80E5A-EDE8-4B33-A751-6CE34EC4C700 #//Characteristic 7772E5DB-3868-4112-A1A9-F2669D106BF3 BLE_MIDI_UUID = bluetooth.UUID('03B80E5A-EDE8-4B33-A751-6CE34EC4C700') BLE_MIDI_CHAR = ( bluetooth.UUID('7772E5DB-3868-4112-A1A9-F2669D106BF3'), bluetooth.FLAG_READ | bluetooth.FLAG_NOTIFY | bluetooth.FLAG_WRITE_NO_RESPONSE,) BLE_MIDI_SERVICE= ( BLE_MIDI_UUID, (BLE_MIDI_CHAR,), )