PSS-A50のMIDIデータ解析
データ取得方法など
Raspberry Pi PicoとTinyUSBを使って受信したデータをシリアル出力しました。
PSS-A50のMIDIデータについては下記のMIDIリファレンスを参考にしています。
https://jp.yamaha.com/files/download/other_assets/6/1282286/pssa50_ja_mr_a0.pdf
送信データ取得
発音
鍵盤を押したときに送られるデータ(16進数)です。音はNo.001(グランドピアノ)ですが、ほかの音でも同じでした。
// ----- タッチレスポンスオフ ----- 90 30 50 // 押 90 30 00 // 離 // ----- タッチレスポンスオン(強打)----- 90 30 7f 90 30 00 // ----- タッチレスポンスオン(弱く) ----- 90 30 01 90 30 00
MIDIリファレンスによるとノートオフは送受信できず、代わりにベロシティが0になると記載されており、その通りになっています。 タッチレスポンスオフのときは0x50になっていました(0x7fではないのですね)。タッチレスポンスオンのときのベロシティは0x01~0x7fまで出ています。
続きを読むPicoを使ってPSS-A50にサステインペダルを付けてみた
Raspberry Pi Picoを使って、無改造でYAMAHAのミニキーボード PSS-A50にサステインペダルを取り付けられるようにしました。
実現方法
PSS-A50のMIDI入力機能を利用します。PSS-A50から出力されたMIDI情報をそのままPSS-A50に送り返し、その上にペダル情報を乗せることで実現します。
そのためにはMIDIホストが必要になります。PCでもラズパイでもESP32でもよいのですが、私はRaspberry Pi Picoを使用しました。Raspberry Pi PicoはUSBホストになることができ、TinyUSBというライブラリを使ってホスト機能を実現できます。
しかし本家TinyUSBにはMIDIデバイスの実装はあるのですが、MIDIホストはありません。自分で実装するしかないかと思っていましたが、探してみるとMIDIホストを実装している方がいたのでそれを使いました。
使用したMIDIホスト実装→GitHub - rppicomidi/tinyusb at midihost