Cómo instalar y usar Jack Audio Connection Kit (JACK) + Ardour y sus plugins con un Kernel de Tiempo Real en MX Linux (basado en Debian)

Antes de continuar les digo que para mi un Kernel es como las llantas de un auto, uno las puede cambiar por otras las cuales pueden tener otro labrado que pueda servir mejor para tal o cual terreno, pero primero hay que apagar el auto y luego hacer el cambio. Así mismo es con el Kernel, el que vamos a usar ha sido creado para un propósito especial, para Audio, y para cambiarlo debemos de instalarlo y luego reiniciar el ordenador y elegirlo en el Grub para iniciar sesión con el

¿Por qué hice este tutorial?

  • Porque cada vez escasea más software para 32 bits. Ejemplo AV Linux ya no tiene una versión de 32 bits como antes la tenía en el 2022 (UbuntuStudio dejó hace años de tenerla).
  • Porque si ustedes usen un Linux en particular y no quieran usar AV Linux  o Ubuntu Studio (los cuales tienen instalado y configurado JACK listo para usar) podrán aprender aquí cómo configurar su Sistema Operativo Linux para que funcione igual.
  • Porque puede que ustedes quieran usar el ordenador para grabar desde el micrófono y que se grabe al mismo tiempo una pista de Karaoke que esté sonando y que esto se escuche al mismo tiempo por los parlantes; esto se puede hacer ejemplo con Ardour y se llama Stereo Mix (en Windows hay algo parecido que se puede hacer con Virtual Audio Cable) pero esto solo se logra sin ruidos molestosos con el Kernel de AV Linux que hizo Trulan (explicado en este tutorial).
  • Porque puede que Ud. quiera usar bajas latencias para algún programa de Audio.
  • Para editar audio con Audacity y que no haya un retardo mientras uno le da Play a alguna parte en específico de la onda de la pista de audio y lo que se oye por los parlantes (se puede instalar y usar el Kernel Real Time que vienen en los repositorios de Debian, o el de AV Linux).
  • Porque puede que envien algún Kernel nuevo en el que hayan quitado alguna caracteristica, ejemplo en el Kernel 6 no puedo ponerle 75 Hz de Frecuencia de Actualización al monitor de esa laptop

Qué es la baja latencia en el Kernel?

Para usar en un sistema operativo bajas latencias lo puedo explicar con mis palabras, significa haya un retardo mínimo casi imperceptible ejemplo en el audio que se transmite desde un micrófono hasta los parlantes de un ordenador u otro dispositivo conectado, para esto necesitamos usar un Kernel especial llamado Kernel Realtime, en contraste en AV Linux o UbuntuStudio ya viene todo configurado, y esas mismas configuraciones las vamos a aprender a usar. Este tutorial es para Sistemas basados en Debian, pero tal vez lo podrían adaptar para otro Linux.

Probado en

Este tutorial ha sido testeado en:

- MX Linux 19 de 32 bit

- antiX 19 de 32 bit

- MX Linux 21 de 32 bit

- Debian 12 bookworn 32 bit


Debería de funcionar en Sistemas Operativos

basados en Debian como son: MX LinuxDeepinantiXKaliSparkyParrotTailsQ4OSPureOSVoyager LiveVolumioRaspbianWhonixSlaxSteamOSAV Linux,  SolydXK,  PardusProxmoxAcademic GNU/LinuxUnivention Corporate ServerDebian Edu/SkolelinuxLinux Mint Debian Edition, etc,


¿Cómo instalaremos la baja latencia?

Aquí dejo unas opciones, escojan según necesiten.  La primera opción que dejo es el Kernel de AV Linux (por el desarrollador original Trulan), he hecho unas instrucciones de cómo compilarlo. La segunda opción es usando un Kernel RT de Debian que esa en los repositorios, y además les dejo un tutorial para que si ustedes necesiten usar uno de esos Kernel más antiguos lo puedan compilar

1.0 Opción - instalar el Kernel de AV Linux

He hecho un manual de cómo compilarlo y esto eso es aplicable a 32 y 64 bits, en:

Compilando Kernel de AV Linux en MX Linux 19 de 32 bits (Trulan)
https://facilitarelsoftwarelibre.blogspot.com/2022/04/compilando-kernel-de-av-linux-en-mx.html

Allí en el tutorial he podido crear los deb de un Kernel de 32 bit el cual lo pueden descargar e instalar para usar, allí les explico en esa entrada todo al respecto. Y con las instrucciones allí ustedes podrán compilar uno de esos Kernel de AV Linux si no desean usar el mío o deseen probar alguna de esas versiones por algún motivo o necesidad depende de qué ordenador tengan sea viejo o moderno y sea de 32 o 64 bit (calculen más o menos la fecha de fabricación del ordenador y la del Kernel, entre más cerca estén mejor)

