Comment utiliser JACK et Pulseaudio / ALSA en même temps sur le même appareil audio?


30

Chaque fois que je lance Hydrogen, il casse mon audio dans toutes les autres applications qui utilisent Pulse, par exemple, je ne peux plus lire de vidéos dans Chrome après avoir lancé Hydrogen une fois, jusqu'à ce que je redémarre mon PC ou que je fasse sudo alsa force-reload. J'ai trouvé des personnes ayant des problèmes similaires, mais aucun guide réel pour résoudre ce problème, il existe souvent des liens vers http://jackaudio.org/pulseaudio_and_jack (qui a migré vers http://jackaudio.org/faq/pulseaudio_and_jack.html ) I utilise Ubuntu Studio 14.04 64 bits.

ALTERNATIVEMENT si cela est vraiment impossible à réaliser, quelqu'un peut-il me dire comment utiliser Jack sur une carte son et Pulse sur une autre? De cette façon, je ne pouvais brancher une carte son USB que lorsque j'avais besoin de JACK.

Veuillez ne pas me faire utiliser Windows.


Après plus de recherches, il semble y avoir plusieurs façons de faire fonctionner cela, voir ici: github.com/jackaudio/jackaudio.github.com/wiki/… Cependant, dans mon cas, tous ces éléments tuent définitivement toutes les sorties audio.
Andreas Hartmann

Réponses:


24

Depuis le 16.04, les choses deviennent beaucoup plus simples :)

Il suffit d'installer qjackctlet de pulseaudio-module-jackmodule:

apt-get install qjackctl pulseaudio-module-jack

Configurez ensuite qjackctlpour exécuter la commande suivante après le démarrage. Copiez-le dans "Configuration ..."> "Options"> "Exécuter le script après le démarrage":

pacmd set-default-sink jack_out

Et c'est tout. Pulseaudio reconnaîtra (via D-Bus) le démarrage de JACK et acheminera automatiquement l'audio vers celui-ci. Lorsque JACK est arrêté, Pulseaudio reviendra au routage normal et recommencera à envoyer l'audio directement sur la carte.

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


C'est la solution la plus simple que j'ai vue jusqu'à présent! Enfin, je peux utiliser la prise sans muter tout le reste! Merci.
kapcom01

8
pactl set-default-sink jack_out -> "Échec: aucune entité de ce type"
Karl Morrison

1
cela a fonctionné pour moi quand d'autres solutions n'ont pas fonctionné, merci beaucoup!
malte

