06 august 2022
¿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.