Versión 6.75.0

Fecha de publicación: 2026-09-25

DpdoPlayer

Mejoras

  • El DSD multicanal puede repartirse canal a canal entre varios dispositivos: un solo flujo DSD se divide por canales — izquierdo y derecho en un dispositivo cada uno, o seis canales en tres, según el modo elegido; el número de dispositivos lo decide el modo seleccionado. El empaquetado DoP pasa a existir en una sola implementación, respaldada por pruebas de contrato byte a byte.
  • Las reglas de la salida DSD directa (native) quedan explícitas: lo que el 1 bit sí puede hacer — reordenar o duplicar canales — sigue saliendo en directo; lo que el 1 bit no puede hacer — sumar, cambiar la ganancia, silenciar un canal entero — se rechaza indicando el motivo, sin degradarse en silencio; una configuración que necesite suma pasa automáticamente a decodificación PDM2PCM y el registro explica por qué.
  • Si el dispositivo no admite la tasa del portador DoP, el portador baja de escalón según la medición: el portador se reduce al escalón que el dispositivo acepta de verdad, medido y no supuesto (conversión de tasa DSD en el motor).
  • El material multicanal plegado a menos canales se normaliza de forma estática en toda la pista: antes de reproducir se recorre el pico de todo el material y se aplica una única atenuación fija a toda la pista (ni AGC ni limitador); una vez plegado, ya no recorta.
  • Nuevo conmutador de línea de comandos -rig-info: exporta el preajuste resuelto como JSON (el mismo esquema que carga -rig); la interfaz lo usa para llevar el preajuste al editor.
  • Nueva edición para macOS: un backend de salida CoreAudio nativo — salida del portador DoP, modo exclusivo (hog) con verificación por relectura, y la compatibilidad con DSD nativo se sondea en el dispositivo en lugar de fijarse; el punto de entrada del reproductor de línea de comandos y el script de empaquetado DMG vienen con ello.
  • Nuevo cliente iOS: el motor ahora se ejecuta dentro del proceso de la app (sin subproceso) y la salida usa DoP según la sesión de audio; el desbloqueo de funciones pasa por la compra dentro de la app en el App Store (IAP); se incluyen el manifiesto de privacidad y las comprobaciones del contrato de envío.

Correcciones

  • No se pasaba a la pista siguiente al terminar una: al cambiar de pista en una sesión ALSA los datos se escribían en el estado SETUP, así que nada seguía a la pista terminada.
  • El dispositivo quedaba ocupado al cambiar de formato o de frecuencia de muestreo: ahora se libera antes de reprogramar los parámetros de hardware y se recuerdan los formatos que ha aceptado.
  • El material multicanal en un dispositivo con menos canales se interrumpía tras el plegado: el formato plegado se tomaba por error como «el formato ha cambiado»; ahora la reproducción continúa con el formato plegado.
  • Búsqueda de carátulas completada: ya se leen los bloques ID3 incrustados en contenedores .wav y .aiff, las etiquetas ID3v2.3 y los tipos de carátula escritos por otras herramientas, igual que los archivos .wv / .ape que solo llevan ID3v2 y no APEv2.

Sin cambios funcionales en el motor ni en el empaquetador en esta versión.

Versión 6.74.23

Fecha de publicación: 2026-09-24

DpdoPlayer

Mejoras

  • El panel de reproducción muestra la carátula del álbum: se busca primero incrustada (SACD ISO /COVER.JPG; DSF/DFF ID3; FLAC bloque PICTURE) y después como imagen en la misma carpeta que el audio (cover.jpg, folder.jpg o un archivo con el mismo nombre); la ayuda emergente indica de dónde salió la imagen.
  • Nuevo campo «Datos de audio» en el panel: frecuencia de muestreo / profundidad de bits / canales / DSD / DST / duración de la propia fuente, no del formato que se envía al dispositivo.
  • Dos barras de nivel (izquierda/derecha) en el panel: muestran el pico del bloque que realmente se escribe en el dispositivo; a 0 dBFS se ponen rojas y quedan marcadas 1,5 s, así el recorte se ve de inmediato (en pausa bajan al mínimo).
  • Nuevos botones de pista anterior / siguiente: durante la reproducción cambian dentro de la misma sesión (el dispositivo no se cierra ni se reabre); en la primera o la última pista se desactivan y lo indican; sin reproducción solo mueven la selección.
  • Botones − / + junto al control de volumen (±5 por pulsación, se repite al mantener), enviados por el mismo camino que el control.

Correcciones

  • Iconos de la interfaz unificados: pausa / anterior / siguiente usan ahora la misma familia de símbolos que reproducir y detener – los caracteres de control multimedia anteriores el sistema los dibujaba como emoji en color y en algunas fuentes no aparecían.

Versión 6.74.22

Fecha de publicación: 2026-09-23

DpdoPlayer

Mejoras

  • La pista en reproducción se sigue en la lista: al reproducir una imagen SACD ISO / CUE como una sola sesión continua, el resaltado y la negrita siguen a la pista actual (antes se quedaban siempre en la primera fila).
  • «Buscar actualizaciones…» pasa junto a la entrada de licencia en la barra de estado: las tres interfaces quedan iguales y el antiguo menú Ayuda se elimina (una entrada demasiado escondida no existe).
  • La lista de dispositivos muestra todos los puntos finales, incluidos los desactivados y no conectados: cada línea indica su formato real y se señala la familia de puntos finales «HQ», para elegir fácilmente el que puede ser bit-perfect.
  • -start / -end son relativos a la pista cuando se indica -track: -track 2 -start 0 -end 5 son los segundos 0–5 de esa pista; fuera de rango se rechaza la reproducción en vez de devolver un fragmento recortado.
  • Cambiar de pista dentro de una sesión ya no cierra y reabre el dispositivo de audio (el cambio de pista dentro de un mismo disco es notablemente más rápido y la salida DSD no se interrumpe): si el formato de salida no cambia, se reutiliza el dispositivo ya abierto.
  • La pausa ahora funciona de verdad en la salida DSD (DoP): durante la pausa se sigue enviando silencio con marcadores DoP, y la reproducción se reanuda en la misma posición: ni se sale del dominio DSD ni se salta hacia adelante.

