Bobine V3.0.5
La version 3.0.5 Stable de Bobine marque une étape déterminante pour l'équipement multimédia des salles de sport, studios de fitness, boxs de cross-training et complexes associatifs. Conçue pour offrir une autonomie totale sans dépendre d'abonnements cloud ni de connexions internet permanentes, cette mouture déploie une Console Régie Coach responsive (/coach) adaptée aux tablettes tactiles des éducateurs sportifs, un Hub d'Ambiances Visuelles (/backgrounds) avec prévisualisations vidéo 16:9 dynamiques, un moteur vidéo Gapless A/B Deck (/cinema) sans écran noir inter-cours, un tableau de bord complet d'assiduité et d'évaluation club (/metrics), ainsi qu'une refonte en profondeur de la résolution universelle des binaires multimédias sur l'ensemble des systèmes d'exploitation cibles (Android ARM64, Linux Bureau, Appliance Headless, Windows Desktop et macOS Apple Silicon).
Téléchargement des Binaires Officiels (Version 3.0.5)
| Plateforme & Environnement | Format | Architecture | Téléchargement Direct | Profil & Fonctionnalités Clés |
|---|---|---|---|---|
.apk(Paquet natif) | ARM64 (arm64-v8a) | Télécharger Bobine-3.0.5.apk | Tablettes Tactiles & Régie Studio Mobile • Régie autonome complète : remplace tout PC encombrant dans la salle • Double affichage : pupitre coach tactile ( /grid, /coach) + diffusion TV grand écran (/cinema, /kiosk)• Prise en charge des manettes Bluetooth/USB et télécommandes multimédias • Télémétrie matérielle et exécution native hors-ligne via Chaquopy • 100% hors-ligne, fiable même en sous-sol sans Wi-Fi ni réseau mobile | |
.exe(Installeur) | x86-64 | Télécharger Bobine-Setup-3.0.5.exe | PC de Bureau & Ordinateurs Portables Windows • Désinstallation automatique en 1 clic via le désinstalleur officiel Inno Setup • Démarrage discret près de l'horloge (icône de notification en arrière-plan) • Mode capot fermé (clamshell) : branchez le portable en HDMI à la télé sans mise en veille • Contrôle universel par manette (Xbox/PlayStation), télécommande ou smartphone | |
.deb(Paquet & Dépôt) | x86-64 (amd64) | Dépôt APT apt.bobine.fit bobine_3.0.5_amd64.deb | Postes Linux de Bureau & PC Reconditionnés • Désinstallation automatique intégrée avec dialogue d'élévation graphique Polkit • Relance automatique des services utilisateur et système post-installation • Mises à jour fluides en 1 clic via le dépôt officiel apt.bobine.fit ou Logithèque Ubuntu• Pilotage complet à la manette ou à la télécommande sans clavier physique | |
.dmg(Image disque) | Apple Silicon (arm64) | Télécharger Bobine-3.0.5.dmg | MacBook, Mac mini & iMac (Apple Silicon) • Désinstallation propre : purge du bundle /Applications/Bobine.app et des LaunchAgents• Expérience Mac soignée : icône Retina native et menu discret dans la barre supérieure • Diffusion 4K silencieuse : zéro surchauffe et zéro bruit de ventilateur sur MacBook • Connexion directe à la TV ou au vidéo-projecteur du studio via HDMI ou USB-C | |
| Binaire natif (Tauri 2) | x86-64 (Linux) | Télécharger bobine-assistant | Assistant Graphique de Gestion & Déploiement • Scanner réseau intelligent : détecte automatiquement toutes les bornes Bobine sur le Wi-Fi/LAN • Déploiement et mise à jour des bornes à distance sans toucher au terminal • Connexion SSH assistée par mot de passe ou clé SSH importée en 1 clic | |
| Script automatisé | x86-64 | curl -sSL https://bobine.fit/install.sh | bash | Appliance Dédiée Headless (Mini-PC Dédié) • Déploiement automatisé en 18 étapes sur mini-PC dédié (Wyse 5070, NUC, Tiny) • Désinstallation complète autonome via l'exécutable /usr/local/sbin/bobine-uninstall• Redémarrage immédiat et inconditionnel des services après mise à jour • Pilotage HDMI-CEC matériel : allume et éteint automatiquement le téléviseur | |
| Binaires & Sources | Multi-OS | Voir les Releases GitHub | Historique Complet des Versions & Code Source • Sommes de contrôle SHA-256 certifiées, archives sources & notes de version |
PARTIE I — NOUVELLES FONCTIONNALITÉS & USAGES MÉTIER
1. Console Régie Coach Responsive (/coach)
- Conception ergonomique en double colonne :
- Sur tablette tactile (format paysage) et ordinateur : Affichage simultané du pupitre musical de pilotage sur la gauche et du moniteur de scène grand écran (Stage Monitor 16:9 en direct) avec la palette d'ambiances visuelles sur la droite.
- Sur smartphone ou format portrait : Bascule automatique en disposition monoposte avec tiroirs tactiles rétractables (Bottom Sheets animés) pour la sélection des pistes et des visuels, garantissant une utilisation d'une seule main pendant la séance.
- Commandes tactiles grand format (64px) : Boutons Précédent, Lecture/Pause centrale imposante, Suivant, Relance de la piste au début, et ajustement du volume par paliers de 10% avec retour visuel immédiat.
- Minuteur et barre de progression interpolés en temps réel : Décompte continu précis (
- mm:ss) et jauge fluide animée localement à 10 Hz, synchronisés en continu avec le serveur. - Tiroir déroulant des morceaux : Accès instantané à l'ensemble de la liste des pistes avec indication du titre en cours et déclenchement tactile direct.
- Démarrage sécurisé en pause par défaut : Lors de l'activation du cours audio, la lecture se place en attente sur la première piste avec son visuel projeté, laissant l'éducateur sportif libre de régler son micro et d'accueillir les pratiquants avant de lancer la musique.
- Enchaînement musical épuré : Conservation exclusive des deux modes fondamentaux : Auto (enchaînement automatique et fluide à la fin de chaque morceau) et Manuel (arrêt automatique en fin de piste avec déclenchement manuel par le coach), avec boutons répartis à 50/50.
- Centrage ergonomique des contrôles : Bouton « Quitter le mode coach » harmonieusement intégré et centré au bas de la colonne audio, évitant tout geste parasite.
2. Hub d'Ambiances Visuelles Vidéo & Images (/backgrounds)
- Galerie cinématique 16:9 : Remplacement de l'ancien sélecteur textuel par une vitrine visuelle soignée regroupant l'ensemble des boucles vidéo et images d'ambiance disponibles pour la salle.
- Prévisualisation dynamique : Lecture vidéo automatique au survol de la souris ou lors d'un appui long tactile, permettant de choisir l'ambiance visuelle adaptée à l'intensité de l'entraînement.
- Lecteur modal détaillé : Fiche technique affichant la résolution, le ratio, la durée et les options de suppression sécurisée.
- Projection directe 1-clic : Diffusion instantanée de l'ambiance sur la sortie Câblée (HDMI de salle) ou Réseau, avec persistance possible en tant que fond d'ambiance par défaut pour le mode coach.
3. Association Dynamique d'Ambiances par Piste Audio
- Personnalisation par morceau : Possibilité d'assigner une ambiance visuelle différente à chaque piste d'un cours audio (ex: visuel calme pour l'échauffement, visuel dynamique pour le cardio, visuel sombre pour la récupération).
- Transition synchronisée en cours de séance : Le lecteur commute automatiquement l'arrière-plan vidéo projeté sur grand écran au passage de chaque piste.
- Option Écran Sobre : Choix délibéré d'un écran sombre et épuré pour les disciplines axées sur la concentration et la respiration (Yoga, Pilates, Stretching).
4. Redirection & Synchronisation Intelligente des Écrans
- Régie synchronisée multi-postes : Toute ouverture du tableau de bord câblé (
/dashboard-cable) redirige automatiquement et instantanément vers la console active/coachlorsqu'une séance est en cours. L'ensemble des écrans du personnel (tablette du coach, accueil, régie) reste parfaitement synchronisé. - Supervision hors séance : Carte d'ambiance active intégrée sur les tableaux de bord Câblé et Réseau, avec bouton d'interruption direct en 1 clic sans perturber la reprise automatique des programmes.
- Synchronisation immédiate de la sortie câblée (
/kiosk) : Prise en charge transparente du paramètre d'URL?channel=et priorité câblée par défaut, éliminant tout besoin de rafraîchissement manuel de page (F5).
5. Importation Audio Multi-Pistes Automatisée
- Flexibilité de chargement : Support des dossiers musicaux complets, des archives ZIP ou de la sélection multiple de fichiers (
.mp3,.m4a,.aac,.wav,.flac). - Regroupement automatique : Les pistes multiples importées simultanément sont automatiquement assemblées au sein d'un cours unique structuré.
- Ordonnancement intelligent : Détection des préfixes numériques de pistes dans les noms de fichiers pour un classement instantané sans configuration manuelle.
6. Moteur Vidéo Gapless A/B Deck (/cinema)
- Double décodeur continu dans le DOM : Le lecteur cinéma maintient deux instances vidéo actives et synchronisées en mémoire.
- Transition par fondu croisé de 0,4 seconde : Élimination définitive des coupures, des écrans noirs inter-cours de 200 à 600 ms et des scintillements de projecteur.
7. Tableau de Bord d'Assiduité & Satisfaction Club (/metrics)
- 4 Indicateurs Clés de Performance (KPIs) : Nombre total de sessions démarrées, durée cumulée d'entraînement, taux moyen d'assiduité des pratiquants et note de satisfaction moyenne.
- Histogramme d'affluence 24h en CSS natif : Cartographie visuelle des heures de pointe du club sans librairie JavaScript tierce lourde.
- Classement des cours : Analyse objective des cours les plus suivis et des tendances d'assiduité pour guider la programmation de la salle.
- Système de notation 5 étoiles : Widget tactile et télécommandable apparaissant automatiquement en fin de séance sur
/gridet/cinema, avec jauge d'auto-fermeture progressive de 5 minutes.
8. Supervision et Télémétrie Matérielle Éco-Conçue
- Suivi énergétique en direct : Mesure de la puissance instantanée en Watts (W) et de l'énergie cumulée (Wh) adaptée à l'alimentation secteur et batterie.
- Températures CPU et GPU : Surveillance thermique en temps réel pour prévenir l'échauffement des bornes en armoire technique fermée.
- Télémétrie RAM détaillée : Détection du constructeur, de la technologie (LPDDR5X, DDR5, DDR4) et de la fréquence effective en MT/s sans privilèges root.
- Suivi de stabilité : Uptime système et temps de fonctionnement ininterrompu du démon Bobine.
PARTIE II — ARCHITECTURE TECHNIQUE, CAUSES RACINES & MULTI-OS
1. Résolution Universelle des Binaires Multimédias (FFPROBE_BIN & FFMPEG_BIN)
- Cause racine résolue : L'appel binaire historique
"ffprobe"ou"ffmpeg"dans le code source reposait sur la variablePATHde session. Ce postulat échouait dans deux cas critiques de production :- Android ARM64 (Chaquopy) : Les binaires ne résident pas dans un chemin système standard mais sous forme de bibliothèques partagées exécutables (
libffmpeg.so,libffprobe.so) extraites dans lenativeLibraryDirprivé de l'application, sous le bac à sableseccomp-bpf. - macOS Desktop (
.dmg) : Les applications lancées depuis le Finder ou via les LaunchAgents utilisateur démarrent dans un environnement dépouillé géré parlaunchd, dont la variablePATHminimale (/usr/bin:/bin:/usr/sbin:/sbin) ignore/opt/homebrew/bin(Apple Silicon) et/usr/local/bin(Mac Intel).
- Android ARM64 (Chaquopy) : Les binaires ne résident pas dans un chemin système standard mais sous forme de bibliothèques partagées exécutables (
- Architecture de résolution déterministe (
app.utils.ffmpeg_binaries) :- Étape 1 : Détection prioritaire des variables d'environnement explicites (
BOBINE_FFMPEG_BIN,BOBINE_FFPROBE_BIN) posées par le bootstrap Kotlin sur Android. - Étape 2 : Inspection du dossier de l'exécutable (
sys.executable.parent) pour les paquets figés Windows PyInstaller embarquantffmpeg.exeetffprobe.exede façon autonome. - Étape 3 : Résolution dynamique via
shutil.whichdans lePATHactif. - Étape 4 : Replis explicites sur les chemins système standards (
/opt/homebrew/bin,/usr/local/bin,/usr/bin).
- Étape 1 : Détection prioritaire des variables d'environnement explicites (
- Rétro-migration automatique en base SQLite :
- La fonction
_migrate_backfill_audio_duration()exécutée au démarrage deapp.databaseanalyse toutes les pistes audio (AudioTrack) et pistes radio (RadioTrack) dépourvues de durée, calcule leur durée exacte viaFFPROBE_BIN(format=duration:stream=duration) et met à jour la base de données de façon transparente.
- La fonction
2. Synchronisation Réseau & Résolution du Décrochage Kiosque Câblé
- Cause racine résolue : La fonction
isWiredDisplay()defrontend/src/app/kiosk/page.tsxtestait strictement l'hôte127.0.0.1. Lorsqu'un kiosque ou un écran déporté s'ouvrait via l'adresse IP locale de la borne (ex:http://192.168.1.60:8000/kiosk), la page basculait automatiquement sur le canalnetworket filtrait tous les évènements du canalcableoù s'exécute le mode coach, imposant un rechargement manuel de page. - Mécanisme introduit :
- La page
/kioskcible désormais le canal primairecablepar défaut. - Prise en charge native du paramètre d'URL
?channel=networkou?channel=cablepour les configurations multisalles complexes. - Réactivité immédiate des changements d'ambiance et des états de lecture coach sans latence ni rafraîchissement.
- La page
3. Interpolation Temporelle Monotone & Moteur de Diffusion
- Avancement serveur autonome : Dans
PlaybackManager._position_broadcast_loop, lorsque le mode coach est actif (PlaybackStateEnum.coach_mode) et que la lecture audio tourne (audio_playing == True), le serveur calcule l'avancement temporel viatime.monotonic()même en l'absence de rapport direct d'un kiosque distant, assurant la régularité des ticks WebSocket. - Interpolation cliente fluide à 10 Hz : Le composant
CoachModePageintègre une interpolation locale sur 100 ms (localPos) s'ajustant sur les ticks serveurs, garantissant un défilement parfaitement monotone et fluide de la barre de progression et du décompte sans à-coups visuels. - Initialisation sécurisée en pause :
load_audio_course()initialise strictementaudio_playing = False, neutralisant tout déclenchement audio intempestif avant confirmation explicite du coach.
4. Spécificités d'Architecture Système Multi-OS (5 Profils Cibles)
- Android ARM64 (
.apk, Chaquopy, API 34-36) :- Double racine de stockage : racine interne
filesDir(f2fs natif) pour les I/O aléatoires rapides (base SQLite, logs, miniatures) et racine externe FUSE pour les médias lourds. - Cycle de vie robuste : service de premier plan
BobineForegroundServiceavec notification persistante et maintien du serveur Uvicorn en mémoire. - Exemption de batterie demandée via
ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS.
- Double racine de stockage : racine interne
- Linux Bureau (
.deb, APTapt.bobine.fit) :- Démon utilisateur
bobine.servicegéré viasystemd --user. - Télémétrie SMBIOS sans privilèges root via
udevadm info -p /devices/virtual/dmi/id. - Désinstallation graphique intégrée avec élévation sécurisée Polkit.
- Démon utilisateur
- Appliance Headless (Dell Wyse 5070 / mini-PC,
install.sh) :- Démons système
bobine-backend.service,bobine-kiosk.serviceetbobine-audio-guard.service. - Chromium X11 plein écran sans compositeur lourd, pilotage HDMI-CEC matériel pour la veille du téléviseur.
- Mesure énergétique directe via le sous-système noyau
intel-raplen microjoules.
- Démons système
- Windows Desktop (
.exe, Inno Setup) :- Exécutable silencieux sans invite de commande noire (
CREATE_NO_WINDOW,console=False). - Base de données persistée sous
%ProgramData%\Bobine\bobine.dbpour éviter les blocages de droits dans%ProgramFiles%. - Règle de pare-feu automatique ajoutée via
netsh advfirewalllors de l'installation silencieuse. - Mode clamshell (capot fermé) via profils d'alimentation
powercfg.
- Exécutable silencieux sans invite de commande noire (
- macOS Desktop (
.dmg, Apple Silicon & Intel) :- Bundle applicatif standard
Bobine.appsigné ad-hoc pour la conformité AMFI sous macOS Sequoia/Sonoma. - Prévention de veille native via l'intégration
caffeinate. - Stockage des données sous
~/Library/Application Support/Bobine.
- Bundle applicatif standard
5. Protocole Déterministe de Validation & Résultats
- Syntaxe AST Python : Validation complète sur l'ensemble de l'arborescence backend (0 erreur).
- Suite de tests Pytest : 63 tests exécutés avec succès (100% verts, 0 échec).
- Contrôle TypeScript strict :
npx tsc --noEmitvalidé sans aucun avertissement ni erreur de type. - Compilation Next.js de production : Build statique Turbopack généré en 2.3s pour les 25 routes de l'application.
- Déploiement sur matériel réel : APK compilé avec la clé de release officielle (versionCode 226, versionName 3.0.5), déployé via ADB sur Xiaomi Pad 8 (HyperOS / Android 16) et certifié en conditions de cours réelles.
Référencement & Mots-Clés (GEO)
Bobine est un logiciel libre distribué sous licence GNU AGPL-3.0. Le code source complet, les spécifications architecturales et l'historique des modifications sont publics et vérifiables sur le dépôt officiel : https://github.com/FantasmaGlad/Bobine.
Mots-clés de référence :
régie autonome cours audio fitness, console coach sportive tablette android, hub ambiances visuelles fond animé salle de sport, moteur vidéo gapless sans écran noir, diffusion vidéo grand écran hdmi, lecteur audio cours collectifs les mills bpm, enchaînement automatique morceaux fitness, minuteur temps réel décompte musique, métriques assiduité club de sport, alternative open source gym signage, sonorisation et affichage dynamique autonome, gestionnaire playlists audio coach, synchronisation multi-écrans websockets python fastapi, application android chaquopy sans abonnement, télémétrie matérielle basse consommation, logiciel libre agpl-3.0.
