6
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

RaspberryPiからmi.1につないでMIDI楽器の音を鳴らしてみる

Last updated at Posted at 2015-08-09

今度はQUICCO SOUNDのmi.1というBLE MIDI I/Fを扱ってみる。
前回と同様、RaspberryPiにBLEドングルを接続してBluezを使用するが、今回はサンプルソースコードがないので自力で調べてみる。

そこで、LightBlueというソフトを使用。Macにインストールする。
参考URL

LightBlueを使ってmi.1に接続すると、Servicesに三つ出てくるので順番にいろいろ見ていくが、結論から言うとUUID03b80e5a-ede8-4b33-a751-6ce34ec4c700これを選択すると一つのCharacteristicsにたどり着く。
スクリーンショット 2015-08-10 0.51.02.png

7772e5db-3868-4112-a1a9-f2669d106bf3これがBLE MIDIのR/WをするUUIDになる。
ここで右側にSubscribeボタンがあるので押してみる。
そして試しにmi.1をMIDI鍵盤につないでキーを押すと、なにやら反応することがわかる。
これで受信が出来るらしい。

送信は、Subscribeの下の方にあるWrite Hexテキストボックスに入れる。
ここにMIDIコマンドを入れてやる。
音を鳴らすのと止めるのだけ簡単に書く。

Command Meaning Param1 Param2
90 Note-on Key(0-127) Velocity(0-127)
80 Note-off Key(0-127) Velocity(0-127)

音を出すには、0x90,0x45,0x7fあたりを突っ込んでみる。
テキストボックスには90457fと入れてみる。
しかし鳴らない。

で、SubscribeしたときのHex情報を見てみると、0x8080FEとなっていて、おそらくヘッダ情報がつくのだろうと推測。
まずはその通りやってみた。
8080fe90457f
鳴らず。
そこでSubscribeしたときに鍵盤を叩いてみるとどうなっていたか、やってみると0x8080904568って具合に帰ってくる。
feはいらなかった、ということで808090457fと入れると、見事に鳴った!(もちろん試行錯誤の過程を省いたわけでここまでこんなにすんなりとはいってない)

あとはBluezで同じことをやってみるだけ。

[XX:XX:XX:XX:XX:XX][LE]> primary
attr handle: 0x0001, end grp handle: 0x0007 uuid: 00001800-0000-1000-8000-00805f9b34fb
attr handle: 0x0008, end grp handle: 0x000b uuid: 00001801-0000-1000-8000-00805f9b34fb
attr handle: 0x000c, end grp handle: 0x0016 uuid: 0000180a-0000-1000-8000-00805f9b34fb
attr handle: 0x0017, end grp handle: 0x001a uuid: 03b80e5a-ede8-4b33-a751-6ce34ec4c700
attr handle: 0x001b, end grp handle: 0xffff uuid: 00001530-1212-efde-1523-785feabcd123

03b80e5a-ede8-4b33-a751-6ce34ec4c700のhandleは0x0017なので、

[XX:XX:XX:XX:XX:XX][LE]> char-desc 0x0017
handle: 0x0017, uuid: 00002800-0000-1000-8000-00805f9b34fb
handle: 0x0018, uuid: 00002803-0000-1000-8000-00805f9b34fb
handle: 0x0019, uuid: 7772e5db-3868-4112-a1a9-f2669d106bf3
handle: 0x001a, uuid: 00002902-0000-1000-8000-00805f9b34fb
handle: 0x001b, uuid: 00002800-0000-1000-8000-00805f9b34fb
handle: 0x001c, uuid: 00002803-0000-1000-8000-00805f9b34fb
handle: 0x001d, uuid: 00001532-1212-efde-1523-785feabcd123
handle: 0x001e, uuid: 00002803-0000-1000-8000-00805f9b34fb
handle: 0x001f, uuid: 00001531-1212-efde-1523-785feabcd123
handle: 0x0020, uuid: 00002902-0000-1000-8000-00805f9b34fb

7772e5db-3868-4112-a1a9-f2669d106bf3
のhandleは0x0019になる。

[XX:XX:XX:XX:XX:XX][LE]> char-write-req 0x0019 808090457f

OK。
ノートOFFするときは

[XX:XX:XX:XX:XX:XX][LE]> char-write-req 0x0019 8080804500

で音は消える。

これでRaspberryPiから無線でMIDI動かせちゃうね!

6
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?