También les quiero decir que viejo no significa obsoleto, esto en cuanto al Kernel de AV Linux orginal hecho por Trulan el cual ya no está en desarrollo, funciona de maravilla para hacer Stereo Mix, pero ya no tiene las correcciones de seguridad para los errores de seguridad que se vayan encontrando con el paso del tiempo en el Kernel. Pero yo lo veo así, si uno va a navegar en paginas seguras pues no tenemos nada de que preocuparnos (además aconsejo usar https://www.mywot.com/download u otro semejante), excepto que alguien quiera navegar buscando cracks, o parches de programas de Windows o entrar en paginas malas, allí si se expone a que vulneren su seguridad usando el Kernel de AV Linux que hizo Trulan. También lo veo de la siguiente manera, se lo puede usar cuando uno hace audio y luego reiniciar el ordenador y usar el que vino en al Distribución Linux y ya está si quieran hacer alguna consulta o investigación de algo donde haya páginas que no aparezcan en mywot.com.


2.1 opción - Instalar el Kernel de Tiempo Real de Debian o Ubuntu

En Debian hay unos paquetes de Kernel llamados rt (Realtime = Tiempo Real), un Kernel consta generalmente de dos partes, están en los repositorios de la Distro pero si desean los pueden buscar así:



los he probado y me funciona bien con "Jack Audio Connection Kit (JACK)" (pero mejor funcionan los de AV Linux que hizo Trulan)

En los paquetes de Ubuntu online pueden encontrar los dos en el siguiente link:


Instalando el Kernel en Tiempo Real (Real Time) de los repositorios de Debian

Las siguientes instrucciones son para un Sistema Operativo basado en Debian. Primero es necesario recargar los repositorios:
 
sudo apt-get update
 
luego instalar las actualizaciones si es que las hayan enviado:
 
sudo apt-get upgrade

Nota: Los siguientes dos paquetes que tienen dentro del nombre: image y headers son paquetes de configuración que instalan automáticamente el último Kernel RT que esté disponible

Instalar Kernel Realtime para 32 bits desde Debian repo

Si su ordenador usa 32 bits, poner en la terminal:
sudo apt-get install dkms linux-image-rt-686-pae linux-headers-rt-686-pae

aquí pondré una captura de pantalla de la instalación en 32 bits:


puede investigar sobre ellos también en linea en los paquetes de debian:

https://packages.debian.org/linux-image-rt-686-pae

https://packages.debian.org/linux-headers-rt-686-pae

Para desinstalar los paquetes actualizadores  automáticos del kernel RT

Estos paquetes sirven para que cuando envien una nueva actualización del Kernel para que cuando usted aplique todas las actualizaciones del sistema se instale automáticamente la ultima versión del Kernel y además que esté disponible en primer orden en el Grub, para desinstalar (no se preocupe no se desinstalaran los Kernel RT):

sudo apt-get remove linux-image-rt-686-pae linux-headers-rt-686-pae

podría no convenirle tener esos paquetes porque en alguna maquina usted use Window y no quiere que se le ponga en primer lugar Linux (lo cual tendría que arreglar otra vez con grub-customizer) u otra razón 

Instalar Kernel Realtime para 64 bits desde Debian repo

Si su ordenador usa 64 bits, poner en la terminal:
sudo apt-get install dkms linux-image-rt-amd64 linux-headers-rt-amd64

puede ver información de esos paquetes aquí:


Para desinstalar
Ponga en la terminal:

sudo apt-get remove linux-image-rt-amd64 linux-headers-rt-amd64

recuerde que esto no hace que los Kernel que usted tenía instalados se desinstalen

Instalando los paquetes del Kernel Real Time desde Synaptic

También si desea puede buscarlos uno por uno en Synaptic. Las siguientes capturas de pantalla son de MX Linux 21 de 32 bit:

linux-image-rt-686-pae


luego:

linux-headers-rt-686-pae


y:

dkms


la siguiente captura de pantalla es en synaptic viendo cómo se instala el Kernel Real Time en MX Linux 21:


Se demora bastantito.


2.2 opción - Compilar usted mismo el Kernel Real Time

Esto podría ser útil si usted tenga un ordenador de bajos recursos al que le quiera poner un Kernel que no tiene tantos drivers modernos incluidos, o sea un Kernel más liviano (más viejo), como dice el dicho: "La cosa es probando", pruébelo a ver cómo le va, además de que con los Kernel modernos puede que algo de su hardware no funcione, ejemplo el lector de tarjestas SD u otro lo cual sí debería funcionar con un Kernel viejo, vea:


También podría querer compilar usted mismo el Kernel para personalizarlo, ejemplo yo generalmente le desabilito los módulos la máquina virtual Guest y Host ya que no voy a usar el Sistema en ninguno de los dos casos 

Instalar los paquetes para usar Jack Audio Connection Kit (JACK)

Ahora si, después de ya instalado un Kernel RT, la siguiente lista de paquetes que debemos de instalar es para una Distro basada en Debian (no se si todos funcionarán en alguna Distro basada en Ubuntu pero pueden probar). 

Los siguientes son los paquetes más usuales para usar con JACK, Ud. copie de una sola vez las siguientes tres lineas y póngalas en la terminal:

sudo apt install ardour pulseaudio-module-jack qjackctl mediainfo-gui \
calf-plugins amb-plugins tap-plugins fluid-soundfont-gm \
dssi-host-jack dssi-utils pavucontrol a2jmidid qsynth vmpk \      jack-keyboard jack-tools meterbridge jackd2-firewire git muse

De ENTER y siga los pasos:


Nota: Usen un editor de texto que les guste, aquí verán a Gedit algunas veces.

Configuración de jackd2

Cuando empiece la instalación habrá un momento en que puede que le aparecerá así:


póngale que si de acuerdo donde esté con las flechas del teclado y luego de ENTER

aunque también puede aparecerle así:

Como sea siga las instrucciones.

Ahora bien, si por un caso se confundió y aplastó ENTER en "No" o no Marcó la instrucción y no se configuró el sistema con RealTime pues vuelva a intentarlo, para eso ponga en la terminal este comando:

sudo dpkg-reconfigure -p high jackd2


y allí si confírmelo.

 

Nota: Antes aquí yo tenía una sección donde explicaba cómo hacer una verificación del grupo de audio cuando se instala el Kernel en Tiempo Real, pero la he quitado debido a que en los Sistemas Operativos Linux eso ya viene configurado al hacer la instalación, pero lo he dejado como consulta aquí.

Reiniciar y debe elegir el Kernel Real Time, aquí les dejo un video:

VIDEO:
El siguiente es un video que hice de cómo elegí en el Grub al Kernel RT al reiniciar el ordenador:



Si por un caso no se vea sincronizado el audio con el video mejor abran el video aparte:

Eligiendo el Kernel Real Time en MX 19
https://youtu.be/kN_jFjBW21U

Posibles problemas (Solución instalar un Kernel antiguo y dejarlo seleccionado para iniciar, con grub-customizer)

No debería haber ningún problema, pero MX Linux como las demás distribuciones también como Ubuntu, envian  frecuentemente nuevos kernels, y si ustedes instalan alguno de los nuevos puede ser que alguno de ellos le cause algún problema como por ejemplo lo que les explicaba en el video que no me quería coger la Memoria SD. En ese caso puede usar alguna de las versiones anteriores del Kernel que les funcionaba bien, para ello pueden usar grub-customizer para elegir el Kernel que necesiten

La siguietne captura de pantalla es después de instalr el Kernel Real Time de los repositorios de Debian en MX Linux 21 visto en Grub-Customizer


Nota: Cuando le envien actualizaciones y usted además actualice el Kernel se moverán las cosas en grub-customizer así que debe abrirlo y arreglar todo como quiere que funcione (si desea puede poner Windows al final y luego el Kernel de Linux Real Time o como usted desee)

pero les cuento que ese Kernel 5.10.0-28 en el ordenador de escritorio que armé con la tarjeta madre que me regaló mi primo Paco información de la misma la cual se puede conocer poniendo en una terminal:

sudo dmidecode -t 2

y me da:


con lo cual sé que es una:

ASUSTek Computer INC. LEONITE Version: 5.00 Serial Number: MS1C6CS29109829

les cuento que a veces al encender el ordenador y en el grub al elegir ese Kernel 5.10.0-28 a veces se cuelga y no se puede poner la contraseña para entrar. Pero el otro Kernel 5.6 de AV Linux el que yo compilé siempre va bien, nunca se cuelga esta PC, será porque es muy muy vieja y es más compatibole el Kernel 5.6, por tal motivo mejor pongo que se inicie el Kernel de Trulan en Grub-ustomizer:


así cuando inicie no tendré que perder tiempo buscando al Kernel de Trulan (Si fuera la primera vez que usted instala Grub-Customizer es posible tenga que buscar en: "Advanced options . . ." el Kernel de Trulan). Lo que les quiero decir es que deben usar un Kernel que funcione bien en sus máquinas.


¿Cómo saber cuál Kernel estoy usando?

Ponga en la terminal:

uname -r

a mi me devuelve en el caso de estar usando el Kernel RT de los repositorios de Debian:

para este tutorial usted ya debe estar usando el Kernel Real Time que haya instalado.

Verificar "real-time priority" y "memlock"

Para verificar si las aplicaciones del grupo audio tienen prioridad en tiempo real  95 y si el tamaño máximo que se puede bloquear en la memoria es infinito, esto significa que las aplicaciones de audio tendrán prioridad en tiempo real y pueden usar toda la memoria que quieran con prioridad sobre cualquier otra aplicación incluso si usted no se tiene cuidado se podría congelar el sistema operativo si no tiene mucha memoria el ordenador -hay que cuidad no tener aplicaciones innecesarias abiertas en ordenadores que no tengan mucha memoria- ponga en la terminal:

ulimit -r -l

debe darle un resultado como este:



si les sale cero en "real-time priority" y si en "max locked memory" no le aparece "unlimited" y les aparece algún número es que está mal configurado, lo cual significaría que usted se equivocó en algún paso.


Checkeando la configuración de Audio en Tiempo Real

El siguiente es un programa creado por raboof para ver si todo está configurado bien para el audio en tiempo real:

raboof/realtimeconfigquickscan: Linux configuration checker for systems to be used for real-time audio
https://github.com/raboof/realtimeconfigquickscan

se llama realtimeconfigquickscan, para instalarlo primero necesitamos instalar la siguiente dependencia:

sudo apt install perl-tk

Nota: Es posible que les pida instalar algo más, eso se vería en la terminal en algún mensaje de error y allí tendrían que copiar partes de lo que dice y buscar en Google la solución del paquete que faltaría (espero no pase, aunque no creo que eso pase)


realtimeconfigquickscan en AV Linux (AVL-MXE)


esto estaba en:

MX Tools / RT Diagnostic

y como ven en la imagen todas las opciones están activadas (en verde):


Checking if you are root  no good
CWecking filesystem 'noatime' parameter    5.9.1 kernel
good
Checking CPU Governors  CPU O: 'performance' CPU 1: 'performance'
good
Checking swappiness  10
good
Checking for resource-intensive background processes none found
good
Checking checking sysctl inotify max_user_watches  >= 524288 good
Checking access to the high precision event timer   readable
good
Checking access to the real-time clock    readable
good
Checking whether you're in the 'audio' group    yes
good
Checking for multiple 'audio' groups   no
good
Checking the ability to prioritize processes with chrt  yes
good
Checking kernel support for high resolution timers   found
good
Kernel with Real-Time Preemption    found
good
Checking if kernel system timer is high-resolution   found
good
Checking kernel support for tickless timer   found
good


así que eso mismo es lo que vamos a hacer nosotros.


Bien, en una carpeta o si no tiene una para esto cree una y dentro abra una termina y allí hay que poner  uno por uno los siguientes tres comandos (vamos a instalar un Fork que yo hice del programa de raboof, donde lo único que añadí fue un lanzador):

git clone https://github.com/wachin/realtimeconfigquickscan
cd realtimeconfigquickscan
perl ./QuickScan.pl

y este es el resultado en MX Linux 21 de 32 bits:



Nota: Luego en otra ocación cuando ustedes ya hayan apagado el ordenador y lo vuelvan a encender para lanzar este programa deberán entrar otra vez en la carpeta del programa (donde sea que la haya puesto) y desde allí lanzarlo, sería así:

cd realtimeconfigquickscan
perl ./QuickScan.pl



o también pueden usar un lanzador que he creado para abrirlo con facilidad (está allí mismo, es lo único que he añadido al fork que hice de raboof), en Dolphin funciona:



en Thunar deberán añadir primero el poder abrir los archivos .sh con bash eso se hace con clic derecho.

Verificaciones por realizar

Veo que me faltaban estos tres:

checking cpu governors
checking swappiness
checking sysctl inotify max_user_watches

porque dice allí: "not good"

Nota: Si en algún Kernel les aparece: "Checking the ability to priorize processes with chrt" esto después de configurar lo siguiente desaparece cuando uno ha reiniciado el ordenador.

Checking cpu governor

Aquí les pondré una parte de una lectura:



Traducción posible:

Si su CPU admite el escalado de frecuencia y el gobernador de escalado de frecuencia de la CPU está configurado a demanda (que es el valor predeterminado en muchas distribuciones), podría encontrarse con xruns. El gobernador bajo demanda escala la frecuencia de acuerdo con la carga de la CPU, cuanto mayor sea la carga, mayor será la frecuencia. Pero esto está sucediendo independientemente de la carga de DSP en su sistema, por lo que podría suceder que la carga de DSP aumente repentinamente, por ejemplo, exigiendo más potencia de CPU, y que el daemon de escala se active demasiado tarde, lo que resultará en xruns porque la carga de DSP alcanza su máximo. Una solución sería usar un daemon de escalado de frecuencia de CPU que escala la frecuencia de acuerdo con la carga de DSP en su sistema como jackfreqd o simplemente deshabilitar el escalado de frecuencia de CPU por completo. Esto último se puede lograr configurando el regulador de escala en rendimiento.
esto quiere decir que como la CPU está configurada por defecto a demanda tendrá un bajo consumo de energía y creará eventos de latencia larga que producirán xruns (ruidos), para evitar esto hay establecer la CPU en configuración performance (rendimiento), le dejo dos opciones posibles, debe leer ambas para entender todo:

Cambiar cpu governor desde la configuración del sistema a performance y dejar el cambio permanente

Haremos uso de una aplicación que viene instalada por defecto en MX Linux y que me supongo que en otros Linux también, se llama: cpufrequtils y se puede ver en Synaptic instalada:



En caso de que no esté intalado instálelo desde Synaptic o desde la terminal:

sudo apt install cpufrequtils

Ahora debo editar el archivo de configuración, para hacer esto usaré Gedit (usted puede usar otro, o también nano si su Sistema Linux no les dejara usar el editor de Texto al elevar los privilegios -pero nano es dificil de usar- deberá cambiarlo allí), pongo en la terminal:

sudo gedit /etc/init.d/cpufrequtils
 
con teatherpad:
 
sudo featherpad /etc/init.d/cpufrequtils
 
 con Geany:
 
sudo geany /etc/init.d/cpufrequtils
 

con nano

sudo nano /etc/init.d/cpufrequtils

 
Si no sabe usar nano vea este tutorial.
 
es una aplicación que sirve para configurar el desempeño del procesador de su ordenador, y debo de cambiar en:

GOVERNOR="ondemand"


por:

GOVERNOR="performance"

así:



guardar y cerrar

Reiniciar aquí si quiere ver los cambios ya o sino reiniciar después


Cambiar cpu governor con cpupower-gui (OPCIONAL, no queda permanente el cambio)

Si ustedes por ejemplo usen una laptop y quieran usarla y ahorrar batería seía bueno que no usen el método de arriba sino que lo dejen como está y que instalen esta aplicación la cual es una interfaz gráfica, y se puede elegir cualquier modo del gobernador del cpu, pero no queda guardado el cambio. 

Para instalar:

sudo apt install cpupower-gui

Una vez instalado busque entre sus aplicaciones a:

cpupower-gui



abralo, y elija uno de los modos que necesite, en este caso performance:




Performance signfica que su procesador estará trabajando en su maxima capacidad, y lo unico que si usted usa esta configuración en una laptop en la cual use la batería esto hará que se descague más rápido de lo normal

Les cuento que en mi ordenador de escritorio yo he usado el primer método y he dejado permanentemente al cpu en modo performance. 

Por defecto el Gobernador de la CPU está en:
 
Ondemand 

 
Por todo se pueden manejar los siguientes perfiles: 

powersave
conservative
userspace
ondemand
performance
schedutil
 
 
Con esta herramienta cpupower-gui tendremos una herramienta como la que viene o venía en AV Linux 2021:




 
también les pido que lean la siguiente traducción pues importante saber lo siguiente cuando usemos performance, tomado de:


How to get low latency audio
http://fernandoquiros.com/articles/131123-compile-linux-realtime-kernel/


cuya traducción vendría a ser:

. . . importante es ajustar Linux para evitar el escalado de la CPU porque cuando la CPU tiene un bajo consumo de energía, crea eventos de latencia larga que producirán xruns. Una opción es cambiar el gobernador del sistema a "performance". El procesador funcionará a máxima velocidad todo el tiempo y no se interrumpirán los procesos en tiempo real. La computadora se calentará más de lo normal, así que trate de mantenerla ventilada. Puede cambiar el "gobernador" usando "cpufrequtils".

Entonces según esta enseñanza, cuando usemos el ordenador o laptop en performance debemos cuidar de que esté bien ventilado para que no se caliente mucho

checking swappiness

Ahora debemos configurar el ordenador para evitar que en algún momento use la memoria swap, es decir que siempre use la memoria RAM y núnca use la SWAP, esto es porque si se usara la SWAP esta es más lenta y hará que la velocidad se reduzca y creará que se creen xruns o ruidos en JACK. Si usted tiene curiosidad usted leer sobre cómo ajustar la memoria virutal aquí.

Para ver qué valor de swappiness tiene por defecto su Sistema Operativo ponga en una terminal:

cat /proc/sys/vm/swappiness

me da 15



para que no se use la memoria SWAP debemos hacer que tenga 10 ese valor y para ello poner en la termial:

sudo gedit /etc/sysctl.conf
 
con Feahterpad
 
sudo featherpad /etc/sysctl.conf
 
 con Geany
 
sudo geany /etc/sysctl.conf
 
 con nano 
 
sudo nano /etc/sysctl.conf
 
allí se abrirá, y vaya hasta el final:



allí añada la siguiente línea:

vm.swappiness = 10

le deberá quedar así:



guarde y deje abierto

sysctl inotify max_user_watches

A continuación voy a poner la imagen de arriga de AV Linux (AVL-MXE) para que vean el valor que tiene por defecto:



Listen utiliza inotify de forma predeterminada en Linux para monitorear los directorios en busca de cambios, para saber qué valor está en nuestro ordenador debemos poner en una terminal:

cat /proc/sys/fs/inotify/max_user_watches

en MX Linux 21 de 32 bits me da:

8192



Está configurado por defecto un límite del sistema Linux en la cantidad de archivos que puede monitorear. Por ejemplo, el límite de notificación que vemos está establecido en 8192 en MX Linux

Para cambiar el valor en el sistema operativo y dejarlo como AV Linux a 524288 debemos poner en el archivo que dejamos abierto, al final, la siguiente línea:


fs.inotify.max_user_watches = 524288





guarde y cierre

luego poner en una terminal

sudo sysctl -p

me devuelve:


lo cual significa que está bien.

REINICIE EL ORDENADOR

Si tiene curiosidad y desea leer más al respeto puede leer (usar el traductor de google):

Increasing the amount of inotify watchers
https://gist.github.com/ntamvl/7c41acee650d376863fd940b99da836f

 Generic Kernel users: How low can you go, and under what load
https://forum.cockos.com/showpost.php?s=380ff3a18229522dd58c72a4e829e674&p=2464865&postcount=6

https://forum.cockos.com/showthread.php?t=255727



Escaneando la configuración Real Time en mi Ordenador

Ahora si estando en la terminal en el lugar (sea cual sea) donde tengo a realtimeconfigquickscan pongo el comando y lo lanzo (o si lo tenía usted abierto sólo de clic en start):

perl ./QuickScan.pl

y al dar clic en start me aparece todo verde (Recuerden que para que sean reconocidos los cambios que hemos hemo hay que reiniciar y elegir el Kernel Real Time en las opciones Avanzadas del Grub, de lo contrario nunca aparecerán verdes las opciones que hemos configurado)

Nota: La siguiente captura de pantalla es en mi ordenador:

ASUSTek Computer INC. LEONITE Version: 5.00 Serial Number: MS1C6CS29109829

que pude armar gracias a que mi primo Paco me relagó esa Mainboard


La siguiente captura de pantalla es el chequeo del QuickScan en el Kernel 5.10.0-28-rt-686-pae de los repositorios de Debian en MX Linux 21 tomada el 14 de marzo del 2024 en el mismo ordenador que pude armar gracias a que mi primo Paco me regaló esa Mainboard :

ASUSTek Computer INC. LEONITE Version: 5.00 Serial Number: MS1C6CS29109829


está con las mismas configuraciones de arriba, no se porqué dice que está configurado sin usar la SWAP en todo caso dice que está bien.

Configurar QjackCtl para que cargue los módulos de  Pulseaudio Jack con pajackonnect

AV Linux usa un script para ejecutar Jack juntamente con Pulseaudio en QjackCtl, aquí les muestro una captura de pantalla que hice en AV Linux la versión AVL-MXE de 32 bits del 2021:

QjackCtl / Setup / Options

 

donde están las siguientes instrucciones a ejecutar:

/usr/bin/pajackconnect start && a2jmidid -e &
/usr/bin/pajackconnect stop &
/usr/bin/pajackconnect reset &
 

esto quiere decir que el ejecutable está en:

usr/bin/pajackconnect


este script lo creó orignalmente Lawrence D'Oliveiro y continúa su desarrollo Hermann (brummer10) 

Dependencias de pajackconnect

Es necesario tener instalado lo siguiente (lo pongo aunque ya lo habíamos instalado arriba para que sepan que hace este paquete):

sudo apt install a2jmidid

Instalando el script pajackconnect

Para instalar en su ordenador el script, le recomiendo que abra una terminal dentro de alguna carpeta en su HOME en la que tenga una carpeta para poder instaladores o aplicaciones de Linux, y  ponga de una sola vez en la terminal las cuatro líneas siguientes:

wget https://github.com/brummer10/pajackconnect/archive/refs/tags/v1.0.tar.gz
tar xf v1.0.tar.gz
cd pajackconnect-1.0
sudo cp pajackconnect /usr/bin


ponga su password y se instalará pajaconnect en /usr/bin 


puede cerrar la terminal si lo desea, o poner cd .. para ir al directorio anterior o cd para ir al principio al inicio a HOME

también puede borrar es carpeta pues ya no la necesitamos

Nota: Instalo esa versión del 2022 https://github.com/brummer10/pajackconnect/releases/tag/v1.0 porque es la que más se acerca a la fecha de liberación de MX Linux 21 https://es.wikipedia.org/wiki/MX_Linux#Lanzamientos demás de que es la unica que está en Releases al menos por el momento (me imagino que esta ha de ser una liberación estable)

Integrando el script pajackconnect a QjackCtl

Abra QjackCtl y de clic en "Setup ..":


de clic en:

Opciones

y marque las siguientes tres casillas:


y allí añada en cada una de ellas las siguientes tres líneas:

/usr/bin/pajackconnect start && a2jmidid -e &
/usr/bin/pajackconnect stop &
/usr/bin/pajackconnect reset &

debe quedarle así:


y cierre
 
Ahora si ya lo tenemos instalado y configurado.

Configurando MIDI en QjackCtl

En QjackCtl clic en Setup:



en seq:



por cierto se fijará que en la latencia dice:

n/d




o sea no definido, para que nos muestre la latencia a la que estamos debemos escoger los valores de:

Frecuencia de muestreo: 48000
Cuadros / Periodo: 1024

que son los valores de AV Linux 2021


me da de latencia 64 mili segundos, o sea ese es el retardo. Dar clic en Aceptar y Aplicar

Sobre la Frecuencia de muestreo

En la Frecuencia de muestreo le puse 48000, pero si usted en su sistema usa audios a 44100 pongale mejor a esa frecuencia para que los programas ejemplo Ardour no tengan que convertir de una frecuencia a otra pues eso lleva tiempo, para ver qué frecuencia de muestreo tiene su audio dele clic derecho y abralo con Mediainfo:


y verá:


o sean este caso le pongo 44100:



porque voy a cargar esos archivos ejemplo en Ardour

Otras maneras de conectar los modulos de Pulseaudio Jack

Aquí antes tenía otras maneras de hacerlo funcionar sin usar pajackconnect pero las saqué pues ya no son necesarias, pero si usted las desea revisarlas, las puse en un documento en Google Drive:
 
 

Si son curiosos con la configuración del Driver MIDI a seq

Si desean saber por qué en "Driver MIDI" le puse "seq", encontré en un foro de musescore lo siguiente:


la traducción es:
Hola,
Utilizo jackd para mis programas de música.
Tengo un teclado midi usb (Korg nanoKEY2).
En qjackctl, no puedo conectarlo a MuseScore para ingresar notas. De hecho, el teclado midi aparece en la pestaña "Alsa", mientras que MuseScore aparece en la pestaña "midi".
Entonces, no puedo conectar el teclado a MuseScore.
¿Cómo le va en este caso?
Mi versión de Musescore es 2.0 y mi sistema operativo es Ubuntu 14.04.


la mejor respuesta:

Just in case anyone comes across this issue: I was experiencing the same problem with MuseScore 3.1. I solved it by setting the MIDI driver to 'seq', then in the ALSA tab in the Connections dialog I connected my MIDI keyboard to MIDI Through, and then in the MIDI tab I connected system to mscore. See images below:



la traducción sería:

En caso de que alguien se encuentre con este problema: estaba experimentando el mismo problema con MuseScore 3.1. Lo resolví configurando el controlador MIDI en 'seq', luego en la pestaña ALSA en el cuadro de diálogo Conexiones conecté mi teclado MIDI a MIDI Through, y luego en la pestaña MIDI conecté el sistema a mscore


Nota: Las cosas aparecen el na pestaña MIDI porque está instalado el paquete a2jmidid.

ahora si, ya tiene QjackCtl configurado como en AV Linux ALV-MXE 2021


La nueva interfaz gráfica de las Conexiones en QjackCtl

Al abrir QjackCtl y dar clic en Play y clic en el botón Graph en estas imagenes ven la interfaz nueva que por defecto viene desde MX Linux 19:



pero yo no lo uso, porque no lo se usar. Si ustedes lo saben usar usenlo, yo uso la anterior (hay más tutoriales con esa), así que para desactivarla y usar la antigua, de clic en el botón:

Setup

y clic en el botón "otras" y desmarque:

Replace Connections with Graph button


 
Aplicar y cerrar 
 
Ahora si aparece:



Nota:
 Si desean usar la anterior reviertan lo que hicimos.


Inciando QjackCtl

Sólo dele Play:




Consejo: No suspenda su ordenador si está usando JACK con QjackCtl

Por cierto les cuento que pajackconnect trae cómo instalar un script para que funcione bien JACK en QjackCtl después de haber Suspendido el ordenador:



pero ya intenté y no funciona, por eso lo mejor es no Suspender el ordenador si está usando JACK con QjackCtl en esta instalación que estámos haciendo usando pajackconnect (si lo desea suspender, detenga QjackCtl en Stop y allí si suspenda, y cuando saque de suspensión al ordenador y lo quiera volver a usar dele Play otra vez)

Al respecto de esto pueden leer lo que yo estaba escribiendo en el siguiente enlace:

https://docs.google.com/document/d/1rZqdpbVrnweaP-ZUCc-OJFaIIoe8qmh25HBZ5RgXIVg/edit?usp=sharing



Consejos para dar Play a QjackCtl

Como les decía lo mejor es reiniciar el ordenador para que al dar Play aparezca el modulo pulseaudio Jack como debería ser. Cuando haya hecho login allí si dar Play (Iniciar):

y correcto, como verá en la siguiente figura está todo funcionando bien:


los módulos de PulseAudio están cargados y funcionando correctamente, puedo verificar también cómo va el funcionamiento en ·Mensajes·:

Esto en mi caso, como les decía, ustedes en frecuencia de muestreo podrían usar lo que viene por defecto 48000 y en el Tamaño del Buffer yo le cambié de la que venía por de fecto y tengo 128 porque quiero usarlo para hacer Karaoke y que cuando yo cante me pueda escuchar en los parlantes de esta laptop al mismo tiempo que yo cante (solo que a veces aparece un mensaje del disco duro que dice que se ha relentizado la escritura, bueno, para mejorar eso usaré luego un disco de estado sólido que es más rapido). 

Al abrir Ardour elejir JACK

Cuando usted abra Ardour y lo esté configurando de clic en:

Sistema de audio

y cambie :

ALSA



 

por JACK (se supone que usted ya le ha dado Play a QjackCtl para poder hacer esto), así:


y clic en:

Connect to JACK



listo

Instalar los plugins de audio de UbuntuStudio

Ponga en la terminal de una sola vez todas las siguientes siete lineas y de ENTER:

sudo apt install abgate aeolus amb-plugins autotalent blepvco calf-plugins \
caps cmt csladspa drumkv1 dssi-host-jack dssi-utils eq10q fil-plugins \
fluidsynth-dssi foo-yc20 ghostess hexter invada-studio-plugins-ladspa \
invada-studio-plugins-lv2 ir.lv2 jconvolver lv2vocoder mcp-plugins mda-lv2 \
omins rev-plugins rubberband-ladspa samplv1 swh-lv2 swh-plugins synthv1 \
tap-plugins vco-plugins vocproc wah-plugins whysynth x42-plugins zita-at1 \
zita-lrx zita-mu1 zita-resampler zita-rev1

Nota: De esta lista a blop porque desinstala Audacity. Esta lista la he probado en MX Linux 19 y 21, en caso que en una versión superior algún paquete cause alguna molestia deben quitarlo (o en otro tipo de Linux) 

y eso los instalará:

 Nota: Hice un tutorial aparte sobre cómo obtuve esta lista

Escanear los plugins

Estos plugins los necesito para Ardour, si ya había abierto Ardour y había escaneado los plugins, vuelvalos a escanear así, clic en:

Editar/Preferencias


 allí clic en:

Plugins/Escanear plugins

para salir de esa sección a la anterior de clic en "Editor"

Para añadir los plugins 

den clic en: 

Ver/Mostrar Mezclador en Editor


Antes de añadir el plugin seleccione la pista en la que lo quiere añadir, ejemplo yo tengo tres pistas cargadas y lo voy a añadir en la segunda, hay que dar clic donde indica la flecha:


ahora si, allí en "Fader" los puede buscar por autor o por categoría y añadir:



Xruns - Overruns

Lo siguiente es de:

JACK Audio Connection Kit
http://adrjork.altervista.org/linuxtricks/JackTutorial_64studio.pdf


la traducción sería:

"Durante las sesiones de grabación, el botón de Mensajes en Qjackctl puede reportar xruns. Los Xruns son básicamente un indicaciones de que mientras Jack se está ejecutando algo se interpone en el camino de que funcione correctamente y se vuelve incapaz de hacer frente al flujo de datos lo cual causa perdidas en el sonido."

Cómo reducir los Xruns

Mire los parámetros por defecto en QjackCtl



aquí la recorto para ver mejor:



Para disminuir la aparición de Xruns pruebe lo siguiente hasta lograr el mejor resultado:

Tamaño o dimensión del Búfer

 Por defecto los "Cuadros / Periodo " están a "1024", cuanto menor sea el tamaño del búfer menor será la latencia (es decir menor será el retardo del audio que fluye entre una aplicación a otra o dispositivo de audio como un parlante o micrófono) y mayor será el uso de recursos computacionales, pero esto podría causar una pérdida de calidad en la señal, el recorte o la pérdida de fragmentos de audio (Xruns)

Hay las opciones según sea la capacidad de manejar audio de su ordenador podrá encontrar el mejor compromiso entre la calidad de audio/uso de recursos/tiempo de latencia con los valores disponibles:

2048
1024 (por defecto)
512
256
128

Además cabe indicar que en ordenadores especializados para audio (más caros) se puede bajar más la latencia sin que aparezcan tantos Xruns. En mi caso en mi laptop Dell Inspiron 1750 no le puedo bajar mucho la latencia porque me aparecen muchos Xruns, lo maximo que he podido es a 128 para escuchar mi propia voz como retorno en tiempo real pero esto usando el Kernel de AV Linux de Trulan).

