Se connecter
Se connecter

ou
Créer un compte

ou

Sujet Pour tous ceux qui se posent des questions sur RTP-MIDI...

  • 18 réponses
  • 6 participants
  • 7 187 vues
  • 8 followers
1 Pour tous ceux qui se posent des questions sur RTP-MIDI...
RTP-MIDI est intégré dans Mac OS et iOS depuis 2006, un driver Windows est disponible également, et malgré ça, ce protocole totalement ouvert et libre reste méconnu (il faut aussi dire qu'il est connu sous trois noms différents, selon les logiciels et les appareils sur lequel il est installé : RTP-MIDI, AppleMIDI et MIDINetwork... :lol:)

Voici quelques liens vers des pages Web et des documents donnant un maximum d'explications RTP-MIDI:
* La page Wikipedia anglaise, la plus active et la plus détaillée : https://en.wikipedia.org/wiki/RTP_MIDI
* La page Wikipedia française https://fr.wikipedia.org/wiki/RTP_MIDI
* La page du driver RTP-MIDI Windows (gratuit) https://www.tobias-erichsen.de/software/rtpmidi.html
* Tutoriel sur la création et la configuration d'un setup RTP-MIDI autour des appareils iOS http://www.kissbox.nl/downloads/Manuals/RTP-MIDI%20Integration%20guide%20for%20iOS%20devices.pdf
* Tutoriel sur la création et la configuration d'un setup RTP-MIDI autour de machines Mac OS et Windows
http://www.kissbox.nl/downloads/Manuals/RTP-MIDI%20Integration%20guide%20for%20Windows%20and%20MacOS.pdf

Afficher le premier post
11
Salut Didier,
quand tu dis que le nom de son ordi apparait, c'est dans le "répertoire" (côté gauche de la fenêtre) ou dans les "participants" (côté droit)?
Je vais avoir du mal à te donner un diagnostic exact sans être devant la machine, mais je vais essayer de t'aider sur les les pistes à explorer.
Autre question : tu as fait un essai en local d'abord ou tu as fais tout de suite l'essai à travers l'Internet? Je te recommande d'abord de valider ta config en local, et une fois que tu maitrises, de rentrer les paramètres pour la connexion à travers le Web.
Techniquement, rien n'empêche de faire passer RTP-MIDI par Internet. C'est un protocole basé sur IP, et l'Internet est conçu dans cette optique.
Par contre, il faut savoir que certaines fonctions propres à l'implémentation Apple (qui est aussi celle utilisée par le driver rtpMIDI, KissBox, Behringer, iConnect :-D) ne passent pas à travers les routeurs. C'est le cas du système Bonjour (qui est distinct de RTP-MIDI) qui fait apparaître les appareils RTP-MIDI de façon Plug&Play dans le panneau de contrôle. Donc, quand tu passes par Internet, tu vas devoir te passer de Bonjour et entrer les adresses IP à la main dans la liste "Directory" (il faut donc que tu connaisses l'adresse IP de l'ordinateur distant, ton pote ne devrait pas avoir de problème là dessus).
Ensuite, il faut savoir que le protocole RTP-MIDI lui-même fonctionne un peu comme avec un téléphone. Tu ne peux parler qu'après que la communication est établie. Il y a donc un protocole partenaire (qu'on appelle parfois à tort AppleMIDI) qui doit se dérouler avant que RTP-MIDI lui-même entre en jeu.
Vu que tu obtiens le signal "???" dans la session, je pense que ça coince à ce niveau là.
En deux mots, quand tu cliques sur le bouton "Connecter", ton ordi va inviter l'ordinateur distant. Cette invitation se fait en 3 étapes (tu peux avoir plus de détails sur la page Wikipedia de RTP-MIDI, le protocole y est décrit complètement).
Aux deux premières étapes, l'ordinateur qui invite envoie un message sur deux ports UDP. Le premier est celui que tu vois en haut à droite de la fenêtre du panneau de contrôle (généralement, c'est 5004 pour le premier port RTP-MIDI). Quand l'ordinateur distant distant répond sur ce port (appelé port de contrôle), ton ordinateur va faire la même chose sur le port immédiatement suivant (appelé port de données), c'est à dire 5005 si le premier port est 5004.
Ensuite, si l'ordinateur distant a accepté l'invitation sur le port de données, il va y avoir un échange pour synchroniser les horloges MIDI. Cette étape permet au driver de déterminer la latence entre les deux machines (et c'est la valeur qui tu voies s'afficher dans la session à la place du ??? quand tout fonctionne)

