Chargement...
 
Skip to main content

5 - Les serveurs son : JACK, PipeWire, PulseAudio et autres...


Grésillement/craquement lors de l'enregistrement dans Ardour

Bonjour,

J'avais posté dans le forum Ardour, mais on m'a conseillé de poster ici pour ce problème...

Voici les info:
-type de distribution: ubuntuStudio 11.04.
-noyau:Linux tousignantstudio 2.6.38-8-generic-pae #42-Ubuntu SMP Mon Apr 11 05:17:09 UTC 2011 i686 i686 i386 GNU/Linux
-carte son:
carte 0: Intel HDA Intel, périphérique 0: ALC892 Analog ALC892 Analog
Sous-périphériques: 1/1
Sous-périphérique #0: subdevice #0
carte 0: Intel HDA Intel, périphérique 1: ALC892 Digital ALC892 Digital
Sous-périphériques: 1/1
Sous-périphérique #0: subdevice #0
carte 0: Intel HDA Intel, périphérique 3: HDMI 0 HDMI 0
Sous-périphériques: 1/1
Sous-périphérique #0: subdevice #0
carte 1: USB AudioBox USB, périphérique 0: USB Audio USB Audio
Sous-périphériques: 0/1
Sous-périphérique #0: subdevice #0

config jack:
-coché temps réel
-échantillonage/période:256
-fréquence d'échan:48000
-période/tampon:3
-latence:16ms

matériel:
carte Audibox USB
PC (tour): Intel Core I5 650 3.2GHz et 4g de mémoire

Donc lorsque j'utilise ardour ou que j'enregistre dans ardour, il y a des clics et il y a des message d'erreur dans jack, en voici des exemples:
11:47:42.561 Récupération de désynchronisation (XRUN) (1 sauté).
11:47:44.948 Récupération désynchronisation (XRUN) (61).
11:47:46.566 Récupération de désynchronisation (XRUN) (1 sauté).
11:49:22.317 Récupération désynchronisation (XRUN) (63).
11:49:22.642 Récupération de désynchronisation (XRUN) (3 sauté).

Quelqu'un pourrait me dire comment régler mon problème?

merci
France
salut touz

l'avantage de reprendre a zero un autre post, c'est qu'avec l'experience du précédent, tout est beaucoup plus clair ! 😉

en fait, il manque encore ton log de jack, mais avant de l'envoyer je te propose de modifier tes réglages tels que dans ce tuto : premier lancement de jack

a toute !

oliv'
Salut Oliv,

Effectivment, je commence à me retrouver dans tout ce charabia!

Pour ce qui est du log de jack (messages), je les mis dans mon post précédents:
11:47:42.561 Récupération de désynchronisation (XRUN) (1 sauté).
11:47:44.948 Récupération désynchronisation (XRUN) (61).
11:47:46.566 Récupération de désynchronisation (XRUN) (1 sauté).
11:49:22.317 Récupération désynchronisation (XRUN) (63).
11:49:22.642 Récupération de désynchronisation (XRUN) (3 sauté).

est-ce la bonne chose...?

J'ai suivi la tuto premier lancement de jack et je crois avoir configuré correctement le PAM:

toutou@tousignantstudio:~$ gksudo gedit /etc/security/limits.d/audio.conf
toutou@tousignantstudio:~$ ulimit -l -r
max locked memory (kbytes, -l) unlimited
real-time priority (-r) 99

Il y a une section: noyau doté du module "realtime preemption". Est-ce que je dois me lancer là-dedans pour avoir les performance espéré.

merci
Salut,

en effet, la priorité "temps réel" parait active.
Dernier truc, pour le PAM : appartiens-tu bien au groupe "audio" ?

Pour le log de Jack, tu n'as envoyé que la liste des messages de xruns.
Il faudrait avoir les lignes contenant la commande avec ses arguments (genre : /usr/bin/jackd -P75 -dalsa -r48000 -p256 -n2 -D -Chw:1,1 -Phw:1,0 -i2 -o2) avec les lignes qui suivent, jusqu'à ces fameux xruns qui, eux, ne présentent pas d'intérêt pour le diagnostic.

