Come utilizzare JACK e Pulseaudio / ALSA contemporaneamente sullo stesso dispositivo audio?

17

Ogni volta che lancio idrogeno, interrompe il mio audio in tutte le altre applicazioni che utilizzano Pulse, ad esempio, non posso più riprodurre video in Chrome dopo aver lanciato Hydrogen una volta, finché non riavvio il PC o eseguo sudo alsa force-reload. Ho trovato persone con problemi simili, ma nessuna vera guida per risolvere questo problema, spesso ci sono collegamenti a questo: link (che è rotto) Sto usando Ubuntu Studio 14.04 a 64 bit.

ALTERNATIVAMENTE se questo è veramente impossibile da raggiungere, qualcuno può dirmi come usare Jack su una scheda audio e Pulse su un'altra? In questo modo posso inserire una scheda audio USB solo quando ho bisogno di JACK.

Per favore non farmi usare Windows.

    
posta Andreas Hartmann 10.01.2015 - 14:39

6 risposte

17

A partire dal 16.04, le cose diventano molto più semplici:)

Installa solo qjackctl e pulseaudio-module-jack modulo:

apt-get install qjackctl pulseaudio-module-jack

Quindi configura qjackctl per eseguire il seguente comando dopo l'avvio. Copia in "Impostazioni ..." & gt; "Opzioni" & gt; "Esegui script dopo l'avvio":

pactl set-default-sink jack_out

E questo è. Pulseaudio riconoscerà (tramite D-Bus) che JACK è stato avviato e automaticamente indirizzerà l'audio ad esso. Quando JACK viene interrotto, Pulseaudio tornerà al normale routing e inizierà a inviare nuovamente l'audio direttamente alla scheda.

Quindi (quasi) di default Pulseaudio implementa la configurazione descritta sopra da mmv-ru.

    
risposta data José Micó 25.05.2016 - 06:41
11

Questo video di YouTube: "Jack e PulseAudio insieme come amici - Linux" sembra avere alcune risposte :

La chiave della soluzione sembrava assicurarsi che pulseaudio-module-jack fosse installato con:

aptitude install pulseaudio-module-jack

quindi sudo modificando il file /etc/pulse/default.pa per includere due righe nella sezione manualmente del caricamento dei driver audio:

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

allora - penso - riavviando pulseaudio. Ho appena riavviato il PC (pigro, lo so) e ha funzionato a meraviglia ... accendendo Ardor non ha più ucciso pulseaudio, hanno giocato felicemente insieme.

    
risposta data RobinsSea 03.10.2015 - 13:02
8

È appena passato alla ricerca della coesistenza di Jack e Pulse su Fedora. Generalmente sono contento di Pulseaudio, ma a volte ho bisogno di audio Jack.

La mia soluzione funziona su Fedora 23.

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

Non toccare /etc/pulse/default.pa!

Configura qjackctl

C'è un frammento rilevante di ~ / .config / rncbc.org / QjackCtl.conf

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

i nomi del sink per pactl possono essere trovati con il comando:

pacmd list-sinks

C'è un altro frammento di ~ / .config / rncbc.org / QjackCtl.conf per mostrare i comandi completi

