Servidor de audio PipeWire
Tutorial de Audio Avanzado: PipeWire en Arch Linux
Actualizado a diciembre de 2025
PipeWire se ha consolidado como el servidor de audio y vídeo moderno en la mayoría de distribuciones Linux, incluido Arch. Sustituye en la práctica a PulseAudio y cubre muchos casos de uso de JACK, ofreciendo una infraestructura unificada con baja latencia, buena gestión de dispositivos y compatibilidad con aplicaciones antiguas.
Este tutorial está orientado a usuarios de Arch Linux que quieren ir más allá de la configuración por defecto y sacarle partido a PipeWire para producción musical, streaming y escenarios algo más avanzados.
0. Situación actual en Arch
En instalaciones recientes de Arch (especialmente si usaste archinstall con un escritorio moderno) es bastante probable que PipeWire ya esté instalado y activo.
Compruébalo con:
pacman -Qs pipewire wireplumber
systemctl --user status pipewire pipewire-pulse wireplumber
Si los servicios aparecen como active (running), ya estás usando PipeWire y puedes saltar directamente a las secciones 3–7.
1. Instalación (o completar lo que falta)
En Arch, el servidor base es pipewire y los módulos de audio se reparten en varios paquetes. Para una configuración completa de escritorio + compatibilidad con PulseAudio y JACK:
sudo pacman -S \
pipewire \
pipewire-alsa \
pipewire-pulse \
pipewire-jack \
wireplumber \
alsa-utils
Resumen rápido:
-
pipewire: servidor multimedia principal.
-
pipewire-alsa: redirige aplicaciones ALSA a PipeWire.
-
pipewire-pulse: reemplazo drop‑in de PulseAudio.
-
pipewire-jack: proporciona la API de JACK a las apps de audio profesional.
-
wireplumber: gestor de sesiones/políticas (imprescindible hoy en día).
-
alsa-utils: herramientas como
alsamixerpara depurar la capa ALSA.
Con esto tienes el stack moderno recomendado.
2. Migrar desde PulseAudio y habilitar PipeWire
2.1. Eliminar PulseAudio
Si aún tienes PulseAudio instalado, es mejor quitarlo para evitar conflictos. Por ejemplo:
sudo pacman -R pulseaudio pulseaudio-alsa pulseaudio-bluetooth
sudo pacman -S pipewire pipewire-alsa pipewire-pulse
El paquete pipewire-pulse proporciona el servidor de sonido compatible con PulseAudio que usarán tus aplicaciones.
2.2. Activar servicios de usuario con systemd
Hoy se recomienda usar sockets de usuario en lugar de servicios “pelados”:
systemctl --user enable --now pipewire.socket pipewire-pulse.socket wireplumber.service
Esto hará que PipeWire se lance automáticamente cuando alguna aplicación lo necesite.
Si todavía tienes servicios de PulseAudio activos, deshabilítalos:
systemctl --user disable --now pulseaudio.service pulseaudio.socket 3. Verificar que todo funciona
3.1. wpctl: la navaja suiza moderna
WirePlumber instala la herramienta wpctl, muy cómoda para ver el estado del audio:
wpctl status
Ahí verás:
-
Dispositivos de salida (sinks) y entrada (sources),
-
Aplicaciones reproduciendo o capturando audio,
-
Qué dispositivos están marcados como por defecto.
3.2. Inspección avanzada con pw-cli
Si quieres ver la lista completa de nodos PipeWire:
pw-cli ls Node
Deberían aparecer tus tarjetas de sonido, micrófonos y flujos de audio de las aplicaciones.
4. Configuración avanzada de WirePlumber
Desde WirePlumber 0.5 la configuración es en formato tipo JSON/INI y se organiza en archivos *.conf y directorios *.conf.d.
4.1. Rutas de configuración
Orden de prioridad típico:
-
~/.config/wireplumber/(usuario) -
/etc/wireplumber/(sistema) -
/usr/share/wireplumber/(config por defecto de los paquetes)
4.2. Crear tu propia configuración
-
Copia la configuración base al directorio de usuario:
mkdir -p ~/.config/wireplumber
cp /usr/share/wireplumber/wireplumber.conf ~/.config/wireplumber/
mkdir -p ~/.config/wireplumber/wireplumber.conf.d
-
Ejemplo: impedir que ALSA suspenda la tarjeta de sonido (evita clics al reactivarse):
# ~/.config/wireplumber/wireplumber.conf.d/51-no-suspend.conf
monitor.alsa.rules = [
{
matches = [
{ node.name = "~alsa_input.*" }
{ node.name = "~alsa_output.*" }
]
actions = {
update-props = {
session.suspend-timeout-seconds = 0
}
}
}
]
-
Reinicia WirePlumber para aplicar cambios:
systemctl --user restart wireplumber
Con reglas similares puedes:
-
Forzar que una interfaz USB use siempre el perfil "Pro Audio".
-
Cambiar prioridades para que ciertos dispositivos se escojan como predeterminados.
Aplicar políticas diferentes con auriculares, HDMI, etc.
5. Optimización de rendimiento en tiempo real
Para producción musical o escenarios de baja latencia, la idea es:
-
Dar a PipeWire hilos en tiempo real (RT) con prioridad alta.
-
Permitir que tu usuario pueda usar esas prioridades de forma segura.
5.1. Ajustar nice.level y rt.prio con un drop‑in
En lugar de editar /etc/pipewire/pipewire.conf, crea un override de usuario:
mkdir -p ~/.config/pipewire/pipewire.conf.d
nano ~/.config/pipewire/pipewire.conf.d/99-rt.conf
Ejemplo de contenido:
# ~/.config/pipewire/pipewire.conf.d/99-rt.conf
context.modules = [
{ name = libpipewire-module-rt
args = {
nice.level = -11 # prioridad alta (más negativo = más prioridad)
rt.prio = 88 # prioridad RT (0–99)
rt.time.soft = -1
rt.time.hard = -1
}
flags = [ ifexists nofail ]
}
]
Tras guardarlo, reinicia PipeWire:
systemctl --user restart pipewire pipewire-pulse
5.2. Dar privilegios de tiempo real al usuario
Instala y configura realtime-privileges:
sudo pacman -S realtime-privileges
sudo usermod -a -G realtime $USER
Cierra sesión y vuelve a entrar para que el grupo realtime se aplique. Este paquete crea reglas de límites RT razonables para el grupo, pensadas justamente para uso de audio profesional.
6. Uso avanzado de PipeWire con JACK
PipeWire puede actuar como servidor JACK sin que tengas que lanzar jackd manualmente.
6.1. Capa de compatibilidad JACK
Ya la tienes con:
sudo pacman -S pipewire-jack
Esto instala las bibliotecas libjack que redirigen las apps JACK hacia PipeWire.
6.2. Patchbays gráficos
-
QjackCtl (clásico, ahora funcionando sobre PipeWire):
sudo pacman -S qjackctl pw-jack qjackctl -
qpwgraph: patchbay nativo para PipeWire (muy recomendable):
sudo pacman -S qpwgraph qpwgraph & -
Helvum: patchbay GTK alternativo.
Con cualquiera de ellos puedes enrutar:
-
DAW → bus de efectos → monitores,
-
DAW → capturador para streaming,
Micrófonos y retornos hacia mezclas personalizadas, etc.
7. Monitorización y control en tiempo real
7.1. pw-top para ver carga y latencia
pw-top
Te mostrará para cada cliente PipeWire:
-
Uso de CPU.
-
Latencia efectiva.
-
Tamaños de bloque y estado.
Muy útil para localizar plugins o procesos que se comen la CPU y provocan XRUNs.
7.2. Controlar volúmenes y dispositivos con wpctl
Algunos ejemplos prácticos:
# Ver todo
wpctl status
# Subir volumen del sink por defecto un 5 %
wpctl set-volume @DEFAULT_SINK@ 0.05+
# Bajar volumen del micrófono por defecto un 10 %
wpctl set-volume @DEFAULT_SOURCE@ 0.10-
# Silenciar salida por defecto
wpctl set-mute @DEFAULT_SINK@ 1
# Cambiar dispositivo de salida por defecto (usando ID de wpctl status)
wpctl set-default 42 8. Depuración y resolución de problemas
8.1. Volcado completo del estado
pw-dump > pipewire-config.json
Ese JSON contiene la topología completa de nodos, dispositivos y propiedades. Es ideal para depurar o pedir ayuda en foros.
8.2. Revisar logs en vivo
journalctl --user -u pipewire -u pipewire-pulse -u wireplumber -f
Así puedes ver en tiempo real errores de dispositivos, módulos que fallan o reglas de WirePlumber que no se aplican.
8.3. Resetear la configuración del usuario
Si has roto algo tocando demasiadas cosas, puedes volver a la configuración por defecto haciendo:
systemctl --user stop pipewire pipewire-pulse wireplumber
rm -rf ~/.config/pipewire
rm -rf ~/.config/wireplumber
systemctl --user start pipewire pipewire-pulse wireplumber
Arch volverá a usar las configuraciones empaquetadas en /usr/share.
9. Bonus: cadena de efectos y uso "de estudio"
Para aprovechar PipeWire en entornos de producción/streaming se suele combinar con:
-
EasyEffects: procesador de efectos global (EQ, compresor, limitador, etc.) integradísimo con PipeWire.
-
qpwgraph o Helvum: para crear layouts de ruteo distintos (grabación, mezcla, streaming, directo…).
-
Ajustes de sistema orientados a audio profesional (gobernador de CPU en modo rendimiento, swappiness baja, etc.).
Ejemplo típico de flujo con PipeWire:
-
Interfaz USB de audio como dispositivo por defecto.
-
DAW (Ardour, Reaper, Bitwig…) conectado a través de
pipewire-jack. -
EasyEffects como bus de efectos global para salida de monitores.
Un patchbay (qpwgraph) gestionando rutas hacia OBS/streaming, grabadores externos, etc.
10. Conclusión
PipeWire ya no es “la novedad”: es el estándar moderno en Arch Linux. Con la combinación de PipeWire + WirePlumber + realtime-privileges puedes conseguir un sistema de audio:
-
Flexible (ruteos complejos estilo JACK),
-
Cómodo para el escritorio (todo lo que funcionaba con PulseAudio sigue funcionando),
-
Y apto para producción musical y streaming con baja latencia.
A partir de este tutorial puedes profundizar en:
-
Crear perfiles específicos por interfaz o escenario (estudio, directo, gaming…).
-
Automatizar cambios de ruteo con scripts.
-
Integrar efectos y mezcladores externos.
La documentación oficial de PipeWire y WirePlumber, junto con la wiki de Arch, son tu referencia principal para seguir subiendo de nivel.
Comentarios
Publicar un comentario