Correcciones

  • Un siseo en la primera reproducción que desaparece al segundo clic: el motor empezaba antes de tener la configuración de salida definitiva, así que la primera pista usaba el modo anterior; ahora la configuración siempre está lista antes de la primera reproducción.
  • Tarjetas tipo kX: ASIO no detectado: ese controlador se bloquea en su propia inicialización; la detección ahora se ejecuta en un proceso aparte con límite de 4 segundos — un bloqueo solo afecta a esa sección y el registro dice en qué paso se quedó.
  • No se puede abrir el dispositivo tras cambiar de pista (0x800401f0): COM ahora se inicializa por hilo, en todos los puntos de llamada.
  • «Dispositivo en uso» ocasional tras cambiar de dispositivo o esquema: la espera a que termine la sesión anterior pasó de 3 a 10 segundos con límite, y el presupuesto de reintentos en exclusivo a unos 12 segundos.
  • La mezcla de multicanal a estéreo se avisa claramente en la interfaz (con la regla de mezcla y el destino del LFE), en lugar de quedar solo en el registro.
  • Se indica un dispositivo de salida pero suena otro: con un dispositivo explícito, la ruta ASIO ya no se apodera de la salida y el registro indica la salida real.
  • Ya no se fuerza DoP en dispositivos sin ruta DSD (solo sería ultrasonido o silencio): se decodifica a PCM y se explica el motivo.
  • Una actualización fallida o cancelada ya no reinicia la aplicación (antes se quedaba en «reiniciar → volver a preguntar → cancelar»).
  • Ya no aparece un %s sin formato en el aviso de actualización.
  • El aviso de reserva sobre la disposición de sectores del SACD ISO aparece una sola vez (antes miles de líneas, una por sector).
  • Corregidos los chasquidos durante la reproducción: al indicar un dispositivo de salida, un equipo capaz de DSD (DAC USB con DoP=yes) se degradaba de ASIO nativo a DoP. Ahora solo se cambia la ruta cuando el propio punto final indicado no tiene vía DSD; un equipo compatible conserva su ruta nativa.
  • El búfer exclusivo de DoP ahora prefiere valores grandes (desde 2 s bajando; medido 80 ms -> 500 ms). Un búfer demasiado pequeño provoca subalimentaciones periódicas, que es justo lo que se oye como chasquidos.
  • En los DAC USB de clase ComTrue/Fosi, auto usa DoP por defecto: la salida nativa ASIO no producía sonido en estos equipos (antes el camino DoP requería una variable de entorno, por lo que el ajuste predeterminado quedaba en silencio).
  • Los dispositivos de audio ya no se reenumeran ni se sondean al arrancar ni durante la reproducción (una de las causas del chasquido al arrancar y del chasquido ocasional durante la reproducción).
  • Antes de tocar el volumen del dispositivo o de cambiar de pista, el búfer de salida se rellena con silencio con marcadores DoP: el instante en que el DAC sale del dominio DSD cae sobre silencio, lo que reduce los chasquidos (en algunos DAC aún puede oírse un chasquido leve al cambiar el volumen durante la reproducción).
  • Elegir explícitamente la salida native / ASIO ya no se revierte automáticamente a DoP: se respeta la ruta de salida elegida (en auto el reproductor sigue eligiendo la mejor ruta) y el registro indica las consecuencias conocidas de esa ruta en este equipo.
  • Corregido un chasquido leve cada ~0,9 s al reproducir algunas imágenes SACD ISO antiguas de producción propia: en esas imágenes algunos sectores declaran una longitud de paquete 3 bytes menor que el audio que realmente contienen (un resto al final del sector); el lector descartaba el sector completo como no-audio. Ahora lee exactamente los bytes declarados, así que no se pierde música (las imágenes SACD comerciales se leen igual que antes).
  • Corregido: la reproducción se detenía tras cambiar de pista en lugar de pasar a la siguiente: al cambiar de pista dentro de la misma sesión se descartaban los restos de la pista anterior, pero el flujo de salida se detenía y nunca se reiniciaba; las escrituras se bloqueaban y se abortaba toda la reproducción (una abortación no se informa como «terminado», por eso parecía que no encadenaba la siguiente pista). Ahora el flujo se reinicia justo después de descartar; la salida diferencial (varios dispositivos, fase normal/invertida) también queda corregida (no reenviaba la «re-preparación» a sus dispositivos secundarios).

Versión 6.74.21

Fecha de publicación: 2026-09-23

DpdoPlayer

Mejoras

  • Modelo de sesión exclusiva: la reproducción reserva el dispositivo en exclusiva desde el inicio; al cambiar de pista se conserva el mismo dispositivo (reconfiguración en el sitio si la frecuencia no cambia; cambio de frecuencia y DSD↔PCM según las restricciones del controlador). Solo se reabre al elegir otro dispositivo o cambiar el perfil de canales, y al cerrar el programa siempre se libera la exclusividad.
  • CUE / SACD ISO ahora se reproducen en una sola sesión: el disco completo abre el dispositivo una sola vez y el cambio de pista ya no lo reabre (antes cada pista lanzaba un proceso nuevo y volvía a tomar el dispositivo en exclusiva).
  • Se recuerdan todos los ajustes del panel: modo, disposición de canales, perfil de canales, profundidad de bits, modo DoP, interruptor y ganancia de PDM2PCM, corte y volumen se restauran en el siguiente arranque.
  • Las tres interfaces ya comprueban las actualizaciones por sí mismas: al arrancar se hace una comprobación silenciosa (solo se avisa si existe realmente una versión más reciente) y «Ayuda → Buscar actualizaciones…» la lanza cuando quieras; la descarga se verifica con SHA-256 y la actualización sustituye los archivos en el sitio cuando la carpeta de instalación es escribible, y solo si no lo es recurre al instalador (instalación silenciosa en Windows, gestor de paquetes en Linux), y después reinicia el programa automáticamente.
  • Los problemas de licencia ya se pueden diagnosticar directamente: cuando falla la comprobación, el registro enumera todos los factores de hardware del equipo (valores con hash, sin números de serie en claro) junto con la clave de estado anti-retroceso, y la línea de comandos incorpora -auth-diag; ejecútala dos veces y compara para ver qué factor cambia.

