Версия 6.75.0

Дата выпуска: 2026-09-25

DpdoPlayer

Улучшения

  • Многоканальный DSD можно распределять по каналам между несколькими устройствами: один поток DSD разделяется по каналам — левый и правый на отдельные устройства, или шесть каналов на три; число устройств определяется выбранным режимом. Упаковка DoP теперь существует в единственной реализации, за которую отвечают побайтовые контрактные тесты.
  • Правила прямого вывода DSD (native) сформулированы явно: то, что 1 бит умеет — перестановка и дублирование каналов — по-прежнему идёт напрямую; то, что 1 бит не умеет — суммирование, изменение усиления, заглушение целого канала — отклоняется с указанием причины, а не тихо понижается; схема, которой нужно суммирование, автоматически переключается на декодирование PDM2PCM, и журнал объясняет причину.
  • Если устройство не принимает скорость носителя DoP, носитель понижается на ступень по измерению: носитель опускается до ступени, которую устройство действительно принимает — по измерению, а не на глаз (преобразование скорости DSD на стороне движка).
  • Многоканальный материал, свёрнутый в меньшее число каналов, нормализуется статически на всём треке: перед воспроизведением сканируется пик всего материала, и ко всему треку применяется одно фиксированное ослабление (ни AGC, ни лимитер) — после свёртки перегрузки больше нет.
  • Новый ключ командной строки -rig-info: выгружает разобранный пресет в JSON (та же схема, что загружает -rig); интерфейс с его помощью помещает пресет в редактор.
  • Новая сборка для macOS: нативный бэкенд вывода CoreAudio — вывод носителя DoP, монопольный режим (hog) с проверкой обратным чтением, а поддержка нативного DSD определяется измерением на устройстве, а не задана жёстко; точка входа консольного плеера и скрипт упаковки DMG идут в комплекте.
  • Новый клиент iOS: движок теперь работает внутри процесса приложения (без дочернего процесса), вывод использует DoP в рамках аудиосессии; разблокировка функций идёт через встроенную покупку в App Store (IAP); прилагаются манифест конфиденциальности и проверки контракта для отправки в магазин.

Исправления

  • После окончания трека воспроизведение не переходило к следующему: при смене трека в сессии ALSA данные записывались в состояние SETUP, поэтому после завершения трека ничего не следовало.
  • Устройство оказывалось занятым при смене формата или частоты дискретизации: теперь устройство освобождается до переустановки аппаратных параметров, а принятые им форматы запоминаются.
  • Многоканальный материал на устройстве с меньшим числом каналов прерывался после свёртки: свёрнутый формат ошибочно принимался за «формат изменился»; теперь воспроизведение продолжается в свёрнутом формате.
  • Чтение обложек дополнено: теперь читаются блоки ID3, встроенные в контейнеры .wav и .aiff, теги ID3v2.3 и типы обложек, записанные другими инструментами, а также файлы .wv / .ape, в которых есть только ID3v2 и нет APEv2.

Функциональных изменений в движке и упаковщике в этой версии нет.

Версия 6.74.23

Дата выпуска: 2026-09-24

DpdoPlayer

Улучшения

  • Панель «Сейчас играет» показывает обложку альбома: поиск идёт сначала во встроенных данных (SACD ISO /COVER.JPG; DSF/DFF ID3; FLAC блок PICTURE), затем среди изображений в той же папке, что и файл (cover.jpg, folder.jpg или файл с тем же именем); во всплывающей подсказке указано, откуда взята картинка.
  • В панели появилось поле «Аудиоданные»: частота дискретизации / разрядность / каналы / DSD / DST / длительность самого источника, а не формат, отправляемый на устройство.
  • Две полосы уровня (левый/правый канал) в панели: показывают пик того блока, который реально записан в устройство; при 0 dBFS они краснеют и остаются такими 1,5 с — перегрузка видна сразу (на паузе опускаются вниз).
  • Новые кнопки предыдущего / следующего трека: во время воспроизведения переключение идёт в рамках той же сессии (устройство не закрывается и не открывается заново); на первом или последнем треке они становятся неактивными и сообщают об этом; без воспроизведения только двигают выделение.
  • Кнопки − / + рядом с регулятором громкости (±5 за нажатие, при удержании повторяется), команда идёт тем же путём, что и от ползунка.

Исправления

  • Единый стиль значков интерфейса: пауза / предыдущий / следующий теперь используют то же семейство символов, что воспроизведение и стоп — прежние знаки управления воспроизведением система рисовала как цветные эмодзи, а в некоторых шрифтах они вообще отсутствовали.

Версия 6.74.22

Дата выпуска: 2026-09-23

DpdoPlayer

Улучшения

  • Текущий трек теперь отслеживается в списке: при непрерывном воспроизведении образа SACD ISO / CUE одной сессией подсветка и жирный шрифт следуют за текущим треком (раньше всегда оставалась первая строка).
  • «Проверить обновления…» перенесено к пункту лицензии в строке состояния: все три интерфейса приведены к одному виду, старое меню «Справка» удалено (слишком глубоко спрятанный пункт — всё равно что отсутствующий).
  • Список устройств показывает все конечные точки, включая отключённые и не подключённые: в каждой строке указан её реальный формат, а семейство «HQ» отмечено — так проще выбрать ту, что способна на bit-perfect.
  • -start / -end при указанном -track отсчитываются от начала трека: -track 2 -start 0 -end 5 — это секунды 0–5 данного трека; выход за пределы теперь отклоняется, а не отдаёт обрезанный фрагмент.
  • Смена трека в рамках сеанса больше не закрывает и не открывает заново аудиоустройство (переключение треков внутри одного диска заметно быстрее, вывод DSD не прерывается): если формат вывода не изменился, уже открытое устройство используется повторно.
  • Пауза теперь действительно работает при выводе DSD (DoP): во время паузы плеер продолжает подавать тишину с маркерами DoP, а воспроизведение возобновляется с того же места — без выхода из домена DSD и без перескока вперёд.

