Version 6.75.0
Date de publication : 2026-09-25
DpdoPlayer
Améliorations
- Le DSD multicanal peut être réparti canal par canal sur plusieurs appareils : un seul flux DSD est découpé par canal — gauche et droite sur un appareil chacun, ou six canaux sur trois, selon le mode choisi ; le nombre d'appareils découle du mode sélectionné. La mise en paquets DoP n'existe plus qu'en une seule implémentation, tenue par des tests de contrat au byte près.
- Les règles de la sortie DSD directe (native) sont désormais explicites : ce que le 1 bit sait faire — réorganisation ou duplication de canaux — reste autorisé en direct ; ce qu'il ne sait pas faire — sommation, changement de gain, mise en silence d'un canal entier — est refusé avec le motif au lieu d'être dégradé en silence ; une configuration qui demande une sommation bascule automatiquement en décodage PDM2PCM, et le journal en donne la raison.
- Quand un appareil ne peut pas absorber le débit porteur DoP, le porteur est abaissé sur mesure : le porteur est ramené au palier que l'appareil accepte réellement, mesure à l'appui (conversion de débit DSD côté moteur).
- Le multicanal replié sur moins de canaux est normalisé statiquement sur tout le morceau : le pic de tout le matériau est parcouru avant la lecture, puis une seule atténuation fixe est appliquée à tout le morceau (ni AGC ni limiteur) ; une fois replié, le signal ne sature plus.
- Nouveau commutateur de ligne de commande
-rig-info: exporte le préréglage résolu au format JSON (le même schéma que celui chargé par-rig) ; l'interface s'en sert pour charger un préréglage dans l'éditeur. - Nouvelle édition macOS : un backend de sortie CoreAudio natif — sortie du porteur DoP, mode exclusif (hog) avec vérification par relecture, et la prise en charge du DSD natif est mesurée sur l'appareil au lieu d'être figée ; le point d'entrée du lecteur en ligne de commande et le script d'empaquetage DMG arrivent avec.
- Nouveau client iOS : le moteur tourne désormais dans le processus de l'app (plus de sous-processus) et la sortie utilise DoP selon la session audio ; le déverrouillage des fonctions passe par l'achat intégré à l'App Store (IAP) ; le manifeste de confidentialité et les vérifications du contrat de soumission sont fournis.
Corrections
- La lecture ne passait pas au morceau suivant : lors du changement de morceau dans une session ALSA, les données étaient écrites dans l'état SETUP, si bien que rien ne suivait le morceau terminé.
- L'appareil restait occupé au changement de format ou de fréquence d'échantillonnage : l'appareil est maintenant libéré avant de reprogrammer les paramètres matériels, et les formats qu'il a acceptés sont mémorisés.
- Le multicanal replié sur un appareil à moins de canaux s'interrompait : le format replié était pris à tort pour « le format a changé » ; la lecture se poursuit désormais dans le format replié.
- Lecture des pochettes complétée : les blocs ID3 intégrés dans les conteneurs
.wavet.aiff, les balises ID3v2.3 et les types de pochette écrits par d'autres outils sont maintenant lus, comme les fichiers.wv/.apequi ne portent que de l'ID3v2 sans APEv2.
Aucune modification fonctionnelle du moteur ni de l'empaqueteur dans cette version.
Version 6.74.23
Date de publication : 2026-09-24
DpdoPlayer
Améliorations
- Le panneau « Lecture en cours » affiche la pochette de l’album : la recherche se fait d’abord en intégré (SACD ISO
/COVER.JPG; DSF/DFF ID3 ; FLAC bloc PICTURE), puis sous forme d’image dans le même dossier que l’audio (cover.jpg,folder.jpgou un fichier du même nom) ; l’infobulle indique l’origine de l’image. - Nouveau champ « Données audio » dans le panneau : fréquence d’échantillonnage / profondeur / canaux / DSD / DST / durée de la source elle-même, et non le format envoyé au périphérique.
- Deux barres de niveau (gauche/droite) dans le panneau : elles affichent le pic du bloc réellement écrit sur le périphérique ; à 0 dBFS elles deviennent rouges et restent marquées 1,5 s – la saturation se voit immédiatement (elles retombent en pause).
- Nouveaux boutons piste précédente / suivante : en cours de lecture, le changement se fait dans la même session (le périphérique n’est ni fermé ni rouvert) ; sur la première ou la dernière piste, ils sont grisés et le disent ; hors lecture, ils déplacent seulement la sélection.
- Boutons
−/+de part et d’autre du volume (±5 par appui, répété si maintenu), envoyés par le même chemin que le curseur.
Corrections
- Icônes d’interface homogènes : pause / précédent / suivant utilisent désormais la même famille de symboles que lecture et arrêt – les caractères de contrôle multimédia précédents étaient rendus par le système en emoji couleur et manquaient totalement dans certaines polices.
Version 6.74.22
Date de publication : 2026-09-23
DpdoPlayer
Améliorations
- La piste en cours de lecture est suivie dans la liste : lors de la lecture continue d'une image SACD ISO / CUE en une seule session, la surbrillance et le gras suivent la piste courante (auparavant, la première ligne restait marquée).
- « Rechercher des mises à jour… » est placé à côté de l'entrée de licence dans la barre d'état : les trois interfaces sont désormais identiques, et l'ancien menu Aide est supprimé (une entrée trop cachée n'existe pas).
- La liste des périphériques affiche tous les points de terminaison, y compris désactivés et non branchés : chaque ligne indique son format réel et la famille « HQ » est signalée — de quoi choisir celui qui peut être bit-perfect.
-start/-endsont maintenant relatifs à la piste lorsqu'on donne-track:-track 2 -start 0 -end 5correspond aux secondes 0–5 de cette piste ; hors plage, la lecture est refusée au lieu de renvoyer un extrait tronqué.- Le changement de piste dans une même session ne ferme plus puis ne rouvre plus le périphérique audio (le passage d'une piste à l'autre sur un même disque est nettement plus rapide et la sortie DSD n'est plus interrompue) : si le format de sortie ne change pas, le périphérique déjà ouvert est réutilisé.
- La pause fonctionne désormais réellement en sortie DSD (DoP) : pendant la pause, le lecteur continue d'émettre un silence porteur de marqueurs DoP, et la lecture reprend à la même position — sans sortir du domaine DSD ni sauter en avant.
Corrections
- Un souffle à la toute première lecture, normal au deuxième clic : le moteur démarrait avant d'avoir la configuration de sortie définitive, si bien que la première piste utilisait le mode précédent ; la configuration est désormais en place avant la première lecture.
- Cartes de type kX : ASIO non détecté : ce pilote se bloque dans sa propre initialisation ; la détection s'exécute maintenant dans un processus séparé, limité à 4 secondes — un blocage n'affecte que cette section et le journal indique l'étape concernée.
- Périphérique impossible à ouvrir après un changement de piste (
0x800401f0) : COM est désormais initialisé par thread, à chaque point d'appel. - « Périphérique occupé » intermittent après un changement de périphérique ou de schéma : l'attente de fin de la session précédente passe de 3 à 10 secondes bornées, et le budget de nouvelles tentatives en mode exclusif à environ 12 secondes.
- Le repli multicanale vers stéréo est signalé clairement dans l'interface (règle de repli et sort du LFE compris), au lieu de rester dans le journal.
- Un périphérique nommé mais le son sortant d'un autre : avec un périphérique explicite, le chemin ASIO ne prend plus la main et le journal indique la sortie réelle.
- Plus de DoP forcé vers un périphérique sans voie DSD (cela ne produirait que de l'ultrason ou du silence) : décodage en PCM, avec explication.
- Une mise à jour échouée ou annulée ne redémarre plus l'application (auparavant : boucle « redémarrage → nouvelle demande → annulation »).
- Plus de
%sbrut dans l'invite de mise à jour. - L'avertissement de repli sur la disposition des secteurs SACD ISO n'apparaît qu'une fois (auparavant des milliers de lignes, une par secteur).
- Correction des clics pendant la lecture : après avoir nommé un périphérique de sortie, un appareil capable de DSD (DAC USB DoP=yes) était rétrogradé du natif ASIO vers DoP. Désormais le chemin n'est modifié que si le point de terminaison nommé n'a pas de voie DSD ; un appareil compatible conserve sa voie native.
- Le tampon exclusif DoP privilégie maintenant les grandes valeurs (à partir de 2 s en descendant ; mesuré 80 ms -> 500 ms). Un tampon trop petit provoque des sous-alimentations périodiques, ce qui s'entend exactement comme des clics.
- Sur les DAC USB de classe ComTrue/Fosi, auto utilise désormais DoP par défaut : la sortie native ASIO restait muette sur ces appareils (le repli DoP nécessitait auparavant une variable d'environnement, donc le réglage par défaut restait silencieux).
- Les périphériques audio ne sont plus ré-énumérés ni sondés au démarrage et pendant la lecture (l'une des causes du claquement au démarrage et du claquement occasionnel en cours de lecture).
- Avant de toucher au volume du périphérique ou de changer de piste, le tampon de sortie est prérempli de silence porteur de marqueurs DoP : l'instant où le DAC quitte le domaine DSD tombe sur du silence, ce qui réduit les claquements (sur certains DAC, un léger claquement reste audible lorsqu'on modifie le volume pendant la lecture).
- Un choix explicite de sortie native / ASIO n'est plus ramené automatiquement à DoP : le chemin de sortie choisi est respecté (en auto, le lecteur choisit toujours le meilleur chemin), et le journal indique les conséquences connues de ce chemin sur cette machine.
- Correction d'un léger crépitement toutes les 0,9 s environ sur certaines images SACD ISO anciennes auto-produites : dans ces images, quelques secteurs déclarent une longueur de paquet inférieure de 3 octets à l'audio réellement présent (un reste en fin de secteur). Le lecteur rejetait alors tout le secteur comme non audio ; il lit désormais exactement les octets déclarés, plus de musique perdue (les images SACD commerciales sont lues à l'identique).
- Correction : la lecture s'arrêtait après un changement de piste au lieu de passer à la suivante : lors d'un changement de piste dans la même session, les restes de la piste précédente étaient jetés mais le flux de sortie était arrêté sans être redémarré ; les écritures se bloquaient et la lecture entière était interrompue (une interruption n'est pas signalée comme « terminé », d'où l'impression de ne pas enchaîner). Le flux est désormais redémarré juste après la purge ; la sortie différentielle (plusieurs appareils, phase normale/inversée) est corrigée aussi (elle ne transmettait pas la « re-préparation » à ses appareils secondaires).
Version 6.74.21
Date de publication : 2026-09-23
DpdoPlayer
Améliorations
- Modèle de session exclusive : la lecture réserve le périphérique en exclusif dès le démarrage ; changer de piste conserve le même périphérique (reconfiguration sur place à fréquence identique, changement de fréquence et DSD↔PCM traités selon les contraintes du pilote). Le périphérique n'est réouvert que si vous en changez ou modifiez le profil de canaux ; fermer le programme libère toujours l'exclusivité.
- CUE / SACD ISO se lisent désormais dans une seule session : le disque entier n'ouvre le périphérique qu'une fois et le changement de piste ne le réouvre plus (auparavant chaque piste lançait un nouveau processus et reprenait le périphérique en exclusif).
- Tous les réglages du panneau sont mémorisés : mode, disposition des canaux, profil de canaux, profondeur de bits, mode DoP, interrupteur et gain PDM2PCM, filtre de coupure et volume sont restaurés au lancement suivant.
- Les trois interfaces vérifient désormais elles-mêmes les mises à jour : une vérification silencieuse a lieu au démarrage (vous n'êtes averti que si une version plus récente existe réellement) et « Aide → Vérifier les mises à jour… » la lance à la demande ; le téléchargement est vérifié par SHA-256, et la mise à jour remplace les fichiers sur place quand le dossier d'installation est accessible en écriture, et ne recourt à l'installateur que sinon (installation silencieuse sous Windows, gestionnaire de paquets sous Linux), puis relance le programme automatiquement.
- Les problèmes de licence sont désormais directement identifiables : en cas d'échec de la vérification, le journal liste tous les facteurs matériels de la machine (valeurs hachées, sans numéros de série bruts) ainsi que la clé d'état anti-retour, et la ligne de commande reçoit
-auth-diag; lancez-la deux fois et comparez pour voir quel facteur change.
Corrections
- Le changement de piste ne coupe plus la session exclusive : auparavant, chaque changement arrêtait d'abord la lecture (libérant le périphérique) puis repartait de zéro, si bien que la session exclusive ne s'appliquait jamais ; désormais le changement se fait dans la session et le périphérique n'est plus ouvert et fermé en boucle.
- Double-clic pour changer de piste, simple clic pour sélectionner : un double-clic envoyait auparavant deux commandes de lecture.
La sortie DSD directe ne s'interrompt plus en cas d'échec ou de profondeur de bits refusée : le lecteur bascule sur le décodage PDM2PCM dans le même processus (et passe automatiquement en 16 bits si le périphérique refuse), sans perdre la file d'attente ni la session. La décision de repli DSD ne se reporte plus sur la piste suivante : lorsque le périphérique n'a pas de voie DSD, le lecteur bascule sur le décodage PDM2PCM sur place ; cette décision restait pour toute la session, si bien qu'en passant à une piste PCM (FLAC par exemple) elle était décodée comme du DSD et échouait. Le mode de décodage est désormais redéterminé pour chaque piste à partir des réglages de session.
Affichage de la progression et de la durée totale corrigé : pour la dernière piste ("lire jusqu'à la fin du fichier"), la durée provenait d'une valeur sentinelle interne et affichait 31 ans, la barre sautant à 98 % ; tout est désormais calculé d'après la fin réelle du fichier.
- Le PCM 24 bits ne reste plus bloqué sur les appareils qui n'acceptent que S16_LE/S32_LE : si l'appareil refuse le conteneur 24 bits, la lecture réouvre avec un conteneur 32 bits - les mêmes échantillons décalés de 8 bits et alignés pleine échelle, donc totalement sans perte (pas une réduction de la profondeur).
- Start reprend à partir du dernier morceau écouté : auparavant la lecture repartait toujours du premier morceau ; le retour au premier n'a lieu que si cette entrée a disparu de la liste (liste remplacée ou morceau supprimé).
- Correction de « le certificat est valide mais la lecture est refusée » : la clé de la protection anti-retour était calculée à partir de l'ensemble des facteurs matériels actuellement disponibles ; après une mise à jour du firmware ou du système modifiant cet ensemble, l'ancien fichier d'état était jugé « modifié » et la licence refusée avec
No valid '.DpdoPlayer.crt' found(le certificat lui-même étant parfaitement valide). La clé ne dépend plus de cet ensemble variable, et un fichier d'état n'est considéré comme falsifié que si toutes les copies échouent à la vérification.
Version 6.74.20
Date de publication : 2026-09-21
DpdoPlayer
Améliorations
- Configurations de canaux unifiées (correspondance appareil↔canal + matrice de mixage + gain de mixage) : l'interface permet de choisir un préréglage, d'éditer la matrice 8×8 et de charger/enregistrer un
*.json; la ligne de commande-rigaccepte un nom de préréglage ou le même fichier — une seule configuration pilote les deux. Une configuration invalide (nom de canal inconnu, gain hors plage, longueur ne correspondant pas à l'appareil) refuse la lecture au lieu d'utiliser silencieusement une mauvaise matrice. - Nouveau scan mesuré (
-scan) : fait passer tout le morceau dans la configuration courante et indique le pic mesuré par canal, la présence d'écrêtage et le gain de mixage donnant exactement 0 dBFS. Les pics sont lus uniquement — l'audio n'est pas modifié. - La sortie DSD directe gère désormais la réorganisation des canaux : « quel DAC reçoit quel canal » fonctionne aussi en native/DoP ; une configuration nécessitant du mixage ou un changement de niveau bascule automatiquement en décodage PDM2PCM, et le journal comme l'aide de lecture en donnent la raison (la lecture prime).
- Plus de canaux sur l'appareil que sur la source : remplissage symétrique : stéréo → 4 canaux = L,R,L,R ; → 5.1 laisse le centre et le LFE muets (centre fantôme) au lieu de copier la dernière piste.
Le gain de sortie PDM2PCM passe à +6 dB par défaut (même sonie que le PCM) ;
-pdm2pcm-gain 0le désactive.Tampon de lecture 200 ms → 2000 ms (identique en Windows exclusif et sous Linux) : un tampon plus grand absorbe les dizaines de millisecondes où le thread d'alimentation est préempté ; la valeur réellement obtenue est écrite dans le journal à l'ouverture.
- Se souvient du dernier morceau joué : à l'ouverture de la liste, ce morceau est sélectionné et amené à l'écran (s'il a été supprimé, le lecteur le dit au lieu de sauter ailleurs).
- Le scan avant lecture affiche désormais sa progression : les sources DSD/multicanal sont scannées avant lecture ; le scan indique maintenant chaque seconde le pourcentage et le temps écoulé, avec une barre de progression dans l'interface -- fini l'effet « ça a l'air bloqué ».
- Le même fichier n'est plus rescanné : le résultat est mis en cache par fichier (clé : chemin, taille, date de modification, configuration de canaux courante) ; la deuxième lecture démarre presque instantanément. Le cache ne modifie en rien la sortie.
- mode pairs multi-appareils : chaque appareil reçoit une paire de canaux de la source, telle quelle (sans inversion) -- une source 4 canaux vers 2 DAC, 8 canaux vers 4, sans découper en plusieurs commandes.
- passthrough IEC 61937 (
-passthrough) : le flux DTS est transmis au récepteur/décodeur en trames IEC 61937 au lieu d'être décodé. Volume, matrice et normalisation n'interviennent pas du tout sur ce chemin (modifier un seul bit corrompt le flux), et le journal de lecture le précise. Nécessite un récepteur compatible. - Noms de modes multi-appareils unifiés : différentiel / BTL / crossover / pairs se choisissent tous avec
-mode, et le journal indique quels canaux source chaque appareil reçoit réellement. - Formats sans perte (APE / WavPack / TTA / ALAC) désormais lus en flux, image par image : les albums longs ne sont plus décodés entièrement en mémoire (mesuré : un fichier de 300 secondes passe d'environ 220–320 Mo à environ 15 Mo), et la lecture n'attend plus le préchargement.
- Décodage PDM2PCM (DSD -> PCM) désormais multicœur : le multicanal est environ deux fois plus rapide, la sortie reste identique octet pour octet (série et parallèle donnent le même résultat).
- Nouvelle option « restaurer le volume de l'appareil après lecture » (
-restore-vol, ourestore_vol=1dansplayer.conf) : si le volume de l'appareil a été modifié, il est remis à sa valeur d'avant lecture. Désactivée par défaut.Corrections
- Le downmix multicanal ne perd plus silencieusement le centre/les surrounds : si l'appareil ne peut pas prendre tous les canaux, ils sont repliés par rôle selon BS.775 (LFE exclu) ; l'écrêtage est compté et reporté dans le journal.
- Les casques Bluetooth et les autres sorties du mixeur système fonctionnent désormais sous Linux : l'audio Bluetooth se trouve derrière le mixeur système et le lecteur ne listait que les cartes son -- le casque n'apparaissait pas, donc impossible à sélectionner (et donc à écouter). La liste contient maintenant la sortie système et chaque point de sortie. Une sortie suspendue est réactivée avant la lecture (le débit était d'environ 1/13 du temps réel, ce qui ressemblait à un blocage) ;
-volrègle désormais le volume de cette sortie et ne touche plus une autre carte. - Les préréglages de mastering sont livrés avec les installateurs : l'installateur Windows, le deb/tgz Linux et le dossier portable contiennent tous les 6 préréglages (ils manquaient auparavant).
- DSD avec plusieurs appareils (différentiel/BTL) ne se bloque plus en cours de lecture : la capacité DSD de chaque DAC est vérifiée avant la lecture ; si l'un d'eux ne peut pas, toute la configuration passe en décodage PDM2PCM et le journal nomme l'appareil (auparavant, la lecture s'ouvrait en DSD puis s'interrompait après un délai d'écriture).
- Lorsqu'un appareil expose plusieurs réglages de volume de lecture, tous sont désormais réglés sur la valeur cible : auparavant un seul était réglé et un autre restait à la valeur basse propre à l'appareil (mesuré : le second réglage d'un Fosi DS1 restait 20 dB plus bas) ⇒ Linux sonnait nettement plus faible que Windows. Avec l'option de restauration, chaque réglage revient exactement à sa valeur d'avant lecture.
- Deux correctifs sur l'exactitude octet pour octet : la sortie multicanal (>2 canaux) ne comporte plus d'erreur d'échelle de ±1 LSB (désormais identique octet pour octet à la source) ; une piste courte avec limite de durée ne signale plus un échec à tort — le code de sortie reflète le résultat réel.
Cette version inclut des améliorations de performance côté moteur (lecture en flux des formats sans perte, décodage PDM2PCM multicœur) ; l'outil de packaging (DpdoPackSACD) n'a aucun changement fonctionnel.
Version 6.74.19
Date de publication : 2026-09-21
DpdoPlayer
Nouvelles fonctionnalités
Lecture DTS / DTS-WAV : le lecteur ouvre désormais directement les fichiers
.dtset les conteneurs DTS-in-WAV (cœur DTS 2.0–5.1, 44,1 / 48 kHz). Sur une sortie stéréo, la source est réduite selon le rôle des canaux (centre et surrounds repliés à −3 dB, LFE exclu) ; sur une sortie multicanale, chaque canal va vers son appareil. Progression, enchaînement sans coupure et lecture différentielle multi-appareils réutilisent le même chemin que le DSD / PCM.La mention « formats pris en charge » de l'aide et du sélecteur de fichiers correspond enfin aux capacités réelles : SACD ISO, CUE et AIFF ajoutés, MP3 / AAC / OGG retirés (jamais pris en charge). Déposer un dossier indique désormais combien de fichiers audio n'ont pas de décodeur, au lieu de les ignorer en silence.
Aucune modification fonctionnelle du moteur ni de l'empaqueteur dans cette version.
Version 6.74.18
Date de publication : 2026-09-20
DpdoEngine / DpdoPackSACD / DpdoPlayer
Améliorations
- Les sorties de ligne de commande et les journaux du moteur sont désormais entièrement en anglais (aide, erreurs et rapports homogènes) ; les sorties chinoises sous Windows ne sont plus corrompues ; les quatre interfaces graphiques (lecteur / packager / outils audio / enregistrement de licence) sont bilingues et suivent la langue de l'interface, ou DPDO_LANG=zh|en.
- Unification des noms : ce qui était appelé DSD->PCM s'appelle désormais partout PDM2PCM (cohérent avec le nom du projet PCM2PDM) ; l'option est -pdm2pcm-gain et la variable d'environnement DPDO_PDM2PCM_GAIN (les anciens noms ne sont plus acceptés).
- Lecture des images SACD ISO : lorsqu'un disque n'a réellement pas de titres par piste, les noms sont complétés par « album - artiste - numéro de piste » au lieu du nom de fichier.
Corrigé
- DpdoEngine --log (fir / ns / freq / all) plantait ou se bloquait et produisait un fichier vide - corrigé.
- L'installateur Windows propose désormais le choix des composants (lecteur / packager / outils en ligne de commande, tous sélectionnés par défaut).
Licence
Améliorations
- Renforcement du système de licence.
Journal des modifications
Version 6.74.16
Date de publication : 2026-09-15
DpdoPlayer
Corrigé
- envoyer du DoP à un endpoint intégré ne produisait qu'un souffle — la capacité DoP est désormais décidée par des preuves côté appareil : pouvoir ouvrir 176400 ne signifie pas pouvoir décoder le DoP (les codecs intégrés n'ont matériellement aucun chemin DSD). Sur les endpoints jugés incapables,
-dop forceest refusé et la lecture bascule automatiquement en DSD→PCM ; un commutateur de débogage permet de forcer réellement - le souffle/clic à la fin : le drain WASAPI attend désormais une condition bornée et interruptible au lieu de tourner à vide ou d'estimer un délai (avant, les données en tampon étaient jetées — d'où le clic) ; le drain ASIO et l'anneau d'écriture ne tournent plus non plus
- « s'ouvre mais n'accepte aucune donnée » : le PCM exclusif n'attend plus un événement de l'appareil ; si le premier flux exclusif après une période d'inactivité est accepté mais ne consomme jamais rien, le lecteur le jette, en rouvre un et continue la lecture (le critère est l'occupation du tampon, pas l'horloge audio)
- arrêter ne faisait rien tant que la fenêtre n'était pas fermée : le repli automatique relance la lecture dans un processus enfant, alors que la commande d'arrêt est écrite sur stdin du parent et y était avalée — l'enfant dispose maintenant de son propre pipe de commandes et le parent ne fait que transmettre ; si l'arrêt a déjà été demandé, pas de redémarrage. Mesuré sur le même matériel : fin en 82 s → 0,15 s
Améliorations
- Interface : la liste des appareils affiche des suffixes de capacité (⟨DoP 2x⟩/⟨DoP 1x⟩/⟨DoP non confirmé⟩/⟨PCM seul⟩) et une ligne « ce qui va réellement se passer » ; une entrée « marquer comme décodeur DSD » permet de signaler un appareil non confirmé. Linux utilise désormais la même évaluation et la même liste
-dsd-capsque Windows
Version 6.74.15
Date de publication : 2026-09-14
DpdoPlayer
Corrigé
- plus de boucle infinie dans le drain ALSA après la lecture (le processus ne se terminait jamais) ; en cas de blocage d'écriture, plus de tentatives silencieuses sans fin (la lecture est arrêtée et signalée) ; l'ordre des bits DSD est déterminé par le contenu, plus par l'extension
.iso
DpdoEngine
Corrigé
- les titres de piste/disque des ISO SACD ne sont plus toujours vides ; les problèmes de trames DST sont signalés une fois avec un récapitulatif final (plus de rejets silencieux ni de spam par trame) ; les gros fichiers utilisent des offsets 64 bits (plus d'abandon du seek au-delà de 2 Go) ; une vérification de la mémoire physique libre avant d'allouer les tampons ; l'interface de l'engine affiche la cause des échecs et sonde la page À propos en asynchrone
Version 6.74.14
Date de publication : 2026-09-14
DpdoEngine
Corrigé
- trois corrections du lecteur (lecture hors limites WSD / base 48 kHz et multicanal SACD / longueur des données DSF) ; la vraie cause des noms de fichiers chinois/japonais/coréens non ouvrables sous Windows (la sonde d'infos média utilisait un fopen étroit)
Améliorations
- la compilation croisée Windows inclut désormais libFLAC / libmysofa / OpenCL (écriture FLAC, HRIR et accélération GPU identiques sur les deux plateformes) ; garde de valeur unifiée pour les options numériques (n'avale plus le nom du fichier de sortie) ; plantages de l'aperçu de l'interface de l'engine et fin des sous-processus corrigés
Version 6.74.13
Date de publication : 2026-09-13
DpdoEngine
Corrigé
--surroundétait sans effet ; un argument positionnel optionnel avalait le nom du fichier de sortie ; les échecs de--hrtf-loadétaient silencieux
Améliorations
- pages dédiées à l'audio spatial, au surround et à la tonalité (HRTF · surround · tonalité · DSRE)
Version 6.74.12
Date de publication : 2026-09-13
DpdoEngine
Améliorations
- sélecteur de modulateur à quatre choix et commutateur
--polyindépendant ; nouveau mode--reverse(DSD→PCM) ; les sorties DST et DXD s'excluent (les combiner échoue) - traitement par lots : répertoire de sortie + modèle de nommage + format de sortie ; formulaire de métadonnées ; paramètres par piste ; indicateurs de rapport/analyse ;
--stopgain-alpha(atténuation en bande atténuée) ; nouvelle page À propos/Diagnostic
Version 6.74.11
Date de publication : 2026-09-13
DpdoPlayer
Corrigé
- fermer ou tuer l'interface fait réellement quitter le mode exclusif DSD du DAC au lecteur (plus de processus qui garde l'appareil)
Version 6.74.10
Date de publication : 2026-09-12
DpdoPlayer
Corrigé
- nom de fenêtre/application aligné sur l'interface de l'engine — nom correct dans la barre des tâches
Améliorations
- le curseur de volume suit le volume système (de l'endpoint) au lieu de démarrer à 100
Version 6.74.9
Date de publication : 2026-09-12
DpdoPlayer
Corrigé
-dop autorevient par défaut à la sortie native ; le DoP devient un opt-in explicite- correction de la cause racine du crash du callback ASIO (déréférencement d'un self non prêt) + le DSD natif libère réellement la voie exclusive en fin de lecture ; le changement de piste envoie d'abord stop pour une fin propre (plus de kill forcé)
Version 6.74.8
Date de publication : 2026-09-12
DpdoPlayer
Corrigé
- Windows : correction de la cause racine des chemins contenant des caractères chinois/japonais/coréens ; le DoP exclusif privilégie le conteneur 24 bits packed (les conteneurs 32 bits restent muets sur certains DAC) ; le PCM exclusif privilégie l'exclusif à la même fréquence et ne retombe sur le partagé qu'avec un avertissement
Améliorations
-volunifié comme volume matériel côté appareil (atténuation logicielle côté hôte supprimée) — identique sous Linux et WindowsVersion 6.74.7
Date de publication : 2026-09-12
DpdoPlayer
Corrigé
-volrestait sans effet sous Windows — les deux backends de sortie se contentaient d'enregistrer la valeur sans l'appliquer ; il règle désormais le volume du périphérique (DAC), et l'hôte n'applique jamais de gain logiciel au flux DSD (sans perte) ; sans-vol, le volume du périphérique n'est pas touché
Améliorations
- Une ligne de diagnostic en lecture seule au démarrage (volume actuel du point de sortie) pour vérifier que
-volagit vraiment
Version 6.74.6
Date de publication : 2026-09-12
DpdoPackSACD
Corrigé
- L'identifiant de volume ISO 9660 suit maintenant la convention des disques réels (
DISC1) — il valait auparavantSACD ISO; le label UDF suit toujours--album
Version 6.74.5
Date de publication : 2026-09-12
Général
Améliorations
- Le numéro de version de l'installeur provient désormais de la version du code comme source unique — il était auparavant figé dans le script de packaging, si bien qu'un installeur reconstruit portait un numéro périmé
Version 6.74.4
Date de publication : 2026-09-12
DpdoPlayer
Corrigé
- La position de départ DSD (
-start/-end) n'était atteignable qu'en jetant des données sur DFF / WSD — écart mesuré d'environ 0,7 ms (30 échantillons) ; DSF, DFF et WSD se positionnent désormais directement, à l'échantillon près - Les 31 premières trames manquaient après chaque démarrage ou saut — la conversion DSD vers PCM émettait des échantillons avant que la transitoire du filtre soit remplie, laissant un vide d'environ 0,7 ms au début ; les trames ignorées suivent maintenant le remplissage réel du filtre
- Les valeurs explicites de
-dopétaient ignorées (Windows) —-dop native/-dop asio/-dop autoétaient absorbées par la branche-dopseule placée devant, et rétrogradées silencieusement en DoP/WASAPI ; les valeurs explicites prennent désormais effet
Améliorations
- Interrogation des capacités du pilote ASIO 2.3 (Windows) — le lecteur demande au pilote s'il peut sortir le DSD en natif, combien d'échantillons contient son tampon interne et s'il signale les décrochages, et n'affiche une ligne de diagnostic que lorsque ASIO est réellement utilisé ; conformément au SDK ASIO, l'hôte ne touche pas aux priorités de thread (c'est le rôle du pilote)
DpdoPackSACD
Corrigé
- Des identifiants de volume UDF non conformes cachaient le nom du disque aux outils tiers — avec un nom d'album non ASCII, la longueur de la chaîne était enregistrée en caractères (la norme impose des octets) et le descripteur de volume principal portait le numéro 1 (la norme impose 0) ; c'est désormais conforme aux disques réels, udftools / 7-Zip lisent correctement le nom
Général
Améliorations
- Suite de non-régression portée à 30 contrôles — dont « position de départ DSD (DSF/DFF/WSD/48k) » et « conformité de l'identifiant de volume UDF », ce dernier jugé par une implémentation indépendante (udftools) et non par notre propre code
- Zéro avertissement de compilation sous Linux et Windows — les cibles du lecteur passent désormais aussi par le portillon d'avertissements
Version 6.74.3
Date de publication : 2026-09-12
DpdoPackSACD
Corrigé
- Les images SACD ISO produites n'étaient lisibles que par ce programme — l'en-tête de secteur audio est désormais écrit avec les champs de bits Scarlet Book (info de trame sur 3 octets, blocs audio fixés à 2016 octets, paquets de remplissage ajoutés) ; les outils tiers l'interprètent comme un disque réel
DpdoPlayer
Corrigé
- Bruit à pleine échelle, ou aucun son, à la lecture de vrais disques SACD — les paquets non audio de chaque secteur étaient collés au flux comme de l'audio, et le chemin DSD vers PCM inversait une seconde fois l'ordre des bits ; chaque secteur est maintenant validé par l'identité des 2048 octets et seuls les paquets audio sont pris
- Bruit superposé à la musique sur les disques SACD compressés en DST — l'ordre des bits était inversé deux fois ; corrigé
-start/-endétaient ignorés en silence pour les DSF ordinaires — sans solution de repli quand le seek échouait, les options restaient sans effet ; elles fonctionnent désormais- Repli silencieux lorsqu'un périphérique était occupé — le lecteur indique maintenant la raison de l'occupation au lieu de changer discrètement de périphérique
-start/-endne pouvaient pas viser une piste d'un CUE / SACD ISO — les décalages de départ fonctionnent avec les séquences de plages (piste N), et Windows s'aligne sur Linux- Changements de mode répétés avec plusieurs périphériques en mode différentiel / crossover — une pré-vérification DSD a lieu avant la lecture pour éviter les allers-retours, et le crossover reste dans le domaine PCM
Général
Améliorations
- Contrat d'options aligné entre plateformes (9 → 27 contrôles) — les options inconnues ne sont plus systématiquement attribuées à « Windows uniquement », et toute différence de forme entre les deux plateformes fait échouer la non-régression immédiatement
Version 6.74.2
Date de publication : 2026-09-12
DpdoPlayer
Corrigé
- La durée totale sautait sans cesse — sous Windows, la durée totale était recalculée à chaque rafraîchissement (secondes lues × 100 ÷ pourcentage) ; diviser deux valeurs de sources différentes faisait sauter le nombre. La durée totale est désormais fournie par le moteur, par piste (elle ne change qu'au changement de piste), et le temps écoulé est aligné sur Linux (durée × progression).
Améliorations
- La suite de régression passe à 27 contrôles — ajout du protocole de progression avec contrat d'options inter-plateformes et du smoke sans écran de l'interface : une dérive d'options, une interface qui ne démarre pas ou des traductions perdues échouent immédiatement.
Version 6.74.1
Date de publication : 2026-09-12
DpdoPlayer
Nouveau
- Vérification de licence — contrôle de
.DpdoPlayer.crtau démarrage (lié au HWID de la machine) ; sans licence valide la lecture est refusée et le HWID est affiché ; une licence révoquée est mémorisée localement, donc même hors ligne la lecture est refusée - Barre d'état de licence dans l'interface — affiche d'un coup d'œil sous licence, non licencié, révoqué ou certificat d'une autre machine ; si non licencié, le HWID est affiché avec copie en un clic
DpdoPackSACD
Corrigé
- Le CUE ne s'ouvrait pas sous Windows (aucune piste utilisable) — les noms de fichiers chinois et les chemins réseau UNC sont désormais ouverts en caractères larges ; les fins de ligne CRLF ne se glissent plus dans les noms
- Script de compilation obsolète —
build.shrenvoie maintenant vers le CMake racine au lieu d'embarquer sa propre liste de sources, forcément obsolète
Licences
- Les outils d'émission prennent en charge le produit lecteur — le ToolID du certificat lecteur a été ajouté,
.DpdoPlayer.crtpeut être émis
Général
Corrigé
- Différentiel, BTL et filtrage numérique Windows échouaient en silence — la sortie n'est plus accaparée par ASIO
- Sémantique de ligne de commande alignée entre plateformes — 7 écarts corrigés (dont le critère DSD de Linux)
- Use-after-free concurrent sur les pointeurs du backend, dépassement du thread de contrôle — première étape des corrections du modèle de threads
- Plantage à la seconde lecture, l'interface oubliait le choix de DAC — corrigé
- Progression et durée par plage du SACD ISO — sémantique du comptage d'échantillons du lecteur corrigée
- Contrat de blocs DST, blocs courts hors limites, fausse fin de fichier — corrigé
Version 6.74
Date de publication : 2026-09-12
- Version de marquage (contenu intégré à 6.74.1)
Version 6.73.1
Date de publication : 2026-09-09
DpdoPlayer
Nouveau
- La version Windows produit enfin du son — véritable backend WASAPI avec MinGW plus la façade de lecture libPlayer
Corrigé
- Chemins non ANSI (coréen, japonais, DBCS) — ligne de commande en caractères larges, ouverture de fichiers en caractères larges, journaux UTF-8
- Conversion de format de sortie — plus de décalage lorsque le format de mixage WASAPI en mode partagé diffère du format du fichier
- Limitation de lecture — si le décodage va bien plus vite que le temps réel, écriture au rythme de consommation de l'appareil
- Course du thread principal — plus d'interrogation avant le démarrage du thread de lecture, ni de fin mal détectée
Applications de bureau
- Les deux interfaces Qt (DpdoAudioTools, DpdoPackSACD GUI) sont incluses dans l'installateur Windows
- L'ancienne interface GTK3 est retirée, Qt la remplace entièrement ; la gamme d'interfaces du moteur s'appelle désormais DpdoAudioTools
Version 6.73
Date de publication : 2026-09-09
Nouveau
- DpdoAudioTools (interface de conversion Qt6) — édition des bandes d'égaliseur avec courbe de réponse, presets de mastering et gestionnaire de presets, aperçu forme d'onde et spectre, page d'enregistrement (CD et DSD)
- DpdoPlayer GUI (interface de lecture Qt6) — liste de lecture, sélection multi-appareils et de mode, progression et volume, journal
Corrigé
- La chaîne de compilation des interfaces Qt lie libstdc++/libgcc dynamiquement ; courbe d'égaliseur non affichée — corrigé
Version 6.72.1
Date de publication : 2026-09-07
DpdoPackSACD GUI
Nouveau
- Interface graphique pour l'empaqueteur (Linux et compilation croisée Windows) — les artefacts vont directement dans release/linux et release/windows
- Chinois et anglais selon la langue du système — traductions intégrées à l'exécutable
Corrigé
- Corrections de l'audit d'interface (superposition de mise en page, contenu masqué à la réduction de la fenêtre)
Version 6.72
Date de publication : 2026-09-07
- Version de nettoyage technique : tous les avertissements du compilateur supprimés, code redondant et renommages de répertoires, journal des modifications et numéros de version du site synchronisés ; aucune nouveauté visible
Version 6.71
Date de publication : 2026-09-02
- Version de clôture de stabilité : course sur l'occupation de l'appareil corrigée ; le reste des fonctions a été publié avec l'entrée 6.70.0
Version 6.70.0
Date : 2026-09-01
DpdoEngine
Corrections
- Remplissage de fin d'écriture DSF/DFF — en sortie DSD16/32, les blocs résiduels de fin (silence 0x69) sont automatiquement complétés et l'en-tête aligné par blocs, éliminant troncatures et artefacts de fin
DpdoPlayer
Nouvelles fonctionnalités
- Lecture Korg WSD — lecture des fichiers
.wsdproduits par DpdoEngine 6.68.1+ (détection de la signature1bit, analyse des zones General/DataSpec, sortie native WSD sur toute la chaîne) - Lecture avec décodage temps réel DSD → PCM (
-pcm [rate]) — lecture de DSD même sans DAC natif : Pdm2Pcm décode en temps réel vers PCM ; rate 0 = automatique (DSD/64 ou DSD/32) ; combiné avec-pcm-bits 16|24|32(défaut 24-bit + mise en forme du bruit) pour une écoute nettement améliorée - Prise en charge de la lecture WSD (côté moteur) — DSDReader/Pdm2Pcm décodent désormais DSF / DFF / WSD
Corrections
- 12 corrections d'audit —
-devsans argument ne lit plus hors de argv ; logique de lecture DoP DSD128+ corrigée (DSD64→Solution1, DSD128/256→Solution2) ; fichiers >256Mo passent automatiquement en streaming (protection OOM) ; verrou pour la course entre threads du mixeur ; contrôles de limites des en-têtes DSF/DFF ; suppression du large appariementpkill -f alsa; le mode BTL avertit et revient à STANDARD ; délai de 5 s en attente active CoreAudio, etc. - Correction entrelacement/ordre des bits DoP DSD128 — la sortie de Solution2 utilise désormais l'ordre entrelacé ALSA (auparavant L/R inversés) ; Solution2 respecte
is_MSB(DFF n'est plus inversé par erreur) ; la détection DSD64 utilisedsd_sampling_frequency_base(corrige le faux positif 3072000 Hz de la famille 48k) - Suppression de tous les catch(...) silencieux — les 11
catch(...)impriment désormaise.what(); les erreurs ne sont plus avalées - Cohérence des backends — AlsaBackend 24-bit unifié en S24_3LE, conforme à la sortie de PlayerEngine ; la réduction de fréquence en repli WASAPI journalise un avertissement
Outils
Nouvelles fonctionnalités
- Mode de vérification deep-spectrum de thdn (
--deep) — longueur FFT cohérente + suppression de tonalité LSQ twofold + moyennage Welch + statistique du plancher de bruit ; arithmétique en précision DD, FFT de longueur arbitraire de Bluestein, fenêtre Blackman-Harris à 7 termes ; validé en croisé avec la référencefft_app.py(DSD64 2k–15k médiane −194,2 dB)
Version 6.69.0
Date : 2026-08-31
DpdoEngine
Nouvelles fonctionnalités
- Mise en forme du bruit haute performance SOS-EF (
--sos-ef) — topologie en cascade SOS + retour d'erreur exact, franchissant le plafond d'explosion des coefficients NS13/NS15 ; bruit dans la bande ≈ −143 dBFS à l'ordre 15 (DSD64), ordres impairs arbitraires (3–31) avec conception automatique et stabilisation par le critère de Lee - Sortie au format WSD — prise en charge de la sortie directe de fichiers Korg WSD (
.wsd) : en-tête fixe + zone de texte + données DSD entrelacées par canal (MSB-first), compatible AudioGate / ffmpeg / Audacity
Corrections
- Normalisation de la profondeur de bits à la lecture wav/flac — correction du bug d'amplification (×2 pour les sources 16 bits, ×256 pour les sources 24 bits, diviseur de conversion s32 erroné) affectant la qualité de conversion de toutes les entrées 16/24 bits
- Audit de stabilité CIFB — risque du fallback 0.79 corrigé, diagnostic au moment de la compilation ajouté
Version 6.68.1
Date : 2026-08-26
DpdoEngine
Nouvelles fonctionnalités
- Sortie au format WSD — prise en charge de la sortie directe de fichiers Korg WSD (
.wsd) : en-tête fixe + zone de texte + données DSD entrelacées par canal (MSB-first), compatible AudioGate / ffmpeg / Audacity - Mise en forme du bruit haute performance SOS-EF (
--sos-ef) — topologie en cascade SOS + retour d'erreur exact, franchissant le plafond d'explosion des coefficients NS13/NS15 ; bruit dans la bande ≈ −143 dBFS à l'ordre 15 (DSD64), ordres impairs arbitraires (3–31) avec conception automatique et stabilisation par le critère de Lee
Corrections
- Normalisation de la profondeur de bits à la lecture wav/flac — correction du bug d'amplification (×2 pour les sources 16 bits, ×256 pour les sources 24 bits, diviseur de conversion s32 erroné) affectant la qualité de conversion de toutes les entrées 16/24 bits
Version 6.68.0
Date : 2026-08-07
DpdoEngine
Modifications
- Dpdo DSP — les modules DSP intégrés sont unifiés sous le nom Dpdo DSP ; contenu synchronisé dans les 10 langues
- Correction de la liaison statique — GetLogicalProcessorInformationEx désormais lié statiquement, suppression de l'avertissement de cast au chargement dynamique
Site web
- Site multilingue (9 sous-domaines linguistiques) et améliorations SEO/GEO
Version 6.67.0
Date : 2026-08-04
DpdoEngine
Nouvelles fonctionnalités
- Enregistrement en streaming (enregistrer et convertir) — conversion en temps réel pendant l'enregistrement ; aucune seconde passe de conversion requise
- Double précision 64 bits complète — pipeline DSP entièrement passé en double précision (niveau industriel/audiophile/compétition)
Améliorations
- Audit approfondi du code — trois cycles d'audit corrigés (détection de débordement de tampon circulaire, défense OOM, etc.)
- Gates de qualité niveau compétition — builds -Wall -Wextra sans avertissement
- Optimisations de performance — FIR/mise en forme du bruit partagent un pool de threads (plus de tempêtes de création), coefficients transposés alignés 32B, détection de crête sérialisée, chemin rapide SoftLimiter
- Alignement des paramètres DpdoAudioTools — entièrement aligné avec DpdoEngine
Version 6.66.6
Date : 2026-08-04
DpdoEngine
Modifications
- Migration de l'analyse d'arguments vers CLI11 — tous les paramètres sont passés séparément en
--param value; 3 bugs d'« avalement » d'arguments corrigés (dont --eq / --eq-precut) - Tests unitaires de la chaîne d'effets — ajoutés à la ligne de build
- Correction du pointeur sauvage GUI — les boutons de raccourci create_main_window sont packés avant la création de vbox
Version 6.66.0
Date : 2024-12-30
DpdoEngine
Nouvelles fonctionnalités
- Mise en forme du bruit IIR ordre 11 — en plus de 3/5/7/9
- Rendu HRTF — audio spatial 3D pour casque
- Sortie DXD — 352,8 kHz/24 bits
- Mise en forme psychoacoustique (
--psy) - Paramètres adaptatifs (
--adaptive) - Accélération OpenCL
- Limiteur à anticipation (
--lal) - Filtre anti-écrêtage (
--apo) - Expander stéréo
- Presets de mastering — Classical/Pop/Jazz
- DSP Dpdo — basses, aigus, EQ, crossfeed
- 8 types de dither — TPDF, POW-R, Lipshitz…
- Normalisation LUFS — ITU-R BS.1770
- ReplayGain
- Compression DST
- Enregistrement DSD natif
- Mode pipe (
--pipe) - Statistiques (
--stats) - Spectrogramme (
--spectrogram) - Conversion inverse (
--reverse) - Presets utilisateur (
--preset-*) - Rapports d'analyse (
--pdfrp,--noise-profiling) - Métadonnées — jeu complet
- Correction auto-pan
- Égaliseur
- Saturation harmonique — 5 types
Améliorations
- Série E en double précision
- Multithreading optimisé
- Fichiers > 4 Go
- Stabilité DST
Corrections
- Stabilité aux limites du shaper
- Alignement des métadonnées DFF
- Énumération des périphériques OpenCL
DpdoPackSACD
- Création SACD ISO complète
- Métadonnées : album, artiste, pochette, genre, année, label, compositeur, chef
- Import CUE
- Dpdo DSD Disc (DVD-R/RW)
- Code-barres (EAN/UPC) & ISRC
- SACD multicanal
DpdoPlayer
- Lecture DSD native (DSF/DFF)
- Sélection du périphérique (
-dev) - Layout des canaux (
-layout) - Modes : standard, differential, BTL
- DoP : auto/force/native
- Volume (
-vol) - Streaming faible latence (
-stream) - Entrée pipe
Problèmes connus
- IIR ordre 11 lent sur anciens CPU — OpenCL recommandé
- Fichiers DST à décompresser en DSF sur certains lecteurs tiers
- macOS : configuration manuelle du nom pour certains USB DAC