Correcciones

  • Cambiar de pista ya no deshace la sesión exclusiva: antes, cada cambio detenía primero la reproducción (liberando el dispositivo) y volvía a empezar, por lo que la sesión exclusiva nunca llegaba a aplicarse; ahora el cambio ocurre dentro de la sesión y el dispositivo ya no se abre y cierra repetidamente.
  • Doble clic para cambiar de pista, un clic solo selecciona: antes un doble clic enviaba dos comandos de reproducción.
  • La salida DSD directa ya no se interrumpe si falla o si el dispositivo rechaza esa profundidad de bits: el reproductor pasa a decodificación PDM2PCM en el mismo proceso (bajando automáticamente a 16 bits si el dispositivo lo rechaza), sin perder la cola ni la sesión. La decisión de reserva DSD ya no se arrastra a la pista siguiente: cuando el dispositivo no tiene vía DSD, el reproductor pasa a decodificación PDM2PCM en el sitio; esa decisión permanecía durante toda la sesión, de modo que al cambiar a una pista PCM (por ejemplo FLAC) se intentaba decodificar como DSD y fallaba. Ahora el modo de decodificación se vuelve a determinar en cada pista a partir de los ajustes de sesión.

  • Corregida la visualización del progreso y la duración total: en la última pista ("reproducir hasta el final del archivo") la duración se tomaba de un valor centinela interno y mostraba 31 años, con la barra saltando al 98 %; ahora todo se calcula desde el final real del archivo.

  • El PCM de 24 bits ya no falla en dispositivos que solo aceptan S16_LE/S32_LE: si el dispositivo rechaza el contenedor de 24 bits, se reabre con un contenedor de 32 bits: las mismas muestras desplazadas 8 bits y alineadas a escala completa, es decir, totalmente sin pérdidas (no es reducir la profundidad de bits).
  • Start continúa desde la última pista reproducida: antes siempre empezaba por la primera; solo vuelve a la primera cuando esa entrada ya no está en la lista (lista reemplazada o pista eliminada).
  • Corregido «el certificado es válido pero se rechaza la reproducción»: la clave del archivo de estado anti-retroceso se calculaba a partir del conjunto de factores de hardware disponibles en ese momento, así que tras una actualización de firmware o del sistema que cambiara ese conjunto, un archivo de estado antiguo se juzgaba «modificado» y la licencia se rechazaba con No valid '.DpdoPlayer.crt' found (el certificado era perfectamente válido). La clave ya no depende de ese conjunto variable, y un archivo de estado solo se considera manipulado si todas las copias fallan la verificación.

Versión 6.74.20

Fecha de publicación: 2026-09-21

DpdoPlayer

Mejoras

  • Configuraciones de canales unificadas (asignación dispositivo↔canal + matriz de mezcla + ganancia de mezcla): la interfaz permite elegir un preajuste, editar la matriz 8×8 y cargar/guardar un *.json; la línea de comandos -rig acepta un nombre de preajuste o ese mismo archivo — una sola configuración controla ambos. Una configuración no válida (nombre de canal desconocido, ganancia fuera de rango, longitud que no coincide con el dispositivo) se rechaza al reproducir, en lugar de usar en silencio una matriz equivocada.
  • Nuevo escaneo medido (-scan): reproduce todo el material con la configuración actual e informa del pico medido por canal, si hay recorte y la ganancia de mezcla que deja exactamente 0 dBFS. Los picos solo se leen: el audio no se modifica.
  • La salida DSD directa ahora admite reordenar canales: «qué DAC recibe qué canal» también funciona en native/DoP; una configuración que necesite mezcla o cambio de nivel pasa automáticamente a decodificación PDM2PCM, y tanto el registro como la ayuda de reproducción lo explican (la reproducción tiene prioridad).
  • Cuando el dispositivo tiene más canales que la fuente se rellenan de forma simétrica: estéreo → 4 canales = L,R,L,R; → 5.1 deja el central y el LFE en silencio (central fantasma) en lugar de copiar la última pista.
  • La ganancia de salida PDM2PCM ahora es +6 dB por defecto (misma sonoridad que el PCM); -pdm2pcm-gain 0 la desactiva.

  • Búfer de reproducción 200 ms → 2000 ms (igual en Windows exclusivo y Linux): un búfer mayor absorbe las decenas de milisegundos en que el hilo de alimentación es desplazado; el valor realmente concedido se escribe en el registro al abrir el flujo.

  • Recuerda la última pista reproducida: al abrir la lista se selecciona y se lleva a la vista esa pista (si se ha borrado, lo indica en lugar de saltar a otra).
  • El escaneo previo a la reproducción ya muestra progreso: las fuentes DSD/multicanal se escanean antes de reproducir; ahora informa cada segundo del porcentaje y los segundos transcurridos, con una barra de progreso en la interfaz -- se acabó el efecto de «parece colgado».
  • El mismo archivo ya no se vuelve a escanear: el resultado se guarda en caché por archivo (clave: ruta, tamaño, fecha de modificación y configuración de canales actual), así que la segunda reproducción empieza casi al instante. La caché no cambia la salida.
  • modo pairs multidispositivo: cada dispositivo recibe un par de canales de la fuente, tal cual (sin inversión) -- una fuente de 4 canales a 2 DAC, 8 canales a 4, sin dividirlo en varios comandos.
  • passthrough IEC 61937 (-passthrough): el flujo DTS se entrega al receptor/decodificador como tramas IEC 61937 en lugar de decodificarse. El volumen, la matriz y la normalización no intervienen en esta ruta (cambiar un solo bit corrompe el flujo) y el registro de reproducción lo indica. Requiere un receptor compatible.
  • Nombres de modo multidispositivo unificados: diferencial / BTL / crossover / pairs se eligen con -mode, y el registro muestra qué canales de la fuente recibe realmente cada dispositivo.
  • Formatos sin pérdida (APE / WavPack / TTA / ALAC) ahora en flujo, trama a trama: los álbumes largos ya no se decodifican enteros en memoria (medido: un archivo de 300 segundos pasa de unos 220–320 MB a unos 15 MB) y la reproducción ya no espera a la precarga.
  • La decodificación PDM2PCM (DSD -> PCM) ahora es multinúcleo: el material multicanal es unas dos veces más rápido, con salida idéntica byte a byte (serie y paralelo dan el mismo resultado).
  • Nueva opción «restaurar el volumen del dispositivo tras la reproducción» (-restore-vol, o restore_vol=1 en player.conf): si se ajustó el volumen del dispositivo, se devuelve a su valor previo al terminar. Desactivada por defecto.

    Correcciones

  • La mezcla descendente multicanal ya no descarta el central/los surround en silencio: si el dispositivo no acepta todos los canales, se pliegan por rol según BS.775 (LFE excluido) y el recorte se cuenta y se informa en el registro.
  • Los auriculares Bluetooth y otras salidas del mezclador del sistema ya se reproducen en Linux: el audio Bluetooth está detrás del mezclador del sistema y el reproductor solo listaba tarjetas de sonido -- los auriculares no aparecían, así que no se podían seleccionar (ni reproducir). Ahora la lista incluye la salida del sistema y cada punto de salida. Una salida suspendida se reactiva antes de reproducir (el rendimiento era de unas 1/13 veces el tiempo real, lo que parecía un bloqueo); -vol ahora ajusta el volumen de esa salida y no toca otra tarjeta.
  • Los preajustes de masterización se incluyen con los instaladores: el instalador de Windows, el deb/tgz de Linux y la carpeta portátil contienen los 6 preajustes (antes faltaban en los paquetes).
  • DSD con varios dispositivos (diferencial/BTL) ya no se queda bloqueado a mitad de reproducción: antes de reproducir se comprueba la capacidad DSD de cada DAC; si alguno no puede, toda la configuración pasa a decodificación PDM2PCM y el registro indica cuál (antes se abría en DSD y se abortaba tras un tiempo de espera de escritura).
  • Cuando un dispositivo expone varios controles de volumen de reproducción, ahora se ajustan todos al valor objetivo: antes solo se ajustaba uno y otro quedaba en el valor bajo propio del dispositivo (medido: el segundo control de un Fosi DS1 quedaba 20 dB más bajo) ⇒ Linux sonaba bastante más flojo que Windows. Con la opción de restauración, cada control vuelve exactamente a su valor previo.
  • Dos correcciones de exactitud byte a byte: la salida multicanal (>2 canales) ya no tiene un error de escala de ±1 LSB (ahora idéntica byte a byte a la fuente); una pista corta con límite de tiempo ya no informa de un fallo falso — el código de salida refleja el resultado real.

