vignette|Diagramme du protocole RTP-MIDI RTP-MIDI (également connu sous le nom « AppleMIDI ») est un protocole destiné au transport de messages MIDI dans des messages RTP (Real-Time Protocol), sur des réseaux Ethernet et Wi-Fi. Ce protocole est entièrement ouvert et libre (aucune licence nécessaire), et il est compatible à la fois avec les applications de type réseau local (LAN) et réseau étendu (WAN). Comparé à MIDI 1.0, RTP-MIDI apporte de nouvelles fonctionnalités comme la gestion de sessions, la synchronisation temporelle des appareils et la détection des messages perdus (avec régénération automatique des données perdues). RTP-MIDI est compatible avec les applications temps-réel, et supporte la synchronisation à l'échantillon près (« sample accurate ») pour chaque messages MIDI.

Histoire de RTP-MIDI En 2004, John Lazzaro et John Wawrzynek, de l'université UC Berkeley, firent une présentation devant l'AES nommée "An RTP payload for MIDI"An RTP Payload format for MIDI. The 117th Convention of the Audio Engineering Society, October 28-31, 2004, San Francisco, CA.. En 2006, le document a été soumis à l'IETF et a reçu le numéro RFC4695RTP Payload format for MIDI - RFC4695. En parallèle, un autre document fut écrit par Lazzaro et Wawrzynek pour donner les détails à propos de l'implémentation pratique du protocole RTP-MIDI, notamment le mécanisme de journalisationImplementation Guide for RTP MIDI. RFC 4696.

