Instalamos los programas que necesitamos:
Código: Seleccionar todo
sudo apt-get install jackd2 qjackctl pulseaudio-module-jack jconvolver
Código: Seleccionar todo
sudo usermod -a -G audio nombredeusuario
- qjackctl es un programa para controlar el servidor jack gráficamente
- pulseaudio-module-jack pasa el sonido de pulseaudio al servidor jack
- jconvolver es el que nos hace la convolución de los canales de sonido.
Pasamos a configurar qjackctl, iré poniendo las capturas y explicando porqué se ponen las opciones:
Iniciamos el programa:
Le damos a Setup para configurarlo:
Vamos a la pestaña configuraciones:
- Tiempo real: Le da preferencia al proceso para ejecutarse en tiempo real (para que no se corte el sonido).
- Modo tolerante: Jack tiene menos tendencia a desconectar los puertos (esto lo tuve que habilitar porque cada 4 minutos se me cortaba el sonido).
A continuación pongo la configuración de los buffers y el muestreo que funcionan con mi tarjeta de sonido (cada una será diferente), aquí pongo las no me dan error al iniciar el servidor:
- Cuadros / Periodo: 2048
- Frecuencia de muestreo: 44100
- Períodos / Buffer: 2
- Dispositivo de entrada: Aquí ponéis el micrófono o la entrada de linea que tengáis.
- Dispositivo de salida: La tarjeta de sonido que va a reproducir el audio.
En la pestaña Otras lo dejamos así para que inicie el servidor nada mas poner el programa:
Antes de hacer nada mas, comprobamos que Jack funciona dándole a Iniciar y poniendo un programa de sonido que vaya por Jack (por ejemplo Aqualung). Sino va, miramos los logs con el botón Mensajes, y vemos el fallo que da y lo corregimos.
Si todo ha ido bien, hay que hacer unos ficheros que son los que se encargan de pasar el sonido de pulseaudio a Jack, os pongo el nombre del fichero y el contenido (sacado de http://web.archive.org/web/201107060222 ... he_new_way)
pulse-jack-pre-start.sh
Código: Seleccionar todo
#!/bin/bash
pacmd suspend true
Código: Seleccionar todo
#!/bin/bash
pactl load-module module-jack-sink channels=6
pactl load-module module-jack-source channels=6
pacmd set-default-sink jack_out
pacmd set-default-source jack_in
pulse-jack-pre-stop.sh
Código: Seleccionar todo
#!/bin/bash
SINKID=$(pactl list | grep -B 1 "Name: module-jack-sink" | grep Module | sed 's/[^0-9]//g')
SOURCEID=$(pactl list | grep -B 1 "Name: module-jack-source" | grep Module | sed 's/[^0-9]//g')
pactl unload-module $SINKID
pactl unload-module $SOURCEID
sleep 5
Código: Seleccionar todo
#!/bin/bash
pacmd suspend false
Código: Seleccionar todo
chmod +x pulse-jack-pre-start.sh pulse-jack-post-start.sh pulse-jack-pre-stop.sh pulse-jack-post-stop.sh
Damos a iniciar y ya tendríamos el sonido de pulseaudio pasado por Jack (lo comprobamos poniendo cualquier programa de música o youtube por ejemplo). Sino suena, nos vamos al icono del altavoz, Configuración de sonido, seleccionamos nuestra tarjeta de sonido y después volvemos a seleccionar Jack sink.
Ahora la parte final, el jconvolver:
Explico cómo se configura, se hace un fichero .conf (por ejemplo 5.1-optimized.conf) y se pega lo siguiente:
Código: Seleccionar todo
# in out partition maxsize
# ----------------------------------------------
/convolver/new 6 6 2048 250000
# num port name connect to
# -----------------------------------------------
/input/name 1 in.FL
/input/name 2 in.FR
/input/name 3 in.RL
/input/name 4 in.RR
/input/name 5 in.CE
/input/name 6 in.SW
/output/name 1 out.FL
/output/name 2 out.FR
/output/name 3 out.RL
/output/name 4 out.RR
/output/name 5 out.CE
/output/name 6 out.SW
# in out gain delay offset length chan file
# ----------------------------------------------------------------------
/impulse/read 1 1 1 0 0 0 1 optimized-FL.wav
/impulse/read 2 2 1 0 0 0 1 optimized-FR.wav
/impulse/read 3 3 1 0 0 0 1 optimized-RL.wav
/impulse/read 4 4 1 0 0 0 1 optimized-RR.wav
/impulse/read 5 5 1 0 0 0 1 optimized-CE.wav
/impulse/read 6 6 1 0 0 0 1 optimized-SW.wav
- En /input/name/ se numeran y se nombran los canales de entrada al convolver.
- En /output/name/ lo mismo que en input pero para las salidas del convolver.
- En /impulse/read/ definimos la correspondencia entre entradas y salidas, el retardo y en file ponemos el camino y el nombre de los archivos de impulso. Esta es la parte flexible del programa porque podéis poner a una entrada varias salidas (para hacer que una entrada estereo se convierta en multicanal, por ejemplo). Os pego el texto:
Código: Seleccionar todo
# in out partition maxsize
# ----------------------------------------------
/convolver/new 2 6 2048 250000
# num port name connect to
# -----------------------------------------------
/input/name 1 in.FL
/input/name 2 in.FR
/output/name 1 out.FL
/output/name 2 out.FR
/output/name 3 out.RL
/output/name 4 out.RR
/output/name 5 out.CE
/output/name 6 out.SW
# in out gain delay offset length chan file
# ----------------------------------------------------------------------
/impulse/read 1 1 1 0 0 0 1 optimized-FL.wav
/impulse/read 2 2 1 0 0 0 1 optimized-FR.wav
/impulse/read 1 3 1 0 0 0 1 optimized-RL.wav
/impulse/read 2 4 1 0 0 0 1 optimized-RR.wav
/impulse/read 1 5 0.5 0 0 0 1 optimized-CE.wav
/impulse/read 2 5 0.5 0 0 0 1 optimized-CE.wav
/impulse/read 1 6 0.5 0 0 0 1 optimized-SW.wav
/impulse/read 2 6 0.5 0 0 0 1 optimized-SW.wav
Código: Seleccionar todo
jconvolver 5.1-optimized.conf
Borramos la conexión del sonido directo y lo hacemos pasar por el jconvolver, pulsando primero en Pulseadio JACK Sink (lado Puertos de Salida) y después en system (lado Puertos de Entrada)y le damos al botón desconectar.
Ahora arrastramos Pulseaudio JACK Sink (lado Puertos de Salida) a jconvolver (lado Puertos de Entrada) y arrastramos jconvolver (lado Puertos de Salida) a system (lado Puertos de Entrada). Ahora debería de sonar el sonido corregido.
Bueno, pues esto es todo, espero haberlo explicado bien y si tenéis alguna duda o problema preguntadme. Os doy las gracias por toda la información que me habéis dado en el foro y a ver si tengo tiempo y hago otro tutorial de cómo sacar los archivos de impulso en Windows (el DRCoP no funciona con mi tarjeta).