web-dev-qa-db-fra.com

Peut-il être préjudiciable d’accorder la priorité temps réel à jackd?

Je suis apte à installer Ardour, un programme de mixage sonore, juste pour l'essayer. L'installation d'Ardour installe également JACK, une dépendance. Dans le cadre du script d’installation de JACK, la boîte de dialogue suivante s’ouvre:

Si vous souhaitez exécuter jackd avec des priorités en temps réel, l'utilisateur qui démarre jackd a besoin d'autorisations en temps réel. Acceptez cette option pour créer le fichier /etc/security/limits.d/audio.conf, en accordant des privilèges en temps réel et des privilèges de mémorisation au groupe audio.

L'exécution de jackd avec une priorité en temps réel réduit la latence, mais peut conduire à un blocage complet du système en demandant toute la mémoire système physique disponible, ce qui est inacceptable dans les environnements multi-utilisateurs.

Activer la priorité du processus en temps réel?

J'installe sur mon ordinateur portable, qui n'a jamais plusieurs utilisateurs simultanés. J'ai toujours des inquiétudes: JACK est-il quelque chose qui sera utilisé par le système lui-même pour jouer n'importe quel son (c'est-à-dire qu'il remplacera ALSA)? Si tel est le cas, cela signifie-t-il que si j'active la priorité temps réel pour JACK, je courrai un léger risque de geler la machine chaque fois qu'un son est joué? Ou est-ce que Ardour ne va utiliser JACK que pour l'instant (jusqu'à ce que j'installe un autre programme dépendant de JACK)?

7
SuperElectric

Jackd ne remplace normalement pas ALSA. Jackd utilise généralement ALSA pour fournir sa sortie. Jackd propose un réseau de routage/routage audio à faible latence pouvant être utilisé par d’autres logiciels. Seul le logiciel conçu pour utiliser Jackd utilisera JackD. Jackd ne doit être exécuté que si vous utilisez un logiciel qui l’utilise (par exemple Ardour, Rosegarden, Jack-rack). Lorsque vous n'exécutez pas de programme utilisant jackd, vous n'avez pas besoin de l'exécuter.

Le meilleur programme que j'ai trouvé pour contrôler jackd est qjackctl, qui peut être installé via le Centre logiciel Ubuntu en tant que Jack Control. Il permet de démarrer/arrêter jackd, de configurer son fonctionnement et d’établir des connexions.

Pour obtenir le temps de latence le plus bas possible, jackd souhaite utiliser des threads prioritaires en temps réel. Activer le traitement en temps réel de jackd est une bonne chose à faire et ne devrait pas nuire à votre système. (La machine sur laquelle je tape est en ce moment activée depuis 4 ans sous 2 distributions Linux différentes et 2 versions matérielles différentes sans aucun blocage.)

BTW, une fois que vous commencez à utiliser certaines des fonctionnalités de jackd, il devient assez addictif. En démarrant différents racks d’effets (instances jack-rack) et en établissant les connexions, je peux prendre un enregistrement stéréo et créer une sortie 4.2 en temps réel où j’ai différents délais reverb/delay pour les haut-parleurs arrière, un centre personnalisé mixage de canaux et une sortie subwoofer. (J'essaie toujours de trouver un bon doubleur d'octave pour cela.)

13
jwernerny

Une approche du problème de verrouillage en temps réel consiste simplement à ouvrir un terminal bash avec une priorité supérieure à jackd. Utilisez votre terminal haute priorité pour tuer jackd si vous constatez des signes de monopage du processeur en temps réel. Je l'ai utilisé pour éviter les plantages totaux avant d'apprendre l'art du réglage fin de l'irq pour l'audio pro. Courbe d'apprentissage abrupte, de grandes récompenses!

1
Josh Sewell