Esta versión incluye mejoras de rendimiento en el motor (reproducción en flujo de formatos sin pérdida, decodificación PDM2PCM multinúcleo); el empaquetador (DpdoPackSACD) no tiene cambios funcionales.

Versión 6.74.19

Fecha de publicación: 2026-09-21

DpdoPlayer

Nuevas funciones

  • Reproducción DTS / DTS-WAV: el reproductor ahora abre directamente archivos .dts y contenedores DTS-in-WAV (núcleo DTS 2.0–5.1, 44,1 / 48 kHz). En una salida estéreo la fuente se reduce por rol de canal (central y surround plegados a −3 dB, LFE excluido); en una salida multicanal cada canal va a su dispositivo. El progreso, el cambio de pista sin cortes y el modo diferencial multiequipo reutilizan el mismo camino que DSD / PCM.

  • La línea de «formatos compatibles» de la ayuda y del selector de archivos ya coincide con lo que el reproductor abre de verdad: se añaden SACD ISO, CUE y AIFF y se quitan MP3 / AAC / OGG (nunca compatibles). Al arrastrar una carpeta ahora se indica cuántos archivos de audio no tienen decodificador, en lugar de omitirlos en silencio.

Sin cambios funcionales en el motor ni en el empaquetador en esta versión.

Versión 6.74.18

Fecha de publicación: 2026-09-20

DpdoEngine / DpdoPackSACD / DpdoPlayer

Mejoras

  • La salida de línea de comandos y los registros del motor están ahora íntegramente en inglés (ayuda, errores e informes con un mismo criterio); la salida en chino bajo Windows ya no aparece corrupta; las cuatro interfaces gráficas (reproductor / empaquetador / herramientas de audio / registro de licencia) son bilingües y siguen el idioma de la interfaz, o DPDO_LANG=zh|en.
  • Unificación de nombres: lo que antes se llamaba DSD->PCM ahora se llama PDM2PCM (coherente con el nombre del proyecto PCM2PDM); la opción es -pdm2pcm-gain y la variable de entorno DPDO_PDM2PCM_GAIN (los nombres antiguos ya no se aceptan).
  • Lectura de imágenes SACD ISO: cuando el disco realmente no tiene títulos por pista, los nombres se completan como «álbum - artista - número de pista» en lugar del nombre de archivo.

Corregido

  • DpdoEngine --log (fir / ns / freq / all) se bloqueaba o fallaba y generaba un archivo vacío - corregido.
  • El instalador de Windows ahora permite elegir componentes (reproductor / empaquetador / herramientas de línea de comandos, todos marcados por defecto).

Licencias

Mejoras

  • Refuerzo del sistema de licencias.

Registro de cambios

Versión 6.74.16

Fecha de publicación: 2026-09-15

DpdoPlayer

Corregido

  • alimentar un endpoint integrado con DoP solo producía siseo — la capacidad DoP ahora se decide por evidencia del propio dispositivo: poder abrir 176400 no significa poder decodificar DoP (los códecs integrados no tienen camino DSD en el hardware). En endpoints juzgados no aptos, -dop force se rechaza y la reproducción pasa automáticamente a DSD→PCM; un conmutador de depuración permite forzarlo de verdad
  • el siseo/clic al terminar: el drain de WASAPI ahora espera una condición acotada e interrumpible en vez de girar o estimar un retardo (antes se descartaban los datos en búfer, lo que producía el clic); el drain de ASIO y el anillo de escritura tampoco giran ya
  • «se abre pero no acepta datos»: el PCM exclusivo ya no espera un evento del dispositivo; si el primer flujo exclusivo tras un periodo inactivo se acepta pero nunca consume nada, el reproductor lo descarta, abre uno nuevo y sigue reproduciendo (el criterio es la ocupación del búfer, no el reloj de audio)
  • detener no hacía nada hasta cerrar la GUI: el repliegue automático reinicia la reproducción en un proceso hijo, mientras que la orden de detener va al stdin del padre y allí se perdía — ahora el hijo tiene su propia tubería de órdenes y el padre solo reenvía; si ya se pulsó detener, no se reinicia. Medido con el mismo material: cierre 82 s → 0,15 s

