Как переключаться между Pulseaudio и Jack на Ubuntu 12.04 LTS x86 Linux?

10

На моем Ubuntu 12.04 есть приложения, для которых нужен Джек. Без Джека они просто не начнут, поэтому я должен держать Jackd + (QjackCtl). Теперь проблема заключается в том, что jackd не запускается должным образом все время. Когда-то он работает хорошо, когда-то он не запускается (я подозреваю, что Pulseaudio - причина).

Теперь я нашел обходное решение, чтобы обе игры Jack и Pulseaudio были бок о бок Вот что я сделал

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

После перезагрузки ПК я вижу, что оба Jack и Pulseaudio работают нормально. Но вот еще одна проблема: выход звука из громкоговорителей очень низок, пики процессора сильно увеличились, аппаратные устройства не отображаются. Звуковое управление показывает звуковую систему 5: 1, где у меня есть только звуковая система 2: 1.

Мне нужен способ переключения между Pulseaudio и Jack. Я не профессиональный музыкальный продюсер. Мне нужен Джекд только тогда, когда я использую Ardor или любое другое приложение, которому нужен Джек. Вы должны думать, что Pulseaudio автоматически отключится при запуске Jack. Но это не так для меня. Раньше я сталкивался с erros, пытающимся так

Вот журнал этой ошибки

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) "" 

Теперь мой вопрос заключается в том, как можно безопасно переключаться между Pulse и Jack? Есть ли приложение для этого?

Вот скриншот -

    
задан Curious Apprentice 02.02.2013 в 20:02
источник

2 ответа

3

Самый лучший вариант, который я нашел на данный момент, - это приостановить pulseaudio во время работы jack. Он описан на странице pulseaudio и jack и включает вызов сервера подключений через pasuspender .

Из справочных страниц:

   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 15.04.2013 в 08:32
0

Я понимаю, что этот вопрос был задан / ответил довольно давно, однако у меня есть дополнительная информация, которая может помочь тем, кто может столкнуться с этим вопросом.

Оригинальный плакат показывает, что они испытывают всплески CPU (лаг) при одновременном использовании как импульсного аудио, так и jackd. По моему опыту (я - профессиональный студийный инженер) это вызвано тем, что ядро ​​ядра с низкой латентностью недоступно для использования с ardor et. и др.

Мое предложение состояло в том, чтобы сначала установить и перезагрузить компьютер с помощью rt-ядра. Ядро должно быть доступно в репо и синаптике, однако источникам может потребоваться активация.

Лично я бы порекомендовал rt-kernel, поскольку ubuntu активно его поддерживает и доступен (и не повлияет на общее использование вашего ПК на сегодняшний день.

    
ответ дан Steve Schwarz 09.09.2015 в 10:26