Исправления

  • Шипение при самом первом воспроизведении, при втором нажатии всё нормально: движок начинал воспроизведение до получения итоговой конфигурации вывода, и первый трек использовал предыдущий режим; теперь конфигурация всегда готова до первого воспроизведения.
  • Карты типа kX: ASIO не обнаруживается: этот драйвер зависает в собственной инициализации; проверка теперь выполняется в отдельном процессе с ограничением 4 секунды — зависание затрагивает только этот участок, а в журнале указан шаг, на котором оно произошло.
  • Устройство не открывается после смены трека (0x800401f0): инициализация COM теперь выполняется для каждого потока, во всех местах вызова.
  • Периодическое «устройство занято» после смены устройства или схемы: ожидание завершения предыдущей сессии увеличено с 3 до 10 секунд с ограничением, а бюджет повторов в монопольном режиме — примерно до 12 секунд.
  • Сведение многоканального звука в стерео теперь заметно сообщается в интерфейсе (включая правило сведения и судьбу LFE), а не только пишется в журнал.
  • Указано одно устройство вывода, а звук идёт с другого: при явном указании устройства путь ASIO больше не перехватывает вывод, и в журнале указан фактический выход.
  • DoP больше не отправляется на устройство без пути DSD (это дало бы только ультразвук или тишину): выполняется декодирование в PCM с пояснением причины.
  • Неудачное или отменённое обновление больше не перезапускает программу (раньше это зацикливалось: «перезапуск → снова запрос → отмена»).
  • В запросе обновления больше нет «голого» %s.
  • Предупреждение о резервном варианте разметки секторов SACD ISO выводится один раз (раньше — тысячи строк, по одной на сектор).
  • Исправлены щелчки при воспроизведении: при указании устройства вывода аппарат, умеющий DSD (USB-ЦАП с DoP=yes), переводился с нативного ASIO на DoP. Теперь маршрут меняется только если у указанной конечной точки нет пути DSD; совместимое устройство сохраняет свой нативный путь.
  • Монопольный буфер DoP теперь предпочитает большие значения (от 2 с с понижением; измерено 80 мс -> 500 мс). Слишком маленький буфер даёт периодические недогрузки — это и слышно как щелчки.
  • Для USB-ЦАП класса ComTrue/Fosi режим auto теперь использует DoP по умолчанию: нативный вывод ASIO на таких устройствах не давал звука (раньше для перехода на DoP требовалась переменная окружения, поэтому настройка по умолчанию молчала).
  • Аудиоустройства больше не перечисляются и не опрашиваются при запуске и во время воспроизведения (одна из причин щелчка при запуске и периодических щелчков во время воспроизведения).
  • Перед изменением громкости устройства или сменой трека выходной буфер заранее заполняется тишиной с маркерами DoP: момент выхода ЦАП из домена DSD приходится на тишину, что уменьшает щелчки (на некоторых ЦАП при изменении громкости во время воспроизведения по-прежнему может быть слышен один слабый щелчок).
  • Явно выбранный вывод native / ASIO больше не возвращается автоматически к DoP: используется выбранный путь вывода (в режиме auto плеер по-прежнему выбирает лучший путь), а в журнале указываются известные последствия этого пути на данной машине.
  • Исправлено лёгкое потрескивание примерно каждые 0,9 с при воспроизведении некоторых старых самостоятельно созданных SACD ISO: в таких образах у части секторов длина пакета указана на 3 байта меньше, чем в секторе реально лежит аудио (остаток в конце сектора); читатель отбрасывал весь сектор как не-аудио. Теперь берутся ровно объявленные байты, музыка больше не теряется (коммерческие образы SACD читаются как прежде).
  • Исправлено: воспроизведение останавливалось после переключения трека и не переходило к следующему: при переключении в рамках сессии остатки предыдущего трека сбрасывались, но выходной поток останавливался и не перезапускался — записи зависали, и воспроизведение прерывалось (прерывание по договорённости не сообщается как «завершено», поэтому казалось, что следующий трек не включается). Теперь поток перезапускается сразу после сброса; дифференциальный вывод (несколько устройств, нормальная/инвертированная фаза) тоже исправлен (он не передавал «повторную подготовку» своим подустройствам).

Версия 6.74.21

Дата выпуска: 2026-09-23

DpdoPlayer

Улучшения

  • Модель эксклюзивной сессии: воспроизведение занимает устройство эксклюзивно с момента запуска; при смене трека устройство остаётся тем же (перенастройка на месте при той же частоте; смена частоты и DSD↔PCM обрабатываются по ограничениям драйвера). Заново открывается только при выборе другого устройства или смене профиля каналов, а при закрытии программы эксклюзивность всегда освобождается.
  • CUE / SACD ISO теперь воспроизводятся в одной сессии: весь диск открывает устройство один раз, и смена трека его больше не переоткрывает (раньше каждый трек запускал новый процесс и заново занимал устройство эксклюзивно).
  • Все настройки панели запоминаются: режим, раскладка каналов, профиль каналов, разрядность, режим DoP, переключатель и усиление PDM2PCM, кроссовер и громкость восстанавливаются при следующем запуске.
  • Все три интерфейса теперь сами проверяют обновления: при запуске выполняется тихая проверка (сообщение появляется только если новая версия действительно есть), а «Справка → Проверить обновления…» делает это по запросу; загруженный файл проверяется по SHA-256, и обновление заменяет файлы на месте, если каталог установки доступен для записи, и только иначе запускает установщик (в Windows — тихая установка, в Linux — системный менеджер пакетов), после чего программа автоматически перезапускается.
  • Проблемы с лицензией теперь можно локализовать сразу: при неудачной проверке лицензии в журнал выводятся все аппаратные факторы машины (значения хешированы, без исходных серийных номеров) и ключ состояния защиты от отката часов; в командную строку добавлен -auth-diag — запустите дважды и сравните, чтобы увидеть, какой фактор меняется.

