Se connecter
Se connecter

ou
Créer un compte

ou
FR
EN

Latence Midi avec hardware

  • 22 réponses
  • 6 participants
  • 7 404 vues
  • 8 followers
Sujet de la discussion Latence Midi avec hardware
Bonjour,
je remarque que depuis quelques temps la latence des notes midi que j'envoie à mes synthés hardware devient gênante.
Pour faire un point sur mon setup : je suis à 256 samples, 0ms de latence audio.
Tout est synchro en midi, en terme de séquenceurs externes tout se lance à temps car j'ai fait les réglages nécéssaires sur les retards de midi clock.
Je parle donc bien uniquement des notes midi que je transmet à mes synthés externes, malgré le 0ms de latence audio, il y a toujours un retard, entre la note jouée en midi et la réaction du synthé (environ 20ms, ce qui est gênant). J'ai bien essayé les retards de pistes, mais ça ne marche pas vraiment car ça décale tout le reste y compris l'audio, et souvent la latence varie, il faut donc tout réajuster à chaque fois.
Curieusement quand j'enregistre du midi d'une piste à l'autre dans Ableton il n'y a aucun retard. Bien sûr tout ca se passe avec moins de 15% de CPU utilisé, donc je ne pense pas que mon ordinateur soit en cause.

Quelqu'un aurait-il une idée de ce qu'il faut faire pour ne plus avoir de latence midi (en terme de notes) sur Ableton?

Merci

Fail we may, sail we must!

2
hello
il y a pour moi un problème avec ta carte son qui annonce une latence de de 0ms ce qui est juste matériellement impossible
en gros elle te dis que faire les calculs ne lui prend pas de temps (0 ms) alors qu'il est évident qu'une conversion prend du temps, même pas beaucoup mais un peu quand même…

essaie en ne branchant que le syntrhé qui crée du retard et ajoute ds éléments au fur et à mesure pour voir ce qui déclenche le problème.

le rater de piste est une bonne solution puisqu'il te permet de décaler la piste qui est en retard histoire que toutes les autres l'attendent (les 20ms de retard peuvent ainsi être récupérés ainsi)

le coup de la latence qui varie semble indiquer un problème hardware au niveau du synthé parce que dans Live elle ne bouge pas en général. Elle peut être trop longue mais varier non !
3
Citation :
en gros elle te dis que faire les calculs ne lui prend pas de temps (0 ms) alors qu'il est évident qu'une conversion prend du temps, même pas beaucoup mais un peu quand même…

La latence, ça n'est pas la conversion. la conversion en elle même, c'est une mesure, pas un calcul, et elle se fait à la vitesse définie par le sample rate, plus quelques bricoles pour reclocker tout ça, autant dire peanuts (sous la ms).
D'autant qu'ici on parle de sortie midi, et la non plus, rien à calculer (en fait on peut cracher du midi sans interfaces audio, dieu merci, parce que les interfaces audio sont apparues bien apres les interfaces midi). Les tests de base, c'est d'installer midi-ox et de faire des boucles midi (boucle hardware si tu peux, boucle via midiyoke ou un autre cable virtuel, tu peux aussi essayer de repiquer une boucle midi via midiyoke directement dans live)) pour voir a quel endroit ça se décale, si c'est avant de quitter l'ordi, apres avoir quitté l'ordi, ou au niveau de ton synthé hardware. Une fois qu'on saura d'ou ça vient on pourra y réflechir.
4
À 256 samples tu dois être plutôt entre 10 et 20ms de latence avec les entrées et sorties audio ce qui devient perceptible au jeu.
Peut-être que 0ms c’est la compensation de la latence d’E/S qui permet que les sources externes comme tes synthés soient calés...
5
Bonjour, merci pour vos réponses,

En ce qui concerne l'audio j'avais bien 0ms en latence générale quand je vous ai écris, mais je n'ai jamais retrouvé ce résultat, bizarre, je suis donc à 0,26ms de latence générale, à 256 samples ableton-live-9-suite-2571613.png

