Comment utiliser JACK et Pulseaudio / ALSA en même temps sur le même périphérique audio?

17

Chaque fois que je lance de l'hydrogène, il brise mon son dans toutes les applications utilisant Pulse, par exemple, je ne peux plus lire les vidéos après avoir lancé Hydrogen une fois, jusqu'à ce que je redémarre mon PC ou suda alsa. J'ai trouvé des personnes avec des problèmes similaires, mais pas de guide pour résoudre ce problème, il y a souvent des liens vers ceci: lien (qui est cassé) J'utilise Ubuntu Studio 14.04 64bit.

ALTERNATIVEMENT si cela est vraiment impossible, est-ce que quelqu'un peut me dire comment utiliser Jack sur une carte son et Pulse sur une autre? De cette façon, je ne pourrais brancher une carte son USB que lorsque j’ai besoin de JACK.

S'il vous plaît, ne me faites pas utiliser Windows.

    
posée Andreas Hartmann 10.01.2015 - 14:39
la source

6 réponses

17

À partir de 16.04, les choses deviennent beaucoup plus simples:)

Installez simplement qjackctl et pulseaudio-module-jack module:

apt-get install qjackctl pulseaudio-module-jack

Configurez ensuite qjackctl pour exécuter la commande suivante après le démarrage. Copiez-le dans "Setup ..." & gt; "Options" & gt; "Exécuter le script après le démarrage":

pactl set-default-sink jack_out

Et voilà. Pulseaudio reconnaîtra (via D-Bus) le démarrage de JACK et acheminera automatiquement le son vers ce dernier. Lorsque JACK est arrêté, Pulseaudio retourne au routage normal et commence à renvoyer l’audio directement sur la carte.

Donc (presque) par défaut, Pulseaudio implémente la configuration détaillée ci-dessus par mmv-ru.

    
réponse donnée José Micó 25.05.2016 - 06:41
la source
11

Cette vidéo Youtube: "Jack et PulseAudio ensemble en tant qu'amis - Linux" semblait avoir quelques réponses :

La clé de la solution semblait être de s’assurer que pulseaudio-module-jack est installé avec:

aptitude install pulseaudio-module-jack

puis sudo éditer le fichier /etc/pulse/default.pa pour inclure deux lignes sous la section de chargement des pilotes audio manuellement:

load-module module-jack-sink
load-module module-jack-source

alors - je pense - redémarrer pulseaudio. Je viens de redémarrer le PC (paresseux, je sais) et cela a fonctionné un régal ... allumer Ardour ne tue plus pulseaudio, ils ont joué joyeusement ensemble.

    
réponse donnée RobinsSea 03.10.2015 - 13:02
la source
8

Juste passé la quête de coexistence de Jack et Pulse sur Fedora. En général, je suis satisfait de Pulseaudio, mais j'ai parfois besoin de Jack audio.

Ma solution fonctionnant sur Fedora 23.

dnf install jack-audio-connection-kit jack-audio-connection-kit-dbus qjackctl

Ne touchez pas /etc/pulse/default.pa!

Configurez qjackctl

Il existe un fragment pertinent de ~ / .config / rncbc.org / QjackCtl.conf

[Settings]
Server=jack_control start
Driver=alsa
InDevice="hw:PCH,0"
OutDevice="hw:PCH,0"

les noms de puits pour pactl peuvent être trouvés par commande:

pacmd list-sinks

Un fragment supplémentaire de ~ / .config / rncbc.org / QjackCtl.conf pour afficher les commandes complètes

[Options]
...
StartupScript=true
StartupScriptShell=pactl suspend-sink alsa_output.pci-0000_00_1b.0.analog-stereo 1
PostStartupScript=true
PostStartupScriptShell=pactl set-default-sink jack_out
ShutdownScript=false
ShutdownScriptShell="pactl unload-module module-jack-sink; pactl load-module module-jack-source"
PostShutdownScript=true
PostShutdownScriptShell="pactl suspend-sink alsa_output.pci-0000_00_1b.0.analog-stereo 0; pactl set-default-sink alsa_output.pci-0000_00_1b.0.analog-stereo"