Исправления

  • Смена трека больше не разрывает эксклюзивную сессию: раньше каждая смена сначала останавливала воспроизведение (освобождая устройство) и запускала заново, поэтому эксклюзивная сессия фактически не работала; теперь переключение происходит внутри сессии, и устройство больше не открывается и не закрывается многократно.
  • Двойной щелчок переключает трек, одиночный только выделяет: раньше двойной щелчок отправлял две команды воспроизведения.
  • Прямой вывод DSD больше не прерывается при сбое или если устройство не поддерживает эту разрядность: плеер переходит на декодирование PDM2PCM в том же процессе (автоматически снижая до 16 бит, если устройство отказывает), очередь и сессия сохраняются. Решение о резервном режиме DSD больше не переносится на следующий трек: если у устройства нет пути DSD, плеер на месте переходит на декодирование PDM2PCM; раньше это решение сохранялось на всю сессию, и при переходе на трек PCM (например FLAC) он декодировался как DSD и не воспроизводился. Теперь режим декодирования определяется заново для каждого трека по настройкам сессии.

  • Исправлен показ прогресса и общей длительности: у последней дорожки ("играть до конца файла") длительность бралась из внутреннего служебного значения и показывалась как 31 год, а полоса перескакивала на 98 %; теперь всё считается от реального конца файла.

  • PCM 24 бита снова открывается на устройствах, принимающих только S16_LE/S32_LE: если устройство отклоняет 24-битный контейнер, воспроизведение переоткрывается с 32-битным контейнером - те же отсчёты, сдвинутые на 8 бит и выровненные по полной шкале, то есть полностью без потерь (это не понижение разрядности).
  • Start продолжает с последней игравшей дорожки: раньше воспроизведение всегда начиналось с первой; возврат к первой происходит только если записи больше нет в списке (список заменён или дорожка удалена).
  • Исправлено «сертификат действителен, но воспроизведение отклоняется»: ключ файла состояния защиты от отката вычислялся по набору доступных на данный момент аппаратных факторов, поэтому после обновления прошивки или системы, изменившего этот набор, старый файл состояния считался «изменённым», и лицензия отклонялась с сообщением No valid '.DpdoPlayer.crt' found (сам сертификат был полностью действителен). Теперь ключ не зависит от изменчивого набора, а файл состояния считается подделанным только если проверку не проходит ни одна его копия.

Версия 6.74.20

Дата выпуска: 2026-09-21

DpdoPlayer

Улучшения

  • Схемы каналов объединены (соответствие устройство↔канал + матрица микширования + усиление микса): в GUI можно выбрать пресет, отредактировать матрицу 8×8 и загрузить/сохранить *.json; в CLI -rig принимает имя пресета или тот же файл — одна схема управляет обоими. Некорректная схема (неизвестное имя канала, коэффициент вне диапазона, длина не совпадает с устройством) отказывается воспроизводиться, а не подставляет молча неверную матрицу.
  • Новое измерение (-scan): прогоняет весь материал через текущую схему и сообщает измеренный пик по каналам, есть ли клиппинг и какое усиление микса даёт ровно 0 dBFS. Пики только читаются — данные не изменяются.
  • Прямой вывод DSD теперь поддерживает перестановку каналов: «какой ЦАП получает какой канал» работает и для native/DoP; схема, требующая микширования или изменения уровня, автоматически переключается на декодирование PDM2PCM, а причина указывается в журнале и в справке плеера (приоритет — воспроизведение).
  • Если у устройства больше каналов, чем у источника, добавленные заполняются симметрично: стерео → 4 канала = L,R,L,R; → 5.1 оставляет центр и LFE без звука (фантомный центр) вместо копирования последней дорожки.
  • Усиление вывода PDM2PCM по умолчанию +6 дБ (равная громкость с PCM); -pdm2pcm-gain 0 отключает.

  • Буфер воспроизведения 200 мс → 2000 мс (одинаково для монопольного режима Windows и Linux): больший буфер перекрывает те десятки миллисекунд, когда поток подачи вытесняется системой; фактически полученный размер буфера печатается в логе открытия потока.

  • Запоминается последняя воспроизведённая композиция: при открытии списка она выделяется и прокручивается к ней (если файл удалён, плеер сообщает об этом, а не перескакивает на другую).
  • Сканирование перед воспроизведением теперь показывает прогресс: источники DSD/многоканальные сканируются перед воспроизведением; теперь раз в секунду выводятся проценты и прошедшие секунды, а в интерфейсе есть полоса прогресса -- ощущение «зависания» ушло.
  • Повторное воспроизведение того же файла больше не сканируется заново: результат кэшируется по файлу (ключ: путь, размер, время изменения, текущая схема каналов), поэтому второй запуск начинается почти мгновенно. Кэш никак не меняет выходной поток.
  • режим pairs для нескольких устройств: каждое устройство получает пару каналов источника без изменений (без инверсии) -- источник 4 канала на 2 ЦАП, 8 каналов на 4, без разделения на несколько команд.
  • прямой пропуск IEC 61937 (-passthrough): поток DTS передаётся приёмнику/декодеру как кадры IEC 61937 вместо декодирования. Громкость, матрица и нормализация в этом тракте не участвуют (изменение одного бита портит поток), о чём сообщает журнал воспроизведения. Требуется совместимый приёмник.
  • унифицированные названия многоканальных режимов: differential / BTL / crossover / pairs выбираются через -mode, а журнал показывает, какие каналы источника реально получает каждое устройство.
  • Форматы без потерь (APE / WavPack / TTA / ALAC) теперь читаются потоково, кадр за кадром: длинные альбомы больше не декодируются целиком в память (измерено: файл 300 секунд — с ~220–320 МБ до ~15 МБ), и воспроизведение не ждёт предзагрузки.
  • Декодирование PDM2PCM (DSD -> PCM) теперь многопоточное: многоканальный материал примерно вдвое быстрее, вывод побайтово идентичен (последовательный и параллельный результаты совпадают).
  • Новая опция «восстанавливать громкость устройства после воспроизведения» (-restore-vol или restore_vol=1 в player.conf): если громкость устройства задавалась, по окончании воспроизведения возвращается прежнее значение. По умолчанию выключена.

    Исправления

  • Многоканальный даунмикс больше не теряет центр/окружение молча: если устройство не принимает все каналы, они складываются по ролям согласно BS.775 (LFE исключён), а количество клиппингов учитывается и попадает в журнал.
  • На Linux теперь воспроизводятся Bluetooth-наушники и другие выходы системного микшера: звук Bluetooth находится за системным микшером, а плеер показывал только звуковые карты — наушников в списке не было (нельзя выбрать = нельзя воспроизвести). Теперь в списке есть системный выход и каждый выходной разъём. Приостановленный выход автоматически возобновляется перед воспроизведением (раньше скорость была около 1/13 реального времени, что выглядело как зависание), а -vol задаёт громкость самого этого выхода и больше не трогает другую карту.
  • Пресеты мастеринга теперь входят в установочные пакеты: установщик Windows, deb/tgz для Linux и портативная папка содержат все 6 пресетов (раньше их в пакетах не было).
  • DSD с несколькими устройствами (дифференциальный/BTL) больше не прерывается посередине: перед воспроизведением проверяется поддержка DSD каждым ЦАП; если хотя бы один её не поддерживает, вся схема переходит на декодирование PDM2PCM, а в журнале указывается это устройство (раньше поток открывался как DSD и воспроизведение прерывалось по тайм-ауту записи).
  • Если у устройства несколько регуляторов громкости воспроизведения, теперь все выставляются в целевое значение: раньше выставлялся только один, а другой оставался на собственном низком значении (измерено: второй регулятор Fosi DS1 был на 20 дБ ниже) ⇒ Linux звучал заметно тише Windows. При включённом восстановлении каждый регулятор возвращается точно к значению до воспроизведения.
  • Две правки побайтовой точности: многоканальный вывод (более 2 каналов) больше не имеет ошибки масштабирования ±1 LSB (теперь побайтово совпадает с источником); короткий трек с ограничением по времени больше не сообщает о ложной ошибке — код возврата отражает реальный результат.