Periodos / Búfer en AV Linux

En el Sistema Operaivo MX Linux cuando uno termina de instalar JACK el número de buffers de audio de QJackCtl por defecto está en "2, en AV Linux AVL-MXE 2021 está en 3:


yo también le pongo en 3. En las siguientes imágenes vean el antes:


y el después:


como ven ahora tiene 8.71 mseg así como en AVL-MXE


Reduzca el número de clientes Jack conectados en su Patchbay.- Patchbay sirve para que al darle clic a ese botón se puede automatizar las conexiones entre diferentes puertos de audio se hagan, entiendo que entre menos conexiones con este menos xruns, yo uso pocas.

Matar procesos que no necesitas.- Es decir cerrar programas que no necesite, ejemplo no vamos a dejar abierto Firefox si no lo estuvieramos usando (u otro programa, y creo que lo mejor es dejarlos cerrados).

Estas respuestas están basada en la traducción y mejora de estas dos consultas:

Multimedia/Audio/Jack - Wiki di ubuntu-it
https://wiki.ubuntu-it.org/Multimedia/Audio/Jack

Ajustes de buffer de audio
https://steinberg.help/cubase_elements_le_ai/v9.5/es/cubase_nuendo/topics/optimizing/settings_audio_buffer_c.html
 

Reducir XRUN Desabilitando el WIFI
Además estaba leyendo en la documentación de KXstudio donde dice acerca de desactivar el Wifi, y he hecho la prueba y es verdad, miren la siguiente imágen de mi laptop donde tengo internet con el Wifi:



Si desean para ver mejor esta imagen ábranla en una pestaña aparte (con clic derecho encima de la imágen).


En la siguiente imágen les he hecho los calculos:



los resultados son 15 Xruns en 15 minutos.

En la siguiente imágen está mi laptop conectada al cable de red y tengo desactivado el Wifi:



y aquí los calculos:


resultado, 5 Xruns en 19 minutos, lo cual es muy bueno comparado con el otro resultado.

Usar audios de la misma tasa de muestreo o sample rate.- Allí también dice sobre el usar el mismo para los audios que uno use, ejemplo en mi caso yo siempre uso: 44100 Hz



por lo tanto los audios que use siempre deberán estar con esa frecuencia o tasa de muestreo. La siguiente imágen es de un audio visto en Mediainfo:




44.1 Khz es igual a 44100 Hz

Todos los audios que yo use o produzca deben estar así, pero esto es sólo en mi caso, usted de acuerdo a los requerimientos que tenga

Minimizar Xruns usando dispositivos MIDI

También en el blog desdelinux dice que para trabajar con MIDI dice sobre:

https://blog.desdelinux.net/introduccion-a-jack-audio-connection-kit/



aumentar el límite de tiempo, pero aquí les pongo una imagen de AV Linux AVL-MXE 2021 en el botón "Advanced":