Là, "Activer l'interface D-Bus" est important pour Qjackctl lui-même.

Comment ça marche

Au démarrage, le PC fonctionne uniquement avec PulseAudio. Tout travail automatique comme sans Jack.

Après le lancement de Qjackctl,

  1. Le script de démarrage Qjackctl suspend la carte audio principale dans Plseuaudio et permet à Jackj d'y accéder "pactl suspend-sink alsa_output.pci-0000_00_1b.0.analog-stereo 1"
  2. Jack démarré sur le bus D "jack_control start"
  3. Pulse détecte automatiquement le démarrage de la prise via D-Bus et charge le récepteur et la source du jack.
  4. Qjackctl après le script de démarrage change le récepteur par défaut dans Pulse en jack_out. (Je ne le rencontre pas tout à fait) "pactl set-default-sink jack_out" (au début, cela ne semble pas nécessaire, tous les clients PA en cours passant au nouvel évier, mais les nouvelles applications bloquées sans cette commande)

Le système a donc été reconfiguré pour utiliser "Pulse on top of Jack". (Là, je ne sais pas suspendre la saisie du matériel, car je ne l’utilise pas de toute façon)

Si "Arrêter le serveur audio JACK sur l'application exti" n'est pas coché, je peux fermer Qjackctl et le relancer sans déranger la configuration.

Après l’arrêt de Jack par Qjackctl, tous reviennent à Pulse!

  1. Jackd stop by Qjackctl over dbus - Option "Enable D-bus interface".
  2. jack-source et jack-sink retirés automatiquement de Pulseaudio par d-bus
  3. le récepteur par défaut dans l’impulsion audio a basculé sur la carte audio car le jack-out a disparu
  4. Qjackctl après que le script Shutdown active la carte son dans Pulseaudio "pactl suspend-sink alsa_output.pci-0000_00_1b.0.analog-stereo 1"

Outils utilisés

  1. jackd (du paquet pulseaudio-utils)
  2. jack_control (du paquet ack-audio-connection-kit-dbus)
  3. Qjackctl (du paquet pulseaudio-utils)
  4. pactl pour contrôler Pulseaudio à partir de sctipts (à partir du paquet pulseaudio-utils)
