Linux で UART (シリアル ポート) を MIDI デバイスとして使用できますか?

Linux で UART (シリアル ポート) を MIDI デバイスとして使用できますか?

Linux (カーネル/ALSA/Jack) に任意の UART またはシリアル ポート (通常/dev/ttyS*は または/dev/ttyUSB*または/dev/ttyACM*) を使用して MIDI メッセージを出力するようにさせることはできますか?

これは、たとえば Amiga で MIDI が実行された方法です。電気側が正しく設定され、UART が MIDI レートにクロックされれば、原理的には送信が機能するはずです。

私が知りたいのは、これを実行するためのソフトウェア オプション、構成、ドライバー、またはハックが用意されているかどうかです。

答え1

使用できますティミディuart と alsa の間をブリッジします。

RaspberryPi プロジェクトでこれを動作させることができるはずですが、自分でコンパイルする必要があります。

答え2

それは非常に難しいです。シリアル ポートは特定のボーレートでプログラムできますが、通常は 300 ボー (またはそれくらい) から 115200 ボー (最近のマシンでは 230400 ボー、460800 ボー) までの範囲です。ただし、ほとんどすべての速度は 300、600、1200、2400、4800 などの倍数です。ただし、MIDI は 31250 ボーで、これは「調和」関係がないためプログラムが困難です。これは PC で固定されているため (Atari とは異なります)、深刻な問題となります。

もう 1 つの問題は、MIDI は電流ループ回路 (オプトカプラを使用) であるのに対し、RS232 は電圧で動作することです。互換性を持たせるには、外部インターフェイスを作成する必要があります。

そして、最後のハードルはソフトウェアです。UART の管理は比較的簡単で、例も豊富にあります (「シリアル プログラミング ハウツー」を参照してください)。ここでの問題は、おそらく、MIDI を管理する音楽プログラムに何らかの標準インターフェイスを提供したいということのようです。そのため、ドライバーは UART 側を管理し、ソフトウェアに適切なインターフェイスを提供する必要があります。

最近のほとんどの MIDI インターフェイスは、MIDI コードによるタイミングもユーザー プログラムに提示するため、これは追加の問題となります。

したがって、安価な USB-MIDI インターフェースを購入する方がはるかに簡単です。

関連情報