Привет всем любителям цифрового звука! Недавно нашел невероятно-звучащий программный плеер для Виндовс, с интересным названием: PlayPcmWin — это еще один аудиоплеер с открытым исходным кодом, который предназначен только для аудиофилов.
Оглавление:
PlayPcmWin – бесплатный плеер исключительно для аудиофилов
Текст ниже я перевёл с сайта разработчика этого плеера.
СКАЧАТЬ PlayPcmWin БЕСПЛАТНО можно ЗДЕСЬ —> PlayPcmWin584x64en 1,2Мб
Функции PlayPcmWin
Поддерживает воспроизведение в эксклюзивном режиме WASAPI. Идеальная способность этого режима.
Воспроизведение в память. Прежде чем начать воспроизведение, загрузите все данные PCM в основную память.
Собственный код, оптимизированный для C++, для потока воспроизведения. Графический интерфейс C# .NET 4.0 WPF для простоты использования.
Поддерживает WAV (16, 20, 24, 32 бит), FLAC (16, 24 бит), AIFF (16, 24 бит), а также формат AIFC и MP3.
Воспроизведение DoP файлов DFF и DSF в эксклюзивном режиме WASAPI
При использовании DoP исходный неизмененный 1-битный битовый поток отправляется в ЦАП без преобразования его в PCM. Воспроизведение с преобразованием 1 бит в PCM в общем режиме WASAPI.
Поддерживает листы CUE и плейлисты M3U8
- Воспроизведение без пауз.
- Доступен исходный код.
- Поддерживаемые платформы
- Windows 7/8.1/10.
Как установить программу PlayPcmWin?
Пакет установщика: запустите файл MSI в загруженном zip-файле, чтобы установить программу. Установщик автоматически загружает/устанавливает распространяемый пакет Microsoft Visual C++, необходимый для запуска PlayPcmWin.
Плеер PlayPcmWin будет добавлен в меню программы. FlacIntegrityCheck и PPWA не добавляются, а просто помещаются в установленную папку.
Portable Zip: загрузите и установите последнее поддерживаемое
Как удалить программу PlayPcmWin
Установочный пакет: Панель управления → Программы и компоненты → Щелкните правой кнопкой мыши PlayPcmWin и выберите «Удалить».
Portable Zip: удалите извлеченный zip-файл.
Как использовать программу PlayPcmWin
Установочный пакет: Пуск → yamamoto2002 → PlayPcmWin для запуска.
Portable Zip: дважды щелкните PlayPcmWin.
Лицензия PlayPcmWin
PlayPcmWin: лицензия MIT https://code.google.com/p/bitspersampleconv2/source/browse/trunk/PlayPcmWin/PlayPcmWinLicense.txt
libFLAC: новая лицензия BSD https://code.google.com/p/bitspersampleconv2/source/browse/trunk/PlayPcmWin/libFlacLicense.txt
Часто задаваемые вопросы по PlayPcmWin
Где хранятся настройки PlayPcmWin и данные плейлиста?
PlayPcmWin использует механизм изолированного хранилища, предоставляемый ОС Windows. PPW определяет область действия пользователя и домена. Имена файлов: PlayPcmWinPreference.xml, PlayPcmWinAudioFilterSettings.txt и PlayPcmWinPlayList.xml.
Когда я воспроизвожу файл DSF, проигрыватель PlayPcmWin показывает: «WASAPIExcl. 176,4 кГц, 24 бита, 2 канала DoP DSD, 2,8 МГц». Мой ЦАП воспроизводит его как DSD или PCM?
Используя эксклюзивный режим WASAPI (это ваш случай), PlayPcmWin использует DoP для передачи 1-битных данных DSD как есть, без изменений, с точностью до бита в ЦАП в качестве 1-битного сигнала DSD. ЦАП воспроизводит его как DSD. DoP использует 24-битную PCM с частотой 176,4 кГц в качестве контейнера 1-битных данных DSD с частотой 2,8224 МГц. Маркер DoP (чередуются 00000101 и 11111010) помещается в верхние 8 бит 24-битного PCM, что указывает на то, что он содержит DSD и его следует воспроизводить как DSD. Остальные 16 бит содержат фактические данные DSD. Обратите внимание, что 16 бит 176,4 кГц и 1 бит 2,8224 МГц имеют одинаковую скорость передачи данных: 176,4 кГц・16 = 2,8224 МГц.
С другой стороны, когда PlayPcmWin настроен на использование общего режима WASAPI, приложение преобразует DSD в 32-битный формат PCM с плавающей запятой 44,1 кГц, а затем преобразует его в формат выборки общего режима PCM, и данные PCM отправляются в ЦАП. ЦАП воспроизводит его как PCM.
СКАЧАТЬ PlayPcmWin БЕСПЛАТНО можно ЗДЕСЬ —> PlayPcmWin584x64en 1,2Мб
Какова цель функции «Уменьшить громкость PCM»?
Некоторые ЦАП имеют тенденцию демонстрировать высокие искажения в сигналах с высокой амплитудой (-4 дБ полной шкалы или более). Уменьшение уровня сигнала PCM примерно на 4 дБ может уменьшить это искажение. В этом случае можно использовать эту функцию.
Опция -6,02 дБ: практически это означает арифметический сдвиг вправо на 1 бит к сигналу PCM. Некоторая битовая совершенство сохраняется при соблюдении условий.
Эта опция не работает при воспроизведении 1-битного аудиосигнала.
О преобразовании битового формата PCM
Преобразование 24-битного целого числа в 32-битное число с плавающей запятой представляет собой гомоморфную карту.
Преобразование 32-битного целого числа в 64-битное число с плавающей запятой представляет собой гомоморфную карту.
32-битное число с плавающей запятой может хранить до 25-битного целочисленного значения.
32-битное целое число имеет 4294967296 битовых шаблонов, но когда оно преобразуется в 32-битное число с плавающей запятой, битовые шаблоны уменьшаются до 150994094, что эквивалентно 27,2 битам информации.
24-битное целое значение преобразуется в 32-битное число с плавающей запятой, уменьшается громкость на -759 дБ и увеличивается громкость на +759 дБ, преобразуется в 24-битное целое → исходное 24-битное значение полностью восстанавливается (идеально по битам), но 24-битное целое значение преобразуется в 32-битное число с плавающей запятой, -765 дБ и +765 дБ → исходное 24-битное значение не восстанавливается. И 24-битное целое значение преобразуется в 32-битное число с плавающей точкой, увеличивает громкость на +765 дБ и уменьшает громкость на -765 дБ → исходное 24-битное значение полностью восстанавливается, но 24-битное целое значение преобразуется в 32-битное значение с плавающей запятой, +771 дБ и -771 дБ → исходное 24-битное значение не восстанавливается. Поэтому иногда говорят, что 32-битный PCM с плавающей запятой имеет динамический диапазон 1520 дБ.
PlayPcmWin включает вычисление ненормальных чисел и является настройками процесса приложения по умолчанию
Хотя кажется, что некоторые музыкальные приложения сбрасывают ненормальные числа до нуля (FTZ), чтобы повысить производительность вычислений, используя _MM_SET_FLUSH_ZERO_MODE(_MM_FLUSH_ZERO_ON) . В режиме вычислений с плавающей запятой FTZ -620 дБ, затем +620 дБ для восстановления исходного 24-битного целого числа, но -626 дБ, затем +626 дБ не восстанавливает исходное 24-битное целое число, поэтому динамический диапазон PCM с 32-битным плавающим числом уменьшается до 1385 дБ. Последний раз я проверял производительность вычислений примерно в 2010 году. Скорость вычислений с плавающей запятой снижается примерно в 10 раз, когда во время вычисления с плавающей запятой появляется ненормальное число, и это может вызвать серьезные проблемы с производительностью, если DSP в реальном времени выполняется во время воспроизведения музыки на процессоре с низкой производительностью, и могут возникнуть заикания. случается.
О воспроизведении файлов DSF/DFF в PlayPcmWin
Общий режим WASAPI : PlayPcmWin преобразует 1-битные аудиоданные в PCM и отправляет их в WASAPI. Результирующий сигнал PCM имеет качество Audio CD (надеюсь).
- Понижающая дискретизация Sinc4 CIC преобразует 1-битные аудиоданные 2,8 МГц в 16-битные целочисленные PCM 176,4 кГц.
- Полуполосный понижающий преобразователь с длиной фильтра = 23 преобразует 16-битный целочисленный PCM с частотой 176,4 кГц в 32-битный PCM с плавающей запятой 88,2 кГц.
- Другой полуполосный понижающий преобразователь с длиной фильтра = 47 преобразует 32-битный PCM с плавающей запятой 88,2 кГц в 32-битный PCM с плавающей запятой 44,1 кГц.
- Resampler MFT преобразует 32-битный PCM с плавающей запятой 44,1 кГц в частоту дискретизации общего режима WASAPI, 32-битный PCM с плавающей запятой. (Когда частота дискретизации в совместном режиме не равна 44,1 кГц).
- Данные PCM передаются в ЦАП по каналу данных общего режима WASAPI.
Эксклюзивный режим WASAPI в PlayPcmWin
PlayPcmWin отправляет 1-битные аудиоданные в ЦАП как 1-битные аудиоданные с использованием DoP. 24-битный контейнер PCM подготовлен. «Маркер DoP» размещается на старших 8 битах. 1-битные данные 2,8 МГц помещаются в младшие 16 бит 176,4-битного 24-битного контейнера (176,4 кГц * 16 бит = 2,8 МГц 1 бит) и отправляются в ЦАП. Чип USB-приемника ЦАП распознает маркер DoP и устанавливает режим работы чипа ЦАП на режим воспроизведения 1-битного звука 2,8 МГц, получает 1-битные аудиоданные из нижних 16-битных контейнеров и отправляет их на чип ЦАП в виде 1-битных аудиоданных.
Это встроенное воспроизведение 1-битного звука, и 1-битные аудиоданные отправляются в ЦАП без преобразования PCM. Битовая точность общего пути данных имеет решающее значение для DoP, и эксклюзивный режим WASAPI в некоторой степени помогает. Похоже, что более поздний чип ЦАП объединяет обнаружение маркера DoP и получение 1-битных аудиоданных из контейнеров DoP, а задача обработки DoP перенесена с чипа USB-приемника на чип ЦАП. Не все ЦАП поддерживают воспроизведение 1-битного звука DoP.
Как воспроизводить файлы 5.1 или 7.1 каналов на наушниках (2 канала) в PlayPcmWin
Выберите наушники в качестве устройства воспроизведения по умолчанию в общем режиме WASAPI: Панель управления → Все элементы панели управления → Звук → вкладка «Воспроизведение», найдите устройство воспроизведения и щелкните правой кнопкой мыши → Установить как устройство по умолчанию.
Щелкните правой кнопкой мыши значок динамиков на панели задач и выберите «Пространственный звук» → «Windows Sonic для наушников».
Запустите PlayPcmWin, выберите общий режим WASAPI и воспроизведите файлы 5.1- или 7.1-канального формата.
СКАЧАТЬ PlayPcmWin БЕСПЛАТНО можно ЗДЕСЬ —> PlayPcmWin584x64en 1,2Мб
Невозможно воспроизвести файлы WAV 7.1.4ch на AV-ресиверах PlayPcmWin и Dolby Atmos с подключением HDMI.
Похоже, что некоторые AV-ресиверы поддерживают объемное звучание до 7.1 (8 каналов) с помощью PlayPcmWin, а [WWSpatialAudioPlayer] может воспроизводить 12-канальный (7.1.4-канальный) WAV в этой настройке.
Но Lynx AES16e принимает 16-канальный звук с PlayPcmWin, а M-Audio ProFire 2626 принимает 26-канальный звук с PlayPcmWin, поэтому это не вызвано ограничением WASAPI или PlayPcmWin.
Моя мышь не отвечает в течение 1 секунды после первого запуска PlayPcmWin и выключения питания, а затем возвращается в нормальное состояние.
Это явление может произойти, если на вашем дисплее включена AMD FreeSync или Nvidia G-sync и ваш графический адаптер поддерживает ее. А отключение FreeSync исчезнет эта проблема. PlayPcmWin косвенно использует DirectX, и, возможно, эта проблема возникает при первом запуске DirectX.
Как определить режим передачи данных USB-DAC: адаптивный или асинхронный?
[WWShowUsbDeviceTree] показывает эту информацию.
USB Adaptive isochronous : это однонаправленное соединение, чем-то похожее на соединение цифрового аудио S/P DIF. ПК определяет скорость потока PCM и отправляет данные PCM на USB DAC. USB-ЦАП восстанавливает тактовую частоту из скорости потока данных PCM с использованием PLL и отправляет ее на микросхему ЦАП. USB-ЦАП не может иметь локальный автономный кварцевый генератор для подачи тактовой частоты на микросхему ЦАП, поскольку скорость потока данных определяется ПК, если не установлен ASRC.
USB Асинхронный изохронный : это двунаправленное соединение. ПК отправляет данные PCM на USB DAC, а USB DAC отправляет на ПК информацию о желаемой скорости потока данных. USB-ЦАП становится мастером синхронизации: USB-ЦАП имеет локальный кварцевый генератор (тактовый сигнал ЦАП) и управляет микросхемой ЦАП. Количество выборок PCM, отправляемых ПК, увеличивается/уменьшается в соответствии с информацией о желаемой скорости передачи данных, предоставленной USB-DAC.
Более техническое примечание: данные обратной связи USB-DAC содержат желаемую частоту отправки кадров USB, но на самом деле частота отправки кадров USB постоянна и не меняется, а выборка PCM каждого кадра USB увеличивается/уменьшается. Тактовый сигнал USB (он используется для определения времени отправки кадров USB) и тактовый сигнал ЦАП работают независимо и не согласуются друг с другом. Асинхронный isoc USB считается лучшим методом, поскольку тактовый сигнал микросхемы ЦАП может питаться от локального кварцевого генератора, а также возможен более чистый и более короткий путь тактового сигнала, что позволяет легче добиться меньшего джиттера, чем адаптивный isoc USB или S/PDIF. Также схема становится проще адаптивной isoc. Но фактическая производительность джиттера зависит от реализации.
Изображение клиентской области PlayPcmWin иногда повреждается на моем компьютере с Windows 7
Эта проблема возникает в некоторых старых драйверах графических устройств. Обновите драйверы графического устройства до последней версии, чтобы решить проблему. Или снимите флажок «Рендеринг графического процессора» в диалоговом окне «Подробные настройки» PlayPcmWin (это крайний вариант).
Как увеличить размер текста PlayPcmWin?
Наведите указатель мыши на окно PlayPcmWin.
Удерживайте клавишу CTRL и вращайте колесо мыши.
или
Откройте диалоговое окно «Подробные настройки» PlayPcmWin.
Сдвиньте нижний левый ползунок. Нажмите кнопку 1 раз, чтобы вернуться к масштабу по умолчанию.
СКАЧАТЬ PlayPcmWin БЕСПЛАТНО можно ЗДЕСЬ —> PlayPcmWin584x64en 1,2Мб
Какой декодер MP3 используется в PlayPcmWin?
PlayPcmWin использует MP3 Decoder MFT от Microsoft Media Foundation для декодирования MP3 в формат PCM.
Вот документ MP3-декодера MFT:
https://docs.microsoft.com/en-us/windows/win32/medfound/windows-media-mp3-decoder .
Какова цель «Нулевого периода сброса при запуске воспроизведения:»?
Многие устройства воспроизведения, особенно ЦАП с входом S/PDIF, пропускают самый первый период звуковых данных при изменении частоты дискретизации. Обычно первая часть трека 1 начинается внезапно, спустя 0,5 секунды от начала. PlayPcmWin вначале отправляет данные в автоматическом режиме в течение первых 0,5 секунды, чтобы предотвратить эту проблему.
Ошибка воспроизведения 800700AA
800700AA означает «Ресурс используется», и эта ошибка в некоторой степени связана с настройками приоритета эксклюзивного режима устройства воспроизведения. Откройте панель управления > звук > вкладка «Устройства воспроизведения» > свойства динамика > вкладка «Дополнительно».
Установите флажок Разрешить приложениям получать эксклюзивный контроль над этим устройством.
Установите флажок «Отдавать приоритет приложениям эксклюзивного режима».
исправить.
Также эта ошибка возникает, когда другое приложение воспроизводит звук с использованием ASIO, а аудиоустройство используется исключительно ASIO.
PlayPcmWin перестал работать при обновлении ОС с Windows 7 до Windows 10
Если возникла эта проблема, удалите PlayPcmWin из Панели управления — Программы и компоненты и установите PlayPcmWin для устранения проблемы. (Спасибо Томасу-сану за сообщение.)
64-битная версия или 32-битная версия, что лучше?
Эти две версии созданы из одного и того же исходного кода. 64-битная версия лучше 32-битной версии из-за меньшей загрузки ЦП и возможности использовать больший объем виртуальной памяти. (более быстрая обработка, больше места для музыкальных данных)
Но 64-битная версия не работает, если на вашем компьютере установлена 32-битная операционная система.
Дополнительная настройка необходима для RME FireFace 400/800/UC/UFX, серии M-AUDIO ProFire, серии Echo AudioFire и т. д.
Это профессиональное аудиооборудование не поддерживает изменение частоты дискретизации через WASAPI. Пожалуйста, установите частоту дискретизации вручную перед воспроизведением с помощью «Настройки FireFace», «Панель управления M-Audio Profire» или приложения «AudioFire Console» на панели задач.
СКАЧАТЬ PlayPcmWin БЕСПЛАТНО можно ЗДЕСЬ —> PlayPcmWin584x64en 1,2Мб
Какой режим вывода данных? Что лучше по качеству звука?
Режим вывода данных, управляемый событиями: поток воспроизведения выходит из состояния сна по событию запроса буфера WASAPI. Интервал пробуждения потока воспроизведения определяется временем задержки вывода. Размер выборки пополнения буфера равен времени задержки x частоте выборки (выборок).
Режим подачи данных, управляемый таймером: поток воспроизведения просыпается по событию таймера. Интервал тревоги таймера определяется временем задержки выхода / 2.
Теоретически режим, управляемый событиями, является более сложным методом, чем режим, управляемый таймером. Это минимизирует нагрузку на процессор и удлиняет интервал ожидания потока воспроизведения.
Вообще говоря, режим, управляемый событиями, рекомендуется для более низкой загрузки процессора и меньшего количества звуковых сбоев.
В реальном мире некоторые устройства предпочитают режим, управляемый событиями (на этих устройствах режим, управляемый таймером, приводит к частым щелчкам), другие несколько устройств предпочитают режим, управляемый таймером (вообще невозможно использовать режим событий). Большинство устройств хорошо работают в обоих режимах.
О типах задач потока рендеринга в PlayPcmWin
Во-первых, Render означает воспроизведение, Capture — запись 🙂
Если вы действительно хотите установить задержку вывода 10 мс или меньше, предпочтительным вариантом является Pro Audio . выбрав опцию Pro Audio,
поток рендеринга выполняется с наивысшим приоритетом. Это снижает вероятность аварий с переполнением выходного буфера, но с точки зрения энергопотребления это оказывает негативное воздействие.
Настройки типа задачи потока рендеринга в конечном итоге выбирают первый параметр вызова функции AvSetMmThreadCharacteristics() потока воспроизведения.
Нет : поток воспроизведения вообще не вызывает AvSetMmThreadCharacteristics(). Воспроизведение имеет более низкий приоритет, чем Pro Audio, но более высокий приоритет, чем Audio . Эта разница незначительна, я думаю, что воспроизведение подходит для сред с высокой нагрузкой на процессор, таких как фоновое перекодирование видео или рендеринг CGI или другие задачи обработки фоновых чисел.
AvSetMmThreadCharacterics() вызывается в потоке рендеринга, когда начинается воспроизведение, и этот параметр возвращается обратно, когда воспроизведение заканчивается.
Эксклюзивный или общий доступ WASAPI в PlayPcmWin
Эксклюзивный режим лучше подходит для оптимального качества звука. Эксклюзивный режим обходит микшер Windows и многочисленные эффекты изменения данных PCM, такие как преобразование частоты дискретизации.
В общем режиме WASAPI побитовый PCM может быть отправлен в ЦАП, если соблюдены все следующие условия.
Разрядность источника PCM ≦ 25 бит. (Поскольку разрядность данных PCM в совместном режиме фиксирована и равна 32 битам с плавающей запятой, приложениям необходимо преобразовать значение PCM в 32-битное число с плавающей запятой, а преобразование 26-битного целого числа (или большего) PCM в 32-битное число с плавающей запятой не является побитовым)
Исходный PCM вообще не содержит значения выборки амплитуды более 0,95 (приблизительно -0,45 дБFS). Когда значение выборки 0,95 или больше поступает в аудиосистему общего режима, Limiter APO начинает работать, и усиление на некоторое время снижается.
Настройка частоты дискретизации в общем режиме WASAPI конечной точки соответствует частоте дискретизации исходного PCM. Если оно совпадает, преобразование частоты дискретизации не выполняется. Если он не совпадает, приложению каким-то образом необходимо преобразовать частоту дискретизации в частоту дискретизации совместного режима (и совершенство битов теряется).
СКАЧАТЬ PlayPcmWin БЕСПЛАТНО можно ЗДЕСЬ —> PlayPcmWin584x64en 1,2Мб
Все улучшения конечной точки отключены
Разрядность конечной точки в режиме общего доступа WASAPI установлена на 24 или 32 бита. (В 16-битном режиме аудиосистема общего режима применяет сглаживание TPDF, и совершенство битов теряется).
Громкость сеанса Audio Engine и громкость конечной точки установлены на 100%.
Никакие другие сеансы аудио в общем режиме не передаются в ту же конечную точку вывода звука.
В эксклюзивном режиме WASAPI:
Настройки улучшения звука Windows Audio Engine не используются.
Приложения могут изменять частоту дискретизации и разрядность ЦАП. Приложениям не обязательно использовать формат PCM в общем режиме (значение настройки может быть видно приложениям, поэтому разработчики приложений могут использовать его при воспроизведении в эксклюзивном режиме, если дизайнеры этого захотят).
- Большинство драйверов аудиоустройств поддерживают 16- и (24 или 32-битные) целочисленные форматы PCM.
- Никакой ограничитель APO не вмешался.
- Дизеринг TPDF не применяется в 16-битном формате PCM.
- На одной конечной точке разрешен только один аудиосеанс. (Таким образом, это эксклюзив.)
- Некоторые аудиоустройства используют значения громкости конечной точки, а другие устройства игнорируют их в эксклюзивном режиме.
О значении качества общего передискретизатора Wasapi в окне настроек
PlayPcmWin использует Resampler MFT (Audio Resampler DSP) для повторной выборки данных PCM в общем режиме Wasapi.
https://msdn.microsoft.com/en-us/library/windows/desktop/ff819070%28v=vs.85%29.aspx
Значение качества общего передискретизатора Wasapi используется в качестве
аргумента IWMResamplerProps::SetHalfFilterLength().
https://msdn.microsoft.com/en-us/library/windows/desktop/ff819250%28v=vs.85%29.aspx
Resampler MFT представлен в Windows 7. Воспроизведение в общем режиме PlayPcmWin Wasapi не работает в Vista.
В эксклюзивном режиме Wasapi PlayPcmWin не выполняет повторную выборку (преобразование частоты дискретизации), поэтому этот параметр не используется.
Как проверить текущее значение разрешения таймера
Для этой цели я создал приложение TimerResolutionMonitor:
https://sourceforge.net/projects/playpcmwin/files/others/TimerResolutionMonitor101.zip/download
Если вы испытываете заикание звука при воспроизведении
Windows — сложная система, имеющая большое разнообразие аппаратного и программного обеспечения. Многие факторы влияют на этот тип проблемы.
На следующей странице представлены очень полезные советы по устранению неполадок, связанных с сбоями воспроизведения в Windows. Рекомендую проверить вашу систему по этому руководству.
https://support.native-instruments.com/hc/en-us/articles/209571729-Windows-Tuning-Tips-for-Audio-Processing
Что такое Int16, Int24, Int32 и Int32v24?
- Int16: 16-битный PCM
- Int24: 24-битный PCM
- Int32: 32-битный PCM.
- Int32v24: 24-битный PCM в 32-битном контейнере.
СКАЧАТЬ PlayPcmWin БЕСПЛАТНО можно ЗДЕСЬ —> PlayPcmWin584x64en 1,2Мб