Avant de toucher au noyau, essayons d'abord de faire tourner Jack comme ça...

A+
Oui, j'ai bien priorisé le groupe audio...

Pour le log de jack, si c'est bien dans les messages, je ne le vois pas au début les lignes contenant les commandes désirés.

En faisant quelques tests, je crois que lorsque je met les config suivante dans jack, ça marche sans xrun:
-coché temps réel
-échantillonage/période:512
-fréquence d'échan:48000
-période/tampon:3
-latence:32ms

Par contre, c'est impossible de travailler avec un latence aussi longue. J'espère vraiment que je n'ai pas atteint la performance maximale de ses logiciels car je serai très déçu!

Y'a-t-il des gens qui ont sensiblement le même équipement que moi et qui peuvent faire de l'enregistrement (en passant par Karraka pour la guitare) avec des lentances autour de 10 ms?

merci
Salut,

en effet, 32ms, ça parait énorme...
Tu devrais pouvoir obtenir entre 5 et 10, ce qui serait alors inaudible.
Je suis en train de tester une M-audio Fast Track Pro, qui doit utiliser le même driver snd-usb-audio que toi et avec Ardour/13 pistes/20-25 plugins, Jack supporte une latence de 10,7 ms.

Il faudrait vraiment avoir l'ensemble du message au lancement de Jack. As-tu bien fait défiler toute la fenêtre "message" ? Sinon, lance Jack en ligne de commande, tu auras l'ensemble du log dans le terminal.

La question à propos du groupe "audio" était :
est-ce que ton nom d'utilisateur (toutou, si je comprends bien) est bien rattaché à ce groupe ?
A vérifier, si ce n'est déjà fait, par :
Menu général/système/administration/utilisateurs et groupes.

A+
PS :
je précise, quand même, que j'obtiens ce résultat, avec l'interface USB, en tournant sous Tangostudio (Ubuntu 10.04) avec le noyau "realtime".
Le noyau "generic", avec exactement la même config' machine/carte/Jack semble incapable d'égaler cette latence.
France
coucou touz

comme remarqué par allany, le "log de jack" sera plus fiable, regarde sur la page log de jack ou il est indiqué comment capter le début du log en cas de x-runs (en arretant jack just'apres l'avoir lancé)

++
oliv'
Je précise que j'utilise ubuntustudio...

Voici le log de jack:
09:51:05.907 Baie de brassage désactivée.
09:51:05.920 Réinitialisation des statistiques.
09:51:05.947 Changement des connexions ALSA.
Cannot connect to server socket err = Aucun fichier ou dossier de ce type
Cannot connect to server socket
jack server is not running or cannot be started
09:51:05.952 Changement du graphique des connexions ALSA.
09:51:09.950 Script de démarrage...
09:51:09.951 artsshell -q terminate
Cannot connect to server socket err = Aucun fichier ou dossier de ce type
Cannot connect to server socket
jack server is not running or cannot be started
sh: artsshell: not found
09:51:10.353 Script de démarrage terminé avec statut de sortie=32512.
09:51:10.353 JACK démarre...
09:51:10.353 /usr/bin/jackd -P70 -dalsa -dhw:1 -r48000 -p256 -n3
09:51:10.368 JACK a été démarrer avec le PID=2044.
no message buffer overruns
no message buffer overruns
jackdmp 1.9.7
Copyright 2001-2005 Paul Davis and others.
Copyright 2004-2010 Grame.
jackdmp comes with ABSOLUTELY NO WARRANTY
This is free software, and you are welcome to redistribute it
under certain conditions; see the file COPYING for details
JACK server starting in realtime mode with priority 70
control device hw:1
control device hw:1
audio_reservation_init
Acquire audio card Audio1
creating alsa driver ... hw:1|hw:1|256|3|48000|0|0|nomon|swmeter|-|32bit
control device hw:1
Using ALSA driver USB-Audio running on card 1 - PreSonus Audio AudioBox USB at usb-0000:00:1a.0-1.6, full speed
configuring for 48000Hz, period = 256 frames (5.3 ms), buffer = 3 periods
ALSA: final selected sample format for capture: 24bit little-endian
ALSA: use 3 periods for capture
ALSA: final selected sample format for playback: 24bit little-endian
ALSA: use 3 periods for playback
09:51:12.412 Changement des connexions JACK.
09:51:12.413 Configuration du serveur enregistrée dans « /home/toutou/.jackdrc ».
09:51:12.413 Réinitialisation des statistiques.
09:51:12.420 Client activé.
09:51:12.431 Changement du graphique des connexions JACK.
09:52:06.099 Changement du graphique des connexions ALSA.
09:52:06.265 Changement des connexions ALSA.
09:52:07.865 Changement du graphique des connexions JACK.
09:52:07.897 Changement du graphique des connexions JACK.
09:52:11.780 Changement du graphique des connexions JACK.
09:52:12.214 Changement du graphique des connexions JACK.
09:52:13.207 Changement du graphique des connexions JACK.
09:52:13.276 Changement des connexions JACK.
09:52:13.278 Changement du graphique des connexions JACK.
09:52:13.479 Changement des connexions JACK.