Pour ce qui concerne le midi, j'ai bien suivi le conseil de ne brancher qu'un seul synthé, avec un seul port midi activé, la latence de notes reste la même que quand tout est activé (plusieurs hubs midi/usb et interfaces audio et midi).
J'ai cependant remarqué que selon les machines sollicitées la latence pouvait légèrement varier, par exemple certaines ont besoin d'etre recalées de 21ms, d'autres 24ms etc.. Mis à part ces différences, et après avoir effectué d'autres tests la latence semble s'être stabilisée sur des valeurs qui sont récurrentes pour chaque synthé.

Pour le retard de piste, ainsi que le hardware latency sur le module ableton external instrument, c'est une solution envisageable pour de l'enregistrement. Mais étant donné que je réalise des lives avec ma config, je voudrais que mes synthés soient calés aussi en real time, donc avec le monitor de piste sur Auto ou In, et dans ce cas précis, le retard de piste et le hardware latency n'ont pas d'effet sur ce que l'on entend en direct nous sommes bien d'accord?

Pour MIDI-OX et MIDI Yoke, je suis prêt à faire ces tests, mais je suis sur Mac, du coup j'ai cru comprendre sur leur site qu'il n'y avait qu'une version Windows, existe t-il un outil de test équivalent sur Mac?

Sinon, quelqu'un aurait t-il une idée plus précise d'ou pourrait venir ce retard?

Merci beaucoup.



Fail we may, sail we must!

6
Petite notification, après avoir fait de nouveaux tests, le temps de latence dépend de l'interface que je choisi et non pas des machines utilisées, par exemple, pour le même synthé, si je sors le midi de mon hub usb midi, la latence sera de 24ms, si j'utilise la sortie midi mon interface audio ce sera 17ms. J'imagine donc que le problème est en interne avec mon ordinateur ou mes interfaces.

Fail we may, sail we must!

7
Pourquoi compenses tu la latence?
8
d'après moi ça permettait d'avoir moins de latence justement, mais la je viens de faire un test avec la compensation à 0, ca ne change rien.

Fail we may, sail we must!

9
Citation :
La latence, ça n'est pas la conversion. la conversion en elle même, c'est une mesure, pas un calcul,

La latence est induite par 1 ou 2 conversions obligatoire selon le cas : la conversion d'un signale analogique vers un signal numérique en entrée du périphérique audio (si quelque chose entre) et conversion du numérique en analogique quand quelque chose son sort de la carte son.(que se soit de l'audio généré par du midi ou par des fichiers audio peut importe) donc elle ne peut pas être de zéro. car une conversion ça prend du temps.

A ne pas confondre avec la compensation d'erreur du pilote (de la carte son) :
10
Suite et fin :

Ensuite il y a la latence induite par les périphériques externes qui doivent eux aussi transformer du numérique en analogique (dans le cas du synthé) après avoir reçu les notes midi il faut qu'il en fasse de l'audio et là aussi ça prend du temps (parfois trop) : tu peux calculer ce temps en t'inspirant du tutoriel de réglage de la compensation d'erreur du driver (pilote) (une piste midi qui envois une note au Synthé, une piste audio qui enregistre l'audio en retour du Synthé et après t recale l'audio et tu vois de combien tu as du recaler : c'est ce retard que tu peux compenser sur la piste avec le paramètre "track Delay" (du coup Live va faire en sorte que toutes les autres pistes attendent le retour de l'audio du Synthé pour que tou soit Synchro) tu peux aussi faire se réglage dans : hardware latency sur le module ableton external instrument

[ Dernière édition du message le 26/03/2019 à 10:34:11 ]

11
Citation :
La latence est induite par 1 ou 2 conversions obligatoire selon le cas : la conversion d'un signale analogique vers un signal numérique en entrée du périphérique audio (si quelque chose entre) et conversion du numérique en analogique quand quelque chose son sort de la carte son.(que se soit de l'audio généré par du midi ou par des fichiers audio peut importe) donc elle ne peut pas être de zéro. car une conversion ça prend du temps.

Non. Une conversion an ou na avec un convertos actuel, c'est moins d'une ms.
La latence (enfin le gros de la latence en ce qui nous concerne), c'est le temps que se réserve un système numérique pour traiter de l'audio par rapport au temps réel (parce que lui ne fonctionne pas en temps réel, sauf très rare exception).
Tu as exactement le même problème avec des signaux numériques en entrée et en sortie.