Ici, je pense que tu n'atteint pas l'étape de synchronisation (le fait que le nom apparaisse dans la session veut juste dire que tu as lancé l'invitation, pas forcément qu'il y a eu une réponse). C'est pour ça que tu voies toujours "???".

La première chose que je te conseille de vérifier est que tous les ports sont ouverts correctement dans le routeur pour accéder à Internet (là aussi ton pote devrait savoir comment vérifier ça, sinon je peux t'expliquer)
Vérifier également que les firewall sont ouverts sur ces ports (donc minimum 5004 et 5005 sur l'exemple ci-dessus) sur les deux machines (la machine distante peut bloquer les connexions entrantes)
Si tu as un routeur (et c'est quasiment sûr qu'il y en a un, la moindre Box Internet est un routeur...), vérifie aussi qu'elle n'est pas programmée en translateur (c'est utilisé quand tu veux faire un accès distant. Le routeur peut alors modifier les numéros de port des messages qui entrent pour les envoyer vers un autre port... Très fun...icon_facepalm.gif)

Eventuellement, n'hésite pas à m'envoyer une copie d'écran des deux machines (panneau de contrôle RTP-MIDI), ça peut aider à comprendre ce qui coince

Benoit
12
Citation de BebDigitalAudio :
Salut Didier,
quand tu dis que le nom de son ordi apparait, c'est dans le "répertoire" (côté gauche de la fenêtre) ou dans les "participants" (côté droit)?
Benoit


Salut Benoit c'est hyper sympa de vouloir nous aider ! mon pote va rejoindre la conversation et t'expliquer où on coince et ce que l'on a déja fait car c'est lui le pro niveau net :).
car on a suivit tes recommandations, et on coince toujours, on se voit mutuellement dans le soft, mais ici je vois son ordi avec ??? dans latency. et ça marche pas. tous les ports et autre marche, vu qu'on arrive a communiquer, donc y a un truc a piger je pense.
Merci encore !

Mon site (compos, reprise, clips, partitions etc..) : https://didiermartini.com

13
Bonjour Benoit !

Alors voilà un petit résumé de ce que l'on a fait avec Didier :
- redirection sur les boxs des ports entrants UDP 5004 et 5005 vers le PC du réseau local sur lequel on a installé le logiciel rtpMidi
- désactivation des firewalls (de windows et des box le cas échéant)
- récupération de l'ip externe de nos machines
- test des ports 5004 et 5005 depuis l'ip externe avec le logiciel microsoft portqry (sans avoir lancé le soft)

PortQry.exe -n 90.51.xxx.xxx -p udp -r 5004:5005
Querying target system called:
 90.51.xxx.xxx
Attempting to resolve IP address to a name...
IP address resolved to xxxxxx.abo.wanadoo.fr
UDP port 5004 (unknown service): NOT LISTENING
UDP port 5005 (unknown service): NOT LISTENING


il voit les ports en "NOT LISTENING" ce qui est normal.

- lancement du soft rtpMidi, je coche 'enabled' sur la session (port par défaut 5004)
test les ports à nouveau depuis l'ip externe

PortQry.exe -n 90.51.xxx.xxx -p udp -r 5004:5005
Querying target system called:
 90.51.xxx.xxx
Attempting to resolve IP address to a name...
IP address resolved to xxxxxx.abo.wanadoo.fr
UDP port 5004 (unknown service): LISTENING or FILTERED
UDP port 5005 (unknown service): LISTENING or FILTERED


ces tests sont fait des deux cotés (donc pour les 2 pc qui doivent communiquer par internet). les ports UDP 5004 et 5005 sont bien ouvert, en direction des 2 PC cibles, au travers d'internet et des box respectives.

Ajout sur le PC 1 du PC 2 (ajout ip_pc_2:5004 dans "Directory" avec le "+" puis clique sur "Connect")
dans la liste des participants de la session du PC 1, on vois bien le PC 2 connecté (le nom de la machine distante est d'ailleurs récupéré au passage, ce qui montre bien qu'il y a eu communication entre les deux machines).

par contre, cela ne fonctionne toujours pas, la latence n'est pas affichée et on n'a seulement "???"

au niveau réseau, tout semble correct. Nous ne voyons donc pas ce qui cloche...

[ Dernière édition du message le 03/01/2016 à 16:27:09 ]

14
Mouais, c'est clair que vous semblez avoir fait ce qu'il faut. Je vois pas de souci spécial dans votre config et les tests sont corrects.

J'avoue que j'ai un doute sur l'affichage du nom du PC distant. Je ne sais plus si c'est le nom DNS qui est récupéré ou si c'est le nom transmis par la bécane distante quand elle répond à l'invitation. Mais je crois que c'est le nom RTP-MIDI, ce qui veut dire qu'effectivement la machine distante a répondu à l'invitation.

Pour aller plus loin, il faudrait mettre un coup de Wireshark. Je ne sais pas si tu connais (et si tu sais te servir de cet outil), mais c'est l'idéal pour analyser ce qui se passe (Wireshark contient tous les décodeurs pour AppleMIDI et RTP-MIDI).

Donc la question est : connais-tu cette outil?
C'est un soft open source et gratuit, je peux t'aider à le mettre en route pour enregistrer ce qui se passe, on verra tout de suite où ça coince

Benoit
15
Rebonsoir benoit merci beaucoup de ton aide.
bon cet apres midi on a reussi a faire marcher le truc, hoo pas longtemps. mais a marché, la latence a fini par apparaitre. et il m'entendait jouer, on a fait un test, et je l'ai vu jouer ici aussi. puis on refait tout proprement, notament sans utiliser bonjour, car apparement, bonjour ne sert qu'a aider pour une connexion en local, mais quand on connait les IP distante, il y a pas besoin de lui. j'ai cependant eu plusieurs erreurs de bonjour pendant le dernier test sur RTP qui depuis ne marche plus.
donc on est un peu coincé la pour l'instant.

Mon pote reprend le boulot demain, donc je sais pas quand la prochaine fois on pourra tester. mais il est le mieux a piger et comprendre tes directives ou conseil (comme le soft que tu indiques , pas moi :D ). lui est programmeur de metier, moi juste un musicien (audiofanzine efface a a chaque fois que j'écris le mot de quel instrument je joue lol) a la c** :).

donc je le laisse te repondre pour la suite, encore merci !

j'aimerais vraiment utiliser RTP pour des activités de concert, ou de cours a distance ! il y a Internet Midi mais a 70$ la licence, entre le prof, et chaque eleve, c'est du fout*** de g***. comment faire avaler a l'eleve d'investir 70$ alors qu'il a meme pas pris un cours encore. impossible.

Mon site (compos, reprise, clips, partitions etc..) : https://didiermartini.com

[ Dernière édition du message le 03/01/2016 à 20:12:35 ]

16
merci benoît. oui je connais wireshark on va regarder, l'activation des log en mode verbose de rtp-midi fait aussi apparaître les trames échangées mais ça ne nous a pas aidé (par contre on voit bien que le nom de la machine n'est pas un nom DNS mais bien transmis lors de la connexion sur le port de contrôle 5004).

j'ai un doute sur "bonjour", sachant que l'auto discover des peers n'est pas possible via internet et que la conf du routeur a été faite à la main, "bonjour" est il vraiment nécessaire pour faire fonctionner rtp-midi ?

lors de nos différents essais ça a plus ou moins fonctionné (dans un seul sens), on a un peu progressé... on va retenter dés que possible.
17
Je t'en prie. Si tu veux te simplifier la vie, tu peux utiliser le filtre "applemidi" (tu tapes juste ça dans la boite de saisie du filtre en haut à gauche, sous le menu, sans les guillemets bien sur). Fais attention, le filtre est sensible à la casse (donc AppleMIDI ne marche pas, Applemidi non plus, etc... :((( il faut tout taper en minuscules). Ensuite tu fais ENTREE, ça va virer tous les messages qui ne t'intéressent pas.

Tu dois voir la séquence suivante :
INvitation depuis le PC local vers le port 5004
OK depuis le PC distant (ça doit marcher, puisque tu me dis que tu voies bien le nom), depuis un port N
INvitation depuis le PC local vers le port 5005
OK depuis le PC distant, depuis le port N+1

Vérifie bien que tu voies un OK dans les deux réponses (un NO veut dire que le PC distant refuse la connexion, idem si tu ne voies pas de réponse ou une réponse "No listener", dans ce cas, c'est que le port n'est pas ouvert)

Ensuite tu dois voir une série d'échanges de 3 messages CK0, CK1 et CK2 vers le port 5005. Le PC local va lancer un CK0, le PC distant doit répondre par CK1 et le PC local termine en renvoyant un message CK2. La séquence va se répéter une dizaine de fois (c'est avec ça que le driver mesure la latence). Ensuite la séquence se répéte cycliquement entre une fois toutes les 30 secondes et une fois toutes les minutes

Il te reste aussi une solution si tu utilises le driver rtpMIDI. Dans la fenêtre "About", tu as la possibilité de générer un fichier de log. Ce fichier va t'indiquer à quel endroit il détecte une crasse dans le protocole de session (il faut changer le niveau de log, qui est coupé par défaut. Je n'ai pas mon PC sous la main - juste mon Mac - je n'ai plus le mode en tête, c'est verbose ou debug, un truc comme ça). Par contre, surtout n'oublie pas de remettre la valeur par défaut après tes essais, sinon le fichier de log va se remplir et ça peut ralentir le PC

