Jak przełączać się między Pulseaudio a Jackiem w systemie Ubuntu 12.04 LTS x86 Linux?

10

Na moim Ubuntu 12.04 jest kilka aplikacji, które wymagają Jacka. Bez Jacka po prostu się nie uruchomią, więc muszę zatrzymać Jackd + (QjackCtl). Teraz problem polega na tym, że jackd nie uruchamia się poprawnie cały czas. Czasami działa dobrze, czasem się nie uruchamia (podejrzewam, że powodem jest Pulseaudio).

Teraz znalazłem obejście, dzięki któremu Jack i Pulseaudio mogą pracować obok siebie Oto, co zrobiłem

1. Installing pulseaudio-modules-jack
2. Editing /etc/pulse/default.pa and adding these lines

    ### Load audio drivers statically
        load-module module-jack-sink
        load-module module-jack-source

Po ponownym uruchomieniu komputera widzę, że zarówno Jack, jak i Pulseaudio działają w porządku. Ale tutaj jest inny problem, moc wyjściowa dźwięku z głośników jest bardzo niska, skoki procesora znacznie wzrosły, urządzenia nie są pokazywane. Kontrola dźwięku pokazuje system dźwiękowy 5: 1, w którym mam tylko system dźwiękowy 2: 1.

Potrzebuję sposobu na przełączenie między Pulseaudio a Jackiem. Nie jestem profesjonalnym twórcą muzyki. Potrzebuję Jackda tylko wtedy, gdy używam Ardora lub innej aplikacji, która potrzebuje Jacka. Musisz myśleć, że Pulseaudio zostanie automatycznie wyłączone podczas uruchamiania Jacka. Ale tak nie jest w moim przypadku. Wcześniej miałem do czynienia z błędami

Oto dziennik tego błędu

14:36:48.194 Patchbay deactivated.
    14:36:48.198 Statistics reset.
    14:36:48.228 ALSA connection change.
    14:36:48.241 D-BUS: Service is available (org.jackaudio.service aka jackdbus).
    Cannot connect to server socket err = No such file or directory
    Cannot connect to server socket
    jack server is not running or cannot be started
    Registered event listener change listener:  true 
    14:36:48.258 ALSA connection graph change.
    14:37:12.679 D-BUS: JACK server could not be started. Sorry
    Cannot connect to server socket err = No such file or directory
    Cannot connect to server socket
    jack server is not running or cannot be started
    QSpiAccessible::accessibleEvent not handled:  "2"  obj:  QMessageBox(0xbfd7c2d0) "" 
    FIXME: handle dialog start. 
    Sat Feb  2 14:37:12 2013: Starting jack server...
    Sat Feb  2 14:37:12 2013: JACK server starting in realtime mode with priority 10
    Sat Feb  2 14:37:12 2013: [1m[31mERROR: Cannot lock down 82241434 byte memory area (Cannot allocate memory)[0m
    Sat Feb  2 14:37:12 2013: control device hw:0
    Sat Feb  2 14:37:12 2013: control device hw:0
    Sat Feb  2 14:37:12 2013: [1m[31mERROR: Failed to acquire device name : Audio0 error : Cannot allocate memory[0m
    Sat Feb  2 14:37:12 2013: [1m[31mERROR: Audio device hw:0 cannot be acquired...[0m
    Sat Feb  2 14:37:12 2013: [1m[31mERROR: Cannot initialize driver[0m
    Sat Feb  2 14:37:12 2013: [1m[31mERROR: JackServer::Open() failed with -1[0m
    Sat Feb  2 14:37:12 2013: [1m[31mERROR: Failed to open server[0m
    Sat Feb  2 14:37:13 2013: Saving settings to "/home/soham/.config/jack/conf.xml" ...
    FIXME: handle dialog end. 
    14:37:17.923 Could not connect to JACK server as client. - Overall operation failed. - Unable to connect to server. Please check the messages window for more info.
    Cannot connect to server socket err = No such file or directory
    Cannot connect to server socket
    jack server is not running or cannot be started
    QSpiAccessible::accessibleEvent not handled:  "2"  obj:  QMessageBox(0xbfd7cb40) "" 
    FIXME: handle dialog start. 
    FIXME: handle dialog end. 
    QSpiAccessible::accessibleEvent not handled:  "6"  obj:  QMenu(0x8d0f0a0) "" 

Teraz moje pytanie brzmi: w jaki sposób mogę bezpiecznie przełączać się między Pulsem a Jackiem? Czy jest na to jakaś aplikacja?

Oto zrzut ekranu -

Ciekawy uczeń
źródło

Odpowiedzi:

3

Najlepszą opcją, jaką znalazłem w tej chwili, jest zawieszenie pulseaudio podczas pracy Jacka. Jest to opisane na stronie pulseaudio i jack , i obejmuje wywoływanie serwera jack pasuspender.

Ze stron podręcznika:

   pasuspender is a tool that can be used to tell a local PulseAudio sound
   server to temporarily suspend access to the  audio  devices,  to  allow
   other  applications  access  them  directly.  pasuspender  will suspend
   access to the audio devices, fork a child process, and when  the  child
   process terminates, resume access again.
el.atomo
źródło
0

Zdaję sobie sprawę, że na to pytanie zostało zadane / udzielono odpowiedzi dość dawno temu, ale mam dodatkowe informacje, które mogą być pomocne dla tych, którzy mogą napotkać to pytanie.

Oryginalny plakat wskazuje, że występują spowolnienia procesora (opóźnienie) podczas jednoczesnego używania pulsacyjnego dźwięku i jackd. Z mojego doświadczenia (jestem profesjonalnym inżynierem studyjnym) jest to spowodowane nie uruchamianiem jądra o niskim opóźnieniu, które jest dostępne do użytku z ardor et. glin.

Sugeruję, aby najpierw zainstalować i uruchomić ponownie komputer przy użyciu jądra rt. Jądro powinno być dostępne w repo i synaptic, jednak źródła mogą wymagać aktywacji.

Osobiście poleciłbym jądro rt, ponieważ ubuntu aktywnie go wspiera i jest dostępne (i nie wpłynie to na ogólne korzystanie z twojego komputera na dzień dzisiejszy.

Steve Schwarz
źródło