¿Cómo instalo JACK en Ubuntu?

En los clásicos reportajes-bomba del la revista Panorama, Juan Perón
expone desde el Exilio sus ideas correctivas para un país proscriptivo y
sumido en pujas de poder. En una de ellas explica cómo usar JACK e
impedir que se corte el audio de las aplicaciones que usan PulseAudio en
Ubuntu.

(...)

Periodista: Usted sabe que la masa Justicialista está ansiosa esperando
su opinión. ¿Cuales son las soluciones que el país exige en la hora
actual?

Juan Perón: Para mí el fenómeno argentino se caracteriza en que los
partidos políticos están luchando a ver quién de ellos puede tomar el
poder, y lo que en mi concepto interesaría antes que nada es pensar cuál
es la solución para el país. Si no, estaremos durante mucho tiempo más
atando los caballos detrás del carro.

El problema argentino es eminentemente político. Esta situación
política sostenida en el tiempo, en un constante movimiento perturbativo,
ha llevado al país a una situación económica y social realmente
pavorosa. Ha comenzado a cundir en la Masa Popular la miseria; como
consecuencia de la desocupación, la atonía en el comercio, la industria,
la falta de poder adquisitivo del Pueblo, etcétera. A ellos se han
agregado toda otra serie de problemas todas ocasionadas en su conjunto por
una pésima situación política.

Para resolverlas el gobierno se ha decidido llamar a elecciones, y ha
establecido un estatuto mediante el cual se restringen de todas maneras lo
que sería la solución natural, es decir, llevar al gobierno a las
fuerzas y a los hombres que pueden solucionar el problema.

Para la República Argentina, después de estos 10 años de guerra que se
han producido desde 1955 hasta nuestros días, no se han destruido las
casas, no se han destruido las fábricas, pero se ha destruido al hombre,
que vale mucho más que las casas y las fábricas. Esa destrucción es la
que ha producido la atonía y la falta de empeño y unidad en el trabajo
para llevar el país adelante. Por eso cada día que pasa la situación es
peor.

Las perturbaciones permanentes han impedido gran parte del trabajo que se
quería realizar. Las negociaciones ruinosas que se han realizando en el
orden económico-financiero han permitido que desde el exterior nos
descapitalizaran totalmente, y cuando ya estábamos descapitalizados nos
han comenzado a hacer préstamos abundantes para asegurarse que durante
10, 15 o 20 años nos van a dominar por ese camino.

En lo que hace al audio en Ubuntu sucede exactamente lo mismo.
Indudablemente que los servidores de sonido en GNU operan con un solo
sentido, el de llevar a nuestros oídos la más maravillosa música. Esto
es así pues no dejan de ser herramientas para un objetivo. Ubuntu trae de
fábrica un servidor de audio sencillo, el PulseAudio.

PulseAudio cumple acabadamente con la mayoría de las tareas comunes pues
para eso está hecho, pero es una creación humana, y como tal no es
perfecto. En particular lo aquejan contemplar ruteos simplificados de
audio, y no está pensado específicamente para hacer adecuadamente frente
a múltiples placas de sonido a la vez, ni concentrarse en operaciones de
"baja latencia" como las que se requerirían a la hora de producir música
multipista en Ubuntu.

Nosotros no intentamos suplir estas naturales deficiencias, sino que nos
hemos abocado a un recambio, desarrollando un servidor de sonido más
avanzado, el JACK.

Este resuelve normalmente tales problemas, y nos permite potentes opciones
de encaminado o ruteo de streams de audio digitalizado por nuestra/s
placa/s de sonido.

Para instalar JACK podremos abrir la terminal con Ctrl+Alt+T e ingresar el
siguiente Comando de Organización:

sudo apt install qjackctl

Uso de JACK

