¿Cómo usar JACK y Pulseaudio / ALSA al mismo tiempo en el mismo dispositivo de audio?

17

Cada vez que lanzo hidrógeno, interrumpe mi audio en todas las demás aplicaciones que usan Pulse, por ejemplo, ya no puedo reproducir videos en Chrome después de haber lanzado Hydrogen una vez, hasta que reinicio mi PC o hago sudo all-force-reload. He encontrado personas con problemas similares, pero no hay una guía real para solucionar esto, a menudo hay enlaces a esto: enlace (que está roto) Estoy usando Ubuntu Studio 14.04 64bit.

ALTERNATIVAMENTE si esto es realmente imposible de lograr, ¿alguien puede decirme cómo usar Jack en una tarjeta de sonido y Pulse en otra? De esta forma podría conectar una tarjeta de sonido USB solo cuando necesite JACK.

Por favor, no me hagas usar ventanas.

    
pregunta Andreas Hartmann 10.01.2015 - 13:39

6 respuestas

17

A partir del 16.04, las cosas se vuelven mucho más simples:)

Simplemente instala qjackctl y pulseaudio-module-jack module:

apt-get install qjackctl pulseaudio-module-jack

Luego configure qjackctl para ejecutar el siguiente comando después del inicio. Cópielo en "Configuración ..." & gt; "Opciones" & gt; "Ejecutar script después del inicio":

pactl set-default-sink jack_out

Y eso es. Pulseaudio reconocerá (a través de D-Bus) que JACK comenzó y automáticamente enviará el audio al mismo. Cuando JACK se detiene, Pulseaudio volverá al enrutamiento normal y comenzará a enviar el audio directamente a la tarjeta nuevamente.

Entonces (casi) por defecto Pulseaudio implementa la configuración detallada anteriormente por mmv-ru.

    
respondido por el José Micó 25.05.2016 - 04:41
11

Este video de Youtube: "Jack y PulseAudio juntos como amigos - Linux" parecían tener algunas respuestas :

La clave de la solución parecía ser asegurarse de que pulseaudio-module-jack esté instalado con:

aptitude install pulseaudio-module-jack

luego sudo la edición del archivo /etc/pulse/default.pa para incluir dos líneas en la sección cargar manualmente los controladores de audio:

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

entonces - creo - reiniciando pulseaudio. Acabo de reiniciar la PC (flojo, lo sé) y funcionó una delicia ... encender Ardor ya no mató pulseaudio, jugaron felizmente juntos.

    
respondido por el RobinsSea 03.10.2015 - 11:02
8

Acabo de pasar por la búsqueda de la convivencia de Jack y Pulse en Fedora. Generalmente estoy contento con Pulseaudio, pero algunas veces necesito el audio de Jack.

Mi solución funciona en Fedora 23.

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

¡No toque /etc/pulse/default.pa!

Configurar qjackctl

Hay un fragmento relevante de ~ / .config / rncbc.org / QjackCtl.conf

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

Los nombres de sink para pactl se pueden encontrar por comando:

pacmd list-sinks

Hay un fragmento más de ~ / .config / rncbc.org / QjackCtl.conf para mostrar los comandos completos

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

Allí, "habilitar la interfaz D-Bus" es importante para Qjackctl en sí.

Cómo funciona

Ahora, en el arranque, la PC solo funciona con PulseAudio. Todo el trabajo automático como sin Jack.

Después del lanzamiento de Qjackctl,

  1. El script de inicio de Qjackctl suspende la tarjeta de audio primaria en Plseuaudio y permite que Jackj tenga acceso a ella "pactl suspend-sink alsa_output.pci-0000_00_1b.0.analog-stereo 1"
  2. Jack comenzó a usar d-bus "jack_control start"
  3. El pulso detecta automáticamente el inicio del jack sobre D-Bus y carga el sumidero y la fuente jack.
  4. Qjackctl después del script de inicio cambia el receptor predeterminado en Pulse to jack_out. (Lo encuentro no hecho por sí mismo) "pactl set-default-sink jack_out" (al principio parece innecesario, ya que todos los clientes de PA en ejecución cambiaron a un nuevo receptor, pero las nuevas aplicaciones se atascaron en el receptor suspendido sin este comando)

Entonces, el sistema se reconfigura para usar "Pulso en la parte superior de Jack". (Ahí omito la entrada de hardware suspender, porque no la uso de todos modos)

Si no se marca "Detener el servidor de audio JACK en la aplicación Exti", puedo cerrar Qjackctl y volver a ejecutarlo sin perturbar la configuración.

¡Después de detener a Jack por Qjackctl, todos regresan al sencillo pulso ordenado!

  1. Jackd pasa por Qjackctl sobre dbus - Opción "Habilitar interfaz D-bus".
  2. Jack-source y jack-sink se eliminaron de Pulseaudio automáticamente por d-bus
  3. receptor predeterminado en Audio de pulso cambiado a tarjeta de audio porque desaparece el conector
  4. Qjackctl después del script de apagado, active la tarjeta de audio en Pulseaudio "pactl suspend-sink alsa_output.pci-0000_00_1b.0.analog-stereo 1"

Herramientas utilizadas

  1. jackd (del paquete pulseaudio-utils)
  2. jack_control (del paquete ack-audio-connection-kit-dbus)
  3. Qjackctl (del paquete pulseaudio-utils)
  4. pactl para controlar Pulseaudio desde sctipts (del paquete pulseaudio-utils)
