À propos du projet

Kalinka transforme un Raspberry Pi ou toute machine Linux en lecteur musical auto-hébergé contrôlé depuis un téléphone, une application de bureau ou un navigateur. Le serveur détient la bibliothèque, tandis qu'un rendu séparé effectue la lecture avec un accès direct à ALSA, il peut donc fonctionner sur la même machine ou sur un Pi à côté de chaque amplificateur. Les fichiers restent locaux : pas de compte, pas de télémétrie, et la recherche sémantique s'exécute sur l'appareil. Deux fonctionnalités réseau optionnelles existent — les recherches de métadonnées (MusicBrainz, Wikidata, Deezer, Cover Art Archive) et une vérification horaire des sorties. Les options d'installation incluent le flashage d'une image prête à l'emploi pour Raspberry Pi, un script d'installation en une commande pour Debian 13, Raspberry Pi OS (64 bits) ou Ubuntu 24.04, et l'utilisation en machine virtuelle. Un assistant de configuration dans l'application ou le navigateur demande où se trouvent la musique et d'où doit provenir le son, sans fichiers de configuration à modifier. Capacités clés : - Indexation de bibliothèque avec surveillance de répertoire et réparation de métadonnées, y compris l'empreinte AcoustID lorsqu'une clé est fournie, plus l'extraction, la mise en cache et la génération d'images. - Recherche intelligente : requêtes en langage naturel telles que « dreamy ambient guitar » (guitare ambiante rêveuse) correspondant à l'analyse audio avec un modèle CLAP ; Jamendo correspond à un index préconstruit. Optionnel par plugin. - Lecture bit-parfait via un rendu C++ avec accès direct à ALSA, prenant en charge FLAC et MP3 jusqu'à 192 kHz / 24 bits, sans interruption entre les pistes de même format, et échantillons non modifiés sauf si le volume logiciel est activé. - Les rendus sur n'importe quelle boîte réseau apparaissent comme sorties, découvrent le serveur via mDNS et se mettent à niveau automatiquement. - Un lecteur navigateur rend tout navigateur à la fois télécommande et sortie. - Les plugins sont des paquets Python ordinaires découverts à l'exécution ; My Library et Jamendo sont intégrés, et MusicCast gère le volume et l'alimentation Yamaha. - Configuration en direct depuis les paramètres, avec un niveau simple de champs courants et une recherche de type about:config. - Mises à jour automatiques : le serveur vérifie les versions toutes les heures et peut se mettre à niveau automatiquement pendant les heures creuses lorsque la lecture est arrêtée ; serveur, plugins, lecteur navigateur et rendus se mettent à jour ensemble, les rendus d'abord. Exigences : un système d'exploitation 64 bits (arm64 ou amd64). La lecture et la bibliothèque nécessitent un Raspberry Pi 3 / Zero 2 W ou toute boîte arm64/amd64 avec 512 Mo de RAM (1 Go confortable). La recherche intelligente nécessite un Raspberry Pi 4B avec 2 Go de RAM ou toute boîte arm64/amd64 avec 2 Go ou plus, avec environ 1 Go d'espace disque supplémentaire ; elle peut être activée/désactivée par installation. Le comportement bit-parfait dépend du rendu. Le rendu C++ par défaut parle directement à la carte son et ne modifie pas l'audio sauf instruction ; le volume logiciel est l'exception. L'application indique si le chemin est 1:1 : hw: prend les échantillons inchangés, plughw: rééchantillonne et reformate, et default ou un serveur audio mélange. La lecture dans le navigateur passe par la pile audio du navigateur, donc elle n'offre aucune garantie de lecture sans interruption ou bit-parfait. La documentation couvre l'installation, la configuration initiale, un manuel d'application, l'architecture, le développement, la conception du rendu, les images d'appareil et la publication. Le projet invite les retours de test dans son fil de discussion. Le code source est sous GPL-3.0-or-later ; les ressources visuelles utilisent une licence distincte nécessitant l'autorisation de l'auteur. Les conditions des tiers sont listées dans THIRD-PARTY-NOTICES.md.