私は次のコードを試しました: alsarawmidiin.c
alsa rawmidiは、入力ポート名を「virtual」に指定して仮想rawmidiポートを作成できると宣言します。
だから私はコードをコンパイルし、次のように始めました。
alsarawmidiin仮想
これは機能し、aconnectを使用して他のMIDIポートに接続できます。問題は、オペレーティングシステムによって表示されるMIDIデータがMIDIメッセージの最初のバイトと最後のバイトのみを表示することです。ほとんどのMIDIメッセージは3バイトですが、仮想ドライバを使用する場合は2バイトしか表示されません。
rawmidiデバイス(非仮想デバイス)に直接接続すると機能します。しかし、複数のMIDIデバイスを同じrawmidiポートに接続したいと思います。これはalsa rawmidiライブラリのバグですか?
ベストアンサー1
これはvirtual
プラグインのバグです。 MIDIメッセージより小さいバッファを処理するコードはテストされたことがないようです。
これはalsa-lib 1.1.4で修正される予定です。そのパッケージがディストリビューションに到達する前にリクエストできます。斑点この問題を手動で解決するか、大きなバッファを使用して解決してください。