PipeWire Configurator: una nueva etapa para mi herramienta de audio en Linux

PipeWire Configurator: una nueva etapa para mi herramienta de audio en Linux

Aplicación GTK4 en Rust para ajustar quantum y sample rate directamente en PipeWire desde Debian.

Actualmente desarrollado y probado para Debian.

Hace un tiempo publiqué una pequeña herramienta llamada Jack Latency Updater, cuyo objetivo era sencillo: cambiar rápidamente la latencia y la frecuencia de muestreo de audio sin tener que modificar manualmente los archivos de configuración cada vez. Lo que comenzó como un pequeño script en Python terminó convirtiéndose en una aplicación con interfaz gráfica. Sin embargo, el proyecto ha seguido evolucionando y también ha cambiado su enfoque.

Ahora el proyecto ha dado otro paso y se llama PipeWire Configurator. Esta nueva versión está reescrita en Rust y trabaja directamente con PipeWire.

PipeWire Configurator

PipeWire Configurator: una forma sencilla de ajustar los parámetros de audio en Debian.

🕰️ De Jack Latency Updater a PipeWire Configurator

El proyecto original nació de una necesidad bastante cotidiana: cambiar los parámetros de latencia y frecuencia de muestreo dependiendo de si estaba grabando o mezclando en Reaper o Ardour. En aquel momento utilizaba una pequeña herramienta que modificaba los ajustes relacionados con JACK, evitando tener que editar los archivos de configuración cada vez que necesitaba hacer algún cambio.

Con el tiempo, el proyecto fue evolucionando y adaptándose al entorno de PipeWire, hasta que me di cuenta de que tenía sentido dar un paso más. Ya no quería limitarme a modificar archivos de configuración relacionados con JACK, sino trabajar directamente con PipeWire. Por eso decidí darle una nueva identidad al proyecto: PipeWire Configurator.

Si quieres conocer cómo empezó todo, puedes leer el artículo original sobre Jack Latency Updater.

🎛️ ¿Por qué PipeWire Configurator?

La idea de dar este paso también surgió de una herramienta que utilizo habitualmente: Pipewire Settings Widget for Plasma 6. Es un pequeño applet para KDE Plasma que permite cambiar fácilmente el quantum y el sample rate de PipeWire. Me resultaba muy práctico y todavía lo sigo utilizando, así que me hizo plantearme cómo podía llevar esa misma idea a mi propio proyecto.

No quería dejar Jack Latency Updater en el olvido, sino darle un nuevo aire, actualizar su enfoque y adaptarlo a cómo trabajo actualmente con PipeWire. Así nació PipeWire Configurator, una herramienta que conserva la idea original, pero con una dirección diferente.

PipeWire Configurator

Un nuevo icono para una nueva etapa.

🦀 ¿Por qué reescribirlo en Rust?

Una de las decisiones más importantes de esta nueva etapa ha sido reescribir la aplicación en Rust. No fue una decisión motivada únicamente por cuestiones técnicas; también quería aprovechar la oportunidad para seguir aprendiendo y adentrarme un poco más en el desarrollo de aplicaciones para Linux.

No soy desarrollador de Linux al 100%, pero siempre me ha llamado la atención todo lo que se puede construir dentro de este ecosistema. Además, cada vez resulta más interesante ver la cantidad de proyectos y aplicaciones que están utilizando tecnologías como Rust y GTK. En este proceso, las herramientas de inteligencia artificial actuales también han tenido un papel importante, facilitándome la migración y permitiéndome experimentar con tecnologías que probablemente me habrían resultado más difíciles de abordar por mi cuenta.

Random

Aprendiendo Rust!

Eso no significa que ahora domine Rust. Todavía estoy aprendiendo, leyendo el código e intentando entender cómo funciona cada parte y cuáles son las posibilidades del lenguaje. No soy de los que escriben todo de memoria, pero poco a poco voy familiarizándome con él. Al final, esta migración ha sido una buena oportunidad para aprender algo nuevo mientras sigo dando forma a una herramienta que utilizo en mi propio flujo de trabajo de audio.

🎚️ ¿Qué hace PipeWire Configurator?

La aplicación permite modificar dos parámetros fundamentales del servidor de audio:

  • Quantum: permite seleccionar el tamaño del quantum utilizado por PipeWire.
  • Sample Rate: permite seleccionar la frecuencia de muestreo del servidor.

La idea sigue siendo la misma que tenía el proyecto original: evitar tener que abrir un terminal o editar archivos manualmente para realizar ajustes habituales. La diferencia es que ahora los cambios se aplican directamente a PipeWire mediante pw-metadata, utilizando las propiedades clock.force-quantum y clock.force-rate.

Además, la aplicación consulta los valores actuales de PipeWire para mostrar la configuración detectada al iniciarse.

🖥️ Una interfaz sencilla

He querido mantener la filosofía original del proyecto: una herramienta pequeña que haga exactamente lo que necesito, sin complicaciones innecesarias. El funcionamiento es bastante directo:

  1. Abres PipeWire Configurator.
  2. La aplicación consulta los valores actuales de quantum y sample rate.
  3. Seleccionas los nuevos valores.
  4. Pulsas Update Config.
  5. Los cambios se aplican directamente mediante PipeWire.

Así puedes ajustar estos parámetros sin tener que buscar archivos de configuración ni modificar manualmente los ajustes relacionados con JACK.

📦 Instalación

Puedes descargar la última versión desde GitHub Releases:

⇩ pipewire-configurator ⇩

Una vez descargado el paquete .deb, puedes instalarlo desde el terminal:

sudo apt install ./pipewire-configurator_*.deb

La aplicación está desarrollada utilizando GTK4 y Rust, y el empaquetado para Debian se realiza mediante cargo-deb.

🌱 El proyecto continúa

PipeWire Configurator es una nueva etapa para esta herramienta y un punto de partida para seguir mejorándola. Si quieres probarla, consultar el código o seguir su evolución, puedes encontrar el proyecto en GitHub.

Como siempre, si a alguien más le resulta útil, ¡mucho mejor! 🎧

🔗 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

Enlaces simbólicos en Windows con mklink

Aprende a crear enlaces simbólicos en Windows usando `mklink`, el equivalente a `ln -s` en Linux, con un ejemplo práctico.

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.