tiene en: "Timeout (msec): 500", si en algún momento tuvieramos algún xrun le podemos poner 500 o sino más, como dice arriba hasta 2000

 

Cómo conectar dispositivos MIDI y que sean reconocidos por JACK

Para eso es necesario tener instalado el programa a2jmidid el que ya instalamos arriba:

sudo apt install a2jmidid

si usted ha usado el script pajackconnect que se usa en AV Linux (que se menciona arriba) omita este paso de poner en la terminal:

a2jmidid


ahora, en la pestaña "MIDI" de QjackCtl están los puertos disponibles, ejemplo la siguiente imagen:


ahora vamos a conectar un teclado virtual, cuyo paquete ya lo instalamos arriba, pero si tal vez necesite el comando de instalación es:

sudo apt install jack-keyboard

lo siguiente sería así mismo como pasaría con un teclado real, es para poder hacer un simulacro de cómo se haría en la vida real, pues cuando usted conecte un teclado de verdad aparecerá en esa pestaña. Para abrir ese programa ponga en una terminal:

jack-keyboard

o busquelo entre todos sus programas. En la siguiente imagen está en xfce4-appfinder:



y aquí el programa:



Además tenemos que abrir a Qsynth (ya lo instalamos arriba) pero si necesita el comando para instalar es:

