BLEのレイヤーを理解してMircoPythonのBLEライブラリを使ってMIDIコントローラを作りたいと思っていた。で、、BLEライブラリのスキャンを行っても試しに使ったKorgのmicroKey AIRすら見つけらないでいた。実際に動く試作をしてみたいと思い、実績のあるArdunoid版BLEライブラリを使った、BLE-MIDI_BUTTON5.inoをESP32上で走らせて、FL Studioとつないでみた。
BLE-MIDI_BUTTON5.inoをコンパイルしてesp32に焼いた。PCからBluetoothデバイス検索すると、MIDI-BUTTON5デバイスが見つかった。ペアリングする。
FL-StudioのMIDI設定で、MIDI-BUTTON5が表示されている。デバイスとしては見えている状態。ただしデバドラが無効*1と言って怒られる。でも選択はできる。ここまでの間に、KorgのBLE MIDIデバイスドライバがどのように機能しているのかは不明。
MIDI入力による演奏をしてみると、MIDIのNote On/Offに従って、シンセの音がOn/Offされる。結論として、デバドラで怒られはするがMIDI入力装置としては機能している。しかも遅延がほとんどない。素晴らしい。
本日の結論:
1. Arduino版BLE+サンプルコードを使うと MIDI over BLE によるMIDI楽器は実現可能
2. FL Studioでデバドラがおかしいとは怒られる。KorgのBLE MIDIドライバがどのように仕事してくれているのかは不明
3. 体感的に遅延の無い入力が可能
「他人の褌」状態で、BLE接続によるMIDI入力装置(仮)は動いた。ただ、BLEレイヤーがどうなっているのか全く分かっておらず。それに、FL Studioでdriver is not enabledと怒られるのもなんとかしたい。
*1:The Driver was not enabled.