Près de quarante ans après l’introduction du protocole de musique numérique MIDI, en 2020, le protocole MIDI 2.0 a été annoncé comme une refonte majeure de cette norme largement utilisée par les appareils musicaux. Une grande série de correctifs envoyée aujourd’hui prépare les pilotes audio du noyau Linux pour MIDI 2.0.

MIDI 2.0 permet une résolution plus élevée, une meilleure articulation, le paquet MIDI universel (UMP) pour regrouper plusieurs messages MIDI pour un transport plus facile, moins de gigue et diverses autres nouvelles fonctionnalités et améliorations. Les spécifications MIDI 2.0 sont disponibles auprès de la MIDI Association sur MIDI.org tandis que ce matin, c’est la première fois que les pilotes du noyau Linux sont étendus pour MIDI 2.0.

Le responsable du sous-système audio Linux, Takashi Iwai de SUSE, a envoyé l’ensemble de 36 correctifs–et environ six mille lignes de nouveau code–pour préparer le noyau pour MIDI 2.0 principalement avec l’USB Audio et pilotes MIDI bruts.


Takashi Iwai expliqué dans la série de correctifs :

“Il s’agit d’un ensemble de correctifs (assez important) pour ajouter la prise en charge de la fonctionnalité MIDI 2.0, principalement destinée à Périphériques USB. MIDI 2.0 est une refonte complète du MIDI 1.0 vieux de 40 ans. Contrairement au flux d’octets MIDI 1.0, MIDI 2.0 utilise des paquets en mots de 32 bits pour le protocole Universal MIDI Packet (UMP). Il prend en charge les commandes MIDI 1.0 pour la compatibilité et le commandes MIDI 2.0 étendues pour des résolutions plus élevées et davantage de fonctions.

Pour prendre en charge l’UMP, le jeu de correctifs étend les interfaces ALSA rawmidi et séquenceur existantes, et ajoute la prise en charge USB MIDI 2.0 au pilote audio USB standard.

Le rawmidi pour UMP a un nom de périphérique différent (/dev/snd/umpC*D*) et il lit/écrit les données des paquets UMP dans un endianness CPU natif 32 bits. Pour les anciennes applications MIDI 1.0, l’ancienne interface rawmidi est également fournie.

Par défaut, le pilote audio USB prendra le réglage alternatif pour l’interface MIDI 2.0, et la compatibilité avec MIDI 1.0 est fournie via la couche commune rawmidi. Cependant, l’utilisateur peut également laisser le pilote revenir à l’ancienne interface MIDI 1.0 par une option de module.

Un périphérique rawmidi compatible UMP peut créer le(s) client(s) séquenceur(s) ALSA correspondant(s) pour prendre en charge les connexions UMP Endpoint et UMP Group. En tant que nature du séquenceur ALSA, les connexions arbitraires entre les clients/ports sont autorisées, et le cœur du séquenceur ALSA effectue les conversions automatiques pour les connexions entre un nouveau client séquenceur UMP et un client séquenceur MIDI 1.0 hérité. Il permet à l’application existante d’utiliser des périphériques MIDI 2.0 sans modifications.

Le MIDI-CI, qui est une autre extension majeure du MIDI 2.0, n’est pas couvert par cet ensemble de correctifs. Il serait plutôt implémenté dans l’espace utilisateur.”

Le code MIDI 2.0 pour le noyau Linux est actuellement en cours de révision et si tout se passe bien, il pourrait potentiellement être intégré pour le cycle v6.5 ce été.

Categories: IT Info