2
La commande correcte est «pacmd set-default-sink jack_out». Malheureusement, je ne peux pas corriger la réponse car une modification doit comporter plus de 6 caractères! :-(
Todd Chaffee

2
@KarlMorrison, vous devez probablement exécuter pactl load-module module-jack-sink channels=2et pactl load-module module-jack-sourceavant cela, voir la réponse @ kim-tucker.
naktinis

17

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

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

aptitude install pulseaudio-module-jack

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

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

puis - je pense - redémarrer pulseaudio. Je viens de redémarrer le PC (paresseux, je sais) et cela a fonctionné un plaisir ... le lancement d'Ardor ne tuait plus pulseaudio, ils jouaient joyeusement ensemble.


BTW, vous pouvez également ajouter les modules à la volée, en utilisantpactl load-module ...
0__

9

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

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!

Configurer qjackctl

Paramètres

Il y a 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 options les noms de puits pour pactl peuvent être trouvés par la commande:

pacmd list-sinks

Il existe un autre fragment 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"

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

Comment ça marche

Désormais au démarrage, le PC ne fonctionne qu'avec PulseAudio. Tout travail automatique comme sans Jack.

Après le lancement de Qjackctl,

  1. Le script de démarrage de Qjackctl suspend la carte audio principale dans Plseuaudio et autorise Jackj à y accéder "pactl suspend-sink alsa_output.pci-0000_00_1b.0.analog-stereo 1"
  2. Jack a démarré sur le d-bus "jack_control start"
  3. L'impulsion détecte automatiquement le démarrage de la prise sur D-Bus et charge le récepteur de prise et la source de prise.
  4. Qjackctl après le script de démarrage change le récepteur par défaut de Pulse en jack_out. (Je le rencontre ne s'est pas fait lui-même) "pactl set-default-sink jack_out" (au début, cela semble inutile, car tous les clients PA en cours d'exécution sont passés à un nouveau puits, mais de nouvelles applications sont restées bloquées sur le puits suspendu sans cette commande)

Le système a donc été reconfiguré pour utiliser "Pulse on top of Jack". (Là, je saute la suspension de l'entrée matérielle, 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 perturber la configuration.

Après l'arrêt de Jack par Qjackctl, tous reviennent à Pulse, pur et simple!

  1. Arrêt Jackd par Qjackctl sur dbus - option "Activer l'interface D-bus".
  2. jack-source et jack-sink supprimés de Pulseaudio automatiquement par d-bus
  3. le récepteur par défaut de Pulse audio est passé à la carte audio car la sortie jack disparaît
  4. Qjackctl après le script d'arrêt, réactivez la carte audio dans Pulseaudio "pactl suspend-sink alsa_output.pci-0000_00_1b.0.analog-stereo 1"

Les 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 depuis sctipts (depuis le paquet pulseaudio-utils)

Cette réponse n'est pas explicite sur la façon dont la configuration est effectuée. Est-ce que cela se fait uniquement via Qjackctl? Si oui, dans quels fichiers se trouvent les paramètres de configuration et comment sont-ils définis?
Faheem Mitha

Configuration initiale effectuée via le gestionnaire de packages. jackg start / stop reconfiguration via jack-audio-connection-kit-dbus et scripts Qjackctl.
mmv-ru

Je vois. Certains détails dans ce sens seraient extrêmement utiles. Ces détails sont notamment absents des autres réponses, et des informations sur le net. Je préfère ne pas configurer les choses via une interface graphique si possible. Êtes-vous généralement dans le chat AU? Si oui, nous pouvons en discuter là-bas.
Faheem Mitha

Qjackctl peut être configuré via gui comme le montrent les captures d'écran. En réponse, je montre des parties de .config / rncbc.org / QjackCtl.conf pour afficher des lignes complètes de script.
mmv-ru

Pas assez de réputation pour inviter à chatter. Invite moi.
mmv-ru

7
  • Le problème est la prise de lancement de l'hydrogène (comme Ardour) au démarrage, mais ne la fermez pas à la sortie:
    mais vous pouvez exécuter killall jackdun terminal après la sortie de l'hydrogène.

  • Une manière compliquée d'utiliser le logiciel Jack et pulseaudio en même temps consiste à installer "pulseaudio-module-jack" (également installer qjackctl (gui pour jackd) et pavucontrol s'il n'est pas présent). Redémarrez pulseaudio pulseaudio -k.
    Fermez maintenant les applications audio (Jack et pulseaudio),
    exécutez jackd à l'aide de qjackctl (cliquez sur le bouton Démarrer) (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 "périphérique par défaut" vert près de "évier jack".
    Le logiciel pulseaudio et Hydrogen devraient maintenant fonctionner en même temps.

  • En utilisant qjackctl, dans le premier onglet "paramètres", vous pouvez changer de périphérique audio Jackd.


3

Ça pourrait être beaucoup plus facile maintenant. Ce qui a fonctionné pour moi aujourd'hui, pour satisfaire mes besoins vraiment basiques, après une nouvelle installation de Linux Mint 18.2 (base de paquets Ubuntu 16.04) était:

  1. Utilisez Synaptic pour installer QSynth et QJackCtl.

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

  3. Dans QSynth Configuration : sous audio changement onglet Pilote audio pour PulseAudio .

  4. Dans la configuration de QSynth : sous SoundFonts : Ouvrez ... et sélectionnez-en un au besoin.

  5. Dans QJackCtl Setup> Settings> Advanced :

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

  6. Dans QJackCtl Setup> 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 à gauche à FLUID Synth à droite.

  8. Dans les paramètres système principaux 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'un à la fois sans beaucoup de réglages dont je pouvais rarement garder la trace.

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


2

La façon la plus simple d'acheminer tous les systèmes pour qu'ils fonctionnent avec jack:

Installer

sudo apt-get install qjackctl pulseaudio-module-jack

Ouvrez qjackctl. Dans Configuration> Options>

Cochez Exécuter le script après le démarrage et collez ceci:

pacmd load-module module-jack-source channels=2; pacmd load-module module-jack-sink channels=2;

Cochez Exécuter le script après l'arrêt et collez ceci:

killall jackd

Maintenant, lancez qjack et ouvrez vos paramètres sonores. Vous trouverez le port de sortie du récepteur Jack audio Pulse. Sélectionnez-le et tout le système se synchronisera. Si vous arrêtez le serveur Jack / qjack, le son reviendra à votre port par défaut.

Voici la vue d'ensemble


0

Bien sûr, on voudra que pulseaudio et jack fonctionnent s'ils arrivent au point où ils ont besoin de jack car la plupart des lecteurs multimédias de navigateur ne savent pas jack! ..malheureusement.

Je ne cessais de voir la suggestion d'avoir un seul d'entre eux en cours d'exécution à un moment qui me semble être un compromis si terrible. C'est un peu tragique à mon avis que ces deux services, c'est-à-dire jack et pulseaudio, bien que tous deux fonctionnels seuls, soient si mal gérés par kxstudio au moins, ce que j'utilise.

Donc, 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 souhaite utiliser, ce qui est assez juste), il doit donc être démarré en premier

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

Assez simple..ey? Pour certaines raisons, j'ai eu un chagrin sans fin avec ça cuz ..

D'abord, je pense que pulseaudio 4.0 semble être bogué et gâcher le pilote alsa de sorte que dans certaines situations, il le laisse verrouillé et que la prise ne peut donc pas démarrer même si pulseaudio n'est pas en cours d'exécution. (Dit n'a pas réussi à définir les paramètres de capture ou smtg comme ça)

