在 MIDI 數字音樂協議首次推出近四十年後,2020 年宣布了 MIDI 2.0 協議,作為對這一音樂設備廣泛使用的標準的重大改革。今天發布的一個大補丁系列為 MIDI 2.0 準備了 Linux 內核聲音驅動程序。

MIDI 2.0 允許更高的分辨率、更好的清晰度、用於打包多個 MIDI 消息的通用 MIDI 數據包 (UMP) 以便於傳輸、減少抖動以及各種其他新功能和改進。 MIDI 2.0 規範可從 MIDI 協會獲取,網址為 MIDI.org 而今天早上是第一次看到針對 MIDI 2.0 擴展的 Linux 內核驅動程序。

SUSE 的 Linux 聲音子系統維護者 Takashi Iwai 發布了一套 36 個補丁——以及大約 6000 行新代碼——主要為 MIDI 2.0 內核准備了 USB 音頻和原始 MIDI 驅動程序。


Takashi Iwai 在 補丁系列:

“這是一個(較大的)補丁集,用於添加對 MIDI 2.0 功能的支持,主要針對USB 設備。MIDI 2.0 是對已有 40 年曆史的 MIDI 1.0 的徹底改造。與 MIDI 1.0 字節流不同,MIDI 2.0 使用 32 位字的數據包用於通用 MIDI 數據包 (UMP) 協議。它同時支持 MIDI 1.0 命令以實現兼容性和擴展了 MIDI 2.0 命令以獲得更高的分辨率和更多的功能。

為了支持 UMP,補丁集擴展了現有的 ALSA rawmidi 和音序器接口,並將 USB MIDI 2.0 支持添加到標準 USB 音頻驅動程序。

UMP 的 rawmidi 具有不同的設備名稱 (/dev/snd/umpC*D*),它以 32 位 CPU 原生字節順序讀取/寫入 UMP 數據包數據。對於舊的 MIDI 1.0 應用程序,也提供了舊的 rawmidi 接口。

默認情況下,USB 音頻驅動程序將採用 MIDI 2.0 接口的備用設置,並通過 rawmidi 公共層提供與 MIDI 1.0 的兼容性。但是,用戶也可以通過模塊選項讓驅動程序回落到舊的 MIDI 1.0 界面。

支持 UMP 的 rawmidi 設備可以創建相應的 ALSA 音序器客戶端以支持 UMP 端點和 UMP 組連接。作為 ALSA 音序器的特性,允許客戶端/端口之間的任意連接,並且 ALSA 音序器核心為新的 UMP 音序器客戶端和舊版 MIDI 1.0 音序器客戶端之間的連接執行自動轉換。它允許現有應用程序無需更改即可使用 MIDI 2.0 設備。

MIDI-CI 是 MIDI 2.0 的另一個主要擴展,未包含在此補丁集中。它將在用戶空間中實現。”

Linux 內核的 MIDI 2.0 代碼現在正在審查中,如果一切順利,可能會成為 v6.5 週期的主線夏天。

Categories: IT Info