Un reproductor de música minimalista escrito por curiosidad

Fuentes: A small music player written out of curiosity

Este artículo describe el desarrollo de "amused", un pequeño reproductor de música creado por el autor como experimento para comprobar si era posible decodificar archivos de audio dentro de un proceso en sandbox estricto. El programa funciona en segundo plano y se controla mediante una interfaz de línea de comandos muy sencilla, con comandos como "add", "play", "pause", "status", "show" y "load". Una de sus características más notables es la integración nativa con las tuberías de Unix: es posible encadenar "amused show" con utilidades como sort, grep, fzf o dmenu para manipular la cola de reproducción, una idea que el autor atribuye a la filosofía de Douglas McIlroy.

El ejecutable actúa a la vez como demonio y como cliente, y arranca el demonio automáticamente cuando es necesario. No incorpora persistencia de estado: toda la configuración es efímera y se gestiona desde la línea de comandos. El código ronda las 2.902 líneas de C, de las cuales entre 500 y 1.000 provienen de otros programas de OpenBSD y unas 500 corresponden a los "backends" de decodificación para los formatos soportados. El autor relata que la parte más difícil fue precisamente la decodificación de audio, ya que las librerías libvorbisfile, libopusfile, libflac y libmad carecen de páginas de manual y ofrecen documentación fragmentada, lo que obligó a escribir cada decodificador partiendo casi de cero. El proyecto está dirigido únicamente a OpenBSD por el uso de sndio, aunque el autor contempla una versión portable en el futuro. Entre las funcionalidades pendientes figuran un sistema de monitorización de eventos, búsqueda hacia adelante y atrás, y soporte de metadatos.