Ce que j'ai finalement fait

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

dans cet ordre, puis je les ai finalement fait fonctionner normalement via qjackctl qui s'assure qu'ils démarrent de la bonne manière (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 être un déchet par rapport à qjackctl.

Quoi qu'il en soit, le problème est que le démarrage de jack à l'aide de qjackctl prend un certain temps et pour éviter les temps d'attente à chaque démarrage, vous pouvez utiliser cette fonction d'économie de vie de kde qui consiste à charger la session précédente. Assurez-vous de ne pas avoir qjackctl dans le 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).

C'est parce que je ne me sentais plus en train de jouer avec, comme écrire un script intelligent qui s'assurera que pulseaudio est en baisse (ou suspendu) démarrer la prise et vérifier qu'il a démarré correctement, puis démarrer pulseaudio, charger le module de prise, etc.

Sinon, s'appuyer sur 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.

S'amuser..


0

J'utilise Linux Mint 19.1. Après avoir essayé toutes les différentes solutions, les choses ne fonctionnaient toujours pas bien pour moi.

Enfin, j'ai pu résoudre tous mes problèmes en suivant les étapes / instructions de la vidéo: Lien

Fondamentalement, il installe des applications à partir des référentiels Kxstudio. et ils ont un script pour tout configurer parfaitement au démarrage.

Mon objectif final était de pouvoir enregistrer des entrées via mon interface (Scarlett solo) tout en étant capable d'exécuter / d'enregistrer du son à partir d'autres applications (ordinateur de bureau, navigateur)

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.