amidi や aplaymidi でシンセのパッチの送受信ができる..
---
KAWAI K1 のSRAMカードを発見して、その中に残っていたパッチをあれこれ楽しんでいるうちに、ちと欲が出てきた。KAWAI USAからパッチのデータが落とせるので、そいつをK1に入れてみたいのだが、さてLinuxマシンからどうやってK1に送ればよいのやら..
という事で調べてみたら何の事はない、 amidi という Debianではalsa-toolsパッケージに含まれるコマンドを利用すればよい事が分かった。先のパッチデータ .syx というのは、シンセのMIDI エクスクルーシブデータをダンプしたものらしい、のだ。で、amidiはMIDIインターフェースを介してシンセへバイナリデータを送受信するコマンドというわけだ。
---
まずMIDIインターフェース、買ったきり動作確認だけして使って無かった、EDIROLのUM-1EXというUSBインターフェースをPCに繋げて、 amidi の lオプションでポート名を調べる
amidi -lDir Device NameIO hw:1,0,0 UM-1 MIDI 1
で、A101.SYX を転送したければ、
amidi -p hw:1 -s A101.SYX
とやると転送できる..
---
KAWAI K1でうまく行ったので、KORGのmicroKORGもいけるのでは、と言うことで試してみたら、これもOKであった。
ネットで拾ったmicroKORG用データには .prg という拡張子がついていたのだが、これは1音色単体のバイナリの様である。
amidi -p hw:1 -s EchoOrgan.prg
とやると、microKORGにデータが送られた。また.syx形式のパッチのセットも同様に送信できた。
microKORG側からPCへデータダンプも可能であった。
amidi -p hw:1 -r microkorg_data.syx
とコマンドを打ってからmicroKORG側でデータダンプ操作するとPC側にデータがダンプされる。転送が終わったら Ctrl+c で止めればOK..これでシンセ側のパッチがPCに保管できる...
---
ネットで拾ったパッチデータの中には amidiだと転送できないものがあった..
.mid というファイルとか.. で、これはどうも 普通のというか楽曲と同じmidiデータ扱いなのでamidiだと
転送できない。
Bonus_Bank_MicroKorg.mid is a Standard MIDI File; use aplaymidi to send it
なんてエラーメッセージが出る、ので、この場合はメッセージどおり aplaymidi を使う。
aplaymidi -lPort Client name Port name14:0 Midi Through Midi Through Port-020:0 UM-1 UM-1 MIDI 1
でポートを調べて、
aplaymidi -p 20:0 Bonus_Bank_MicroKorg.mid
とやると転送できる... amidi とポート名の指定方法が違う...
aplaymidi は普通の楽曲データを再生するmidiプレーヤーコマンド。
---
と言うことで、LinuxからもMIDIシンセのデータのやりとりができる事が分かった。元々Linuxからのやり取りはできなくてもしかたがないと諦めてたので、目から鱗というか、もっと早く気がつくべきだった..