web-dev-qa-db-fra.com

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

Par exemple, chaque fois que je lance hydrogène, mon audio est interrompu dans toutes les autres applications utilisant 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 force recharger. J'ai trouvé des personnes avec des problèmes similaires, mais aucun guide pour y remédier, il y a souvent des liens vers http://jackaudio.org/pulseaudio_and_jack (qui est passé à http: // jackaudio.org/faq/pulseaudio_and_jack.html ) J'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 peux brancher une carte son USB que lorsque j'ai besoin de JACK.

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

25
Andreas Hartmann

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

Installez simplement les modules qjackctl et pulseaudio-module-jack:

apt-get install qjackctl pulseaudio-module-jack

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

pactl set-default-sink jack_out

Et c'est. Pulseaudio reconnaîtra (via D-Bus) le démarrage de JACK et acheminera automatiquement le son. Lorsque JACK est arrêté, Pulseaudio rétablit le routage normal et commence à envoyer de l'audio directement à la carte.

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

20
José Micó

Cette vidéo sur Youtube: "Jack et PulseAudio ensemble comme amis - Linux" semblait avoir quelques réponses:

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

aptitude install pulseaudio-module-jack

sudo édite ensuite le fichier /etc/Pulse/default.pa pour inclure deux lignes dans la section Charger les 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é à merveille ... allumer Ardour ne tue plus Pulseaudio, ils ont joué avec bonheur ensemble.

15
RobinsSea

Vient de passer la quête de la coexistence de Jack et Pulse sur Fedora. Généralement, je suis satisfait de Pulseaudio, mais j'ai parfois besoin de l’audio Jack.

Ma solution fonctionne sur Fedora 23.

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

Ne touchez pas à /etc/Pulse/default.pa!

Configurer qjackctl

Settings

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"

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

pacmd list-sinks

Il y a encore un 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

Maintenant, sur le PC de démarrage, utilisez PulseAudio uniquement. Tous les travaux automatiques comme sans Jack.

Après le lancement de Qjackctl,

  1. Le script de démarrage Qjackctl suspend la carte son principale dans Plseuaudio et permet à Jackj d’y avoir accès "pactl suspend-sink alsa_output.pci-0000_00_1b.0.analog-stereo 1"
  2. Jack a démarré sur d-bus "jack_control start"
  3. Pulse détecte automatiquement le démarrage des prises sur D-Bus, la prise de charge et sa source.
  4. Qjackctl après que le script de démarrage modifie le puits par défaut dans Pulse en jack_out. (Je le rencontre pas fait tout seul) "pactl set-default-sink jack_out" (au début, cela semblait inutile, car tous les clients PA en cours d'exécution passaient sur un nouvel évier, mais les nouvelles applications bloquées sur un évier suspendu sans cette commande)

Le système a donc été reconfiguré pour utiliser "Impulsion sur Jack". (Là, je saute l'entrée matérielle en suspension, parce que je ne l'utilise pas quand même)

Si l'option "Arrêter le serveur audio JACK sur l'extension de l'application" n'est pas cochée, je peux fermer Qjackctl et le réexécuter, ce qui ne perturbe pas la configuration.

Après avoir arrêté Jack de Qjackctl, tous reviennent à Pulse!

  1. Jackd stop par Qjackctl sur dbus - option "Activer l'interface D-bus".
  2. jack-source et jack-sink supprimés automatiquement de Pulseaudio par d-bus
  3. le collecteur par défaut dans Pulse Audio est passé sur la carte audio car la sortie audio disparaît.
  4. Qjackctl after Shutdown script réactive 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 les instructions (à partir du paquet pulseaudio-utils)
9
mmv-ru
  • Le problème est que Hydrogen (comme Ardour) lance 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 façon compliquée d'utiliser simultanément le logiciel Jack et le logiciel pulseaudio 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),
    lance Jackd en utilisant qjackctl (clic sur le bouton de démarrage) (l’option dbus doit être sélectionnée dans le dernier onglet de paramètres qjackctl).
    Dans l’onglet "Périphérique de sortie" de Pavucontrol, cliquez sur le bouton vert "Périphérique par défaut" situé à côté de "Prise d’évier".
    Le logiciel pulseaudio et Hydrogen doivent maintenant fonctionner en même temps.

  • À l'aide de qjackctl, dans le premier onglet "Paramètres", vous pouvez modifier le périphérique audio Jackd.

6
laugeo

Cela pourrait être beaucoup plus facile maintenant. Ce qui a fonctionné pour moi aujourd’hui, pour satisfaire mes besoins les plus élémentaires, 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. Copier les polices sonores requises dans un dossier approprié tel que /usr/share/sounds/sf2/

  3. Dans QSynth Setup: sous Audio changement d'onglet Audio Driver à pulseaudio.

  4. Dans QSynth Setup: sous SoundFonts: Open ... et sélectionnez-en un, si nécessaire.

  5. Dans Configuration de QJackCtl> Paramètres> Avancé:

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

  6. Dans Configuration de QJackCtl> 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 pour FLUID Synth à droite.

  8. Dans le menu principal Paramètres système pour 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 avec 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 à essayer à nouveau :-).