В этот выпуск входят улучшения производительности на стороне движка (потоковое воспроизведение форматов без потерь, многопоточное декодирование PDM2PCM); упаковщик (DpdoPackSACD) без функциональных изменений.

Версия 6.74.19

Дата выпуска: 2026-09-21

DpdoPlayer

Новые возможности

  • Воспроизведение DTS / DTS-WAV: плеер теперь открывает файлы .dts и контейнеры DTS-in-WAV напрямую (ядро DTS 2.0–5.1, 44,1 / 48 кГц). На стереовыходе источник сводится по роли каналов (центральный и тыловые складываются на −3 дБ, LFE не участвует), на многоканальном выходе каждый канал идёт на своё устройство. Прогресс, смена треков без пауз и дифференциальный режим на нескольких устройствах используют тот же путь, что DSD / PCM.

  • Строка «поддерживаемые форматы» в справке и в диалоге выбора файлов приведена в соответствие с реальными возможностями: добавлены SACD ISO, CUE и AIFF, убраны MP3 / AAC / OGG (никогда не поддерживались). При перетаскивании папки теперь сообщается, сколько аудиофайлов осталось без декодера, вместо молчаливого пропуска.

Функциональных изменений в движке и упаковщике в этой версии нет.

Версия 6.74.18

Дата выпуска: 2026-09-20

DpdoEngine / DpdoPackSACD / DpdoPlayer

Улучшения

  • Вывод командной строки и журналы движка теперь полностью на английском (справка, ошибки и отчёты в едином стиле); китайский вывод в Windows больше не искажается; четыре графические программы (плеер / упаковщик / аудиоинструменты / регистрация лицензии) двуязычны и следуют языку интерфейса либо DPDO_LANG=zh|en.
  • Единое именование: то, что называлось DSD->PCM, теперь везде называется PDM2PCM (в соответствии с именем проекта PCM2PDM); параметр -pdm2pcm-gain, переменная среды DPDO_PDM2PCM_GAIN (старые имена больше не принимаются).
  • Чтение образов SACD ISO: если на диске действительно нет названий дорожек, имена заполняются как «альбом - исполнитель - номер дорожки» вместо имени файла.

Исправлено

  • DpdoEngine --log (fir / ns / freq / all) падал или зависал и создавал пустой файл — исправлено.
  • Установщик Windows теперь позволяет выбирать компоненты (плеер / упаковщик / программы командной строки, по умолчанию всё отмечено).

Лицензирование

Улучшения

  • Усиление системы лицензирования.

Журнал изменений

Версия 6.74.16

Дата выпуска: 2026-09-15

DpdoPlayer

Исправлено

  • подача DoP на встроенный эндпоинт давала только шипение — возможность DoP теперь определяется по свидетельствам со стороны устройства: «открывается 176400» не значит «декодирует DoP» (у встроенных кодеков DSD-пути нет аппаратно). На эндпоинтах, признанных непригодными, -dop force отклоняется и воспроизведение автоматически переходит на DSD→PCM; отладочный ключ по-прежнему позволяет форсировать
  • шипение/щелчок при завершении: drain WASAPI теперь ждёт ограниченного условия с возможностью прерывания, вместо вращения или угадывания задержки (раньше буфер просто выбрасывался — отсюда щелчок); drain ASIO и кольцо записи тоже больше не крутятся вхолостую
  • «открывается, но данные не принимает»: эксклюзивный PCM больше не ждёт события устройства; если первый эксклюзивный поток после простоя принят, но данные не потребляются, плеер отбрасывает его, открывает новый и продолжает воспроизведение (критерий — заполнение буфера, а не аудиочасы)
  • «стоп» не действовал, пока не закроешь GUI: автоматический откат перезапускает воспроизведение в дочернем процессе, а команда остановки пишется в stdin родителя и там «съедалась» — теперь у дочернего процесса свой канал команд, родитель только пересылает; если остановка уже нажата, перезапуска нет. Замер на том же материале: завершение 82 с → 0,15 с