Dans ta vidéo, tu ne fais que compenser l'un des deux buffers (en l'occurence le buffer de sortie de ton signal d'origine). Le buffer d'entrée est compensé automatiquement par Live (en gros si la latence remontée par le driver est de 12ms, Live pose l'audio sur la timeline 12ms avant. C'est comme ça dans tous les sequenceurs depuis qu'on sait enregistrer de l'audio.). D'ailleurs le fait que tu règles ta compensation PILE sur la valeur remontée par ta carte aurait du te mettre la puce a l'oreille.
ça n'est pas a ça que sert la compensation d'erreur. Elle sert au cas ou la valeur remontée par le driver n'est pas la bonne.
12
oui ok mas en attendant 0ms c'est pas possible
c'est tout ce que je voulais expliquer…
après si truc as des solutions silicon…
13
une vraie latence de 0ms c'est pas possible en effet. Mais un driver qui remonte sa latence de travers, c'est rare mais ça arrive et ça peut foutre la merde. Le probleme c'est surtout que la on ne sait pas vraiment d'ou vient sa latence, sans pouvoir faire de tests.
ça n’empêche que ton explication sur la conversion, et ta video ou tu utilises de travers la compensation d'erreur peuvent induire les utilisateurs en erreur (en fait dans ta video, si on suit tes conseils, on décale l'audio entrant d'un buffer vers l’arrière, et du coup l'enregistrement n'est plus synchro avec le playback si on enregistre un musicien. Si chaque prise successive est décalée de quelques ms, bonjour l'ambiance...)
Sous macos avec le midi d'origine on sait creer des ports virtuels non? et il existe des midi monitors aussi, et il y a aussi l'otpion de cabler le in dans le out physiquement. Y'a plus qu'a, apres on en rediscutera.

[ Dernière édition du message le 27/03/2019 à 08:22:52 ]

14
Citation :
Mais un driver qui remonte sa latence de travers, c'est rare mais ça arrive et ça peut foutre la merde.

perso à part les driver RME je n'en connais que des comme ça !
15
Ecoute j'ai eu du M-Audio (les grosses delta pci), du roland, et la du focusrite, sous winos, je n'ai jamais rencontré ce cas de figure quand je boucle comme tu le fais dans la vidéo, j'obtiens invariablement une fois le buffer de décalage à quelques samples près (rarement au dela de la ms aussi même si ça arrive). Y'avait de tres bons articles la dessus sur la fin des années 2000 sur sound on sound. On a toujours a dispo l'uber tableau de dawbench d'ailleurs:
https://dawbench.com/images/dawbench-llp-08-17-1b.jpg

C'est ce décalage là qu'on compense avec le reglage de la video, mais pas de la manière dont tu t'y prends( parce que ce faisant du décales tout d'un buffer complet vers l'arriere, voir mon explication dans le post au dessus).

M'enfin on est largement hors sujet.
16
Citation :
C'est ce décalage là qu'on compense avec le reglage de la video, mais pas de la manière dont tu t'y prends


étonnant ce que tu dis ! parce que la méthode que j'explique est celle données par Ableton
https://help.ableton.com/hc/en-us/articles/115000234830-Driver-Error-Compensation-FAQ
17
Dans leur faq c'est encore moins clair, ils utilisent une piste midi et on ne sait même pas si c'est un soft ou une machine externe qui joue l'audio. Il faudrait que je regarde dans le détail comment Live compense les remontées du drivers, j'avoue ne plus m'emmerder avec ce genre de choses depuis la fin des années 2000. En tout cas compenser 3ms avec une carte moderne, ça me parait complètement hallucinant (sauf avec des cartes génériques) comme t'as pu le voir dans le tableau de dawbench (la mesure RTL c'est la latence i+o + justement la marge d'erreur. Y'a peu d'interface ou ça tombe aussi loin).
18
chsuis en train de regarder c'est vraiment particulier, t'as des scenarios différents selon que la piste est en monitoring ou pas, visiblement aussi entre triggé ou pas, le midi est calé sur l'audio sortant (en l'occurence plutot l'inverse), c'est assez etoonnant. ça explique aussi peut etre pourquoi depuis le debut de live les pistes sont monophonique/monosource (je veux dire qu'une piste ne joue qu'un seul echantillon, il peut bien sur etre stereo).
19
Merci pour vos réponses, du coup, si j'ai bien compris c'est difficile pour vous de me dire d'où ça vient?