3
Kim Tucker

Le moyen le plus simple d’acheminer tout le système à l’exécution avec jack:

Installer

Sudo apt-get install qjackctl pulseaudio-module-jack

Ouvrez qjackctl. Dans Configuration> Options>

Vérifiez le script d'exécution après le démarrage et collez ceci:

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

Vérifiez le script d'exécution 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 Pulse Audio Jack. Sélectionnez-le et tout le système sera synchronisé. Si vous arrêtez le serveur Jack/qjack, le son reviendra sur votre port par défaut.

Voici la vue d'ensemble

1
Fahad Hasan Pathik

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

J'ai continué à voir la suggestion de n'en faire faire qu'un seul à la fois, ce qui me semble un compromis terrible. C’est un peu tragique, à mon avis, que ces deux services, à savoir jack et pulseaudio, bien que fonctionnels à la fois, soient si mal gérés par kxstudio, du moins, et c’est ce que j’utilise.

Donc ce qui se passe est:

  • la prise ne peut pas démarrer pendant que pulseaudio est en cours d'exécution (et à l'aide du pilote de carte son qu'il souhaite utiliser assez bien), il doit donc être démarré en premier

  • pulseaudio doit être pointé sur jack une fois en marche

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

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

Ce que j'ai fait à la fin était

  • enlevé complètement les jack et pulseaudio (avec find et rm -rf: D après la purge d'apt-get)
  • pulseaudio 11 installé (à partir des sources)
  • jack installé et ses bibliothèques (libjack-dev)

dans cet ordre, puis je les ai finalement exécutés normalement via qjackctl, qui s'assure qu'ils démarrent correctement (charge le jack jack dans pulseaudio et le définit par défaut).

Btw, j'ai vu Cadence est recommandé à la place et je ne comprends pas pourquoi, à mon avis, il semble nul par rapport à qjackctl.

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

C’est parce que je n’ai plus l’impression de la manipuler, comme écrire un script intelligent qui vérifie que pulseaudio est en panne (ou suspendu), démarrez la prise jack et vérifie qu’elle a bien démarré, puis démarrez pulseaudio, charger le module, etc.

Autrement, le scénario normal (sain) consisterait à s’appuyer sur le système d’exploitation pour démarrer les démons et charger correctement la configuration, mais cela ne semble pas se produire.

S'amuser..

0
Negru Voda

J'utilise Linux Mint 19.1. Après avoir essayé toutes les solutions, les choses ne fonctionnaient toujours pas correctement 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 pouvant exécuter/enregistrer des sons à partir d'autres applications (bureau, navigateur).

0
joe_maya