Улучшения

  • GUI: список устройств показывает суффиксы возможностей (⟨DoP 2x⟩/⟨DoP 1x⟩/⟨DoP не подтверждено⟩/⟨только PCM⟩) и строку «что произойдёт на самом деле»; пункт «пометить как DSD-декодер» позволяет отметить устройство с неподтверждённой возможностью. Linux теперь использует ту же оценку и тот же список -dsd-caps, что и Windows

Версия 6.74.15

Дата выпуска: 2026-09-14

DpdoPlayer

Исправлено

  • больше не «зависает» в drain ALSA после воспроизведения (процесс раньше не завершался); при невозможности записи нет бесконечных молчаливых попыток (воспроизведение останавливается с сообщением); порядок бит DSD определяется содержимым, а не расширением .iso

DpdoEngine

Исправлено

  • названия треков/диска в SACD ISO больше не пустые; проблемы кадров DST сообщаются один раз с итоговой сводкой (без молчаливых потерь и спама на каждый кадр); большие файлы используют 64-битные смещения (seek не сдаётся после 2 ГБ); проверка свободной физической памяти перед выделением буферов; GUI движка показывает причину сбоев и опрашивает страницу «О программе» асинхронно

Версия 6.74.14

Дата выпуска: 2026-09-14

DpdoEngine

Исправлено

  • три исправления считывателя (выход за границы WSD / база 48 кГц и многоканальность SACD / длина данных DSF); настоящая причина неоткрывающихся китайских/японских/корейских имён в Windows (зонд медиа-информации использовал узкий fopen)

Улучшения

  • кросс-сборка для Windows теперь включает libFLAC / libmysofa / OpenCL (запись FLAC, HRIR и GPU-ускорение одинаковы на обеих платформах); единая проверка значений числовых опций (больше не «съедает» имя выходного файла); исправлены падения предпросмотра GUI движка и завершение подпроцессов

Версия 6.74.13

Дата выпуска: 2026-09-13

DpdoEngine

Исправлено

  • --surround вообще не действовал; необязательный позиционный аргумент «съедал» имя выходного файла; ошибки --hrtf-load проходили молча

Улучшения

  • отдельные страницы для пространственного звука, surround и тона (HRTF · surround · тон · DSRE)

Версия 6.74.12

Дата выпуска: 2026-09-13

DpdoEngine

Улучшения

  • выбор модулятора из четырёх вариантов и отдельный ключ --poly; новый режим --reverse (DSD→PCM); выходные форматы DST и DXD взаимоисключающие (вместе — ошибка)
  • пакетная обработка: каталог вывода + шаблон имён + формат вывода; форма метаданных; параметры по трекам; флаги отчёта/анализа; --stopgain-alpha (подавление в полосе задерживания); новая страница «О программе/Диагностика»

Версия 6.74.11

Дата выпуска: 2026-09-13

DpdoPlayer

Исправлено

  • закрытие или принудительное завершение GUI заставляет плеер реально выйти из эксклюзивного режима DSD на ЦАП (процесс не удерживает устройство)

Версия 6.74.10

Дата выпуска: 2026-09-12

DpdoPlayer

Исправлено

  • имя окна/приложения приведено к GUI движка — корректное имя на панели задач

Улучшения

  • ползунок громкости следует за системной (эндпоинта) громкостью, а не стартует со 100

Версия 6.74.9

Дата выпуска: 2026-09-12

DpdoPlayer

Исправлено

  • -dop auto по умолчанию снова отдаёт нативный вывод; DoP стал явным opt-in
  • устранена первопричина падения callback ASIO (разыменование ещё не готового self) + native DSD действительно освобождает эксклюзивный поток; смена трека сначала посылает stop и завершается штатно (без принудительного убийства)

Версия 6.74.8

Дата выпуска: 2026-09-12

DpdoPlayer

Исправлено

  • Windows: устранена первопричина неоткрывающихся путей с китайскими/японскими/корейскими символами; эксклюзивный DoP теперь предпочитает 24-битный packed-контейнер (32-битные молчат на части ЦАП); эксклюзивный PCM предпочитает эксклюзив на той же частоте и откатывается на разделяемый только с предупреждением

Улучшения

  • -vol приведён к аппаратной громкости устройства (программное ослабление на хосте убрано) — одинаково в Linux и Windows

    Версия 6.74.7

Дата выпуска: 2026-09-12

DpdoPlayer

Исправлено

  • -vol не действовал в Windows — оба выходных бэкенда лишь сохраняли значение, не применяя его; теперь он задаёт громкость устройства (DAC), а хост никогда не применяет программное усиление к потоку DSD (без потерь); без -vol громкость устройства не трогается

Улучшения

  • Одна строка диагностики только для чтения при запуске (текущая громкость эндпоинта) — чтобы проверить, что -vol действительно действует

Версия 6.74.6

Дата выпуска: 2026-09-12

DpdoPackSACD

Исправлено

  • Идентификатор тома ISO 9660 теперь следует конвенции реальных дисков (DISC1) — раньше там было SACD ISO; метка UDF по-прежнему следует --album

Версия 6.74.5

Дата выпуска: 2026-09-12

Общее

Улучшения

  • Номер версии установщика теперь берётся из версии кода как единственный источник — раньше он был зашит в скрипт упаковки, и пересобранный установщик нёс устаревший номер

Версия 6.74.4

Дата выпуска: 2026-09-12

DpdoPlayer

Исправлено

  • Позиция начала воспроизведения DSD (-start / -end) на DFF / WSD достигалась только отбрасыванием до границы блока — отклонение по замерам около 0,7 мс (30 сэмплов); теперь DSF, DFF и WSD позиционируются напрямую, с точностью до сэмпла
  • После каждого запуска или перехода терялись первые 31 кадр — преобразование DSD в PCM выдавало сэмплы до заполнения переходного процесса фильтра, из-за чего в начале появлялся пропуск около 0,7 мс; теперь число пропускаемых кадров соответствует фактическому заполнению фильтра
  • Явные значения -dop игнорировались (Windows) — -dop native / -dop asio / -dop auto поглощались стоящей впереди веткой голого -dop и молча понижались до DoP/WASAPI; теперь явные значения действуют

