Около года назад на форуме плеера AIMP мне попалась одна интересная программа под названием PlayPcmWin.
По сути программа представляет собой аудиофильский плеер, заточенный под WASAPI (Windows Audio Session API — подсистема вывода звука в Windows Vista/7/8). Самым интересным является поддержка всех фич этой самой подсистемы, а именно:
- режимы Exclusive и Shared
- режим буферизации Event (Event Driven) и Push (Timer Driven)
- настройка размера аппаратного буфера (латентности)
- установка качества ресемплинга (режим Shared)
- установка масштабирования громкости до уровня 0.98 для обхода лимитера (limiter APO) в режиме Shared
- поддержка MMCSS (Multimedia Class Scheduler Service) и типов задач None/Audio/Playback/Pro Audio
Также стоит отметить следующий возможности:
- поддержка всех форматов данных - от 16 бит с фиксированной точкой до 32 бит с плавающей
- полная буферизация декодированного в выбранном формате аудио в ОЗУ компьютера
- поддержка дезеринга (в случае понижения разрядности)
- поддержка FLAC и CUESheet
Что можно сказать о данном плеере? Весьма интересная игрушка для цифровых маньяков-аудиофилов ну или же просто интересующихся подробностями работы звуковой подсистемы WASAPI. Что касается качества воспроизведения - какие-то преимущества перед тем же foobar2000 назвать трудно (он, кстати, также поддерживает MMCSS и установку размера буфера для push/event). Ну, разе что Вы действительно маньяк-аудиофил и считаете, что считывание информации с жесткого диска создает ужасающие наводки на выходе звуковой карты. Или (не дай Бог), что размер буфера влияет на качество воспроизведения (по принципу "чем меньше - тем лучше").
На самом деле большинство фич больше подошло бы какому-нибудь профессиональному звуковому редактору, чем плееру. Так как они явно рассчитаны на минимизацию задержек и нагрузки на CPU. А так — что ж, поклацать интересно...
Да, кроме всего прочего, программа умеет создавать вот такую таблицу форматов, поддерживаемых устройством:
wasapi.Init() 00000000
wasapi.DoDeviceEnumeration(Play) 00000000
DwmEnableMMCSS(True) result=00000000
wasapi.InspectDevice()
DeviceFriendlyName=Динамики (Creative SB X-Fi)
DeviceIdString={0.0.0.00000000}.{7d0f79be-d721-4695-8ac8-6882f309abd7}
++-------------++-------------++-------------++-------------++-------------++-------------++-------------++-------------++
|| 44kHz i16V16|| 48kHz i16V16|| 88kHz i16V16|| 96kHz i16V16||176kHz i16V16||192kHz i16V16||352kHz i16V16||384kHz i16V16||
|| OK 00000000 || OK 00000000 || OK 00000000 || OK 00000000 || OK 00000000 || OK 00000000 || NA 88890008 || NA 88890008 ||
++-------------++-------------++-------------++-------------++-------------++-------------++-------------++-------------++
|| 44kHz i24V24|| 48kHz i24V24|| 88kHz i24V24|| 96kHz i24V24||176kHz i24V24||192kHz i24V24||352kHz i24V24||384kHz i24V24||
|| NA 88890008 || NA 88890008 || NA 88890008 || NA 88890008 || NA 88890008 || NA 88890008 || NA 88890008 || NA 88890008 ||
++-------------++-------------++-------------++-------------++-------------++-------------++-------------++-------------++
|| 44kHz i32V24|| 48kHz i32V24|| 88kHz i32V24|| 96kHz i32V24||176kHz i32V24||192kHz i32V24||352kHz i32V24||384kHz i32V24||
|| OK 00000000 || OK 00000000 || OK 00000000 || OK 00000000 || OK 00000000 || OK 00000000 || NA 88890008 || NA 88890008 ||
++-------------++-------------++-------------++-------------++-------------++-------------++-------------++-------------++
|| 44kHz i32V32|| 48kHz i32V32|| 88kHz i32V32|| 96kHz i32V32||176kHz i32V32||192kHz i32V32||352kHz i32V32||384kHz i32V32||
|| OK 00000000 || OK 00000000 || OK 00000000 || OK 00000000 || OK 00000000 || OK 00000000 || NA 88890008 || NA 88890008 ||
++-------------++-------------++-------------++-------------++-------------++-------------++-------------++-------------++
|| 44kHz f32V32|| 48kHz f32V32|| 88kHz f32V32|| 96kHz f32V32||176kHz f32V32||192kHz f32V32||352kHz f32V32||384kHz f32V32||
|| NA 88890008 || NA 88890008 || NA 88890008 || NA 88890008 || NA 88890008 || NA 88890008 || NA 88890008 || NA 88890008 ||
++-------------++-------------++-------------++-------------++-------------++-------------++-------------++-------------++
В ближайшее время я планирую сделать более подробное описание особенностей данной программы, а также перевод материалов по теме WASAPI.
Программу пока можно скачать здесь.
Информация от спонсора
ЕВРОСЕТЬ: широчайший выбор зеркальных и цифровых фотоаппаратов Canon. Подробное описание каждой модели, а также удобный поиск и навигация помогут выбрать товар на любой вкус.