Documentation
Installation, chemins de données, configuration, réseau, API et dépannage. Tout ce qui tourne sur ta machine, expliqué.
1. Installation par plateforme
Un exécutable par système. Le runtime est inclus.
AppImage (Linux)
Publiéglibc 2.31 ou plus récent. Un fichier unique, rendu exécutable. Le runtime Python, llama.cpp et le moteur audio sont inclus dedans.
Installateur (Windows)
PubliéWindows 10 ou 11, 64 bits. Installateur classique : le dossier de données est conservé entre les versions.
APK (Android)
PubliéAndroid 10 ou plus récent, 4 architectures CPU. Signé avec la clé de distribution du projet, ce qui lui permet de se mettre à jour tout seul : Android refuse d'installer un paquet signé par une autre clé que celle de l'application déjà installée.
Prérequis matériels
- 6 Go de RAM pour charger le plus petit modèle d'IA. Le lecteur audio fonctionne avec moins.
- Autant d'espace disque que la taille du modèle, plus 300 Mio de marge.
- Un GPU accélère le calcul s'il est compatible Vulkan. Sans accélération, tout se fait sur le processeur, plus lentement.
2. Où sont mes données ?
L'application écrit dans un dossier, et nulle part ailleurs.
L'application de bureau utilise un dossier principal et un sous-dossier de données, tous deux dans ton dossier utilisateur. Ces chemins valent pour l'AppImage publiée.
Interface, réglages et modèles
Linux ~/.config/NeuroBeats
Windows %APPDATA%\NeuroBeatsLes réglages de l'application et son journal. Les modèles téléchargés vont dans un sous-dossier models.
Historique et caches
Linux ~/.config/NeuroBeats/data
Windows %APPDATA%\NeuroBeats\dataLa base SQLite, l'historique, les notes, les favoris et les caches. C'est ce dossier-là qu'il faut supprimer pour repartir de zéro.
~/.local/share/neurobeats/<profil> sous Linux. Le profil vaut web par défaut, et desktop pour l'application.3. Variables d'environnement
Elles servent aux cas particuliers. L'application de bureau les fixe toute seule.
Une variable d'environnement est une valeur que tu définis avant de lancer un programme. NeuroBeats en lit six. Dans l'application de bureau, tu n'as rien à faire : elle les affecte toutes à chaque démarrage. Elles comptent surtout si tu lances le moteur seul, ou si tu veux faire cohabiter deux instances.
NEUROBEATS_PORTPort8000
Port du moteur local. L'application de bureau le fixe à 8041, le développement web utilise 8040.
NEUROBEATS_DATA_DIRStockageselon le système
Historique, notes, favoris, caches et base SQLite. Sans valeur, le chemin dépend du système et du profil.
NEUROBEATS_MODELS_DIRStockageselon le système
Fichiers GGUF téléchargés. Sans valeur, il suit le même schéma que les données, avec un sous-dossier models.
NEUROBEATS_PROFILEProfilweb
Nom du sous-dossier de données. L'application de bureau force desktop. Deux profils ne partagent rien.
NEUROBEATS_FRONTEND_PORTPort3150
Port de l'interface web embarquée, quand elle est servie séparément du moteur.
NEUROBEATS_LYRICS_MISS_TTL_DAYSCache7
Durée de mise en cache d'une recherche de paroles sans résultat. Un résultat réussi est gardé 30 jours.
4. Modèles d'IA
Tu choisis le fichier de poids qui fait tourner l'assistant.
Un modèle d'IA est un fichier de poids, au format GGUF. GGUF est le format lu par llama.cpp, le moteur qui l'exécute sur ta machine. L'application n'en fournit aucun : tu télécharges celui que tu veux.
Choisir dans le catalogue
Ouvre Profil puis IA. Le catalogue liste sept modèles par défaut, avec leur taille et la mémoire qu'ils demandent. Lance le téléchargement depuis cette page. Ce catalogue est une sélection, pas une limite : la même page permet de chercher n'importe quel dépôt GGUF du Hub, et les fichiers y sont filtrés sur ce que ta machine peut réellement charger.
Tu dois voir le modèle apparaître dans la liste des modèles téléchargés, et son état passer à « prêt ».
Choisir un modèle hors catalogue
Dans la même page, « Parcourir Hugging Face » ouvre le Hub et cherche n'importe quel dépôt GGUF. Un modèle trouvé ainsi se télécharge exactement comme un modèle du catalogue.
Tu dois voir la taille du fichier avant de lancer, et l'espace disque est vérifié avant le téléchargement.
Utiliser un moteur déjà installé
Si tu as déjà Ollama ou LM Studio, pointe NeuroBeats dessus dans les mêmes réglages. Tu peux aussi donner une clé OpenAI ou Anthropic. Dans ce dernier cas, tes questions partent chez ce fournisseur, et l'assistant cesse d'être entièrement local.
Tu dois voir le bouton « Tester la connexion » confirmer que le moteur répond.
5. API locale
Le moteur expose une API HTTP, pour le piloter à la main.
Une API est une interface qui permet à un autre programme de demander des choses au moteur. NeuroBeats en expose une, de plus de quatre-vingts routes. Voici les principales.
curl http://127.0.0.1:8041/api/now renvoie le titre en cours au format JSON. Le port 8041 vaut pour l'application de bureau : remplace-le par celui de ton lancement.Lecture
/api/nowLe titre en cours et sa position.
/api/playAjoute un titre à la file.
/api/play_nowLecture immédiate : la file est remplacée.
/api/stopArrête la lecture.
/api/pauseBascule pause ou reprise.
/api/seekDéplace la tête de lecture.
/api/volumeRègle le volume.
/api/audio/{id}Diffuse l'audio d'un titre.
Flux infini
/api/stream/startDémarre le flux et remplit la file.
/api/stream/stopArrête le flux.
/api/stream/skipPasse au titre suivant.
/api/stream/queueFile et titres à venir.
Recommandation
/api/recommendTitres recommandés pour une ambiance, en tenant compte de l'historique.
/api/discoverSélection par genre.
/api/searchRecherche de titres et d'artistes.
Playlists
/api/playlistsListe des playlists.
/api/playlistsCrée une playlist.
/api/playlists/{id}/tracksAjoute un titre.
/api/playlists/{id}Supprime une playlist.
Profil et données
/api/profile/aiRéglages IA, modèles téléchargés, état du moteur.
/api/profile/historyHistorique d'écoute.
/api/profile/historyEfface l'historique. Exige ?confirm=1 en paramètre. Les notes et favoris restent.
/api/profile/caches/clearVide les caches. Ils se reconstruisent seuls.
/api/statsStatistiques d'écoute.
/api/lyricsParoles synchronisées ou texte brut.
Chat
/api/chatUne question à l'assistant, avec appel d'outils si nécessaire.
/api/chat/streamLa même chose, réponse en flux.
Divers
/api/healthÉtat du moteur et identité de l'instance.
/api/homeChargement initial de l'écran d'accueil.
/api/preferenceEnregistre la note d'un titre. C'est ce qui nourrit le classement.
/api/transferCrée la session de transfert affichée en QR code.
/ws, et le transfert vers le téléphone par des routes /t/… qui ne sont pas sous /api. Les accolades des routes ci-dessus sont des paramètres : remplace-les par l'identifiant réel.6. Ce que l'application va chercher sur le réseau
La liste exacte, y compris ce qui part sans que tu le demandes.
Ton historique, tes notes et tes favoris ne quittent jamais ta machine : il n'existe aucun serveur NeuroBeats vers lequel ils pourraient partir. En revanche, l'application va chercher des choses en ligne, comme tout lecteur de musique.
YouTube
Métadonnées des titres et flux audio, via yt-dlp.
À chaque recherche et à chaque titre joué, sauf si le titre est déjà en cache.
LRCLIB, puis Genius
Paroles. LRCLIB fournit des paroles synchronisées, Genius du texte brut.
À la première recherche d'un titre, puis servi depuis le cache.
Deezer et i.ytimg.com
Pochettes d'albums.
À la première consultation, puis servi depuis le disque.
Hugging Face
Recherche de dépôts GGUF et téléchargement des modèles.
Quand tu Parcouris le Hub ou télécharges un modèle.
PyPI
Mise à jour du module yt-dlp, le récupérateur d'audio du client Android.
Seulement après un échec réseau pendant un téléchargement sur Android.
hetzner.com
Sonde de bande passante : elle télécharge 10 Mio pour choisir un niveau de qualité audio.
Une fois, à chaque lancement, sans action de ta part.
Ce qui marche sans réseau
- L'assistant, une fois un modèle chargé : il tourne dans llama.cpp, sur ta machine.
- Le classement, les statistiques, et les paroles déjà mises en cache.
- Les titres déjà téléchargés ou gardés en mémoire : ils se rejouent sans réseau.
Ce qui demande le réseau : un titre jamais joué, une recherche, et des paroles jamais trouvées. Sans réseau, la recommandation se limite aux titres de ton historique.
7. Dépannage
Trois incidents courants, et où lire les détails.
Le moteur ne démarre pas
Un autre processus occupe déjà le port. Relance avec un autre NEUROBEATS_PORT, ou ferme le processus qui occupe le port.
Un modèle ne se charge pas
L'application n'interdit aucun modèle : elle signale ceux qui dépassent ta mémoire. Si le chargement échoue quand même, le fichier est peut-être corrompu. Supprime-le et retélécharge-le.
Aucune recommandation
La première construction prend quelques dizaines de secondes. L'interface affiche des squelettes pendant ce temps. Sans réseau, les recommandations se limitent aux titres déjà écoutés.
Lire le journal
L'application écrit ce qu'elle fait dans un journal, à côté de ses réglages. Il contient les appels d'outils de l'assistant, les scores de recommandation et les erreurs du moteur. C'est le meilleur point de départ pour comprendre un problème.
Tu dois voir la ligne qui correspond à ton problème, avec l'heure.