Улучшения

  • Запрос возможностей драйвера по ASIO 2.3 (Windows) — плеер спрашивает у драйвера, может ли тот выводить DSD напрямую, сколько сэмплов во внутреннем буфере и сообщает ли он о сбоях, и печатает диагностическую строку только при реальной работе через ASIO; согласно ASIO SDK хост не меняет приоритеты потоков (это задача драйвера)

DpdoPackSACD

Исправлено

  • Идентификаторы тома UDF не соответствовали стандарту, и сторонние инструменты не видели имя диска — при не-ASCII имени альбома длина строки в дескрипторе записывалась в символах (стандарт требует в байтах), а основной дескриптор тома имел номер 1 (стандарт требует 0); теперь как на реальных дисках — udftools / 7-Zip читают имя корректно

Общее

Улучшения

  • Регрессионный набор расширен до 30 проверок — добавлены «позиция начала воспроизведения DSD (DSF/DFF/WSD/48k)» и «соответствие идентификатора тома UDF стандарту»; последняя оценивается независимой реализацией (udftools), а не собственным кодом
  • Ноль предупреждений компилятора в Linux и Windows — цели плеера тоже проходят через контроль предупреждений

Версия 6.74.3

Дата выпуска: 2026-09-12

DpdoPackSACD

Исправлено

  • Созданные образы SACD ISO читались только этой программой — заголовок звукового сектора теперь записывается с битовыми полями по Scarlet Book (информация о кадре 3 байта, звуковые блоки фиксированы на 2016 байт, добавлены пакеты заполнения); сторонние инструменты разбирают его так же, как реальный диск

DpdoPlayer

Исправлено

  • Шум на всю шкалу или полное отсутствие звука при воспроизведении реальных дисков SACD — неаудиопакеты внутри сектора склеивались с потоком как аудио, а путь DSD→PCM ещё раз инвертировал порядок битов; теперь каждый сектор проверяется по тождеству 2048 байт, и берутся только звуковые пакеты
  • Шум поверх музыки на дисках SACD со сжатием DST — порядок битов инвертировался дважды; исправлено
  • -start / -end молча игнорировались для обычных DSF — без запасного пути при неудачном поиске параметры не действовали; теперь работают
  • Молчаливый откат при занятом устройстве — плеер теперь сообщает причину занятости, а не переключается тихо на другое устройство
  • -start / -end не могли указать дорожку внутри CUE / SACD ISO — смещения начала теперь работают с последовательностями диапазонов (дорожка N), и Windows соответствует Linux
  • Повторные переключения режима при нескольких устройствах в дифференциальном / кроссоверном режиме — перед воспроизведением выполняется предварительная проверка DSD, чтобы устройства не переключались туда-сюда; кроссовер остаётся в домене PCM

Общее

Улучшения

  • Контракт параметров выровнен между платформами (9 → 27 проверок) — неизвестные параметры больше не списываются все на «только Windows», а любое расхождение формы аргументов между платформами сразу валит регрессию

Версия 6.74.2

Дата выпуска: 2026-09-12

DpdoPlayer

Исправлено

  • Общая длительность постоянно скакала — в Windows общая длительность пересчитывалась при каждом обновлении (проигранные секунды × 100 ÷ процент); деление двух величин из разных источников давало скачки. Теперь общую длительность задаёт движок по треку (меняется только при смене трека), а проигранное время совпадает с Linux (длительность × прогресс).

Улучшено

  • Регрессия расширена до 27 проверок — добавлены протокол прогресса с контрактом опций между платформами и безэкранный smoke интерфейса: расхождение опций, незапускающийся интерфейс или потерянные переводы падают сразу.

Версия 6.74.1

Дата выпуска: 2026-09-12

DpdoPlayer

Новое

  • Проверка лицензии — при запуске проверяется .DpdoPlayer.crt (привязка к HWID машины); без действующей лицензии воспроизведение отклоняется и выводится HWID; отозванная лицензия запоминается локально, поэтому отказ действует и без сети
  • Строка состояния лицензии в интерфейсе — сразу видно: лицензия есть, нет лицензии, отозвана, сертификат другой машины; без лицензии показывается HWID с копированием в один клик

DpdoPackSACD

Исправлено

  • CUE не открывался в Windows (нет доступных треков) — имена файлов на китайском и сетевые пути UNC теперь открываются широкими символами; переводы строк CRLF больше не попадают в имена
  • Устаревший скрипт сборки — build.sh теперь перенаправляет в корневой CMake, а не несёт собственный неизбежно устаревающий список исходников

Лицензирование

  • Инструменты выдачи поддерживают продукт-плеер — добавлен ToolID сертификата плеера, .DpdoPlayer.crt можно выдавать

Общее

Исправлено

  • Дифференциальный режим, BTL и цифровой кроссовер в Windows молча не работали — вывод больше не перехватывается ASIO
  • Семантика командной строки выровнена между платформами — исправлено 7 расхождений (включая критерий DSD в Linux)
  • Конкурентный use-after-free указателей бэкенда, выход за границы в управляющем потоке — первый шаг исправления модели потоков
  • Падение при втором воспроизведении, интерфейс не запоминал выбор ЦАП — исправлено
  • Прогресс и длительность диапазона SACD ISO — исправлена семантика подсчёта сэмплов в ридере
  • Контракт блоков DST, выход коротких блоков за границы, ложный конец файла — исправлено

Версия 6.74

Дата выпуска: 2026-09-12

  • Версия-метка (содержимое вошло в 6.74.1)

Версия 6.73.1

Дата выпуска: 2026-09-09

DpdoPlayer

Новое

  • Версия для Windows теперь звучит — настоящий бэкенд WASAPI на MinGW плюс фронтенд воспроизведения libPlayer