[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ì, "Abilita interfaccia D-Bus" importante per Qjackctl stesso.

Come funziona

Ora sul PC di avvio funziona solo con PulseAudio. Tutto il lavoro automatico come senza Jack.

Dopo l'avvio di Qjackctl,

  1. Lo script di avvio di Qjackctl sospende la scheda audio principale in Plseuaudio e consente a Jackj di accedervi "pactl suspend-sink alsa_output.pci-0000_00_1b.0.analog-stereo 1"
  2. Jack avviato su d-bus "jack_control start"
  3. Pulse rileva automaticamente l'avvio del jack su D-Bus e carica il sink sink e la sorgente jack.
  4. Qjackctl dopo lo script di avvio cambia il sink predefinito in Pulse a jack_out. (Ho capito che non è stato fatto da solo) "pactl set-default-sink jack_out" (inizialmente non sembra necessario, poiché tutti i client PA in esecuzione sono passati al nuovo sink, ma le nuove app sono state bloccate sul sink sospeso senza questo comando)

Quindi il sistema è stato riconfigurato per usare "Pulse on top of Jack". (Lì salta la sospensione dell'hardware, perché non la uso comunque)

Se "Stop JACK audio server on application exti" non selezionato, posso chiudere Qjackctl e rieseguire l'installazione non disturbando.

Dopo aver fermato Jack da Qjackctl, tutti ritornano al semplice Pulse senza fronzoli!

  1. Jackd stop di Qjackctl su dbus - Opzione "Abilita interfaccia D-bus".
  2. jack-source e jack-sink rimossi da Pulseaudio automaticamente da d-bus
  3. default sink in Pulse audio passa alla scheda audio perché il jack-out scompare
  4. Qjackctl dopo lo script di spegnimento attiva nuovamente la scheda audio in Pulseaudio "pactl suspend-sink alsa_output.pci-0000_00_1b.0.analog-stereo 1"

Strumenti utilizzati

  1. jackd (dal pacchetto pulseaudio-utils)
  2. jack_control (dal pacchetto ack-audio-connection-kit-dbus)
  3. Qjackctl (dal pacchetto pulseaudio-utils)
  4. pactl per controllare Pulseaudio da sctipts (dal pacchetto pulseaudio-utils)
risposta data mmv-ru 11.03.2016 - 18:44
6
  • Il problema è Hydrogen (as Ardor) launch jackd all'avvio ma non chiuderlo all'uscita:
    Ma puoi eseguire killall jackd in un terminale dopo l'uscita di Hydrogen.

  • Un modo complicato per usare Jack e il software pulseaudio allo stesso tempo è installare "pulseaudio-module-jack" (installa anche qjackctl (gui for jackd) e pavucontrol se non presente). Riavvia pulseaudio pulseaudio -k .
    Ora chiudete le app audio (Jack e Pulseaudio),
    esegui jackd usando qjackctl (fai clic sul pulsante di avvio) ( l'opzione dbus deve essere selezionata nelle impostazioni qjackctl dell'ultima scheda ).
    Nella scheda "dispositivo di output" di Pavucontrol, fare clic sul pulsante verde "dispositivo predefinito" vicino a "jack sink" Adesso il software pulseaudio e Hydrogen devono essere eseguiti contemporaneamente.

  • Usando qjackctl, nella prima scheda "impostazioni", puoi cambiare il dispositivo audio Jackd.

risposta data laugeo 10.01.2015 - 19:34
2

Potrebbe essere molto più facile ora. Ciò che ha funzionato per me oggi, per soddisfare i miei bisogni di base, dopo una nuova installazione di Linux Mint 18.2 (base del pacchetto di Ubuntu 16.04) era:

  1. Usa Synaptic per installare QSynth e QJackCtl.

  2. Copia i caratteri audio richiesti in una cartella appropriata come /usr/share/sounds/sf2/

  3. In Impostazione QSynth : sotto Audio modifica scheda Driver audio a pulseaudio .

  4. In QSynth Setup : in SoundFonts : Apri ... e selezionane uno come richiesto.

  5. In QJackCtl Setup & gt; Impostazioni & gt; Avanzate :

    Prefisso server: pasuspsender - /usr/bin/jackd

  6. In QJackCtl Setup & gt; Opzioni :

    Esegui script dopo l'avvio:

    pactl load-module module-jack-sink channels=2; pactl load-module module-jack-source; pacmd set-default-sink jack_out
    
  7. In QJackCtl Connect: ALSA : unisci la voce della tastiera a sinistra a FLUID Synth a destra.

  8. Nelle Impostazioni di sistema principali per Audio, seleziona il dispositivo di output richiesto.

Ora posso suonare la tastiera mentre guardo un video (ad esempio su YouTube usando Firefox per esempio) - in precedenza potevo fare solo uno di questi alla volta senza un sacco di modifiche di cui raramente riuscivo a tenere traccia.

Spero che aiuti qualcuno o li incoraggi a riprovare: -).

    
risposta data Kim Tucker 05.09.2017 - 18:12
0

Ovviamente uno vorrà pulseaudio e jack in esecuzione se sono arrivati ​​al punto in cui hanno bisogno di jack come la maggior parte dei lettori multimediali non conoscono jack! ..purtroppo.

Ho continuato a vedere il suggerimento di avere solo uno di loro in esecuzione in un momento che mi sembra un compromesso così terribile. È un po 'tragico, a mio avviso, che questi due servizi, vale a dire jack e pulseaudio, anche se entrambi funzionali da soli, sono così mal gestiti da almeno kxstudio, che è quello che sto usando.

Quindi, ciò che succede è:

  • il jack non può essere avviato mentre pulseaudio è in esecuzione (e usa il driver della scheda audio che vuole usare che è abbastanza giusto) quindi deve essere avviato prima

  • pulseaudio deve essere puntato su jack una volta sia attivo che in esecuzione

Abbastanza semplice ...? Per alcuni motivi, ho avuto un dolore infinito con esso cuz ..

Per prima cosa penso che pulseaudio 4.0 sembra essere buggato e rovinare il driver di alsa in modo che in alcune situazioni lo lasci bloccato e quindi jack non possa avviarsi anche se pulseaudio non è in esecuzione. (Non è stato possibile impostare parametri di cattura o smtg del genere)

Ciò che ho fatto alla fine è stato

  • rimosso completamente sia jack che pulseaudio (con find e rm -rf: D dopo apt-get purge)
  • installato pulseaudio 11 (dai sorgenti)
  • Jack installato ed è libs (libjack-dev)

in questo ordine e poi finalmente li faccio girare normalmente attraverso qjackctl che si assicura che inizino nel modo corretto (carica il jack sink in pulseaudio e lo imposta come predefinito).

A proposito, ho visto Cadence invece raccomandato e non capisco perché per me sembra spazzatura rispetto a qjackctl.

Ad ogni modo, il problema è che l'avvio di jack usando qjackctl richiede un po 'di tempo e per evitare i tempi di attesa ad ogni avvio è possibile utilizzare questa funzione salvatempo di kde che carica la sessione precedente. Assicurati di non avere qjackctl in autostart anche se finirai con un'altra istanza ad ogni riavvio indipendentemente dall'impostazione true = true (buggy buggy tutta la notte).

Questo perché non mi sentivo più a mio agio con esso, come scrivere uno script intelligente che assicurasse che pulseaudio sia inattivo (o sospeso) e verificare che sia stato avviato correttamente, quindi avviare pulseaudio, caricare il modulo jack ecc.

Altrimenti fare affidamento sul sistema operativo per avviare i demoni e caricare correttamente la configurazione sarebbe lo scenario normale (sano), ma non sembra che stia accadendo.

Divertiti ..

    
risposta data Negru Voda 10.11.2017 - 14:24

Leggi altre domande sui tag