Chargement...
 
Skip to main content

1 - Le matériel et les pilotes ALSA, FFADO, ...


[Résolu] Latence des cartes audio

France
Bonjour

J'ai une carte audio M Audio Audiophile 24/96 et une interface USB behringer ucg102.

Les deux sont bien reconnues par mon système debian. (j'ai essayé plusieurs de distros spécialisées en usb sans ressentir de différences).
La behringer que j'ai acheté pour brancher ma basse produit une latence vraiment trop forte et je n'ai jamais réussi à l'utiliser en pratique.

J'ai fait des mesures de la latence sous jack avec ce patch puredata http://www.pdpatchrepo.info/patches/patch/92 et les résultats sont:
- 8ms de latence pour l'audiophile (27ms sous alsa)
- 97ms de latence pour la behringer avec jack !!


Est-ce que j'ai loupé un truc avec la behringer ?
Est-ce qu'il existe des interfaces usb plus rapides en comment faire un choix ? Existe-t-il un comparatif quelque part ?

Merci pour vos conseils
Fat voir les réglages de jack ... 97ms ça me parait vraiment excessif donc pour moi jack est mal configuré.
Copy to clipboard
cat ~/.config/rncbc.org/QjackCtl.conf

ou bien
Copy to clipboard
cat ~/.jackrc

devrait en dire un peu plus ...
France
Tu ne nous dis rien sur ton noyau, quel est il?
Tu nous retournes ici le résultat de la commande

Copy to clipboard
uname -a

France
Merci pour vos réponses

Copy to clipboard
cat .jackrc /usr/bin/jackd -P70 -dalsa -r44100 -p256 -n2 -D -Chw:CODEC -Phw:M2496

Copy to clipboard
cat ~/.config/rncbc.org/QjackCtl.conf [Splitter] AudioConnectView\sizes=266, 88, 266 MidiConnectView\sizes=34, 20, 34 AlsaConnectView\sizes=34, 20, 34 PatchbayView\sizes=34, 20, 34 InfraClientSplitter\sizes=12, 12 [Geometry] qjackctlMessagesStatusForm\x=1374 qjackctlMessagesStatusForm\y=904 qjackctlMessagesStatusForm\width=542 qjackctlMessagesStatusForm\height=272 qjackctlMessagesStatusForm\visible=false qjackctlSessionForm\x=0 qjackctlSessionForm\y=0 qjackctlSessionForm\width=611 qjackctlSessionForm\height=423 qjackctlSessionForm\visible=false qjackctlConnectionsForm\x=1307 qjackctlConnectionsForm\y=900 qjackctlConnectionsForm\width=611 qjackctlConnectionsForm\height=279 qjackctlConnectionsForm\visible=false qjackctlPatchbayForm\x=1 qjackctlPatchbayForm\y=850 qjackctlPatchbayForm\width=767 qjackctlPatchbayForm\height=329 qjackctlPatchbayForm\visible=false qjackctlMainForm\x=1 qjackctlMainForm\y=1079 qjackctlMainForm\width=484 qjackctlMainForm\height=100 qjackctlMainForm\visible=true [Program] Version=0.3.12 [Presets] DefPreset=(par d\xe9\x66\x61ut) [Options] Singleton=true StartJack=false StopJack=true StartupScript=true StartupScriptShell=pulseaudio -k PostStartupScript=true PostStartupScriptShell=a2j -e ShutdownScript=true ShutdownScriptShell=killall a2jmidid PostShutdownScript=true PostShutdownScriptShell=pulseaudio --start StdoutCapture=true XrunRegex=xrun of at least ([0-9|\\.]+) msecs ActivePatchbay=false ActivePatchbayPath= MessagesLog=false MessagesLogPath=qjackctl.log BezierLines=false TimeDisplay=0 TimeFormat=0 MessagesFont="Liberation Sans,10,-1,5,50,0,0,0,0,0" MessagesLimit=true MessagesLimitLines=1000 DisplayFont1="Liberation Sans,14,-1,5,50,0,0,0,0,0" DisplayFont2="Liberation Sans,11,-1,5,50,0,0,0,0,0" DisplayEffect=false DisplayBlink=true JackClientPortAlias=0 JackClientPortMetadata=false ConnectionsIconSize=0 ConnectionsFont="Liberation Sans,10,-1,5,50,0,0,0,0,0" QueryClose=true KeepOnTop=false SystemTray=false StartMinimized=false DelayedSetup=false ServerConfig=true ServerConfigName=.jackdrc ServerConfigTemp=false QueryShutdown=true AlsaSeqEnabled=true DBusEnabled=false AliasesEnabled=false AliasesEditing=false LeftButtons=true RightButtons=true TransportButtons=true TextLabels=true BaseFontSize=0 [Defaults] PatchbayPath= MessagesStatusTabPage=0 ConnectionsTabPage=0 SessionSaveVersion=true [Settings] Server=jackd ServerName= Realtime=true SoftMode=false Monitor=false Shorts=false NoMemLock=false UnlockMem=false HWMon=false HWMeter=false IgnoreHW=false Priority=70 Frames=256 SampleRate=44100 Periods=2 WordLength=16 Wait=21333 Chan=0 Driver=alsa Interface= Audio=0 Dither=0 Timeout=500 InDevice=hw:CODEC OutDevice=hw:M2496 InChannels=0 OutChannels=0 InLatency=0 OutLatency=0 StartDelay=2 Verbose=false PortMax=256 MidiDriver=aucun ServerSuffix= [History] ServerPrefixComboBox\Item1=jackd ServerPrefixComboBox\Item2=jackdmp ServerPrefixComboBox\Item3=jackstart ServerNameComboBox\Item1=(par d\xe9\x66\x61ut) XrunRegexComboBox\Item1=xrun of at least ([0-9|\\.]+) msecs XrunRegexComboBox\Item2=d\xe9synchronisation (XRUN) d'au moins ([0-9|\\.]+) ms MessagesLogPathComboBox\Item1=qjackctl.log ServerConfigNameComboBox\Item1=.jackdrc StartupScriptShellComboBox\Item1=pulseaudio -k PostStartupScriptShellComboBox\Item1=a2j -e ShutdownScriptShellComboBox\Item1=killall a2jmidid PostShutdownScriptShellComboBox\Item1=pulseaudio --start

enfin uname dit
Copy to clipboard
Linux crunchy8 3.16.0-4-amd64 #1 SMP Debian 3.16.43-2 (2017-04-30) x86_64 GNU/Linux

c'est une bunsenlabs donc debian stable
France
Concernant ton noyau, tu gagnerais sûrement en perf avec un noyau
basse-latence 'conseillé) ou temps-réel (à tes risques et périls).
Avant d'installer un noyaux LL ou RT ce qui reste conseillé de toute façon tu peux déjà essayer un autre truc tout simple.

Règle jack sur une seule carte son par défaut je choisirai la M2496 car hyper stable.
Ton nombre de port max est limité à 256 passe le 1024 dès maintenant.

Ensuite il suffirai de lancer l'interface CODEC en CLI

Copy to clipboard
cat /proc/asound/cards


tu chope la position et tu lance par exemple
Copy to clipboard
alsa_out -dhw:X -p256 -n2 -jCODEC_OUT

Copy to clipboard
alsa_in -dhw:X -p256 -n2 -jCODEC_IN


Attention X est à remplacer par la position de la carte et -pXXX à voir si d'autre valeur comme 512 ou 1024 ne serait pas plus appropriée.

ET tu vois ce que ça donne.
France
oui, mais j' hésite à trop bricoler mon install dont j'ai un besoin constant pour d'autres travaux.

debian strech sort en juin et je vais profiter de l'occasion pour ré-installer un multiboot debian stable et une distro spéciale mao

Dans synaptic aujourd'hui, j'ai
linux-image-4.9.0-0.bpo.3-amd64 mais il impose la mise à jour du paquet linux-base en bpo, donc je ne pourrai pas revenir en arrière facilement.
Sauf que la version linux-image-4.9.0-0.bpo.3-amd64 ne t'apportera rien de plus pour tes besoins actuels il faut d'une part que ce soit la version RT car elle prendra en charge la gestion des IRQs ainsi que le bureau avec full RT et il faudra de toute façon le recompiler car un des paramètres est réglé à 250HZ alors qu'il le faudrait sur 1000HZ mise à jour du grub ect ... .

Sinon plus simple si tu ne veux pas te compliquer la vie c'est d’installer les dépôts LZK dont les détracteurs ne sauraient tarder à t'indiquer le chemin.
France
Avant d'installer des dépôts supplémentaires, tu peux peut-être regarder chez Debian,
il me semble qu'il y a déjà un noyau rt dans les backports.
Par contre, avec ta carte graphique NVidia si je ne fais pas d'erreur,
je me renseignerais avant d'installer un noyau rt sur mon système, car NVidia/noyau rt
n'est pas toujours un mariage sain 😉.

Le mieux serait peut être de compiler le noyau 'low latency' toi-même si tu te sens de le faire.
re:

il faut d'une part que ce soit la version RT car elle prendra en charge la gestion des IRQs ainsi que le bureau avec full RT et il faudra de toute façon le recompiler car un des paramètres est réglé à 250HZ alors qu'il le faudrait sur 1000HZ mise à jour du grub ect ... .


le noyaux rt dans le backport offre un desktop full preemt mais il manque un paramètre qui n'est n'est pas activé celui du Timer frequency et une commande à ajouter à la fin pour la gestion des irqs.

Pour la carte nvidia le plus sage est donc de partir le noyau de base et de le recomplier avec les bonnes instructions donc avec un desktop base latence.
France
utilisateur_anonyme écrit:
Sauf que la version linux-image-4.9.0-0.bpo.3-amd64 ne t'apportera rien de plus pour tes besoins actuels il faut d'une part que ce soit la version RT car elle prendra en charge la gestion des IRQs


Ça n'est plus vrai depuis la version 2.6.39 du noyau, car la partie du patch RT qui permet de traficotter la priorité des threads IRQ a été intégrée dans la branche principale du noyau. On y accède donc en ayant l'option "preemptive kernel" dans la configuration du noyau, et en ajoutant l'option "threadirqs" à la ligne GRUB du noyau (et en installant le paquet du nom de "rtirq-init" sous debian et dérivées).


utilisateur_anonyme écrit:
... il faudra de toute façon le recompiler car un des paramètres est réglé à 250HZ alors qu'il le faudrait sur 1000HZ mise à jour du grub ect ...


Ça, c'est toujours d'actualité.


utilisateur_anonyme écrit:
Sinon plus simple si tu ne veux pas te compliquer la vie c'est d’installer les dépôts LZK dont les détracteurs ne sauraient tarder à t'indiquer le chemin.


"détracteur" ? Pour rappel : "détracteur" - Celui ou celle qui critique, déprécie la valeur de quelqu'un ou quelque chose.
Message modéré suite au non-respect de la charte du site.


Pour en revenir au problème de base - noyau basse latence ou non - cela n'explique pas une telle latence avec son interface usb. À moins justement qu'il y est une souris usb et que dans le cas de la gestion des IRQs sur un noyau de base c'est bien possible que ça pose problème.
France
Note modération : merci de rester sur le sujet du fil, à savoir la latence des cartes sons,
pour le reste, le bac à sable me semble plus approprié.

France
Merci pour tout vos conseils et vos pistes.

Depuis mon dernier post, j'ai relu la page PAM que j'avais lu trop vite, je n'avais pas paramétré le fichier audio.conf mais le fichier limits.conf.
Jack est maintenant réglé avec un nombre de ports de 1024 comme conseille utilisateur_anonyme.

J'ai également fait l'upgrade de debian vers stretch et donc le noyau 4.9.30 pour l'instant.
Concernant le noyau rt c'est sûr que je ne vais pas me lancer dans cette option car ma carte nvidia est très récente et plutôt casse-pieds à installer sur du debian.

Résultat :
- 21ms de latence pour la behringer avec jack avec 128 échantillons/période ou 52ms sur 256 échantillons/période

La carte produit pas mal de xruns et n'est pas vraiment agréable à utiliser.

- 14ms pour la M2496 avec 128 échantillons/période
- 26ms pour la M2496 avec 256 échantillons/période

Du coup, je me dis que cela vaudrait peut-être le coup d'investir dans un meilleure interface..
France
Ces résultats de latence me paraissent étranges. En es-tu 100% sûr et certain ? C'est peut être le patch pure-data que tu utilises qui n'est pas correct. 52ms de latence, ça s'entend grave à l'oreille. Est-ce que tu confirmes que lorsque tu appuies sur une touche de clavier MIDI, le son sort en décalé ? Et aussi, qu'est-ce que te dises les interfaces graphiques QjackCtl et/ou Cadence (ou encore Ardour) à propos des latences théoriques ?

Pas sûr que "ça marche pas, j'achète quelque chose de plus cher" soit le bon réflexe à adopter ici. Encore une fois, ces mesures me paraissent étrange et y'a pas mal de chose à tester avant de vouloir utiliser le pognon pour tout solutionner à mon avis.
France
Oui, j'ai éliminé tous les résultats qui n'étaient pas redondants (plusieurs mesures à plusieurs moments dont toutes sont identiques). puredata doit être manié avec doigté et parfois sa manière de se connecter à jack semble .. fragile.

Le patch est clair. Il envoie un clic et mesure le temps nécessaire pour que le clic réapparaisse en sortie. Si il existe un problème c'est plutôt à mettre sur le compte de puredata 😕

Avec le clavier, les réponses des deux cartes sont bonnes à l'oreille, pas de délai. C'est plutôt mon niveau de clavier qui pêche 🙄

Cette aprem, j'ai tenté sooperlooper, hydrogen et ma basse. J'ai toujours un décalage mais je maîtrise pas trop donc il me faut un peu de temps pour faire le point.
France
OK, tiens nous au jus.
France
@no-structure : des nouvelles ici ?

En relisant ce fil de discussion, je me disais que tu n'avais toujours pas réaliser une vérification de possible conflit de priorité IRQ. Si tu en as la possibilité (et avant de rentrer dans le dépistage à coup de lignes de commande), essaie de brancher ton behringer sur différents ports USB pour voir si tu vois/entends des différences.

Tiens nous au jus.
France
Tu fais bien de me relancer car j'avais un peu lâché l'affaire.

Depuis mon dernier post, j'ai remis ma config à plat. Reformatage du disque, etc.
J'ai installé une manjaro avec un noyau rt et une debian stretch en double boot.

Cette aprem, j'ai fait un petit test ardour/hydrogen et ma basse et ça marche très bien. 😀

Aucune idée de l'origine des latences délirantes, mais ma debian avait été bien bricolée, et upgradée depuis la première install.

Dès que j'ai un peu de temps, je refais des mesures de latence et je les poste.
France
Merci pour le retour. Il semblait bien ici que les latences étaient étranges.

Confirmes nous quand tu auras refait des mesures de latence, c'est intéressant à savoir.
France
Des nouvelles ici @no-structure ?
Page: 1/2  [Suivant]
1  2