Исправлено

  • Пути не в ANSI (корейский, японский, DBCS) — командная строка в широких символах, открытие файлов широкими символами, журнал в UTF-8
  • Преобразование формата вывода — больше нет рассогласования, когда формат микширования WASAPI в общем режиме отличается от формата файла
  • Ограничение воспроизведения — при декодировании намного быстрее реального времени запись идёт в темпе потребления устройства
  • Гонка главного потока — больше нет опроса до запуска потока воспроизведения и ложного определения окончания

Настольные программы

  • Оба интерфейса Qt (DpdoAudioTools, DpdoPackSACD GUI) включены в установщик Windows
  • Старый интерфейс GTK3 выведен из эксплуатации, Qt полностью его заменил; линейка GUI движка получила имя DpdoAudioTools

Версия 6.73

Дата выпуска: 2026-09-09

Новое

  • DpdoAudioTools (GUI конвертации на Qt6) — редактирование полос эквалайзера с кривой АЧХ, пресеты мастеринга и менеджер пресетов, предпросмотр формы волны и спектра, страница записи (CD и DSD)
  • DpdoPlayer GUI (интерфейс воспроизведения на Qt6) — плейлист, выбор нескольких устройств и режима, прогресс и громкость, журнал

Исправлено

  • Сборочная цепочка интерфейсов Qt теперь динамически линкует libstdc++/libgcc; кривая эквалайзера не отображалась — исправлено

Версия 6.72.1

Дата выпуска: 2026-09-07

DpdoPackSACD GUI

Новое

  • Графический интерфейс упаковщика (Linux и кросс-сборка под Windows) — артефакты сразу попадают в release/linux и release/windows
  • Китайский и английский по языку системы — переводы встроены в исполняемый файл

Исправлено

  • Исправления по аудиту интерфейса (наложение вёрстки, скрытие содержимого при сжатии окна)

Версия 6.72

Дата выпуска: 2026-09-07

  • Версия технической уборки: удалены все предупреждения компилятора, убраны лишний код и переименования каталогов, синхронизированы журнал изменений и номера версий сайта; новых видимых функций нет

Версия 6.71

Дата выпуска: 2026-09-02

  • Версия завершения работ по стабильности: исправлена гонка за занятие устройства; остальные функции опубликованы в записи 6.70.0

Версия 6.70.0

Дата выпуска: 2026-09-01

DpdoEngine

Исправления

  • Заполнение хвоста записи DSF/DFF — при выводе DSD16/32 остаточные блоки в конце файла (тишина 0x69) автоматически дополняются, а заголовок выравнивается по блокам, исключая обрезание и артефакты в конце

DpdoPlayer

Новые возможности

  • Воспроизведение Korg WSD — воспроизведение файлов .wsd, созданных DpdoEngine 6.68.1+ (определение сигнатуры 1bit, разбор областей General/DataSpec, нативный вывод WSD по всей цепочке)
  • Воспроизведение с декодированием в реальном времени DSD → PCM (-pcm [rate]) — воспроизведение DSD даже на ЦАП без нативной поддержки: Pdm2Pcm декодирует в реальном времени в PCM; rate 0 = автоматически (DSD/64 или DSD/32); в сочетании с -pcm-bits 16|24|32 (по умолчанию 24-bit + шейпинг шума) заметно улучшает звучание
  • Поддержка чтения WSD (на стороне движка) — DSDReader/Pdm2Pcm теперь декодируют DSF / DFF / WSD

Исправления

  • 12 исправлений по итогам аудита — -dev без аргумента больше не читает за пределами argv; исправлена логика воспроизведения DoP DSD128+ (DSD64→Solution1, DSD128/256→Solution2); файлы >256МБ автоматически переходят в потоковый режим (защита от OOM); добавлена блокировка гонки потоков микшера; проверки границ заголовков DSF/DFF; убрано широкое сопоставление pkill -f alsa; режим BTL теперь предупреждает и возвращается к STANDARD; тайм-аут 5 с при активном ожидании CoreAudio и др.
  • Исправление чередования/порядка битов DoP DSD128 — вывод Solution2 теперь в порядке ALSA interleaved (раньше L/R были перепутаны); Solution2 учитывает is_MSB (DFF больше не инвертируется ошибочно); определение DSD64 использует dsd_sampling_frequency_base (исправляет ложное срабатывание 3072000 Гц семейства 48k)
  • Удалены все тихие catch(...) — все 11 catch(...) теперь выводят e.what(); ошибки больше не проглатываются
  • Согласованность бэкендов — AlsaBackend 24-bit унифицирован до S24_3LE, совпадает с выводом PlayerEngine; понижение частоты в fallback WASAPI теперь логирует предупреждение

Инструменты

Новые возможности

  • Режим проверки deep-spectrum в thdn (--deep) — когерентная длина БПФ + twofold LSQ удаление тонов + усреднение Уэлча + статистика шумового пола; арифметика двойной точности DD, БПФ произвольной длины Блюстейна, окно Блэкмана–Харриса из 7 членов; перекрёстно проверено с эталонным fft_app.py (DSD64 2k–15k медиана −194,2 дБ)

Версия 6.69.0

Дата выпуска: 2026-08-31

DpdoEngine

Новые возможности

  • Шейпер шума высокого порядка SOS-EF (--sos-ef) — каскад секций SOS + топология точной обратной связи по ошибке, преодолевающая взрыв коэффициентов NS13/NS15; шум в полосе ~ −143 дБFS (DSD64) на 15-м порядке; произвольные нечётные порядки (3–31) с автоматическим проектированием и стабилизацией по критерию Ли (Lee)
  • Формат вывода WSD — поддержка прямого вывода Korg WSD (.wsd): фиксированный заголовок + текстовая область + чересстрочные каналы DSD (MSB-first); совместимость с AudioGate / ffmpeg / Audacity

Исправления

  • Нормализация разрядности чтения wav/flac — исправление ошибки усиления (×2 для 16-битных, ×256 для 24-битных источников, неверный делитель преобразования s32), влиявшей на качество преобразования всех входов 16/24 бит
  • Аудит стабильности CIFB — устранён риск fallback 0.79, добавлена диагностика на этапе сборки