En Ubuntu, el servidor de sonido JACK no arranca de forma predeterminada,
sino que - salvo provisiones específicas - lo debemos iniciar "a mano".
Para ello cuenta con una aplicación gráfica que oficia de interfaz de
manejo, el QjackCtl. Lo podremos abrir desde Aplicaciones / Sonido y Video
/ QjackCtl.
Para arrancar el servidor debemos presionar el el botón Iniciar.  Cuando
el servicio inicia, podremos ver su status en el display
visual.Naturalmente Podremos detener el servicio por medio del botón
Detener.
Lo procedente es que los distintos programas de audio se conectan a
PulseAudio mediante, diremos, "cables virtuales". Normalmente se las hace
desde un dispositivo de entrada de audio (clavijas de captura) hasta el
programa de audio, y luego desde el programa de audio hasta las salidas de
audio (clavijas de reproducción o playback). Todo este ruteo a través de
"cables virtuales" se se hace automáticamente o a mano, y se administra
desde el botón Conexiones.
La ventana de doble columnas se divide en Entradas y Salidas, y
encontraremos los puertos de sonido físicos de nuestro sistema (bajo la
categoría System) y las salidas y entradas de audio virtuales de los
programas. De esta manera podremos encadenar no solo uno, sino múltiples
programas, grabadores, racks de efectos, visualizadores de sonido,
afinadores, y muchos etcéteras. Las posibilidades son excelentes y muy
amplias.



Uso de JACK y PulseAudio a la vez
Lamentablemente, el resultado no siempre es lo exitoso que podríamos
preveer. Uno de los problemas más comunes y decididamente molestos radica
en que al
activar el servidor de audio JACK, las demás aplicaciones que no utilicen
JACK específicamente dejarán de sonar. Por ejemplo, si deseamos abirir
un navegador y reproducir un video en una pestaña, el video se
congelará, hasta que cerremos JACK. Y esto mismo sucederá con todos los
demás programas que empleen el servidor PulseAudio.

Ahora yo me pregunto. ¿Será el señor Aramburu a quien el Pueblo le va a
obedecer y se va a poner a trabajar 20 horas si es preciso para arreglar
JACK? ¿Este señor, que ha tenido en una época el baldón de haber
fusilado a sus compañeros, de haber fusilado a sus propios amigos? Este
hombre resistido por esa masa popular, ¿será el hombre que les pueda
decir "compañeros trabajadores, como argentinos vamos a ponernos a
trabajar 20 horas para rutear de nuevo el sonido de JACK a PulseAudio?"
[guiña el ojo]

Naturalmente que yo ya he sido Presidente 10 años en la República
Argentina, y no voy a ser más de lo que ya he sido, pero estoy listo para
lo que me llamen [sonríe].  Tendremos que hacerlo nosotros.

La manera más sencilla para solucionar esto es usar un módulo que toma
el audio enviado al paquete PulseAudio, y lo destina al servidor JACK por
medio de sus clavijas virtuales. Para instalarlo abrimos una terminal e
ingresamos:

sudo apt-get install pulseaudio-module-jack

Luego debemos reiniciar el equipo. Podremos hacerlo desde la terminal con:

sudo reboot

El módulo debería cargarse automáticamente al iniciar JACK. De tal
forma, iniciamos JACK con la interfaz QjackCtl como hicimos anteriormente.
Si presionamos el botón Conexiones, ahora veremos que se ha agregado un
dispositivo virtualizado nuevo, llamado PulseAudio JACK Source. Ya
debería aparecer cableado normalmente.
Naturalmente, cualquier otro programa que utilice JACK se agregará a la
lista de Conexiones (puedremos ejecutar varios programas que usen el
servidor de sonido JACK a la vez). Asimismo, cualquier programa que
utilice sonido a través de PulseAudio también continuará sonando, por
medio del PulseAudio JACK Source. Con esto, habremos resuelto este
problema de la República Argentina.


Indudablemente que esta suele ser la aplicación más deseada. Otro
método podría ser el de "atar todo con alambre", y detener completamente
todo proceso que emplee PulseAudio hasta que cerremos el servidor JACK.