respondido por el mmv-ru 11.03.2016 - 17:44
6
  • El problema es que el Hidrógeno (como Ardor) lanza jackd al inicio pero no lo cierra al salir:
    Pero puede ejecutar killall jackd en un terminal después de la salida de hidrógeno.

  • Una forma complicada de usar Jack y el software pulseaudio al mismo tiempo es instalar "pulseaudio-module-jack" (también instalar qjackctl (gui para jackd) y pavucontrol si no está presente). Reinicie pulseaudio pulseaudio -k .
    Ahora cierre las aplicaciones de audio (Jack y pulseaudio),
    Ejecute jackd usando qjackctl (haga clic en el botón de inicio) (la opción dbus debe seleccionarse en la última pestaña de configuración de qjackctl )
    En la pestaña "dispositivo de salida" de Pavucontrol, haga clic en el botón verde "dispositivo predeterminado" cerca de "toma de pila"
    Ahora el software pulseaudio e Hydrogen deberían ejecutarse al mismo tiempo.

  • Usando qjackctl, en la primera pestaña "configuraciones", puede cambiar el dispositivo de audio Jackd.

respondido por el laugeo 10.01.2015 - 18:34
2

Podría ser mucho más fácil ahora. Lo que funcionó para mí hoy, para satisfacer mis necesidades realmente básicas, después de una nueva instalación de Linux Mint 18.2 (base del paquete Ubuntu 16.04) fue:

  1. Use Synaptic para instalar QSynth y QJackCtl.

  2. Copie las fuentes de sonido requeridas en una carpeta adecuada, como /usr/share/sounds/sf2/

  3. En Configuración de QSynth : en la pestaña Audio cambie Controlador de audio a pulseaudio .

  4. En Configuración de QSynth : en SoundFonts : Abrir ... y seleccione uno según sea necesario.

  5. En Configuración de QJackCtl & gt; Configuraciones & gt; Avanzado :

    Prefijo del servidor: pasuspsender - /usr/bin/jackd

  6. En Configuración de QJackCtl & gt; Opciones :

    Ejecutar script después del inicio:

    pactl load-module module-jack-sink channels=2; pactl load-module module-jack-source; pacmd set-default-sink jack_out
    
  7. En QJackCtl Connect: ALSA : une la entrada del teclado de la izquierda a FLUID Synth a la derecha.

  8. En la Configuración del sistema principal para Sonido, seleccione el dispositivo de salida requerido.

Ahora puedo tocar el teclado mientras veo un video (por ejemplo, en YouTube usando Firefox). Anteriormente solo podía hacer uno de estos a la vez sin muchos ajustes que raramente podía seguir.

Espero que ayude a alguien, o lo aliente a volver a intentarlo: -).

    
respondido por el Kim Tucker 05.09.2017 - 16:12
0

¡Por supuesto, uno querrá usar tanto el adaptador de audio como el jack si llegan al punto en que necesitan jack, ya que la mayoría de los reproductores multimedia del navegador no lo saben! ..Desafortunadamente.

Seguía viendo la sugerencia de que solo uno de ellos funcionara a la vez, lo que me parece un compromiso tan terrible. Es un poco trágico en mi opinión que estos dos servicios, es decir, jack y pulseaudio, aunque ambos sean funcionales por sí mismos, estén tan mal administrados por kxstudio, que es lo que estoy usando.

Entonces, ¿qué ocurre?

  • el jack no puede iniciarse mientras pulseaudio se está ejecutando (y usando el controlador de tarjeta de sonido que quiere usar, lo cual es justo) por lo que primero debe iniciarse

  • pulseaudio debe apuntarse a jack una vez tanto en funcionamiento como en funcionamiento

Muy simple ... ¿Oye? Por ciertas razones, tuve un dolor sin fin porque ...

Primero, creo que debido a que pulseaudio 4.0 parece tener errores y estropea el controlador alsa, de modo que en algunas situaciones lo deja bloqueado y, por lo tanto, el jack no puede iniciarse aunque pulseaudio no esté funcionando. (Dice que no pudo establecer parámetros de captura o smtg así)

Lo que hice al final fue

  • eliminó completamente jack y pulseaudio (con find y rm -rf: D después de apt-get purge)
  • instalado pulseaudio 11 (de fuentes)
  • jack instalado y sus libs (libjack-dev)

en este orden y finalmente los puse en funcionamiento normalmente a través de qjackctl, lo que asegura que comiencen de la manera correcta (carga el receptor de la toma en pulseaudio y lo establece como predeterminado).

Por cierto, vi que se recomienda Cadence en su lugar y no entiendo por qué para mí parece basura en comparación con qjackctl.

De todos modos, el problema es que comenzar a usar jack usando qjackctl lleva un tiempo y para evitar los tiempos de espera en cada arranque puede usar esta función de ahorro de vida de kde, que es cargar la sesión anterior. Asegúrate de no tener qjackctl en autostart, ya que terminarás con una instancia más en cada reinicio independientemente de la configuración singleton = true (buggy buggy toda la noche).

Esto se debe a que ya no me daba vueltas, como escribir un guion inteligente que asegure que pulseaudio esté inactivo (o suspendido), iniciar la conexión y verificar que se haya iniciado correctamente, luego iniciar pulseaudio, cargar el módulo de toma etc.

De lo contrario, confiar en el sistema operativo para iniciar los daemons y cargar la configuración correctamente sería el escenario normal (saludable), pero no parece estar sucediendo.

Diviértete ..

    
respondido por el Negru Voda 10.11.2017 - 13:24

Lea otras preguntas en las etiquetas