Версия 6.68.1

Дата выпуска: 2026-08-26

DpdoEngine

Новые возможности

  • Формат вывода WSD — поддержка прямого вывода Korg WSD (.wsd): фиксированный заголовок + текстовая область + чересстрочные каналы DSD (MSB-first); совместимость с AudioGate / ffmpeg / Audacity
  • Шейпер шума высокого порядка SOS-EF (--sos-ef) — каскад секций SOS + топология точной обратной связи по ошибке, преодолевающая взрыв коэффициентов NS13/NS15; шум в полосе ~ -143 дБFS (DSD64) на 15-м порядке; произвольные нечётные порядки (3–31) с автоматическим проектированием и стабилизацией по критерию Ли (Lee)

Исправления

  • Нормализация разрядности чтения wav/flac — устранён баг усиления ×2 для 16-бит и ×256 для 24-бит материала (ошибка делителя при преобразовании s32), влиявший на качество конвертации всех входных файлов 16/24-бит

Версия 6.68.0

Дата выпуска: 2026-08-07

DpdoEngine

Изменения

  • Dpdo DSP — встроенные DSP-модули унифицированы под названием Dpdo DSP; контент синхронизирован на всех 10 языках
  • Исправление статической линковки — GetLogicalProcessorInformationEx теперь линкуется статически, устранено предупреждение о приведении типов при динамической загрузке

Веб-сайт

  • Многоязычный сайт (9 языковых поддоменов) и улучшения SEO/GEO

Версия 6.67.0

Дата выпуска: 2026-08-04

DpdoEngine

Новые возможности

  • Стриминговая запись (запись и конвертация) — конвертация в реальном времени во время записи; повторная конвертация не требуется
  • Полная 64-битная двойная точность — весь конвейер DSP переведён на double (промышленный/аудиофильский/соревновательный уровень)

Улучшения

  • Глубокая аудиторская проверка кода — три раунда исправлений (детекция переполнения кольцевого буфера, защита от OOM и др.)
  • Качественные гейты уровня соревнований — сборка с -Wall -Wextra без предупреждений
  • Оптимизация производительности — FIR/шейпинг шума используют общий пул потоков (без штормов создания потоков), выравнивание 32B, сериализация пикового детектора, быстрый путь SoftLimiter
  • Выравнивание параметров DpdoAudioTools — полное соответствие DpdoEngine

Версия 6.66.6

Дата выпуска: 2026-08-04

DpdoEngine

Изменения

  • Миграция разбора аргументов на CLI11 — все параметры передаются раздельно в формате --param value; исправлены 3 бага «проглатывания» аргументов (включая --eq/--eq-precut)
  • Модульные тесты цепочки эффектов — добавлены в сборочную линию
  • Исправление висячего указателя GUI — кнопки быстрого доступа create_main_window pack до создания vbox

Версия 6.66.0

Дата выпуска: 2024-12-30

DpdoEngine

Новые возможности

  • IIR шейпинг шума 11-го порядка — добавлена поддержка 11-го порядка к существующим 3/5/7/9, передовой шейпинг шума в полосе
  • Пространственный звук HRTF — 3D-рендеринг на основе передаточных функций головы
  • Режим вывода DXD — прямой вывод DXD (Digital eXtreme Definition, 352.8 кГц/24-бит)
  • Психоакустический шейпинг шума — воспринимаемый шейпинг (--psy) на основе маскировки
  • Адаптивные параметры — динамическая оптимизация (--adaptive)
  • Ускорение OpenCL — значительное сокращение времени высокого оверсэмплинга
  • Лимитер с предпросмотром (LAL) — защита пиков (--lal)
  • Антиклиппинговый фильтр (APO)
  • Стерео-экспандер
  • Мастер-пресеты — классика, поп, джаз
  • DSP-модули Dpdo — бас, верх, параметрический эквалайзер, кроссфид
  • 8 типов диттера — TPDF, POW-R, Lipshitz и др.
  • Нормализация LUFS — по ITU-R BS.1770
  • ReplayGain
  • Сжатие DST — нативное кодирование
  • Нативная запись DSD — без промежуточного PCM
  • Режим pipe — --pipe
  • Статистика — --stats
  • Спектрограмма — --spectrogram
  • Обратная конвертация — --reverse DSD → PCM
  • Пользовательские пресеты — --preset-load/save/list
  • Аналитические отчёты — --pdfrp, --noise-profiling
  • Метаданные — полный набор
  • Автокоррекция панорамы
  • Эквалайзер — многополосный параметрический
  • Гармоническое насыщение — tanh/poly/softclip/fullwave/tape

Улучшения

  • Алгоритмы шейпинга серии E переведены на двойную точность
  • Оптимизирована многопоточность
  • Улучшена обработка файлов > 4 ГБ
  • Повышена стабильность кодирования DST

Исправления

  • Пограничная стабильность шейпера на отдельных частотах
  • Выравнивание метаданных при записи DFF
  • Совместимость перечисления устройств OpenCL

DpdoPackSACD

Новые возможности

  • Полная поддержка создания SACD ISO
  • Система метаданных: альбом, исполнитель, обложка, жанр, год, лейбл, композитор, дирижёр
  • Импорт CUE
  • Dpdo DSD Disc (DVD-R/RW)
  • Штрих-код (EAN/UPC) и ISRC
  • Многоканальный SACD

DpdoPlayer

Новые возможности

  • Нативное воспроизведение DSD (DSF/DFF)
  • Выбор устройства (-dev)
  • Схема каналов (-layout)
  • Режимы: standard, differential, BTL
  • DoP: auto/force/native
  • Громкость (-vol)
  • Низкозадержанный стриминг (-stream)
  • Pipe-ввод

Известные проблемы

  • IIR 11-го порядка медлителен на старых CPU — рекомендуется OpenCL
  • DST-файлы требуют распаковки в DSF на некоторых сторонних плеерах
  • На macOS для некоторых USB DAC требуется ручная настройка имени устройства