sudo apt install qsynth

donde he cargado una fuente de Sonido sf2, la cual ya habíamos instalado arriba, pero si necesita el comando es:

sudo apt install fluid-soundfont-gm

las fuentes se instalan en:

/usr/share/sounds/sf2


esa fuente de sonido es para que me proporcione los Instrumentos virtuales y poder reproducirlos y escucharlos al cargarlos en Qsynth.

Nota: También puede cargar otras fuentes de sonido

Cargando la fuente de sonido en Qsynth

Si usted no sabe cómo cargar una, se hace así (aparecerán porque a hemos instalado), se abre Qsynth y clic en "Configuracion":


y clic en la pestaña "Soundfont" en el botón "Abrir":



se busca la fuente de sonido, esa aparecerá allí:


y después de darle clic se da clic en "Abrir"



y clic en Aceptar:



y hay que reiniciar el motor:



y está cargada las fuente de sonido


Conectando jack-keyboard con Qsynth

Ahora en la pestaña MIDI de QjackCtl tenemos esto y de clic como allí está la explicación:


ahora quedará así:


de clic en el puerto de salida del Teclado Virtual "midi_out" (allí apareería si fuera uno de verdad) y clic en "FLUID Synth . . . . . " y clic derecho y Conectar:


y quedará así:


