Kann es schädlich sein, jackd Echtzeitpriorität zu gewähren?

6

Ich werde Ardour, ein Sound-Mixing-Programm, installieren, nur um es auszuprobieren. Durch die Installation von Ardour wird auch JACK installiert, eine Abhängigkeit. Als Teil des JACK-Installationsskripts erhalte ich den folgenden Dialog:

Wenn Sie jackd mit Echtzeitprioritäten ausführen möchten, benötigt der Benutzer, der jackd startet, Echtzeitberechtigungen. Akzeptieren Sie diese Option, um die Datei /etc/security/limits.d/audio.conf zu erstellen und der Audiogruppe Echtzeitpriorität und Memlock-Berechtigungen zu erteilen.

Das Ausführen von jackd mit Echtzeitpriorität minimiert die Latenz, kann jedoch zu vollständigen Systemabstürzen führen, indem der gesamte verfügbare physische Systemspeicher angefordert wird, was in Mehrbenutzerumgebungen nicht akzeptabel ist.

Echtzeit-Prozesspriorität aktivieren?

Ich installiere auf meinem Laptop, der nie mehrere Benutzer gleichzeitig hat. Ich habe immer noch Bedenken: Wird JACK vom System selbst verwendet, um einen Sound abzuspielen (dh wird es ALSA ersetzen)? Wenn ja, bedeutet dies, dass ich, wenn ich die Echtzeitpriorität für JACK aktiviere, ein leichtes Risiko habe, die Maschine einzufrieren, wenn ein Ton abgespielt wird? Oder wird JACK vorerst nur von Ardour verwendet (bis ich ein anderes JACK-abhängiges Programm installiere)?

SuperElectric
quelle

Antworten:

12

Jackd ersetzt normalerweise nicht ALSA. Jackd verwendet normalerweise ALSA, um die Ausgabe bereitzustellen. Was Jackd bietet, ist ein Audio-Patching / Routing-Netzwerk mit geringer Latenz, das andere Software verwenden kann. Nur Software, die für die Verwendung von Jackd entwickelt wurde, verwendet JackD. Jackd muss nur ausgeführt werden, wenn Sie Software ausführen, die es verwendet ( z. B. Ardour, Rosegarden, Jack-Rack). Wenn Sie kein Programm ausführen, das jackd verwendet, müssen Sie jackd nicht ausführen.

Das beste Programm, das ich zur Steuerung von jackd gefunden habe, ist qjackctl, das über das Ubuntu Software Center als Jack Control installiert werden kann. Es ermöglicht das Starten / Stoppen von jackd, das Konfigurieren der Ausführung und das Einrichten von Verbindungen.

Um die geringstmögliche Latenz zu erzielen, möchte jackd wirklich Threads mit Echtzeitpriorität verwenden. Das Aktivieren der Echtzeitverarbeitung für jackd ist eine gute Sache und sollte Ihr System nicht beschädigen. (Auf der Maschine, auf der ich gerade tippe, ist sie seit 4 Jahren unter 2 verschiedenen Linux-Distributionen und 2 verschiedenen Hardware-Inkarnationen ohne Sperren aktiviert.)

Übrigens, sobald Sie anfangen, einige der Funktionen von jackd zu nutzen, macht es ziemlich süchtig. Durch Starten verschiedener Effekt-Racks (Jack-Rack-Instanzen) und Einrichten der Anschlüsse kann ich eine Stereoaufnahme machen und einen Echtzeit-4.2-Ausgang erstellen, bei dem ich unterschiedliche Verzögerungen für Hall / Verzögerung für die hinteren Lautsprecher habe, ein benutzerdefiniertes Center Kanalmischung und ein Subwoofer-Ausgang. (Ich versuche immer noch, einen guten Oktavverdoppler dafür zu finden.)

jwernerny
quelle
1

Ein Ansatz für das Echtzeit-Sperrproblem besteht darin, einfach ein bashTerminal mit einer höheren Priorität als zu öffnen jackd. Verwenden Sie Ihr Terminal mit hoher Priorität, um zu töten, jackdwenn Sie Anzeichen von CPU-Überlastung in Echtzeit sehen. Ich habe dies verwendet, um totale Abstürze zu vermeiden, bevor ich die Kunst der IRQ-Feinabstimmung für Pro-Audio gelernt habe. Steile Lernkurve, tolle Belohnungen!

Josh Sewell
quelle
1
Es wäre hilfreich zu beschreiben, wie ein Bash-Terminal mit einer höheren Priorität als jackd geöffnet wird.
Mike McKay
Ja, besonders wenn jackdes in Echtzeit
Rolf