J'essaie d'avoir une configuration où JACK s'interface directement avec ALSA et pulseaudio communique avec JACK. Cette configuration a bien fonctionné (j'ai dû démarrer manuellement les choses à quelques reprises), mais j'ai compris que la configuration du démon Ubuntu et les choses perfectionnées jackd
ont cessé de fonctionner complètement. Je cours 10.10.
Si je lance quelque chose via ALSA, le son ne me pose aucun problème. Cependant, lorsque je lance jack avec temps réel: /usr/bin/jackd -v -R -ch -Z -t2000 -d alsa -P
J'obtiens l'erreur suivante:
jackd watchdog: timeout - killing jackd
Inversement, si je lance sans temps réel: /usr/bin/jackd -v -r -ch -Z -t2000 -d alsa -P
Je reçois:
ALSA: poll time out, polled for 32032138 usecs
DRIVER NT: could not run driver cycle
Jack fonctionnait très bien avant de faire ces changements; même si je n'ai pas de copie exacte de ma configuration d'origine, je me souviens que l'exécution du strict minimum d'options a bien fonctionné. J'ai vu quelques articles dire que le problème est avec la capture ALSA. En fait, j'ai essayé d'activer la capture dans alsamixer
une fois et tout a fonctionné! Au redémarrage, ce succès n'a pas été répété et je n'ai pas pu faire fonctionner Jack depuis. Cela ne devrait pas avoir d'importance car la spécification de -P devrait éviter tout problème de capture.
Bref résumé: je ne peux en aucun cas faire fonctionner jackd
(sauf si je spécifie -d dummy
). Le son fonctionne avec d'autres programmes avec ALSA, mais lorsque j'exécute JACK, le démon ouvre la carte mais expire et meurt. JACK a bien fonctionné avant, mais je ne peux pas comprendre ce qui a changé (ou même où chercher).
Je dois mentionner que je suis en cours d'exécution avec la vitesse du processeur, mais j'utilise HPET pour atténuer cela (et j'ai exécuté jack sans problème avant ). Merci!
EDIT: Il semble que cela pourrait avoir à voir avec les modules nvidia que j'ai chargés; références ici et ici
Les modules nVidia sont connus pour se comporter bizarrement lors de l'interaction avec des processus en temps réel, avec des effets imprévisibles sur d'autres processus du système, mais le problème le plus courant avec le démarrage de JACK n'est pas d'avoir configuré les limites pour permettre à JACK de consommer plus de ressources que les processus normaux. Une solution consiste à installer les paramètres ubuntustudio et à y configurer les limites. L'autre consiste à ajouter votre utilisateur au groupe audio et à créer un fichier /etc/security/limits.d/audio.conf contenant les éléments suivants:
@audio - memlock unlimited
@audio - rtprio 99
Une fois que vous vous déconnectez et vous reconnectez, vous devriez pouvoir exécuter JACK en temps réel (sauf si les pilotes nVidia sont en effet la cause de vos problèmes). Notez que les deux méthodes pour résoudre le problème sont identiques dans la configuration finale, bien que les moyens d'obtenir ce résultat diffèrent légèrement. Des valeurs plus petites pour memlock sont connues pour fonctionner, mais la valeur spécifique requise semble différer selon le matériel sous-jacent, la carte de routage JACK et le nombre de filtres appliqués: si "illimité" vous semble trop élevé, il y en a un nombre de suggestions de valeurs spécifiques sur un certain nombre de forums audio linux, mais je n'ai pas encore vu de guide clair pour calculer la valeur correcte pour un environnement donné.
Soyez conscient que, par défaut, la prise de module audio pulsé ne se connecte à aucun périphérique de sortie: lors du test, assurez-vous de vérifier votre routage audio dans JACK pour vous assurer que la sortie est rendue d'une manière que vous pouvez remarquer (pour travailler sur l'audio ou certains outil de visualisation graphique) avant de penser que cela ne fonctionne pas.