ahora si toque en el Teclado Virutal y verá que suena, pero también se puede usar el teclado de su Ordenador

Otras Fuentes de Sonido (sf2)

Puede buscar más en (deberá ponerlas en alguna carpeta como puede ser la de Música y desde Qsynth buscar allí la que necesite):

Fuentes de sonido (SoundFonts) gratis desde paquetes de Ubuntu, Debian, Deepin Linux y TuxGuitar - Listos para usar
https://facilitarelsoftwarelibre.blogspot.com/2019/11/fuentes-de-sonido-soundfonts-gratuitas.html


 

VirtualMIDISynth | CoolSoft
http://coolsoft.altervista.org/en/virtualmidisynth#soundfonts



Configurar QjackCtl para hacer Estereo Mix (Opcional)

Lo siguiente es para lo cual yo uso QjackCtl en la mayoría de las veces, para esto hay que abrir QjackCtl y de clic en "Setup":


por defecto me aparece así:

Nota: La latencia está en 42.7 mseg


Frecuencia de muestreo a 44100 (opcional)

La mayoría de los audios que manejo yo son están en 44100, y ese valor le voy a poner (en mi caso en particular solamente). Pero esto es opcional, todo depende de lo que usted vaya a hacer, puede dejarlo como estaba en 48000

Cómo hacer Estereo Mix

