Historique des versions
Changelog
Toutes les nouveautés, améliorations et corrections de RustMusic.
v0.1.6
Patch5 mai 2026
Lecture DSD (DSF + DFF)
- ●Support natif des fichiers DSD (.dsf et .dff) en pur Rust, sans Symphonia ni FFmpeg
- ●Conversion DSD → PCM via l'algorithme Gesemann (DSD2PCM) avec filtre Blackman-Harris 2048 taps qualité foobar2000
- ●Détection automatique du débit DSD64 / 128 / 256 / 512 / 1024 et affichage en MHz
- ●Pipeline complète : décodage → conversion → resampling → ring buffer → CPAL avec seek et bit-perfect
- ●Badge doré dédié dans toutes les vues (liste, grille, détail, status bar) pour identifier les morceaux DSD au premier coup d'œil
Serveur DLNA / UPnP
- ●Diffusion de votre musique vers les amplis et chaînes hi-fi compatibles DLNA sur le réseau local
- ●Découverte automatique via SSDP : aucun appairage manuel, l'ampli détecte le serveur tout seul
- ●Navigation par Artistes, Albums et Dossiers avec pochettes embarquées dans la métadata DIDL
- ●Support multi-bibliothèques : chaque bibliothèque expose ses propres artistes, albums et dossiers
- ●Streaming HTTP avec support des requêtes Range pour le seek depuis l'ampli
- ●Section Réseau dédiée dans les paramètres : nom du serveur, port, statut, URL d'accès
- ●Indicateur de statut dans la barre du lecteur pour vérifier que le serveur tourne
Extracteur de métadonnées maison
- ●Refonte complète de l'extraction des tags audio : zéro dépendance externe (plus de lofty ni id3)
- ●Parser ID3v2.3 / ID3v2.4 maison supportant 35+ frames (TIT2, TPE1, TALB, TCON, TBPM, POPM, APIC, USLT, etc.)
- ●Tous les encodages standards gérés : ISO-8859-1, UTF-16 BE/LE avec ou sans BOM, UTF-8
- ●Mapping étendu des notations POPM (rating) avec normalisation 0-5 / 0-100 / 0-255 → étoiles
- ●Fallback automatique sur les images de dossier (cover.jpg, folder.jpg, front.jpg/png/webp/avif)
Interface
- ●Affichage du débit en Mb/s pour les très hauts débits (au lieu de kbps quand ≥ 1000)
- ●Composant NowPlayingCard réutilisable (variantes default + blur), partagé entre la file d'attente et les paroles
Stabilité
- ●Correction du décodage de la colonne modified_at dans plusieurs requêtes SQL (provoquait l'invisibilité des morceaux dans la vue dossiers DLNA)
- ●Logs réduits : niveau d'information minimal au démarrage, plus de spam pendant la lecture
v0.1.5
Patch2 mai 2026
Paroles synchronisées
- ●Affichage des paroles synchronisées style Apple Music avec défilement automatique sur le morceau actif
- ●Récupération automatique via l'API LRCLIB (cascade /get + /search pour trouver la version synchronisée)
- ●Support des fichiers sidecar .lrc placés à côté du fichier audio
- ●Cache local en base SQLite pour éviter les appels réseau répétés
- ●Fond flou de pochette + voile dégradé pour une immersion cinématique
Apparence
- ●Nouvelle section « Apparence » dans les paramètres avec sélecteurs visuels
- ●Choix du thème : Auto (système), Clair ou Sombre — appliqué instantanément
- ●Aperçus visuels compacts pour chaque option (cartes responsive)
- ●Suivi automatique du thème système quand le mode Auto est activé
Contrôles de fenêtre
- ●Quatre styles disponibles : Auto, macOS (traffic lights), Windows ou Linux (boutons GNOME)
- ●Position des contrôles configurable : à gauche ou à droite de la titlebar
- ●Le mode Auto choisit le style en fonction du système d'exploitation détecté
- ●Aperçus visuels dans les paramètres pour chaque combinaison
Instance unique
- ●Empêche le lancement de plusieurs instances simultanées de RustMusic
- ●Restaure la fenêtre existante si l'utilisateur tente de relancer l'application
- ●Demande d'attention sur la barre des tâches pour notifier le retour au premier plan
v0.1.4
Patch21 avril 2026
Pochettes d'albums
- ●Récupération automatique des pochettes via l'API Deezer depuis le menu contextuel album
- ●Recherche manuelle avec un popin premium et une grille de résultats
- ●Sélection d'un fichier local comme pochette
- ●Action groupée « Pochettes d'albums » dans les paramètres pour traiter tous les albums sans pochette
- ●Nouveau filtre « Sans pochette » pour isoler les albums sans visuel
Notation des morceaux
- ●Extraction automatique du tag POPM/Rating lors du scan (support des formats 0-5, 0-100 et 0-255)
- ●Composant d'étoiles cliquable avec aperçu au survol et mise à jour en temps réel
- ●Colonne de notation dans les vues liste et grille, ainsi que sur la page détail du morceau
- ●Tri des morceaux par notation (les morceaux non notés sont placés en fin de liste)
Navigation alphabétique
- ●Ascenseur A-Z sur les pages albums, artistes et morceaux pour sauter directement à une lettre
- ●Lettres grisées automatiquement quand aucun élément ne commence par cette lettre
- ●Bouton dédié dans la barre de vue pour afficher ou masquer la navigation
Filtres et tri
- ●Refonte premium de la barre de filtres avec un menu déroulant pour le tri et un bouton de direction intégré
- ●Filtre « Sans pochette » étendu aux morceaux
- ●Direction descendante par défaut pour la notation, la durée et la date (plus intuitif)
- ●Mémorisation du tri par contexte (morceaux, albums, artistes, genres)
Interface
- ●Option « Simple clic = lecture » dans les paramètres pour lancer un morceau en un seul clic
- ●Sous-menu « Ajouter à une playlist » dans les menus contextuels (ajout groupé depuis les albums ou une sélection multiple)
Stabilité
- ●Double protection contre les crashs de scan avec fallback séquentiel fichier par fichier en cas de batch défaillant
- ●Journalisation des fichiers problématiques pour faciliter l'identification des coupables
Corrections
- ●Le tri des morceaux n'est plus réinitialisé à chaque changement de bibliothèque
v0.1.3
Patch7 avril 2026
Sélection multiple
- ●Mode sélection sur les listes de morceaux avec barre d'actions flottante (lire, ajouter à la file, ajouter à une playlist)
- ●Boutons « Sélectionner » et « Tout sélectionner » dans la barre de filtres
Albums & Artistes
- ●Boutons play et menu contextuel au survol des covers d'albums
- ●Ajout à une playlist depuis le menu contextuel (tous les morceaux d'un album)
- ●Tri des morceaux (N°, titre, durée) et des albums (année, titre) sur les pages album et artiste
- ●Zoom lightbox sur les covers d'albums et photos d'artistes
File d'attente & Lecteur
- ●Drag & drop fonctionnel pour réorganiser la file d'attente
- ●Bouton play/pause dans le header de la file
- ●Correction du bouton pause qui remettait le morceau à zéro
Stabilité & Compatibilité
- ●Protection contre les crashs sur fichiers audio corrompus ou formats exotiques
- ●Ajout des formats WAV, AIFF, OPUS et AAC au scan de bibliothèque
- ●Grilles responsives avec breakpoints pour grands écrans (6, 7, 8 colonnes)
v0.1.2
Patch5 avril 2026
Profils
- ●Bouton « Modifier » visible sous chaque profil dans la popin de sélection
- ●Confirmation de suppression : il faut taper « supprimer » pour valider
- ●La création d'un profil ne quitte plus la popin et ne le sélectionne plus automatiquement
Performance — Page artiste
- ●Chargement progressif avec skeletons : le header s'affiche instantanément, les sections se remplissent au fur et à mesure
- ●Nouvelles commandes backend ciblées (get_albums_by_artist, get_similar_artists) au lieu de tout charger
- ●Optimisation des requêtes SQL : suppression des sous-requêtes coûteuses
- ●Ajout de 6 index SQLite manquants pour accélérer les pages artiste, album et recherche
Playlists & Corrections
- ●Ajout du bouton « Tout lire » sur la page playlist
- ●Correction du lien artiste dans les résultats de recherche
- ●Page feedback redessinée avec lien contact@rustmusic.dev (suppression des mentions RiffFlow)
v0.1.1
Patch30 mars 2026
Linux
- ●Correction de l'affichage des covers sur Linux (contournement du bug WebKitGTK 2.50 avec le protocole asset://)
- ●Correction de l'encodage %2F dans les URLs asset sur Linux
- ●Ajout du support de compilation .deb et .rpm
- ●Correction du warning GTK gtk_widget_get_scale_factor
Covers & Miniatures
- ●Nouveau composant CoverImg avec chargement async et cache LRU (max 300 entrées, ~40 Mo)
- ●Commande Rust read_cover_as_base64 pour servir les covers via IPC (fallback base64)
- ●Fonction assetSrc() pour corriger l'encodage des chemins Linux
- ●Support des tailles de miniatures (full, 1x, 2x) avec génération en background
- ●Réorganisation des covers : covers/albums/ et covers/artists/ avec sous-dossiers full/1x/2x
- ●Migration automatique des anciennes covers vers la nouvelle structure
- ●Redimensionnement rapide via fast_image_resize (SIMD) au lieu du crate image
- ●Génération à la volée des miniatures manquantes (resolve_thumbnail) avec fallback sur full
- ●Pool de threads dédié (50% des cores) pour la génération de miniatures en arrière-plan
- ●Double mode d'affichage : protocole asset (direct, rapide) ou base64 IPC (fallback)
- ●Filtrage des images artistes par défaut de Deezer (détection du pattern URL sans hash)
Images artistes
- ●Live update des images artistes : apparition en temps réel pendant le fetch Deezer
- ●Store réactif artistImageReadyStore avec event artist-image-ready
- ●Récupération des images artistes en mode force (re-télécharge même si le chemin existe en base)
- ●Sauvegarde des images artistes dans covers/artists/full/ avec miniatures en background
Import & Progression
- ●Nouveau composant d'import premium : cercle de progression avec glow, shimmer, ETA
- ●Estimation du temps restant en live pendant l'import
- ●StatusBar redesignée : gradient, shimmer, pourcentage, bouton d'annulation au hover
- ●Refresh automatique des données après import (libraryContentStore.refresh())
- ●Correction du freeze de 30s à l'annulation du dialogue d'import
- ●Loader d'import ajouté aux pages Genres et Explorateur de fichiers
- ●Migration des covers avec progression dans la statusbar
Paramètres
- ●Ajout du bouton « Ouvrir le dossier de données » (ouvre l'explorateur sur le dossier AppData)
- ●Notifications désactivées par défaut (option retirée des paramètres, sera réintroduite plus tard)
- ●Traductions ajoutées (FR, EN, ES, DE) pour les nouvelles entrées
Optimisation
- ●Tailles de covers adaptées par contexte : 1x pour les listes, 2x pour les grilles, full pour les pages détail
- ●Transaction SQL pour les migrations de covers (rollback en cas d'erreur)
- ●Génération des miniatures en 2 passes : déplacement + DB (rapide) puis resize en parallèle
UI
- ●Correction de la troncature des titres longs (noms de fichiers) dans toutes les vues (album, playlists, queue, player, stats, recherche)
- ●Ajout du title (tooltip au hover) pour afficher le nom complet des titres tronqués
v0.1.0
BetaPremière version publique
Tout commence ici — la première version de RustMusic pose les bases d'un lecteur pensé pour les audiophiles.
- ●Lecture HD bit-perfect : FLAC, WAV, AIFF jusqu'à 24bit/192kHz, plus MP3, AAC, OGG et M4A
- ●Bibliothèque SQLite embarquée avec import parallèle et scan incrémental ultra-rapide
- ●Interface sombre et soignée propulsée par Svelte 5 et Tailwind CSS
- ●Statistiques détaillées : formats, qualité, top artistes, genres avec graphiques SVG
- ●Multi-profils et multi-bibliothèques pour organiser sa musique sans compromis
- ●Récupération automatique des pochettes artistes via l'API Deezer