Benoit
18
Bonjour,

Nous avons finalement réussi à faire fonctionner rtpMidi via Internet.

donc installation de rtpMidi avec "bonjour" (parce que sans ça ne fonctionne pas) et configuration du NAT sur les box.
j'ai fait un petit tuto pour configurer une livebox play, c'est très simple mais si ça peut aider quelqu'un d'autre https://xtream.be/blog/wp-content/uploads/2016/01/Faire-fonctionner-rtpMidi-sur-une-Livebox-Play-simple.pdf

encore merci Benoit!
19
Bonjour, j'ai récemment cherché une solution pour faire du midi à distance, mais je n'étais pas tombé sur votre sujet de forum, j'ai trouvé une solution qui pourrait intéressé d'autres personnes. Moi je l'utilise dans le cas d'un podcast audio, mais ça peut aussi servir pour des musiciens... Je ne parle cependant pas des manipulations de ports à faire car chacun peut avoir une manipulation différente à faire selon son opérateur/box.
Je vous pose le lien ici:

Je précise que bien évidement, c'est pas pour faire de la pub ou quoi que ce soit, je n'ai aucun intérêt à le faire la chaîne n'est pas monétisée, je ne gagne rien (on m'à déjà fait un reproche c'est pour cela que je précise) c'est juste pour partager ma solution car j'ai sans doute pas cherché correctement au début et j'ai eu un peu de mal à trouver une solution simple et fonctionnelle.
Si celà ne vous convient pas, dites le, je supprimerai ce post.
Merci.