Mejoras

  • GUI: la lista de dispositivos muestra sufijos de capacidad (⟨DoP 2x⟩/⟨DoP 1x⟩/⟨DoP sin confirmar⟩/⟨solo PCM⟩) y una línea de «qué pasará realmente»; una entrada «marcar como decodificador DSD» permite marcar un dispositivo sin confirmar. Linux usa ahora la misma evaluación y la misma lista -dsd-caps que Windows

Versión 6.74.15

Fecha de publicación: 2026-09-14

DpdoPlayer

Corregido

  • se acabó el giro infinito en el drain de ALSA tras la reproducción (el proceso nunca terminaba); si no se puede escribir ya no reintenta en silencio sin fin (se detiene esa reproducción y se informa); el orden de bits DSD se decide por el contenido, no por si la extensión es .iso

DpdoEngine

Corregido

  • los títulos de pista/disco de los ISO SACD ya no están siempre vacíos; los problemas de tramas DST se informan una vez con un resumen final (sin descartes silenciosos ni spam por trama); los archivos grandes usan desplazamientos de 64 bits (ya no se abandona el seek pasados 2 GB); una comprobación de memoria física libre antes de asignar búferes; la GUI del motor muestra la causa de los fallos y sondea la página Acerca de de forma asíncrona

Versión 6.74.14

Fecha de publicación: 2026-09-14

DpdoEngine

Corregido

  • tres correcciones del lector (lectura fuera de límites en WSD / base de 48 kHz y multicanal en SACD / longitud de datos DSF); la causa real de que no se abran nombres chinos/japoneses/coreanos en Windows (la sonda de info multimedia usaba fopen estrecho)

Mejoras

  • la compilación cruzada para Windows ahora incluye libFLAC / libmysofa / OpenCL (escritura FLAC, HRIR y aceleración por GPU iguales en ambas plataformas); guardas de valor unificadas en opciones numéricas (ya no se come el nombre del archivo de salida); fallos de la vista previa de la GUI del motor y cierre de subprocesos corregidos

Versión 6.74.13

Fecha de publicación: 2026-09-13

DpdoEngine

Corregido

  • --surround no tenía ningún efecto; un argumento posicional opcional se comía el nombre del archivo de salida; los fallos de --hrtf-load eran silenciosos

Mejoras

  • páginas dedicadas a audio espacial, surround y tono (HRTF · surround · tono · DSRE)

Versión 6.74.12

Fecha de publicación: 2026-09-13

DpdoEngine

Mejoras

  • selector de modulador con cuatro opciones y conmutador --poly independiente; nuevo modo --reverse (DSD→PCM); las salidas DST y DXD se excluyen (combinarlas falla)
  • procesamiento por lotes: carpeta de salida + plantilla de nombres + formato de salida; formulario de metadatos; parámetros por pista; indicadores de informe/análisis; --stopgain-alpha (atenuación en banda atenuada); nueva página Acerca de/Diagnóstico

Versión 6.74.11

Fecha de publicación: 2026-09-13

DpdoPlayer

Corregido

  • cerrar o matar la GUI hace que el reproductor abandone de verdad el modo exclusivo DSD del DAC (sin procesos reteniendo el dispositivo)

Versión 6.74.10

Fecha de publicación: 2026-09-12

DpdoPlayer

Corregido

  • nombre de ventana/aplicación alineado con la GUI del motor — nombre correcto en la barra de tareas

Mejoras

  • el control de volumen sigue el volumen del sistema (del endpoint) en vez de empezar en 100

Versión 6.74.9

Fecha de publicación: 2026-09-12

DpdoPlayer

Corregido

  • -dop auto vuelve por defecto a la salida nativa; el DoP pasa a ser opt-in explícito
  • corregida la causa raíz del fallo del callback ASIO (autorreferencia antes de estar listo) + el DSD nativo libera de verdad el flujo exclusivo al terminar; el cambio de pista envía primero stop para cerrar limpiamente (sin matar el proceso)

Versión 6.74.8

Fecha de publicación: 2026-09-12

DpdoPlayer

Corregido

  • Windows: corregida la causa raíz de las rutas con caracteres chinos/japoneses/coreanos; el DoP exclusivo ahora prefiere el contenedor 24 bits packed (los de 32 bits quedan mudos en algunos DAC); el PCM exclusivo prefiere exclusivo a la misma frecuencia y solo cae a compartido con aviso

Mejoras

  • -vol unificado como volumen de hardware del dispositivo (eliminada la atenuación software del host) — idéntico en Linux y Windows

    Versión 6.74.7

Fecha de publicación: 2026-09-12

DpdoPlayer

Corregido

  • -vol no surtía efecto en Windows — los dos backends de salida solo guardaban el valor sin aplicarlo; ahora ajusta el volumen del dispositivo (DAC), y el host nunca aplica ganancia por software al flujo DSD (sin pérdidas); sin -vol no se toca el volumen del dispositivo

Mejoras

  • Una línea de diagnóstico de solo lectura al arrancar (volumen actual del punto de salida) para comprobar que -vol actúa de verdad

Versión 6.74.6

Fecha de publicación: 2026-09-12

DpdoPackSACD

Corregido

  • El identificador de volumen ISO 9660 sigue ahora la convención de los discos reales (DISC1) — antes decía SACD ISO; la etiqueta UDF sigue a --album

Versión 6.74.5

Fecha de publicación: 2026-09-12

General

Mejoras

  • El número de versión del instalador ahora se toma de la versión del código como única fuente — antes estaba fijado en el script de empaquetado, así que un instalador reempaquetado llevaba un número obsoleto