réponse donnée mmv-ru 11.03.2016 - 18:44
la source
6
  • Le problème est que Hydrogen (comme Ardour) lance le jackd au démarrage mais ne le ferme pas à la sortie:
    Mais vous pouvez exécuter killall jackd dans un terminal après la sortie de l'hydrogène.

  • Une manière compliquée d’utiliser simultanément les logiciels Jack et pulseaudio consiste à installer "pulseaudio-module-jack" (installez également qjackctl (gui pour jackd) et pavucontrol s’ils ne sont pas présents). Redémarrez pulseaudio pulseaudio -k .
    Fermez maintenant les applications audio (Jack et pulseaudio),
    lancez jackd en utilisant qjackctl (cliquez sur le bouton de démarrage) (l'option dbus doit être sélectionnée dans le dernier onglet des paramètres de qjackctl ).
    Dans l'onglet "périphérique de sortie" de Pavucontrol, cliquez sur le bouton vert "périphérique par défaut" près de "jack sink"
    Maintenant, le logiciel pulseaudio et l'hydrogène devraient fonctionner en même temps.

  • En utilisant qjackctl, dans le premier onglet "settings", vous pouvez modifier le périphérique audio Jackd.

réponse donnée laugeo 10.01.2015 - 19:34
la source
2

Cela pourrait être beaucoup plus facile maintenant. Qu'est-ce qui a fonctionné pour moi aujourd'hui, pour satisfaire mes besoins vraiment fondamentaux, après une nouvelle installation de Linux Mint 18.2 (base de paquet d'Ubuntu 16.04) était:

  1. Utilisez Synaptic pour installer QSynth et QJackCtl.

  2. Copier la ou les polices sonores requises dans un dossier approprié tel que /usr/share/sounds/sf2/

  3. Dans Configuration QSynth : sous Audio , définissez Pilote audio sur pulseaudio .

  4. Dans Configuration QSynth : sous SoundFonts : Ouvrir ... et sélectionnez-en un si nécessaire.

  5. Dans QJackCtl Setup & gt; Paramètres & gt; Avancé :

    Préfixe du serveur: passusender - /usr/bin/jackd

  6. Dans QJackCtl Setup & gt; Options :

    Exécuter le script après le démarrage:

    pactl load-module module-jack-sink channels=2; pactl load-module module-jack-source; pacmd set-default-sink jack_out
    
  7. Dans QJackCtl Connect: ALSA : joignez l’entrée du clavier de gauche à Synthé FLUID à droite.

  8. Dans le Paramètres système du son, sélectionnez le périphérique de sortie requis.

Maintenant, je peux jouer au clavier tout en regardant une vidéo (par exemple sur YouTube en utilisant Firefox par exemple) - auparavant, je ne pouvais en faire qu’une à la fois sans beaucoup de réglages que je pouvais rarement suivre.

J'espère que cela aide quelqu'un ou l'encourage à réessayer: -).

    
réponse donnée Kim Tucker 05.09.2017 - 18:12
la source
0

Bien sûr, on voudra à la fois pulseaudio et jack running s’ils sont au point où ils ont besoin de jack, car la plupart des lecteurs multimédia de navigateur ne connaissent pas le jack! ..malheureusement.

Je continuais à voir la suggestion d’avoir une seule d’entre elles à la fois, ce qui me semble un compromis si terrible. Il est un peu tragique à mon avis que ces deux services, à savoir jack et pulseaudio, bien que fonctionnant seuls, sont si mal gérés par kxstudio, du moins ce que j'utilise.

Alors ce qui se passe est:

  • jack ne peut pas démarrer pendant que pulseaudio est en cours d’exécution (et en utilisant le pilote de carte son qu’il veut utiliser, ce qui est assez juste), il doit donc être lancé en premier

  • pulseaudio doit être pointé sur jack une fois à la fois opérationnel

Pretty simple..ey? Pour certaines raisons, j'ai eu un chagrin sans fin avec lui parce que

Premièrement, je pense que pulseaudio 4.0 semble bogué et gâche le pilote alsa de sorte que, dans certaines situations, il reste verrouillé et donc que jack ne peut pas démarrer même si pulseaudio ne fonctionne pas. (Says échoué à définir les paramètres de capture ou smtg comme ça)

Ce que j'ai compris à la fin était

  • a complètement supprimé jack et pulseaudio (avec find et rm -rf: D après apt-get purge)
  • installé pulseaudio 11 (des sources)
  • jack installé et libs (libjack-dev)

dans cet ordre, puis je les ai enfin exécutés normalement via qjackctl, qui s’assure qu’ils démarrent de la manière correcte (charge le récepteur de jack dans pulseaudio et le définit par défaut).

Btw, j'ai vu que Cadence est recommandé à la place et je ne comprends pas pourquoi, pour moi, cela semble inutile par rapport à qjackctl.

Quoi qu’il en soit, le problème est que démarrer Jack en utilisant qjackctl prend du temps et pour éviter les temps d’attente à chaque démarrage, vous pouvez utiliser cette fonction de sauvegarde de la vie de kde qui doit charger la session précédente. Assurez-vous de ne pas avoir qjackctl dans le programme de démarrage automatique, car vous vous retrouverez avec une instance de plus à chaque redémarrage, quel que soit le paramètre singleton = true (buggy buggy toute la nuit).

Cela est dû au fait que je n’ai plus eu envie de le manipuler plus longtemps, par exemple en écrivant un script intelligent qui vérifie que pulseaudio est arrêté (ou suspendu) et vérifie qu’il démarre correctement, puis lancez pulseaudio, chargez le module jack. etc.

Sinon, utiliser le système d’exploitation pour démarrer les démons et charger correctement la configuration serait le scénario normal (sain), mais cela ne semble pas se produire.

Amusez-vous bien.

    
réponse donnée Negru Voda 10.11.2017 - 14:24
la source

Lire d'autres questions sur les étiquettes