Quiero usar Jack para hacer Estereo Mix pues lo quiero para usarlo como Karaoke y escuchar al mismo tiempo el audio que estoy cantando en los parlantes además de hacer una grabación en video de todo ello o sólo audio, por lo cual le pondré en "Cuadros / Periodos" el valor de 128

Dios les bendiga


RESPALDO DE LAS CONFIGURACIONES DE AV LINUX

He hecho un respaldo de las configuraciones más importantes de AVL Linux del Release del 2021 aquí:

https://github.com/wachin/AV-Linux-archivos-importantes/tree/master/AVL-MXE-2021.05.22-xfce4-openbox-i386.iso



CONSULTAS:

PulseAudio Modules
https://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/Modules/

Linux HOWTO: Pulseaudio & Jack server
https://forum.renoise.com/t/linux-howto-pulseaudio-jack-server/41434

Configuring the real-time access for "audio" group users and applications
https://help.ubuntu.com/community/UbuntuStudioPreparation

Ubuntu Studio PackageList
https://wiki.ubuntu.com/UbuntuStudio/PackageList

Ubuntu Studio low latency kernel
https://askubuntu.com/questions/758106/ubuntu-studio-low-latency-kernel

Installing Geonkick broke my QJackCtl/pulseaudio-module-jack setup for some unknown reason : linuxaudio
https://www.reddit.com/r/linuxaudio/comments/is37tj/installing_geonkick_broke_my/

QjackCtl and the Patchbay | rncbc.org
https://www.rncbc.org/drupal/node/76

Using JACK for lower-latency audio on Linux for piano practice
https://kcore.org/2021/02/21/midi-jackd-linux/

Ejemplo de grabación de audio bajo GNU/Linux
https://aerilon.wordpress.com/2012/04/23/ejemplo-de-grabacion-de-audio-bajo-gnulinux/



Comentarios