Quasi quarant’anni dopo la prima introduzione del protocollo di musica digitale MIDI, nel 2020 è stato annunciato il protocollo MIDI 2.0 come un’importante revisione per questo standard ampiamente utilizzato dai dispositivi musicali. Una grande serie di patch inviata oggi prepara i driver audio del kernel Linux per MIDI 2.0.
MIDI 2.0 consente una risoluzione più elevata, una migliore articolazione, l’Universal MIDI Packet (UMP) per impacchettare più messaggi MIDI per un trasporto più semplice, meno jitter e varie altre nuove funzionalità e miglioramenti. Le specifiche MIDI 2.0 sono state rese disponibili dalla MIDI Association all’indirizzo MIDI.org mentre questa mattina è la prima volta che si vedono i driver del kernel di Linux essere estesi per MIDI 2.0.
Il manutentore del sottosistema sonoro di Linux Takashi Iwai di SUSE ha inviato il set di 36 patch–e circa seimila liune di nuovo codice–per preparare il kernel per il MIDI 2.0 principalmente con l’audio USB e driver MIDI grezzi.
Takashi Iwai spiegato in la serie di patch:
“Questo è un set di patch (più ampio) per aggiungere il supporto della funzionalità MIDI 2.0, destinato principalmente a Dispositivi USB. Il MIDI 2.0 è una revisione completa del MIDI 1.0 vecchio di 40 anni. A differenza del flusso di byte MIDI 1.0, il MIDI 2.0 utilizza pacchetti in parole a 32 bit per il protocollo Universal MIDI Packet (UMP). Supporta sia i comandi MIDI 1.0 per la compatibilità che il comandi MIDI 2.0 estesi per risoluzioni più elevate e più funzioni.
Per supportare l’UMP, il set di patch estende le interfacce ALSA rawmidi e sequencer esistenti e aggiunge il supporto USB MIDI 2.0 al driver audio USB standard.
Il rawmidi per UMP ha un nome di dispositivo diverso (/dev/snd/umpC*D*) e legge/scrive i dati dei pacchetti UMP in endianness nativo della CPU a 32 bit. Per le vecchie applicazioni MIDI 1.0, viene fornita anche l’interfaccia legacy rawmidi.
Per impostazione predefinita, il driver audio USB assumerà l’impostazione alternativa per l’interfaccia MIDI 2.0 e la compatibilità con MIDI 1.0 viene fornita tramite il livello comune rawmidi. Tuttavia, l’utente può consentire al driver di tornare alla vecchia interfaccia MIDI 1.0 anche tramite un’opzione del modulo.
Un dispositivo rawmidi compatibile con UMP può creare i corrispondenti client del sequencer ALSA per supportare le connessioni UMP Endpoint e UMP Group. Come natura del sequencer ALSA, sono consentite connessioni arbitrarie tra client/porte e il nucleo del sequencer ALSA esegue le conversioni automatiche per le connessioni tra un nuovo client sequencer UMP e un client sequencer MIDI 1.0 legacy. Consente all’applicazione esistente di utilizzare i dispositivi MIDI 2.0 senza modifiche.
Il MIDI-CI, che è un’altra importante estensione in MIDI 2.0, non è coperto da questo set di patch. Verrebbe implementato piuttosto nello spazio utente.”
Il codice MIDI 2.0 per il kernel Linux è ora in fase di revisione e se tutto va bene potrebbe potenzialmente essere implementato per il ciclo v6.5 questo estate.