RFC4695 a été rendue obsolète par RFC6295 en 2011 (le protocole entre les deux documents n'a pas été modifié. La seconde version contient juste la correction des erreurs trouvées dans RFC4695)RTP Payload format for MIDI - RFC6295

Le MMA (MIDI Manufacturers Association), qui centralise toutes les normes et recommandations liées aux implémentations ouvertes du système MIDI, a créé une page sur son site destinée à fournir les informations de base liées au protocole RTP-MIDI.. Un site central d'informations (visant les utilisateurs comme les programmeurs) a également été créé afin de répondre plus en détail aux questions liées à RTP-MIDIrtp-midi.com site http://www.rtp-midi.com.

L'implémentation RTP MIDI de Apple (AppleMIDI) Apple Computers a introduit RTP-MIDI directement dans son système d'exploitation Mac OS X v10.4 en 2005. Le pilote RTP-MIDI est accessible à travers l'icône Réseau MIDI dans l'outil Configuration MIDI/Audio (dans le dossier Utilitaires). L'implémentation Apple suit strictement la spécification RFC4695/RFC6295 pour la charge RTP et le système de journalisation, mais utilise un système différent pour la gestion de protocole. Ce protocole est décodé dans Wireshark sous le nom "AppleMIDI".

Apple a également créé une classe spécifique dans leur implémentation mDNS (connue sous le nom "Bonjour"). Les appareils conformes à cette classe apparaissent automatiquement dans le panneau de configuration RTP-MIDI d'Apple, sous la forme d'un répertoire de participants, rendant ainsi le système AppleMIDI entièrement "Plug & Play". Il est toutefois possible d'entrer directement des adresses IP et des numéros de ports dans ce répertoire, afin de connecter des appareils qui ne supportent pas Bonjour.

Apple a également implémenté RTP-MIDI dans iOS4 et les versions suivantes, mais les appareils utilisant ce système d'exploitation ne peuvent pas devenir des initiateurs de sessions. Ils nécessitent donc un appareil ou un logiciel externe implémentant la fonction "Initiateur de session".

Le pilote RTP-MIDI d'Apple crée des ports MIDI virtuels (appelés "Sessions") qui deviennent disponibles comme une paire de port MIDI IN / MIDI OUT standards dans n'importe quel logiciel utilisant CoreMIDI (comme des séquenceurs ou des instruments virtuels), comme n'importe quel autre port MIDI 1.0 ou USB.

Implémentation embarquée de RTP-MIDI En 2006, la société néerlandaise KissBox a présenté les premières implémentations embarquées de RTP-MIDI, dans des produits comme des interfaces MIDI ou LTC.. Un pilote de périphériques propriétaires pour Windows XP avait été développé par la société, mais ce pilote limitait la communication avec leurs appareils (il n'était pas possible de connecter un PC avec un Mac par exemple en utilisant ce pilote). Néanmoins, les appareils eux-mêmes sont totalement conformes à l'implémentation AppleMIDI (utilisation du même protocole de gestion de sessions), et peuvent être utilisés avec les pilotes Apple sous Mac OS-X et rtpMIDI sous Windows. À la suite de la mise à disposition du pilote ouvert rtpMIDI de Tobias Erichsen, le support du pilote propriétaire a été abandonné, afin de développer une plateforme totalement homogène.

KissBox a annoncé en le développement d'un logiciel nommé "RTP-MIDI Editor", destiné à gérer dynamiquement les sessions entre les appareils et logiciels RTP-MIDI d'un réseau depuis un point central. Cette annonce a été suivie du lancement d'une nouvelle CPU (nommée « V3 »), capable de devenir un initiateur de session, permettant d'établir une connexion avec d'autres appareils sans nécessiter la présence d'un ordinateur. Cette possibilité permet notamment d'utiliser la CPU en tant qu'interface MIDI pour les appareils sous iOS qui ne disposent pas de la capacité de devenir des initiateurs de session.

Durant le NAMM 2013, la société iConnectivity (Canada) a présenté une interface de 4 ports MIDI In/Out avec connexion réseau Ethernet basée sur RTP-MIDI NAMM : iConnectivity lance deux interfaces MIDI synthtopia.com, janvier 2013.

Le constructeur américain Mackie propose une famille de tables de mixages dont l'interface utilisateur est réalisée par un iPad.. Ces tables de mixage intègrent une liaison RTP-MIDI sur Ethernet, permettant d'utiliser jusque 10 iPad en réseau Wi-Fi pour la commande à distance.

Pilote RTP-MIDI pour Windows Tobias Erichsen a mis sur le marché en 2010 une version pour Windows du pilote RTP-MIDI d'Apple Pilote RTP-MIDI pour Windows. Ce pilote fonctionne sous Windows XP, Windows Vista, Windows Seven et Windows 8, pour les versions 32 et 64 bits. Ce pilote utilise un panneau de configuration similaire à celui d'Apple, et est totalement compatible avec l'implémentation Apple. Il peut donc être utilisé pour connecter une machine Windows avec un ordinateur Macintosh ou des systèmes RTP-MIDI embarqués (claviers, synthétiseurs, consoles de mixage, etc.) Comme son homologue d'Apple, le pilote Windows crée des ports MIDI virtuels, qui deviennent disponibles pour n'importe quel logiciel fonctionnant sur le PC (l'accès se faisant au travers de la couche logicielle mmsystem, comme pour n'importe quel autre port MIDI sous Windows).

RTP-MIDI sur Linux Les premiers travaux de portage du protocole RTP-MIDI sous Linux ont été réalisés par Nicolas Falquet et Dominique Fober, de l'institut GRAME http://www.grame.fr/ressources/publications/falquet05.pdf Implementing a MIDI stream over RTP http://www.grame.fr/ressources/publications/TR-050622.pdf Recovery journal and evaluation of alternative proposal. Ces travaux visaient initialement la création d'un pilote système OSS. Une implémentation complète (y compris le système de journalisation) de RTP-MIDI est disponible sur la distribution Ubuntu dans la suite logicielle Scenichttp://manpages.ubuntu.com/manpages/oneiric/man1/midistream.1.html#contenttoc0 Page de manuel pour l'objet RTP-MIDI midistream sous Linux Ubuntu. Un daemon RTP-MIDI pour le serveur JACK, appelé jackrtpmidid et spécifiquement compilé pour Linux, est annoncé pour le synthétiseur Open Source Zynthian..

Enfin, il existe un daemon RTP-MIDI disponible en open source sous ARM64, ARMHF et AMD64, appelé rtpmidid https://github.com/davidmoreno/rtpmidid RTP MIDI User Space Driver Daemon for Linux, et il peut donc être installé sur un Raspberry PI.

RTP-MIDI sous Javascript Une implémentation du protocole RTP-MIDI sous Javascript a été mise en ligne sur Github par J.Dachtera en .. Cette implémentation utilise le protocole de session décrit par Apple, et peut agir en tant que "Session initiator" et en tant que "Session listener"

RTP-MIDI sous Java La bibliothèque NMJ. permet une implémentation multiplateformes de RTP-MIDI sous Java.

RTP-MIDI sous WinRT pour applications Windows Store Le projet WinRTP-MIDI Site web du projet open-source WinRTP-MIDI propose une implémentation open-source de la pile de protocole RTP-MIDI sous Windows. Initialement prévue pour être portable sous les différentes versions de Windows, la bibliothèque est maintenant optimisée pour être utilisée sous WinRT en vue de simplifier le développement d'applications pour le Windows Store.

RTP-MIDI dans les groupes « Open Source » (Arduino / MIDIBox / Axoloti) En , deux membres de la communauté MIDIBox ont commencé à travailler sur l'intégration du protocole RTP-MIDI dans une nouvelle version du logiciel MIOS (MIDIBox Operating System), à travers un lien SPI (Serial Peripheral Interconnect) rapide. Afin de simplifier l'intégration, il a été décidé d'utiliser une carte de communication réseau externe chargée de la pile de protocole complète. Une première version "beta" a été diffusée début .. La première version officielle du logiciel a été diffusée durant la première semaine de .

Le protocole utilisé sur le lien SPI entre le processeur MIOS et le processeur réseau est basé sur le même format que les télégrammes MIDI sur USB (utilisation de mots 32 bits contenant un message MIDI complet) et a été proposé comme standard ouvert pour la communication entre processeurs réseaux et carte d'applications MIDI.

RTP-MIDI a été inclus dans la plateforme ouverte Arduino en (sous le nom "AppleMIDI library").. Le module logiciel peut fonctionner sur les cartes Arduino disposant d'une interface Ethernet native, ou à travers le "Shield Ethernet" (un "shield" est une carte d'extension dans la terminologie Arduino). La bibliothèque RTP-MIDI ne nécessite pas un "shield" spécialisé, contrairement aux protocoles propriétaires. Une autre solution pour la communauté Arduino a été présentée dans une note d'application publiée par la société KissBox pour leur module RTP-MIDI OEM. Cette solution est similaire à celle utilisée par la communauté MIDIBox (processeur externe de communication, connecté via un bus SPI rapide). Cette solution permet l'utilisation de cartes Arduino avec une quantité de RAM très limitée, telles que l'Arduino Uno, et permet de libérer complètement le processeur local pour l'utilisateur, car le module externe implémente l'intégralité de la pile de communication et agit comme tampon mémoire de stockage entre le réseau et l'Arduino.

La communication RTP-MIDI est également disponible pour le synthétiseur matériel Axoloti à travers le bloc logiciel "Axoloti-RTP".. La carte Axoloti peut également être équipée d'un coprocesseur de communication RTP-MIDI via le bus SPI disponible sur le connecteur d'extension, selon le même principe que la solution disponible sur les plateformes Arduino et MIDIBox.

Utilisation de RTP-MIDI sans pilote Comme RTP-MIDI est basée sur la pile de protocole standard UDP/IP, n'importe quelle application peut implémenter le protocole directement sans nécessiter un pilote de couche basse. Ces pilotes ne sont en fait nécessaires que lorsque l'on veut faire apparaître les ports MIDI du réseau RTP-MIDI comme des ports MIDI standards dans des logiciels. Des objets (« Externals ») pour Max/MSP et des plugins VST ont été développés suivant cette méthode et sont disponibles depuis le milieu de l'année 2012.

RTP-MIDI sur les réseaux AVB AVB est un ensemble de normes techniques qui définissent les spécifications pour la diffusion de flux audio/vidéo (« streaming ») sur réseau Ethernet avec des latences extrêmement faibles. Les réseaux AVB sont capables de tenir des latences aussi faibles qu'un seul échantillon audio (soit 20 microsecondes pour des flux audio à 48kHz) sur l'ensemble du réseau.