Producción de Audio en Debian 12

Esta configuración es la que actualmente estoy usando y la considero bastante estable.

Sin duda alguna la última actualización de Debian ha sido excelente y la mejor en muchos años, y con esta guía espero dejar documentado l proceso de configuración de mi estación de producción de audio en Debian 12.

Actualización del Sistema

Antes de iniciar vamos a activar contrib en el repositorio:

sudo sed -i '/^deb /s/$/ contrib/' /etc/apt/sources.list

Luego se procesde a realizar una actualización completa del sistema:

sudo apt update && sudo apt upgrade -y

Se instalan un par de dependencias que se usaran en este tutorial:

sudo apt wget curl -y

Install Liquorix kernel

Para más información dirijase a https://liquorix.net/

sudo apt install curl -y
curl 'https://liquorix.net/add-liquorix-repo.sh' | sudo bash

Reiniciar

Pipewire

Se instala el software requerido

sudo apt install pipewire pipewire-alsa pipewire-audio pipewire-audio-client-libraries pipewire-jack pipewire-pulse libspa-0.2-jack wireplumber -y

Luego se necesita habilitar WirePlumber en systemd ejecutando el siguiente comando como usuario (NO como root):

systemctl --user --now enable wireplumber.service

JACK con pipewire

Básicamente lo que se debe hacer acá es decirle a los programas que usan JACK que de ahora en adelante van a usar Pipewire JACK.

sudo cp /usr/share/doc/pipewire/examples/ld.so.conf.d/pipewire-jack-*.conf /etc/ld.so.conf.d/

y luego ejecutar el comando

sudo ldconfig

Revisar si el pipewire esta cargado

Es momento de reinicar y probar si todo está cargado

PulseAudio

LANG=C pactl info | grep '^Server Name'

ALSA

LANG=C aplay -L | grep -A 1 default

PW-TOP

Con el comando pw-top podemos ver todo lo que se está conectando a pipewire

pw-top

Latencia para los clientes de Jack en PipeWire

Se copia y modifica el archivo /usr/share/pipewire/jack.conf en el directorio ~/.config/pipewire/, para lo cual se debe crear la carpeta pipewire en el ~/.config primero.

mkdir ~/.config/pipewire
cp /usr/share/pipewire/jack.conf ~/.config/pipewire
nano ~/.config/pipewire/jack.conf

En donde se modifica node.latency en la sección jack.properties y se pone el valor de la latencia. En el siguiente ejemplo esse usa 256ms y 48KHz:

# global properties for all jack clients
jack.properties = {
     #node.latency       = 1024/48000
     node.latency       = 256/48000
     #node.lock-quantum  = false
     #jack.show-monitor  = true
     #jack.merge-monitor = false
     #jack.short-name    = false
     #jack.filter-name   = false
     #
     # allow:           Don't restrict self connect requests
     # fail-external:   Fail self connect requests to external ports only
     # ignore-external: Ignore self connect requests to external ports only
     # fail-all:        Fail all self connect requests
     # ignore-all:      Ignore all self connect requests
     #jack.self-connect-mode = allow
     #jack.locked-process    = true
}

NOTA: Actualmente uso un pequeño script de python r_pw_latency el cual hace parte de shell-scripts:

CPU Governor Performance

Este paso consite en modificar el comando de arranque de GRUB para habilitar el modo performance CPU Governor, es decir modificar el /etc/default/grub y agregar la configuración:

sudo nano /etc/default/grub

y modificar la siguiente línea:

GRUB_CMDLINE_LINUX_DEFAULT="quiet"

convirtiendola en :

GRUB_CMDLINE_LINUX_DEFAULT="quiet threadirqs cpufreq.default_governor=performance"

Este es un comando que uso. Sólo usarlo una vez.

sudo sed -i 's/GRUB_CMDLINE_LINUX_DEFAULT="quiet"/GRUB_CMDLINE_LINUX_DEFAULT="quiet threadirqs cpufreq.default_governor=performance"/g' /etc/default/grub

Lo importante es que una vez realizado el cambio, se actualice el grub:

sudo update-grub

Modificar los límites

Un paso importante que debe hacerse en Manjaro es darle privilegios de tiempo real al grupo audio, lo cual se realiza en el archivo /etc/security/limits.conf . En caso de conocer más sobre la naturaleza de este paso puedes consultar la información publicada en al sitio web del proyecto jack.

sudo nano /etc/security/limits.d/audio.conf

Una vez acá, se procede a pegar las siguientes líneas de código.

# audio group
@audio           -       rtprio          90
@audio           -       memlock         unlimited

O se puede ejecutar el comando directo, si no se ha realizado la modificación antes:

echo '# audio group
@audio           -       rtprio          90
@audio           -       memlock         unlimited' | sudo tee -a /etc/security/limits.d/audio.conf

