Sobre el proyecto

Kalinka convierte una Raspberry Pi o cualquier máquina Linux en un reproductor de música autohospedado controlado desde un teléfono, una aplicación de escritorio o un navegador. El servidor aloja la biblioteca, mientras que un renderizador separado realiza la reproducción con acceso directo a ALSA, por lo que puede ejecutarse en la misma máquina o en una Pi junto a cada amplificador. Los archivos permanecen locales: sin cuenta, sin telemetría, y la búsqueda semántica se ejecuta en el dispositivo. Existen dos funciones de red opcionales: consultas de metadatos (MusicBrainz, Wikidata, Deezer, Cover Art Archive) y una verificación horaria de lanzamientos. Las opciones de instalación incluyen flashear una imagen preconfigurada para Raspberry Pi, un script de instalación de un comando para Debian 13, Raspberry Pi OS (64 bits) o Ubuntu 24.04, y uso en máquina virtual. Un asistente de configuración en la aplicación o navegador pregunta dónde está la música y de dónde debe salir el sonido, sin necesidad de editar archivos de configuración. Capacidades clave: - Indexación de biblioteca con vigilancia de directorios y reparación de metadatos, incluido el fingerprinting AcoustID cuando se proporciona una clave, además de extracción, caché y generación de carátulas. - Búsqueda inteligente: consultas en lenguaje natural como "guitarra ambiental soñadora" emparejadas analizando audio con un modelo CLAP; Jamendo coincide con un índice preconstruido. Opt-in por plugin. - Reproducción bit-perfect mediante un renderizador C++ con acceso directo a ALSA, compatible con FLAC y MP3 hasta 192 kHz / 24 bits, sin espacios entre pistas del mismo formato, y muestras sin alterar a menos que se habilite el volumen por software. - Los renderizadores en cualquier dispositivo de red aparecen como salidas, descubren el servidor mediante mDNS y se autoactualizan. - Un reproductor de navegador convierte cualquier navegador tanto en control remoto como en salida. - Los plugins son paquetes Python ordinarios descubiertos en tiempo de ejecución; My Library y Jamendo vienen integrados, y MusicCast maneja el volumen y encendido de Yamaha. - Configuración en vivo desde Ajustes, con un nivel simple de campos comunes y una búsqueda estilo about:config. - Autoactualizaciones: el servidor verifica lanzamientos cada hora y puede autoactualizarse durante horas tranquilas mientras la reproducción está detenida; servidor, plugins, reproductor de navegador y renderizadores se actualizan juntos, primero los renderizadores. Requisitos: un sistema operativo de 64 bits (arm64 o amd64). La reproducción y la biblioteca necesitan una Raspberry Pi 3 / Zero 2 W o cualquier dispositivo arm64/amd64 con 512 MB de RAM (1 GB cómodo). La búsqueda inteligente necesita una Raspberry Pi 4B con 2 GB de RAM o cualquier dispositivo arm64/amd64 con 2 GB o más, con aproximadamente 1 GB adicional de disco; se puede activar o desactivar por instalación. El comportamiento bit-perfect depende del renderizador. El renderizador C++ predeterminado habla directamente con la tarjeta de sonido y no altera el audio a menos que se le indique; el volumen por software es la excepción. La aplicación indica si la ruta es 1:1: hw: toma las muestras sin cambios, plughw: remuestrea y reformatea, y default o un servidor de sonido mezcla. La reproducción en el navegador pasa por la pila de audio del navegador, por lo que no ofrece garantía de sin espacios ni bit-perfect. La documentación cubre instalación, configuración inicial, manual de la aplicación, arquitectura, desarrollo, diseño del renderizador, imágenes de dispositivo y lanzamientos. El proyecto invita a enviar comentarios de prueba en su hilo de discusión. El código fuente es GPL-3.0-o-posterior; los recursos visuales usan una licencia separada que requiere permiso del autor. Los términos de terceros se enumeran en THIRD-PARTY-NOTICES.md.