Pour rajouter des infos qui pourraient peut être vous aider, mon interface audio (uniquement audio du coup) est un convertisseur Mytek 8x192 ADDA, j'ai aussi une motu traveller que j'utilise pour le midi (audio + midi en live mais c'est une autre config, qui néanmoins subit les mêmes soucis de latence midi), j'ai aussi une motu micro express et un hub miditech 4x4 pour d'autres sorties midi.
J'utilise bien sur l'option proposée par le logiciel "latence réduite à l'écoute", qui ne semble pas fonctionner des masses étant donné mes problèmes.

Pour ce qui est de la compensation de latence, je n'ai pas compris vos réponses, est-il nécessaire qu'elle soit la plus proche de 0 ou elle peut rester telle quelle (c'est à dire sans compensation)? Sachant que mon objectif est de pouvoir travailler en entendant que ce que je fait est "calé" au mieux sur la grille.

Merci beaucoup pour votre aide

Fail we may, sail we must!

20
la compensation c'est mieux calé au plus pres de 0 mais c'est seulement si tu as un decalage entre la valeur reportée et la valeur reelle. Par contre ça ne concerne que ce que tu enregistres, j'ai testé, tout ce qui arrive "live", monitoré, donc, n'est pas compensé (ce qui est normal cela dit, l'inverse est impossible...)
21
Citation :
il y a toujours un retard, entre la note jouée en midi et la réaction du synthé (environ 20ms, ce qui est gênant)


pour en revenir à ton problème… s j'ai bien compris
tu utilise "external instrument" sur une piste midi dans lequel des clips sont joués
les notes partent dans le Synthé depuis cette piste qui reçoitensuite l'audio produit par le synthé

quelques généralités utiles :

la compensation d'erreur du pilote ne sert (comme son nom l'indique) qu'à compenser l'éventuel erreur donnée par le driver de la carte audio (moins de 1ms en général). Ce réglage n'est important que dans les situations d'enregistrement de sources externes uniquement si le driver donne des valeurs fausses ! Rien à voir avec ton soucis (à mon avis)

Dans ton cas il y a deux problèmes possibles qui nécessitent deux solutions différentes :

Soit la taille de mémoire tampon est trop haute dans les préférence AUDIO et dans ce cas effectivement les notes jouées sont envoyées trop longtemps après le jeu…

Soit ton synthé met du temps à renvoyer l'audio : le réglage se fait dans l'externat instrument : Hardware latency !
22
J'espère que ce problème a trouvé une solution pour vous, dans Ableton, et si c'est le cas, je veux bien la connaître. Dans le même cas (jeu live de synthés passant en MIDI par Ableton), je n'ai trouvé comme solution de lancer un deuxième programme qui ne s'occupe que du MIDI live. C'est Reaper qui fait cette tâche, avec , bien entendu une latence réglée sur le minimum vital. Vu qu'il n'y a pas d'audio, il n'y a pas de risque de craquement apparemment. Je dis bien apparemment, car étonnamment, en utilisant le même pilote sur les deux programmes, il arrive que le buffer de l'un agisse sur la stabilité de l'autre. Donc finalement, j'utilise le pilote de la carte interne pour Reaper, et celui de ma carte son pour Ableton. Dernière précision : pour piloter juste le MIDI des synthés, avec des keymaps, des processeurs MIDI, j'avais tout ce qu'il me fallait dans Reaper, en bien mieux que dans Ableton... surtout grâce à Realearn, mais c'était avant l'arrivée de la version 12, qui rattrape un tout petit peu l'immense retard.
23
Merci pour la solution: EXTERNAL INSTRUMENT!
j'ai galéré des années et je savais pas que ce foutu module existait!