Pour le groude audio, mon nom semble bien attaché à ce groupe.

merci!
Salut !

Ca n'engage que moi et je te conseille d'attendre d'autres avis mais je pense qu'il pourrait y avoir deux soucis.
- il se peut qu'Ubuntustudio 11.04 se prête mal à un usage "basse latence",
- ce n'est pas jackd mais bien jackdmp qui se lance chez toi. Pas certain qu'il soit aussi stable, si ma mémoire est bonne...

A+
France
le log de jack m'a l'air correct
en fait même plus que ca, tout va bien ! il n'y a meme plus de x-run ! c'est fait expres peut etre ? 😊

bon jack/jack2/jackdmp, on s'en fiche, il a plusieurs chose a vérifier ensuite :
augmente la latence (256 ? 512 ? 1024) et relance pour voir
si tu as toujours des x-runs, alors il s'agit peut etre d'un probleme de cable usb foireux, carte wifi à désactiver, ou peut-etre le gestionnaire d'alimentation.
J'ai fait différent essai et voici ce que je remarque avec la config jack:
-coché temps réel
-échantillonage/période:256
-fréquence d'échan:48000
-période/tampon:3
-latence:16ms

Lorsque je fais seulement ouvrir jack et Rakarrac (guitare) j'ai quand même des message de Xrun. Voici mon log de jack:

09:46:30.234 Baie de brassage désactivée.
09:46:30.301 Réinitialisation des statistiques.
09:46:30.308 Changement des connexions ALSA.
Cannot connect to server socket err = Aucun fichier ou dossier de ce type
Cannot connect to server socket
jack server is not running or cannot be started
09:46:35.986 Script de démarrage...
09:46:35.987 artsshell -q terminate
Cannot connect to server socket err = Aucun fichier ou dossier de ce type
Cannot connect to server socket
jack server is not running or cannot be started
sh: artsshell: not found
09:46:36.390 Script de démarrage terminé avec statut de sortie=32512.
09:46:36.390 JACK démarre...
09:46:36.390 /usr/bin/jackd -P70 -dalsa -dhw:1 -r48000 -p256 -n3
09:46:36.392 JACK a été démarrer avec le PID=8048.
no message buffer overruns
no message buffer overruns
jackdmp 1.9.7
Copyright 2001-2005 Paul Davis and others.
Copyright 2004-2010 Grame.
jackdmp comes with ABSOLUTELY NO WARRANTY
This is free software, and you are welcome to redistribute it
under certain conditions; see the file COPYING for details
JACK server starting in realtime mode with priority 70
control device hw:1
control device hw:1
audio_reservation_init
Acquire audio card Audio1
creating alsa driver ... hw:1|hw:1|256|3|48000|0|0|nomon|swmeter|-|32bit
control device hw:1
Using ALSA driver USB-Audio running on card 1 - PreSonus Audio AudioBox USB at usb-0000:00:1a.0-1.6, full speed
configuring for 48000Hz, period = 256 frames (5.3 ms), buffer = 3 periods
ALSA: final selected sample format for capture: 24bit little-endian
ALSA: use 3 periods for capture
ALSA: final selected sample format for playback: 24bit little-endian
ALSA: use 3 periods for playback
09:46:38.557 Changement des connexions JACK.
09:46:38.557 Configuration du serveur enregistrée dans « /home/toutou/.jackdrc ».
09:46:38.558 Réinitialisation des statistiques.
09:46:38.562 Client activé.
09:46:38.572 Changement du graphique des connexions JACK.
09:46:59.692 Changement du graphique des connexions JACK.
09:46:59.742 Changement du graphique des connexions ALSA.
09:46:59.865 Changement des connexions JACK.
09:46:59.865 Changement des connexions ALSA.
09:46:59.876 Changement du graphique des connexions ALSA.
09:47:00.067 Changement des connexions ALSA.
JackEngine::XRun: client = rakarrack was not run: state = 1
09:47:02.358 Récupération désynchronisation (XRUN) (1).
JackPosixMutex::Unlock res = 1
09:47:07.665 Récupération désynchronisation (XRUN) (2).
JackEngine::XRun: client = rakarrack was not run: state = 1
JackPosixMutex::Unlock res = 1
JackAudioDriver::ProcessGraphAsync: Process error
JackEngine::XRun: client = rakarrack was not run: state = 1
JackPosixMutex::Unlock res = 1
09:47:35.603 Récupération désynchronisation (XRUN) (3).
JackPosixMutex::Unlock res = 1
JackEngine::XRun: client = rakarrack was not run: state = 2
JackAudioDriver::ProcessGraphAsync: Process error
09:48:45.094 Récupération désynchronisation (XRUN) (4).
JackEngine::XRun: client = rakarrack was not run: state = 1
JackPosixMutex::Unlock res = 1
09:49:00.289 Récupération désynchronisation (XRUN) (5).
JackEngine::XRun: client = rakarrack was not run: state = 1

Je remarque que les Xrun se font lorsque je résuit ou restaure une fenêtre d'un programme...Donc je ne pense pas que ça vienne de mon câble usb.

J'ai remarqué dans le log de Jack:
JackAudioDriver::ProcessGraphAsync: Process error
Quelqu'un a une idée de ce que ça peut signifier? Peut-être est-ce un lien avec le traitement graphique et que dans ardour, il plus du traitement graphique?
J'ai fait une nouvelle config jack:

Using ALSA driver USB-Audio running on card 1 - PreSonus Audio AudioBox USB at usb-0000:00:1a.0-1.6, full speed
configuring for 48000Hz, period = 512 frames (10.7 ms), buffer = 2 periods

ÇA marche vraiment mieux car j'ai enregistré la guitare en passant dans ardour et je n'ai eu que 1 message de Xrun:

JackEngine::XRun: client = rakarrack was not run: state = 2
JackPosixMutex::Unlock res = 1
10:13:06.007 Récupération désynchronisation (XRUN) (1).
JackPosixMutex::Unlock res = 1
JackPosixMutex::Unlock res = 1
JackPosixMutex::Unlock res = 1
10:13:07.166 Récupération de désynchronisation (XRUN) (1 sauté).

Donc dans l'ensemble c'est bien mais la latence reste trop grande pour mon utilisation (21.3ms).

Des solutions?

Un gros merci de votre aide! C'est très apprécié... Et en plus je suis content de mieux comprendre toute cette structure!
France
21 ms c'est trop de latence pour enregistrer ?
tu connais la latence de ta carte son ? (jdelay)
si tu y tient vraiment, je pense que le Le noyau Temps-Réel est la soluce pour toi.

oliv'
J'ai fait le test de latence (jdelay) (L=2170,285/48000).

J'obtiens donc 45ms

Est-ce normal?

Touz
France
oui c'est normal

ca veux dire que la latence totale est 62ms, tu pense vraiment que 52ms (avec un Le noyau Temps-Réel peut-etre) va changer grand chose ? 😎