Versión 6.74.4

Fecha de publicación: 2026-09-12

DpdoPlayer

Corregido

  • La posición de inicio en DSD (-start / -end) solo se lograba descartando hasta el límite de bloque en DFF / WSD — desviación medida de unos 0,7 ms (30 muestras); ahora DSF, DFF y WSD se posicionan directamente, con precisión de muestra
  • Faltaban las primeras 31 tramas tras cada inicio o salto — la conversión de DSD a PCM entregaba muestras antes de llenar el transitorio del filtro, dejando un hueco de unos 0,7 ms al principio; ahora las tramas omitidas siguen el llenado real del filtro
  • Se ignoraban los valores explícitos de -dop (Windows) — -dop native / -dop asio / -dop auto eran absorbidos por la rama -dop simple situada delante y se degradaban en silencio a DoP/WASAPI; ahora los valores explícitos surten efecto

Mejoras

  • Consulta de capacidades del controlador ASIO 2.3 (Windows) — el reproductor pregunta al controlador si puede emitir DSD nativo, cuántas muestras tiene su búfer interno y si informa de cortes, e imprime una línea de diagnóstico solo cuando ASIO se usa de verdad; según el SDK de ASIO, el host no modifica las prioridades de hilo (eso corresponde al controlador)

DpdoPackSACD

Corregido

  • Identificadores de volumen UDF no conformes ocultaban el nombre del disco a herramientas de terceros — con un nombre de álbum no ASCII la longitud de la cadena se registraba en caracteres (la norma exige bytes) y el descriptor de volumen principal llevaba el número 1 (la norma exige 0); ahora coincide con los discos reales y udftools / 7-Zip leen el nombre correctamente

General

Mejoras

  • Suite de regresión ampliada a 30 comprobaciones — incluye «posición de inicio en DSD (DSF/DFF/WSD/48k)» y «conformidad del identificador de volumen UDF», esta última evaluada por una implementación independiente (udftools) y no por nuestro propio código
  • Cero avisos de compilación en Linux y Windows — los objetivos del reproductor también pasan por el control de avisos

Versión 6.74.3

Fecha de publicación: 2026-09-12

DpdoPackSACD

Corregido

  • Las imágenes SACD ISO generadas solo las podía leer este programa — la cabecera del sector de audio se escribe ahora con los campos de bits de Scarlet Book (info de trama de 3 bytes, bloques de audio fijados en 2016 bytes, paquetes de relleno añadidos); las herramientas de terceros la interpretan igual que un disco real

DpdoPlayer

Corregido

  • Ruido a plena escala, o nada de sonido, al reproducir discos SACD reales — los paquetes no de audio de cada sector se empalmaban al flujo como audio, y la ruta DSD a PCM invertía por segunda vez el orden de bits; ahora cada sector se valida con la identidad de 2048 bytes y solo se toman los paquetes de audio
  • Ruido superpuesto a la música en discos SACD comprimidos con DST — el orden de bits se invertía dos veces; corregido
  • -start / -end se ignoraban en silencio en DSF normales — sin alternativa cuando fallaba el seek, las opciones no surtían efecto; ahora funcionan
  • Repliegue silencioso cuando un dispositivo estaba ocupado — el reproductor ahora indica el motivo de la ocupación en lugar de cambiar de dispositivo en silencio
  • -start / -end no podían apuntar a una pista dentro de un CUE / SACD ISO — los desplazamientos de inicio funcionan con secuencias de rangos (pista N), y Windows queda alineado con Linux
  • Cambios de modo repetidos con varios dispositivos en modo diferencial / crossover — se ejecuta una comprobación previa de DSD antes de reproducir para evitar conmutaciones continuas, y el crossover permanece en el dominio PCM

General

Mejoras

  • Contrato de opciones alineado entre plataformas (9 → 27 comprobaciones) — las opciones desconocidas ya no se atribuyen todas a «solo Windows», y cualquier diferencia de forma entre plataformas hace fallar la regresión de inmediato

Versión 6.74.2

Fecha de publicación: 2026-09-12

DpdoPlayer

Corregido

  • La duración total saltaba constantemente — en Windows la duración total se recalculaba en cada actualización (segundos reproducidos × 100 ÷ porcentaje); al dividir dos valores de fuentes distintas el número saltaba. Ahora la duración total la entrega el motor por pista (solo cambia al cambiar de pista) y el tiempo reproducido se unifica con Linux (duración × progreso).

Mejoras

  • La regresión pasa a 27 comprobaciones — se añaden el protocolo de progreso con contrato de opciones entre plataformas y el smoke sin interfaz de la GUI: una desviación de opciones, una GUI que no arranca o traducciones perdidas fallan de inmediato.

Versión 6.74.1

Fecha de publicación: 2026-09-12

DpdoPlayer

Nuevo

  • Validación de licencia — comprueba .DpdoPlayer.crt al iniciar (vinculado al HWID del equipo); sin licencia válida se rechaza la reproducción y se muestra el HWID; si la licencia queda revocada se registra localmente, de modo que también se rechaza sin conexión
  • Barra de estado de licencia en la GUI — muestra de un vistazo con licencia, sin licencia, revocada o certificado de otro equipo; sin licencia muestra el HWID con copia en un clic

DpdoPackSACD

Corregido

  • El CUE no se abría en Windows (no hay pistas utilizables) — los nombres de archivo en chino y las rutas UNC ahora se abren con API de caracteres anchos; los finales de línea CRLF ya no se cuelan en los nombres
  • Script de compilación obsoleto — build.sh ahora reenvía al CMake raíz en lugar de llevar su propia lista de fuentes, inevitablemente obsoleta

Licencias

  • Las herramientas de emisión admiten el producto reproductor — se añadió el ToolID del certificado del reproductor, ya se puede emitir .DpdoPlayer.crt

General

