BLE MIDI: raspbian では動かないのか?
Pisound を買ったことでもあり、色々と試し始めている。一番気になっていたのが、Raspberry Pi で BLE MIDI を使えるかどうかってこと。結論から言うと、今の環境(*1)では使い物にならないみたい。KORG の MicroKEY2-25 Air という MIDI Keyboard を試したんだが、打鍵に追従しなかった(*2)。この Keyborad は USB 接続もできて、そちらでは問題はなかったのに。
(*1) 今の環境
Hardware: Raspberry Pi 3 Model B
OS: Patchbox OS (Release Date: 2020-03-14 | Size: 963MB)
(Pisound用にチューンされた raspbian)
Patchbox OS - Raspberry Pi OS for Audio Projects
(*2) 現象
・まず Keyboard がシステムに接続されなかった。
全対的に次のサイトを参照した。
Update: Korg Microkey Air 37 Bluetooth MIDI Keyboard with Raspberry Pi4 and Buster – McLaren Labs2
BlueZ が 5.50 だったのを、5.56 にソースからアップデートしてみる。しかし
./configure で次のエラーになる。
configure: error: GLib >= 2.28 is required
そこで次のサイトを参照して対処した。
・5.56のコンパイルが通り、再起動したら Keyboard がシステムに接続できた。
しかし、打鍵に対する応答が悪い。
ちょっとハマりそうなので、深追いしないことにした。
Raspberry Pi Pico: Pimoroni の Pico Audio Pack 用のサンプル・コード
Pimoroni の Pico Audio Pack 用のサンプル・コードなんだけど、Pimoroni のWebサイトでは Raspbarry Pi本家が用意している C/C++ SDK と pico_extras、pico_playground のコードを参照せよと書いてあるが、具体的な手順は書いていないので、わかりにくい。そこで、ちょっとやってみた。
次の2つのサンプルを試した。どちらも特に問題なく build ができた。
(1) pico-playground/audio/sine_wave
サイン・カーブの発信音が Pico Audio Pack に挿したイアフォンから聞こえた。
(2) pico-playground/apps/usb_sound_card
"サウンド" の "出力"装置に "Pico Examples Sound Card" というのが
現れて、これを選択すると Pico Audio Pack に挿したイアフォンから音声が
聞こえた。
いわゆる USB Audio っていうのかな。
ただしソース・コードには次の2行を追加しておく必要がある。I2S関連のピン番号ね(実際はGPIO番号)。
この注意事項は Pimoroni の Webサイトに書いてある。
#define PICO_AUDIO_I2S_DATA_PIN 9
#define PICO_AUDIO_I2S_CLOCK_PIN_BASE 10
Raspberry Pi Pico: USB MIDI example (CircuitPython)
Pico を Python で制御するには、MicroPython を使用するが、MicroPython にもいくつかあり、自分の目的に合ったものを選ぶことになる。あるいは自分専用に MicroPython を build するという選択肢もある。
いま自分が知っている Pico 向けの MicroPython で、メジャーどころでは次の3種類のMicroPython がある。
(1) Raspberry Pi 本家の MicroPython
(2) Adafruit の CircuitPython
(3) Pimoroni の MicroPython
そんなこんなで USB MIDI ということで調べていたら、次の記事が目に留まった。
ここには Pico を MIDI Controller にした例が2つ載っている。どちらも、Adafruit の CircuitPython で adafruit_midi というモジュールを使用している。また制御対象が Pimoroni の Pico RGB Keypad Base という4x4個のキーが付いた装置である(以下を参照)。
https://shop.pimoroni.com/products/pico-rgb-keypad-base
ソースコードもGitHubに公開されているので、ずいぶんと勉強になる。
Raspberry Pi Pico: USB MIDI example (C/C++ SDK)
Raspberry Pi Pico の開発環境は、C/C++ SDK と、MicroPython の2種類がある。
C/C++ SDK を覗いていたところ、USB MIDI で Note On/Off する example があったのでメモしておく。この SDK に用意されている USBドライバは、Tiny USB で、そこに MIDI の example があった。場所は次のとおり。
pico-sdk/lib/tinyusb/examples/device/midi-test
これを build したら、macOS 上の synthソフトから音が鳴った。
Tiny USB なので Adafruit で色々あると思っていたら、CircuitPython で USB MIDI を鳴らしている例があった。これについては明日以降に投稿する。
初めてのBlog投稿
まずは、備忘録として利用する予定です。