我可以說服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 等。由於此問題已在 PC 中修復(與 Atari 不同),因此它代表了一個嚴重的問題。
另一個問題是 MIDI 是電流迴路電路(帶有光耦合器),而 RS232 則採用電壓工作。您必須製作一個外部介面才能相容。
然後,最後一個障礙是軟體:管理 UART 相對容易,並且有很多示例(查找“串行編程方法”)。程式必須管理UART 端,並向軟體提供正確的介面。
大多數現代 MIDI 介面還向使用者程式提供 MIDI 程式碼的時序,因此這是一個額外的問題。
因此,購買便宜的 USB 轉 MIDI 接口要容易得多!