Corregido

  • Diferencial, BTL y cruce digital de Windows fallaba en silencio — la salida ya no la toma ASIO
  • Semántica de línea de comandos alineada entre plataformas — 7 diferencias corregidas (incluido el criterio DSD de Linux)
  • Use-after-free concurrente en punteros del backend, acceso fuera de rango del hilo de control — primer paso de las correcciones del modelo de hilos
  • Cuelgue en la segunda reproducción, la GUI olvidaba la selección de DAC — corregido
  • Progreso y duración por pista del SACD ISO — semántica del conteo de muestras del lector corregida
  • Contrato de bloques DST, bloques cortos fuera de rango, falso fin de archivo — corregido

Versión 6.74

Fecha de publicación: 2026-09-12

  • Versión de marcado (contenido integrado en 6.74.1)

Versión 6.73.1

Fecha de publicación: 2026-09-09

DpdoPlayer

Nuevo

  • La versión de Windows ya suena — backend WASAPI real con MinGW más el frontend de reproducción libPlayer

Corregido

  • Rutas no ANSI (coreano, japonés, DBCS) — línea de comandos con caracteres anchos, apertura de archivos con caracteres anchos, registro UTF-8
  • Conversión de formato de salida — ya no se desajusta cuando el formato de mezcla de WASAPI en modo compartido difiere del formato del archivo
  • Limitación de reproducción — si la decodificación va mucho más rápido que el tiempo real, se escribe al ritmo de consumo del dispositivo
  • Condición de carrera del hilo principal — ya no sondea antes de que arranque el hilo de reproducción y confunde el final

Aplicaciones de escritorio

  • Las dos GUI Qt (DpdoAudioTools, DpdoPackSACD GUI) se incluyen en el instalador de Windows
  • La antigua interfaz GTK3 se retira y Qt la sustituye por completo; la línea GUI del motor pasa a llamarse DpdoAudioTools

Versión 6.73

Fecha de publicación: 2026-09-09

Nuevo

  • DpdoAudioTools (GUI de conversión Qt6) — edición de bandas de EQ con curva de respuesta, presets de masterización y gestor de presets, previsualización de forma de onda y espectro, página de grabación (grabación CD y DSD)
  • DpdoPlayer GUI (interfaz de reproducción Qt6) — lista de reproducción, selección de varios dispositivos y modo, progreso y volumen, registro

Corregido

  • La cadena de compilación de las GUI Qt enlaza libstdc++/libgcc de forma dinámica; la curva de EQ no se mostraba — corregido

Versión 6.72.1

Fecha de publicación: 2026-09-07

DpdoPackSACD GUI

Nuevo

  • Interfaz gráfica para el empaquetador (Linux y compilación cruzada a Windows) — los artefactos van directos a release/linux y release/windows
  • Chino e inglés según el idioma del sistema — traducciones incrustadas en el ejecutable

Corregido

  • Correcciones de la auditoría de interfaz (solapamiento de diseño, contenido oculto al comprimir la ventana)

Versión 6.72

Fecha de publicación: 2026-09-07

  • Versión de limpieza de ingeniería: todos los avisos del compilador eliminados, código redundante y renombrado de directorios, registro de cambios y números de versión del sitio sincronizados; sin funciones nuevas visibles

Versión 6.71

Fecha de publicación: 2026-09-02

  • Versión de cierre de estabilidad: corregida la condición de carrera por ocupación del dispositivo; el resto de funciones se publicaron con la entrada 6.70.0

Versión 6.70.0

Fecha: 2026-09-01

DpdoEngine

Correcciones

  • Relleno final del escritor DSF/DFF — en salidas DSD16/32, los bloques residuales del final (silencio 0x69) se rellenan automáticamente y la cabecera se alinea por bloques, eliminando truncamientos y artefactos finales

DpdoPlayer

Nuevas funciones

  • Reproducción de Korg WSD — reproduce archivos .wsd generados por DpdoEngine 6.68.1+ (detecta la marca 1bit, analiza las áreas General/DataSpec, salida nativa WSD en toda la cadena)
  • Reproducción con decodificación en tiempo real DSD → PCM (-pcm [rate]) — reproduce DSD en DAC sin soporte nativo: Pdm2Pcm decodifica en tiempo real a PCM; rate 0 = automático (DSD/64 o DSD/32); combinado con -pcm-bits 16|24|32 (predeterminado 24-bit + conformado de ruido) mejora notablemente la audición
  • Soporte de lectura WSD (lado del motor) — DSDReader/Pdm2Pcm ahora decodifican DSF / DFF / WSD

Correcciones

  • 12 correcciones de auditoría — -dev sin argumento ya no lee fuera de argv; lógica de reproducción DoP DSD128+ corregida (DSD64→Solution1, DSD128/256→Solution2); archivos >256MB pasan automáticamente a streaming (protección OOM); bloqueo para la carrera entre hilos del mezclador; comprobaciones de límites en cabeceras DSF/DFF; eliminado el amplio emparejamiento pkill -f alsa; el modo BTL ahora avisa y vuelve a STANDARD; tiempo de espera de 5 s en CoreAudio, etc.
  • Corrección de entrelazado/orden de bits en DoP DSD128 — la salida de Solution2 ahora usa orden entrelazado ALSA (antes L/R intercambiados); Solution2 respeta is_MSB (DFF ya no se invierte por error); la detección DSD64 usa dsd_sampling_frequency_base (corrige el falso positivo de 3072000 Hz de la familia 48k)
  • Eliminados todos los catch(...) silenciosos — los 11 catch(...) ahora imprimen e.what(); los errores ya no se tragan
  • Consistencia de backends — AlsaBackend 24-bit unificado a S24_3LE, coincidiendo con la salida de PlayerEngine; el fallback de reducción de frecuencia WASAPI ahora registra una advertencia

Herramientas

Nuevas funciones

  • Modo de verificación deep-spectrum en thdn (--deep) — longitud FFT coherente + eliminación de tonos LSQ twofold + promediado Welch + estadística del piso de ruido; aritmética de precisión DD, FFT de longitud arbitraria Bluestein, ventana Blackman-Harris de 7 términos; validado de forma cruzada con fft_app.py de referencia (DSD64 2k–15k mediana −194,2 dB)

Versión 6.69.0

Fecha: 2026-08-31

DpdoEngine

