はじめに
サイバーマンデーで管楽器のようなMIDIコントローラ「EWI USB」を買ったので、
なぜかみんな持ってる音源モジュール「SD-90」をラズパイを使ってEWI USBで演奏できるようにしました。
PCでも同等のことは可能ですが、今回の方法ではラズパイの電源を入れるだけで演奏可能な状態になる
半スタンドアロン的な形にできます。発音の遅延も少ないので頑張ればライブとかで使えるかも。
使ったもの
- Raspberry Pi
- USBポート2つ(SD-90とEWI USB用)があり、RaspbianがインストールできるモデルならOK
- セットアップ用のPC
- Raspberry PiとEWI USBの設定に使う
- SD-90
- EWI USB
-
Akai EWI USB Control 1.3.2
- EWI USBの設定に使う。公式のツールでも可能だけど挙動が不安定で扱いにくいのでこっちにした
- スピーカー
- SD-90に繋げて音を鳴らす
EWI USBのセットアップ
EWI USBは初期設定だと吹いたときの息の強さをMIDIのVelocityに動的に反映してくれるのですが、
それによってSD-90の出音の音量が決まってしまうため、一音目がかなり小さくなりがちでした。
なのでAkai EWI USB Controlを使ってVelocityは好みの値に固定にして、
Breath CCをVolumeなどに割り当てるのが良さそうです(まだ手探り状態)。
設定はEWI USB側に記録されるので、この後ラズパイにつなぎ替えた後も保持されます。
Raspberry Piのセットアップ
Raspbianがインストールされている前提です。今回はRaspbian Buster Liteで動作確認しています。
以下の手順で、ラズパイ起動時にSD-90とEWI USBを自動でルーティングする設定を仕込みます。
SSH接続
ラズパイにSD-90とEWI USBを接続した状態で、PCからSSH接続します。
筆者はPCとラズパイをLANケーブルで直結してraspberrypi.local
でアクセスしてます。
MIDI接続の確認
aconnect -l
コマンドで接続されているMIDIデバイスが確認できます。
pi@raspberrypi:~ $ aconnect -l
client 0: 'System' [type=kernel]
0 'Timer '
1 'Announce '
client 14: 'Midi Through' [type=kernel]
0 'Midi Through Port-0'
client 20: 'SD-90' [type=kernel,card=1]
0 'SD-90 Part A '
1 'SD-90 Part B '
2 'SD-90 MIDI 1 '
3 'SD-90 MIDI 2 '
client 24: 'EWI-USB' [type=kernel,card=2]
0 'EWI-USB MIDI 1 '
MIDIデバイスのルーティングはaconnect "sender" "receiver"
の形です。
なので今回の場合はaconnect EWI-USB SD-90
で接続できます。
この時点でEWI USBを吹けばSD-90の音が鳴らせる状態になりますが、
毎回このコマンドを打たずに済むように起動時に実行されるスクリプトに上記コマンドを追記します。
起動時スクリプトの設定
起動時に実行される/etc/rc.local
に上記のルーティング用コマンドを追記します。
sudo vi /etc/rc.local
で以下のような感じにexit 0
の手前に追記しました。
# Connect MIDI devices
aconnect EWI-USB SD-90
exit 0
吹いてみる
SD-90で好みの音を選択して、EWI USBを吹いてみて音が鳴れば完成です。
EWI USBで音色選択ができるともっとうれしいけど、割り当てられるCC的に難しいかも。。