Analyse du jitter MIDI
- 32 réponses
- 8 participants
- 2 761 vues
- 10 followers
alex.d.
5534
Je poste, donc je suis
Membre depuis 9 ans
Sujet de la discussion Posté le 04/10/2016 à 00:51:29Analyse du jitter MIDI
Comme le sujet du jitter MIDI, en particulier en USB, déchaîne les passions ces jours-ci (entre le thread sur l'interface Alyseum et le sondage sur les interfaces), je me suis dit qu'il était temps d'avoir des faits et pas seulement des on-dit ou des idées préconçues.
J'utilise pour ces tests le MIDI Latency Analyser
https://expressiveelectronicsformusicians.com/our-products/midi-latency-analyser
Deux versions sont possible : l'une avec un câble spécial qui envoie le 5V du MIDI directement dans l'entrée audio permet d'analyser la latence directe du signal MIDI ; l'autre en envoyant le signal MIDI dans un synthé, puis analyse du fichier son obtenu pour évaluer la régularité du pattern. N'ayant pas le câble spécial, c'est cette version que j'ai utilisée. J'ai créé un fichier MIDI, tempo 120, notes à la croche, que je joue dans différents synthés. Si vous voulez faire tourner le test, astuce : le fichier audio doit être mono et obligatoirement en 96k. Ce n'est que du post-processing d'un fichier audio, rien ne tourne en temps-réel, ça tourne très bien dans wine pour les linuxiens (dont je fait partie).
Tous mes tests ont été réalisés sur mon vénérable Core i7 920, sous Debian sid, avec les paquets audio kxstudio, noyau Linux 4.6, séquenceur qtractor 0.7.8. J'utilise pour ce test une interface Miditech Midiface 4x4, qui tourne en USB 1.1 à 12Mb/s connectée à un Nordlead 2, un Moog Minitaur connecté en USB (un synthé qui inclut une connection USB-MIDI, c'est aussi une interface MIDI après tout), et un DSI Prophet 12 en USB. J'ai refait chaque mesure 3 fois pour vérifier la reproductibilité de la chose.
Je n'ai pas encore fait de capture d'écran des graphes de distribution, je donne juste le jitter moyen tel que mesuré par MLA :
-- interface USB Miditech Midiface 4x4, vers le Nordlead 2 : 0.546ms.
-- Prophet 12 USB : 0.901ms
-- Moog Minitaur : 0.608ms
Ces résultats, bien que pas parfaits, semblent quand même plutôt bon par rapport à ce qu'on trouve comme résultats publiés. On remarque également que l'interface MIDI-USB intégrée aux synthés n'est pas meilleure qu'une interface USB-MIDI d'entrée de gamme.
Pour comparaison, j'ai aussi soumis à MLA un enregistrement réalisé avec l'arpégiateur interne des synthés (sans synchro MIDI, entièrement standalone), pour avoir une base de comparaison :
-- arpégiateur du Nordlead 2 : 1.148ms
-- arpégiateur du Prophet 12 : 0.294ms
On remarque que les liaisons USB-MIDI, bien qu'imparfaites, ont un meilleur jitter que l'arpégiateur interne du Nordlead 2. C'est donc plutôt bon. Du coup, je me suis dit que le jitter mesuré pour la Miditech+NL2 venait peut-être plus du NL2 que de l'interface Miditech. Pour la blague, je soumet à l'épreuve mon vieil arrangeur Roland E16 :
-- interface USB Miditech Midiface 4x4, vers Roland E16 : 0.035ms
Non, ce n'est pas une faute de frappe. On est bien un ordre de grandeur meilleur que le meilleur des résultats précédent.
Comme le trafic sur l'interface MIDI est susceptible d'aggraver le jitter, je fais un test en bourrinant l'interface en même temps que je fais la mesure (des accords à 5 notes sur les autres ports en même temps que je réalise la mesure), et là on est à 0.594ms (toujours sur le E16), ce qui reste très très honorable.
Bilan : la Miditech s'en sort excellemment bien. L'USB-MIDI a globalement un jitter meilleur ou du même ordre de grandeur que le jitter du synthé lui-même (par son arpégiateur interne, par exemple). Dans la chaîne, le point faible pour le jitter n'est pas forcément l'USB mais ça peut-être le synthé lui-même (cas du Nordlead).
Je n'ai pas encore eu le temps de tout finir. Ce que je peux encore mesurer : le Streichfett (sur son port USB-MIDI), le Blofeld (USB-MIDI encore), en interface MIDI j'ai encore ma vieille SB Live (oui oui, celle de 1999) qui est débranchée mais encore dans mon PC, il faut juste que je trouve le courage de plonger derrière le rack pour la rebrancher. Ça ferait une bonne référence d'interface MIDI "à l'ancienne" sans USB.
N'hésitez pas à réaliser le test et à poster vos résultats.
J'utilise pour ces tests le MIDI Latency Analyser
https://expressiveelectronicsformusicians.com/our-products/midi-latency-analyser
Deux versions sont possible : l'une avec un câble spécial qui envoie le 5V du MIDI directement dans l'entrée audio permet d'analyser la latence directe du signal MIDI ; l'autre en envoyant le signal MIDI dans un synthé, puis analyse du fichier son obtenu pour évaluer la régularité du pattern. N'ayant pas le câble spécial, c'est cette version que j'ai utilisée. J'ai créé un fichier MIDI, tempo 120, notes à la croche, que je joue dans différents synthés. Si vous voulez faire tourner le test, astuce : le fichier audio doit être mono et obligatoirement en 96k. Ce n'est que du post-processing d'un fichier audio, rien ne tourne en temps-réel, ça tourne très bien dans wine pour les linuxiens (dont je fait partie).
Tous mes tests ont été réalisés sur mon vénérable Core i7 920, sous Debian sid, avec les paquets audio kxstudio, noyau Linux 4.6, séquenceur qtractor 0.7.8. J'utilise pour ce test une interface Miditech Midiface 4x4, qui tourne en USB 1.1 à 12Mb/s connectée à un Nordlead 2, un Moog Minitaur connecté en USB (un synthé qui inclut une connection USB-MIDI, c'est aussi une interface MIDI après tout), et un DSI Prophet 12 en USB. J'ai refait chaque mesure 3 fois pour vérifier la reproductibilité de la chose.
Je n'ai pas encore fait de capture d'écran des graphes de distribution, je donne juste le jitter moyen tel que mesuré par MLA :
-- interface USB Miditech Midiface 4x4, vers le Nordlead 2 : 0.546ms.
-- Prophet 12 USB : 0.901ms
-- Moog Minitaur : 0.608ms
Ces résultats, bien que pas parfaits, semblent quand même plutôt bon par rapport à ce qu'on trouve comme résultats publiés. On remarque également que l'interface MIDI-USB intégrée aux synthés n'est pas meilleure qu'une interface USB-MIDI d'entrée de gamme.
Pour comparaison, j'ai aussi soumis à MLA un enregistrement réalisé avec l'arpégiateur interne des synthés (sans synchro MIDI, entièrement standalone), pour avoir une base de comparaison :
-- arpégiateur du Nordlead 2 : 1.148ms
-- arpégiateur du Prophet 12 : 0.294ms
On remarque que les liaisons USB-MIDI, bien qu'imparfaites, ont un meilleur jitter que l'arpégiateur interne du Nordlead 2. C'est donc plutôt bon. Du coup, je me suis dit que le jitter mesuré pour la Miditech+NL2 venait peut-être plus du NL2 que de l'interface Miditech. Pour la blague, je soumet à l'épreuve mon vieil arrangeur Roland E16 :
-- interface USB Miditech Midiface 4x4, vers Roland E16 : 0.035ms
Non, ce n'est pas une faute de frappe. On est bien un ordre de grandeur meilleur que le meilleur des résultats précédent.
Comme le trafic sur l'interface MIDI est susceptible d'aggraver le jitter, je fais un test en bourrinant l'interface en même temps que je fais la mesure (des accords à 5 notes sur les autres ports en même temps que je réalise la mesure), et là on est à 0.594ms (toujours sur le E16), ce qui reste très très honorable.
Bilan : la Miditech s'en sort excellemment bien. L'USB-MIDI a globalement un jitter meilleur ou du même ordre de grandeur que le jitter du synthé lui-même (par son arpégiateur interne, par exemple). Dans la chaîne, le point faible pour le jitter n'est pas forcément l'USB mais ça peut-être le synthé lui-même (cas du Nordlead).
Je n'ai pas encore eu le temps de tout finir. Ce que je peux encore mesurer : le Streichfett (sur son port USB-MIDI), le Blofeld (USB-MIDI encore), en interface MIDI j'ai encore ma vieille SB Live (oui oui, celle de 1999) qui est débranchée mais encore dans mon PC, il faut juste que je trouve le courage de plonger derrière le rack pour la rebrancher. Ça ferait une bonne référence d'interface MIDI "à l'ancienne" sans USB.
N'hésitez pas à réaliser le test et à poster vos résultats.
kicks
582
Posteur·euse AFfolé·e
Membre depuis 19 ans
11 Posté le 08/06/2017 à 22:27:16
J'ai remarqué une étrange chose avec mes interfaces usb-midi (midex, esi, midisport, tc elec sk48) sur cubase7, lorsque j'enregistre la meme piste midi (un kick quantifié) en audio plusieurs fois, la latence et le jitter sont assez constants (~1ms de jitter avec la midex et la mpc1000).
Mais lorsque je relance cubase et que je fais des tests de nouveau, les pistes audio sont jusqu'à 7-8ms plus tôt ou plus tard (c'est aléatoire), le jitter lui reste relativement le meme...
Une idée du problème?
Mais lorsque je relance cubase et que je fais des tests de nouveau, les pistes audio sont jusqu'à 7-8ms plus tôt ou plus tard (c'est aléatoire), le jitter lui reste relativement le meme...
Une idée du problème?
www.soundcloud.com/kicks
[ Dernière édition du message le 08/06/2017 à 22:28:55 ]
alex.d.
5534
Je poste, donc je suis
Membre depuis 9 ans
12 Posté le 08/06/2017 à 22:55:12
Ça ressemble fort à un problème quelque part dans la compensation de latence de Cubase.
kicks
582
Posteur·euse AFfolé·e
Membre depuis 19 ans
13 Posté le 08/06/2017 à 23:14:02
merci!
tu parles de ça?
ou de ça (ajuster à la latence d'enregistrement):
tu parles de ça?
ou de ça (ajuster à la latence d'enregistrement):
www.soundcloud.com/kicks
[ Dernière édition du message le 08/06/2017 à 23:14:31 ]
alex.d.
5534
Je poste, donc je suis
Membre depuis 9 ans
14 Posté le 09/06/2017 à 09:54:27
Oui, quelque chose par là.
Pour que les instruments MIDI soient synchros avec les pistes audio (qui ont une latence due à l'interface audio), normalement Cubase décale certains événements (MIDI plus tard, ou audio plus tôt). Pour ça, il faut avoir une estimation de la latence audio qui dépend du nombre et de la taille des buffers, ainsi que du matériel.
Mais si à chaque fois que tu démarres Cubase, il prend un chiffre différent pour la compensation de latence, il y a un bug quelque part. Normalement, il te dit quelque part quelle est la latence estimée.
Je ne sais pas précisément comment c'est fait dans Cubase, mais il y a une interaction avec l'armement des pistes en enregistrement : si tout est en lecture, il faut envoyer l'audio plus tôt, de façon à ce que l'audio (avec sa latence) et le MIDI soient synchros ; si tu es en enregistrement (bounce MIDI -> audio), alors là il faut envoyer le MIDI plus tôt, de façon à ce que ce soit synchro avec l'audio enregistré une fois passée la latence de capture audio.
Pour que les instruments MIDI soient synchros avec les pistes audio (qui ont une latence due à l'interface audio), normalement Cubase décale certains événements (MIDI plus tard, ou audio plus tôt). Pour ça, il faut avoir une estimation de la latence audio qui dépend du nombre et de la taille des buffers, ainsi que du matériel.
Mais si à chaque fois que tu démarres Cubase, il prend un chiffre différent pour la compensation de latence, il y a un bug quelque part. Normalement, il te dit quelque part quelle est la latence estimée.
Je ne sais pas précisément comment c'est fait dans Cubase, mais il y a une interaction avec l'armement des pistes en enregistrement : si tout est en lecture, il faut envoyer l'audio plus tôt, de façon à ce que l'audio (avec sa latence) et le MIDI soient synchros ; si tu es en enregistrement (bounce MIDI -> audio), alors là il faut envoyer le MIDI plus tôt, de façon à ce que ce soit synchro avec l'audio enregistré une fois passée la latence de capture audio.
kicks
582
Posteur·euse AFfolé·e
Membre depuis 19 ans
15 Posté le 09/06/2017 à 11:40:37
Ok merci j’essaierai de trifouiller la compensation (image du haut), sachant que j'avais deja testé le "décalage à l'enregistrement" (image du bas) et effectivement ça avance ou recule l'enregistrement audio du nombre de sample voulu.
Malheureusement vu que mon problème semble être lié a une latence qui varie... (pourtant ce n'est pas lié a un changement de taille de buffer, et cubase indique toujours la meme latence de 2-3ms).
Alex.d. j'ai vu dans un autre forum que tu parlais de l'alyseum U3-88c, tu as pu le tester sur un win10?
Malheureusement vu que mon problème semble être lié a une latence qui varie... (pourtant ce n'est pas lié a un changement de taille de buffer, et cubase indique toujours la meme latence de 2-3ms).
Alex.d. j'ai vu dans un autre forum que tu parlais de l'alyseum U3-88c, tu as pu le tester sur un win10?
www.soundcloud.com/kicks
DarXyde
2366
AFicionado·a
Membre depuis 21 ans
16 Posté le 09/06/2017 à 12:16:20
Citation de : kicks
Ok merci j’essaierai de trifouiller la compensation (image du haut), sachant que j'avais deja testé le "décalage à l'enregistrement" (image du bas) et effectivement ça avance ou recule l'enregistrement audio du nombre de sample voulu.
Malheureusement vu que mon problème semble être lié a une latence qui varie... (pourtant ce n'est pas lié a un changement de taille de buffer, et cubase indique toujours la meme latence de 2-3ms).
Alex.d. j'ai vu dans un autre forum que tu parlais de l'alyseum U3-88c, tu as pu le tester sur un win10?
Et sur win 7 ?
“(...) Mais quand on est adulte, on tue l'enfant qui est en nous.” Mamoru Oshii
"Moi j'suis pas un bourreau, alors il s'occupe de ma musique et moi de ma vie d'adulte" DarXyde
alex.d.
5534
Je poste, donc je suis
Membre depuis 9 ans
17 Posté le 09/06/2017 à 12:30:27
Citation de kicks :
Alex.d. j'ai vu dans un autre forum que tu parlais de l'alyseum U3-88c, tu as pu le tester sur un win10?
Tu veux dire, dans le fil où le gars d'Alyseum avançait l'argument que son interface était "vachement et nettement supérieure" sans aucun argument technique ni aucune mesure concrète ? Bah non, évidemment je n'ai pas cette interface.
Et d'ailleurs, je n'ai pas de win10 (ni de win7). Uniquement Linux chez moi.
kicks
582
Posteur·euse AFfolé·e
Membre depuis 19 ans
18 Posté le 09/06/2017 à 14:07:50
Ouai je parle de ça ahah.
Si il a des arguments techniques mais je ne suis de loin pas assez calé pour pouvoir émettre un avis la dessus :
https://www.alyseum.com/usb3vsusb2.html
Par contre aucun test ou preuve de ce qu'il avance...
pour ceux, qui comme moi, cherchent desesperement une solution aussi précise que l'audio to midi et aussi pratique que l'usb, on a facile de se faire avoir par des arguments commerciaux... J'ai acheté une Midex8 pour le protocole LTB (le résultat est un peu mieux que mes autre interfaces mais de loin pas révolutionnaire).
ce post gearslutz semble confirmer ton point de vue :
https://www.gearslutz.com/board/electronic-music-instruments-electronic-music-production/1143920-midi-jitter-alyseum-edirol-kenton-usamo.html
Si il a des arguments techniques mais je ne suis de loin pas assez calé pour pouvoir émettre un avis la dessus :
https://www.alyseum.com/usb3vsusb2.html
Par contre aucun test ou preuve de ce qu'il avance...
pour ceux, qui comme moi, cherchent desesperement une solution aussi précise que l'audio to midi et aussi pratique que l'usb, on a facile de se faire avoir par des arguments commerciaux... J'ai acheté une Midex8 pour le protocole LTB (le résultat est un peu mieux que mes autre interfaces mais de loin pas révolutionnaire).
ce post gearslutz semble confirmer ton point de vue :
https://www.gearslutz.com/board/electronic-music-instruments-electronic-music-production/1143920-midi-jitter-alyseum-edirol-kenton-usamo.html
www.soundcloud.com/kicks
[ Dernière édition du message le 09/06/2017 à 14:10:13 ]
falkenmaze
3301
Squatteur·euse d’AF
Membre depuis 11 ans
19 Posté le 09/06/2017 à 14:31:43
x
Hors sujet :
Citation :les meilleurs sont (...)le Blofeld (380€),
Il a beau être dans les meilleurs, il est pas foutu de synchroniser correctement son arpégiateur et ses effets en interne
alex.d.
5534
Je poste, donc je suis
Membre depuis 9 ans
20 Posté le 09/06/2017 à 15:21:53
Citation de kicks :
Par contre aucun test ou preuve de ce qu'il avance...
Voilà, aucun test, juste l'affirmation (vraie) que l'USB3 est plus rapide que l'USB2. Sauf que ça sert à rien.
Le débit MIDI est 1000 fois plus petit que le débit USB 1.1, et encore plus petit que le débit de l'USB 2, à tel point que la plupart des interfaces MIDI du marché sont en USB 1.1, même pas en USB 2. Du coup, pas trop besoin du débit de l'USB3. Mais bon, on ne vas pas refaire le débat de l'autre fil ici
- < Liste des sujets
- Charte