sysctl.conf

Esta configuración cambia la llamada swapiness (capacidad de intercambio de su sistema), o en otras palabras, el momento en que su sistema comienza a usar su swap (partición de intercambio). Esto se realiza creando el archivo /etc/sysctl.d/99-custom.conf. Ver Linux Audio - System Configuration para más información al respecto.

sudo nano /etc/sysctl.d/99-custom.conf

Una vez acá, se procede a pegar las siguientes líneas de código.

vm.swappiness=10
fs.inotify.max_user_watches=600000

O se puede ejecutar el comando directo, si no se ha realizado la modificación antes:

echo 'vm.swappiness=10
fs.inotify.max_user_watches=600000' | sudo tee /etc/sysctl.d/99-custom.conf

Una vez realizada la modificación, se aplican los cambios:

sudo sysctl --system

Usuario en el grupo de Audio

Crear el grupo de audio si no existe ya.

sudo groupadd audio

Agregar el usuario actual al grupo de audio:

sudo usermod -aG audio $USER

Repositorio KXStudio

Es momento de instalar algo de software de audio, y nada mejor que el repositorio de KXStudio el cual esta re-cargado de plugins y aplicaciones de audio profesional:

Activar el repositorio

sudo apt-get update
sudo apt-get install apt-transport-https gpgv wget
wget https://launchpad.net/~kxstudio-debian/+archive/kxstudio/+files/kxstudio-repos_11.1.0_all.deb
sudo dpkg -i kxstudio-repos_11.1.0_all.deb
sudo apt-get update && sudo apt-get upgrade -y
rm -rf kxstudio-repos_*.deb

Instalar el software

KXStudio permite instalar los plugins a través de Meta-Packages, y yo uso el de VST para ser más compatible con REAPER, además de instalar Carla:

sudo apt install kxstudio-meta-audio-plugins-vst carla

Software de audio en general

En general instalo este software de audio base:

sudo apt install ardour audacity soundconverter dragonfly-reverb lsp-plugins calf-plugins caps dpf-plugins tap-plugins zam-plugins eq10q ebumeter x42-plugins

REAPER

El siguiente código instalará REAPER en /opt/REAPER. Consulte la página oficial de descarga de REAPER y actualice el número de versión si es necesario, que al momento de hacer esta guía es 7.18:

wget -O reaper.tar.xz https://www.reaper.fm/files/7.x/reaper718_linux_x86_64.tar.xz
mkdir ./reaper
tar -C ./reaper -xf reaper.tar.xz
sudo ./reaper/reaper_linux_x86_64/install-reaper.sh --install /opt --integrate-desktop --usr-local-bin-symlink --quiet
rm -rf ./reaper
rm reaper.tar.xz

Para desinstalar, usar:

sudo sh /opt/REAPER/uninstall-reaper.sh

Wine

wine es requerido para poder usar los plugins VST de windows en Linux a través de yabridge. Favor referirse a WineHQ for Debian para información adicional.

sudo dpkg --add-architecture i386
sudo mkdir -pm755 /etc/apt/keyrings
sudo wget -O /etc/apt/keyrings/winehq-archive.key https://dl.winehq.org/wine-builds/winehq.key
sudo wget -NP /etc/apt/sources.list.d/ https://dl.winehq.org/wine-builds/debian/dists/bookworm/winehq-bookworm.sources
sudo apt update
sudo apt install --install-recommends winehq-stable -y

Yabridge

Puede encontrar instrucciones detalladas en el sitio web de Yabridge Cuando se ejecuta este script, es posible que haya una versión más reciente de yabridge disponible. Consulte la página de versiones y actualice el número de versión a continuación si es necesario, que al momento de hacer esta guía es 5.1.0:

wget -O yabridge.tar.gz https://github.com/robbert-vdh/yabridge/releases/download/5.1.0/yabridge-5.1.0.tar.gz
mkdir -p ~/.local/share
tar -C ~/.local/share -xavf yabridge.tar.gz
rm yabridge.tar.gz

Para poder acceder al programa, se debe agregar la ruta al .bashrc :

echo '' >> ~/.bash_aliases
echo '# Audio: yabridge path' >> ~/.bash_aliases
echo 'export PATH="$PATH:$HOME/.local/share/yabridge"' >> ~/.bash_aliases

Fuentes:


Gracias

¡Gracias a todos! Sus aportes lo hacen posible. Si desea ayudar y apoyarnos a crear mejor contenido, puede hacer su donativo a través de paypal:

Algunos derechos reservados

Compartir en Redes sociales

A continuación

ZSH en Debian/Ubuntu Linux

Instalar Virtualbox en Debian 12

Instalar QEMU en Linux

Relacionado


¿Músico?

Si desea conocer sobre mi actividad musical lo invito a que visite la página principal. Allí encontrará todo sobre mi música.