Nuevas funciones

  • Conformador de ruido SOS-EF de alto orden (--sos-ef) — topología de cascada SOS + retroalimentación de error precisa, que elimina el cuello de botella de explosión de coeficientes de NS13/NS15; ruido en banda de aproximadamente −143 dBFS (DSD64) a orden 15, con diseño automático para cualquier orden impar (3–31) y estabilización mediante el criterio de Lee
  • Salida en formato WSD — salida directa de WSD de Korg (.wsd): cabecera fija + área de texto + DSD entrelazado por canal (MSB primero); compatible con AudioGate / ffmpeg / Audacity

Correcciones

  • Normalización de la profundidad de bits de lectura en wav/flac — bug de amplificación de material de 16 bits ×2 y de 24 bits ×256 (divisor erróneo en la conversión s32), que afectaba a la calidad de conversión de todas las entradas de 16/24 bits
  • Auditoría de estabilidad CIFB — corregido el riesgo del fallback 0.79, diagnóstico en tiempo de compilación añadido

Versión 6.68.1

Fecha: 2026-08-26

DpdoEngine

Nuevas funciones

  • Salida en formato WSD — salida directa de WSD de Korg (.wsd): cabecera fija + área de texto + DSD entrelazado por canal (MSB primero); compatible con AudioGate / ffmpeg / Audacity
  • Conformador de ruido SOS-EF de alto orden (--sos-ef) — topología de cascada SOS + retroalimentación de error precisa, que elimina el cuello de botella de explosión de coeficientes de NS13/NS15; ruido en banda de aproximadamente -143 dBFS (DSD64) a orden 15, con diseño automático para cualquier orden impar (3–31) y estabilización mediante el criterio de Lee

Correcciones

  • Normalización de la profundidad de bits de lectura en wav/flac — bug de amplificación de material de 16 bits ×2 y de 24 bits ×256 (divisor erróneo en la conversión s32), que afectaba a la calidad de conversión de todas las entradas de 16/24 bits

Versión 6.68.0

Fecha: 2026-08-07

DpdoEngine

Cambios

  • Dpdo DSP — módulos DSP integrados unificados bajo el nombre Dpdo DSP; contenido sincronizado en los 10 idiomas
  • Corrección de enlazado estático — GetLogicalProcessorInformationEx ahora se enlaza estáticamente; se elimina la advertencia de cast en carga dinámica

Sitio web

  • Sitio multilingüe (9 subdominios de idioma) y mejoras SEO/GEO

Versión 6.67.0

Fecha: 2026-08-04

DpdoEngine

Nuevas funciones

  • Grabación en streaming (grabar y convertir) — conversión en tiempo real durante la grabación; no se requiere segunda pasada de conversión
  • Precisión doble completa de 64 bits — pipeline DSP actualizado a doble precisión en toda la cadena (nivel industrial/audífilo/competición)

Mejoras

  • Auditoría profunda de código — tres rondas de auditoría corregidas (detección de desbordamiento de buffer circular, defensa OOM, etc.)
  • Gates de calidad nivel competición — builds -Wall -Wextra sin advertencias
  • Optimizaciones de rendimiento — FIR/conformación de ruido comparten pool de hilos (sin tormentas de creación), coeficientes transpuestos alineados 32B, detección de picos serializada, ruta rápida SoftLimiter
  • Alineación de parámetros de DpdoAudioTools — totalmente alineado con DpdoEngine

Versión 6.66.6

Fecha: 2026-08-04

DpdoEngine

Cambios

  • Migración del análisis de argumentos a CLI11 — todos los parámetros se pasan por separado como --param value; corregidos 3 errores de «tragado» de argumentos (incl. --eq / --eq-precut)
  • Pruebas unitarias de la cadena de efectos — añadidas a la línea de build
  • Corrección de puntero salvaje en GUI — botones de acceso rápido de create_main_window empaquetados antes de la creación de vbox

Versión 6.66.0

Fecha: 2024-12-30

DpdoEngine

Nuevas funciones

  • Conformación de ruido IIR de orden 11 — además de 3/5/7/9
  • Renderizado HRTF — audio espacial 3D para auriculares
  • Salida DXD — 352,8 kHz/24 bits
  • Conformación psicoacústica (--psy)
  • Parámetros adaptativos (--adaptive)
  • Aceleración OpenCL
  • Limitador de anticipación (--lal)
  • Filtro anti-recorte (--apo)
  • Expansor estéreo
  • Presets de masterización — Classical/Pop/Jazz
  • DSP Dpdo — graves, agudos, EQ, crossfeed
  • 8 tipos de dither — TPDF, POW-R, Lipshitz…
  • Normalización LUFS — ITU-R BS.1770
  • ReplayGain
  • Compresión DST
  • Grabación DSD nativa
  • Modo pipe (--pipe)
  • Estadísticas (--stats)
  • Espectrograma (--spectrogram)
  • Conversión inversa (--reverse)
  • Presets de usuario (--preset-*)
  • Informes de análisis (--pdfrp, --noise-profiling)
  • Metadatos — conjunto completo
  • Corrección auto-pan
  • Ecualizador
  • Saturación armónica — 5 tipos

Mejoras

  • Serie E en doble precisión
  • Multithreading optimizado
  • Archivos > 4 GB
  • Estabilidad DST

Correcciones

  • Estabilidad en límites del shaper
  • Alineación de metadatos DFF
  • Enumeración de dispositivos OpenCL

DpdoPackSACD

  • Creación SACD ISO completa
  • Metadatos: álbum, artista, portada, género, año, sello, compositor, director
  • Importación CUE
  • Dpdo DSD Disc (DVD-R/RW)
  • Código de barras (EAN/UPC) e ISRC
  • SACD multicanal

DpdoPlayer

  • Reproducción DSD nativa (DSF/DFF)
  • Selección de dispositivo (-dev)
  • Distribución de canales (-layout)
  • Modos: standard, differential, BTL
  • DoP: auto/force/native
  • Volumen (-vol)
  • Streaming de baja latencia (-stream)
  • Entrada pipe

Problemas conocidos

  • IIR de orden 11 lento en CPU antiguas — OpenCL recomendado
  • Archivos DST a descomprimir en DSF en algunos reproductores de terceros
  • macOS: configuración manual del nombre para algunos USB DAC