Suspender PulseAudio mientras se usa JACK

Esta solución puede ser útil sólo a quienes usen programas que
requieran JACK de manera eventual o temporal.

Para configurar esto entramos a QjackCtl y presionamos el botón Setup, y
luego en la solapa Configuraciones presionamos la opción Avanzadas
(Advanced). Dentro del campo "Prefijo del Servidor" deberíamos encontrar
la ruta al servidor JACK. Podría indicar "/usr/bin/jackd", pero en otras
distribuciones podría decir simplemente "jackd", o "jackstart". Lo
importante es que por delante de este comando, debemos agregar el sufijo:

pasuspend --

..tal como se indica abajo

La tercera podría consistir en utilizar directamente un dispositivos de
sonido independiente para PulseAudio y JACK. Obrar así no suele ser
problemático en las computadoras de escritorio, ya que la gran mayoría
trae sonido onboard, y les podemos agregar otra placa de sonido (incluso
una veterana). En una portátil implicaría conectarle una placa de sonido
externa USB.

La vinculación entre ambas placas de aidio puede hacerse analógicamente
mediante un cable desde la salida Line Out a la entrada Line IN o Auxiliar
de la otra, o digitalmente (para ello JACK nos permite modificar los
puertos de salida para enviarlas a una dispositivo de audio específico.

Como resolver audio entrecortado y latencia en JACK
JACK viene configurado por defecto con valores estándares considerados
adecuados para un uso práctico. Pero puede existir hardware de audio que
requiera una configuración específica, o de lo contrario podría sufrir
de "entrecortes en el audio" (con una reproducción con ruido rasposo o
interrumpido). Esto puede suceder también en situaciones en la que
nuestro hardware de audio sea lento por algún motivo.

JACK puede entonces configurarse como deseemos. Para ello abrimos el
programa QjackCtl y presionamos el botón Setup.

En la solapa Configuraciones encontraremos la Frecuencia de Muestre (cuyo
valor por defecto es 44100 Hz y está pensado para una calidad de CD de
Audio). También encontraremos los cuadros por período (1024 es su valor
por defecto) y la cantidad de períodos por buffer (suelen ser 2).

Si notamos que la reproducción de audio sufre de cortes breves
("dropouts", o XRUN en la jerga de JACK), podríamos aumentarlo subiendo
los valores de cuadros por período, por ejemplo subiéndolo a 2048.

Debemos tener en cuenta que esto aumentará también los milisegundos de
latencia del audio (que se verá indicada en la parte inferior derecha del
cuadro). Normalmente JACK impide una latencia superior a los 500
milisegundos.

También debemos tener en cuenta que depende del hardware de sonido. En mi
caso funciona óptimamente con 48000Hz / 2048 cuadros / 2 períodos.

Cualquier cambio realizado requiere reiniciar el servidor JACK, cosa que
nos solicitará el mismo QjackCtl.

Frente a este problema la Argentina puede resolverlos de una sola manera:
Trabajando. La descapitalización se corrige capitalizando al país, y la
capitalización no es nada mas que trabajo acumulado. Pero mientras
sigamos en este estado de cosas, la descapitalización seguirá adelante.

¿Qué se necesita hacer? Y... ¡hay que poner al pueblo Argentino a
trabajar, como decían los alemanes, durante 20 horas si fuese posible!

Para eso hay que llegar al gobierno con hombres que satisfagan ese deseo,
en dos aspectos. Primero, que el Pueblo tenga confianza en ellos y diga
"nosotros, para esto, vamos a trabajar". Y segundo, hombres que sean
capaces de cambiar el sistema. Porque el mal no está en la pobreza de la
República Argentina, que es un país inmensamente rico, sino en el falso
sistema que han adoptado que ha permitido la descapitalización de país,
el latrocinio en todas formas, y la descomposición de nuestra economía.
El fenómeno argentino es mas bien un fenómeno de desequilibrio mas que
de pobreza.