Пришло время продолжить тему Hi-Fi PC образца 2015 года. Вы наивно полагали, что, прочитав цикл из пяти базовых статей, познали audio-дзен? Не тут-то было! Дьявол, как всегда, кроется в деталях. И сегодня мы поговорим об одной из них. А именно – о настройке правильного Playback Output-а в нашем с вами любимом плеере Foobar2K. То есть о том, каким же образом плеер будет передавать декодированные им аудиофайлы драйверу звуковой карты.
Многие из вас, да что там, 99,9%, справедливо, но наивно полагают, что вопрос с качественным звучанием Источника решается установкой последней версии драйверов вашей новенькой звуковой карты или ЦАП-а. Это действительно так лишь в том случае, если вы не хотите выжать максимум из своей аппаратуры.
Настройка Playback → Output в foobar2K позволяет определить способ передачи аудиопотока от плеера звуковой карте. То есть, здесь мы вольны выбрать шеф-повара-диетолога, составляющего “меню” для драгоценной железки.
По умолчанию foobar2K использует для этой цели стандартный для всех версий Windows начиная c Vista WASAPI – Windows Audio Session API. В режиме Shared.
По своей сути задумка хороша. Но не обошлось без подводных камней. Главным камнем является… сама операционная система Windows. А точнее благое желание разработчиков “сделать нам красиво”. Дело в том, что протокол WASAPI в режиме Shared (режим по умолчанию) призван обеспечить приемлемое звучание посредством весьма скромной, далекой от Hi-Fi стандартов, аппаратуры. То есть создавался с прицелом на интегрированные в материнскую плату звуковые решения (прастигоспади Realtek), активные колонки или же вообще встроенную акустику ноутбуков. Основным блюдом музыкальной диеты таких вот решений по обыкновению являются MP3-файлы и другая “пережатая” белиберда. Весь этот junk нужно заставить звучать лучше, чем грохотание алкашей по крышке мусорного бака. Так же не будем забывать о необходимости вменяемо проигрывать звуковые дорожки к видео всех мастей. Потому Windows сознательно позволяет себе вносить в декодированные плеером музыкальные треки кучу “корректирующей” отсебятины. Убивая при этом вкусные детали произведения заботливым сглаживанием и прочими “улучшайзерами”. Весь этот зоопарк программных ухищрений обитает в микшерном ядре операционной системы Windows. До XP включительно эта аудио-прослойка называлась KMixer. Начиная с Vista, допиленный микшер стал именоваться WaveRT. Но, как это часто бывает с Microsoft, название и номер версии сменились, а грабли остались прежними. Старые или просто стремящиеся сохранить legacy-совместимость с XP приложения не отходят от DS-протокола (Direct Sound) и теперь. А средства операционной системы, начиная с Windows Vista, таких “ретроградов” отправляют прямиком в лапы нового системного аудиопротокола по умолчанию – WASAPI Shared. В результате на вход звуковой карты все так же поступает уже не первозданный декодированный плеером аудиопоток, но коктейль, взбитый этим самым “миксером”.
Справедливости ради отметим, что грешны не только разработчики Windows. И вся телега гнилых овощей не должна единолично достаться редмондской компании. Свою добрую порцию наказания должны понести и разработчики звуковых карт. Ведь и они затачивают свои драйверы с разнообразными ненужными никому “улучшайзерами” под DS и работу с KMixer/WaveRT. Начиная с Windows Vista, вместе с переходом на другое ядро-микшер, немного изменился и системый аудио-протокол. Как мы уже знаем, теперь он именуется WASAPI и в своем режиме по умолчанию (WASAPI Shared) является деструктивным для музыки. Звук теряет в достоверности и близости к оригиналу. Безвозвратно исчезает множество деталей. Нарушается частотный баланс и творятся прочие непотребства. В сухом остатке мы получаем абсолютно непригодный для Hi-Fi системы протокол. А для разработчиков, ответственных за KMixer/WaveRT в аду должен быть установлен персональный котел! ☠
Безусловно, у WASAPI Shared есть HiFi-совместимые альтернативы. Особой любовью у основной массы аудиофилов до сих пор пользуется ASIO.
Эта технология была призвана обеспечить передачу декодированного плеером аудиопотока на звуковую карту без изменений. То есть плеер должен работать со звуковой картой напрямую, минуя “посредника” KMixer/WaveRT и их составляющие. И передавая ей поbitово достоверный аудиопоток. То есть тот самый вожделенный bit-perfect sound. Но не у всех получилось ☹ …
Гладко всё было лишь на схеме. На практике всё очень часто обстоит весьма плачевно. И дело тут не в неправильности самой идеи. Нет. Идея более чем хорошая. Дело в реализации. Она частенько бывает крива. Не у всех компаний, производящих звуковые карты, имеются разработчики ASIO-драйверов с руками, произрастающими из правильного места. Скажу даже большее – не у всех есть вообще хоть какие-то разработчики ASIO-драйверов. Загвоздка в том, что ASIO-драйвер должен подменять собою и пару транспортных протоколов, один из которых вообще работает в нулевом кольце операционной системы, и пару-тройку API, позволяющих связывать программу-плеер со звуковой картой. Потому квалификация разработчиков, равно как и качество такого решения, должны быть очень высокими.
Безусловно, и здесь не обошлось без неутомимого opensource-сообщества. Оно предпринимало попытки выправить ситуацию, выпустив в сеть решение под названием ASIO4ALL, призванное даровать радость bit-perfect звучания всем и каждому. Но, как и многие другие замечательные начинания, это не дало ожидаемого результата. Старые проблемы решились не до конца, а в дополнение появились новые. В виде багов, которыми к сожалению страдает абсолютное большинство opensource-проектов. Этот драйвер, увы, работает крайне нестабильно.
☢ Автор настоятельно не рекомендует использовать ASIO4ALL ни при каких обстоятельствах!
Да, звуковые карты и внешние ЦАП-ы с хорошими, беспроблемными ASIO-драйверами являются редкостью. Иногда очень дорогой редкостью. И если вы счастливый обладатель такой вот вожделенной железки, рекомендую не сомневаться ни минуты и установить ASIO support расширение для foobar2K. В настройках Playback → Output необходимо выбрать значение <ASIO: название вашей звуковой карты>.
Получилось? Хорошо. А теперь перейдите в меню драйвера своей звуковой карты и вызовите опции управления ASIO. Настройки параметров для достижения наилучшего звучания должны быть выставлены следующим образом:
Готово? Тогда прочтение остальных параграфов этой статьи является для вас абсолютно излишней тратой времени. Можете смело наслаждаться отличным звучанием!
Но если же вы не принадлежите к числу немногих счастливцев, звуковые карты которых снабжены беспроблемными ASIO-драйверами, не отчаивайтесь! Для вас есть решение!
Желание разработчиков Microsoft реабилитироваться в глазах меломанов и аудиофилов принесло свои плоды. Потому не спешите желать всем им без исключения гореть в аду. Их труды воплотились в режиме WASAPI Exclusive.
Он призван выполнить ту же задачу, которую ставили перед ASIO – максимально сократить цепочку передачи сигнала от декодера-плеера к драйверу звуковой карты. Единственным, весьма условным, недостатком такого решения, является принудительный “режим тишины” для всех остальных запущенных программ, кроме плеера ☺ .
Этот режим работает на удивление стабильно и качественно в подавляющем большинстве случаев. И обеспечивает тот самый bit-perfect аудиопоток для драйвера звуковой карты. Без лишних посредников, крашей и багов.
Именно его, WASAPI Exclusive, мы в дальнейшем принимаем в качестве стандарта по умолчанию.
☣ Внимание! Будьте готовы к первоначальному шоку! Казалось бы знакомые вам, заслушанные до дыр треки, начнут звучать абсолютно иначе. Вы внезапно начнете слышать чуть ли не в два раза больше деталей. Исчезнет “мыло” в высоких и средних частотах. Эффект будет очень сильным. И многим на первых порах захочется вернуться к старому доброму WASAPI Shared, зажимающему звуковую картину до знакомых и привычных рамок. Но пересильте себя. Привыкайте слушать музыку такой, какой ее задумали композиторы и сыграли исполнители. Открывайте в творчестве любимых исполнителей и групп новые грани и акценты. И просто наслаждайтесь звучанием. Но давайте для начала разберемся, как этого достичь.
Будучи очень популярным плеером с развитой экосистемой плагинов, foobar2K с готовностью предоставляет нам возможность установки расширения для поддержки WASAPI Exclusive output. Установка простейшая, ничем не отличается от таковой для любого другого плагина и проходит в три клика. Потому останавливаться на ней мы не будем. Ведь установкой дело не заканчивается.
Давайте пройдем в меню по пути File → Preferences → Playback → Output. Здесь в выпадающем списке Device выбираем строчку <WASAPI (event) – (наименование вашей звуковой карты)>.
Внимание, если ваша звуковая карта не старше 2009-го года выпуска, выбирайте именно WASAPI (event) – данная версия WASAPI Exclusive является наиболее новой и пердпочтительной. Но если же вашему аудио-”железу” сто лет в обед, а расставаться с ним вы не спешите, то выбирайте WASAPI (push). Да, этот вариант не суперсовременен и представляет собою “костыль”. Но со своей задачей справляется вполне пристойно.
Длину буфера оставляем нетронутой. А вот значение разрядности квантования – Output data format – выбираем исходя из спецификаций своей звуковой карты. Для полноценных, не интегрированных в материнскую плату решений, этому параметру рекомендуется установить значение в 24 bit. Для встроенных же (тот самый Realtek и прочие) – 16 bit. Справедливости ради отмечу, что такая простая настройка позволяет значительно улучшить звучание даже интегрированных звуковых чипов!
Теперь на минутку вернемся к пункту Prefences → Playback. Рекомендую установить здесь значения настроек, идентичные приведенным на скриншоте ниже
Ну вот и всё о правильной настройке параметра Output, важность которого тяжело переоценить. Если вам интересна тема настройки Playback Output, а данной заметки оказалось мало, то смело рекомендую вот этот материал.
В следующей статье мы с вами поговорим о DSP-плагинах в целом и о такой важной вещи как ресемплеры в частности.
До скорого!
P.S.: по традиции, оглашаю каким Output-ом я пользуюсь, не дожидаясь вопроса читателей ☺ . Так как у меня в системе трудится ASUS Xonar Essence STX (первого поколения), я использую ASIO. Да, мне повезло и разработчики ASUS после многочисленных попыток, проб и ошибок, таки смогли выпустить качественный и беспроблемный драйвер ASIO. Но справедливости ради отмечу, что разница между ASIO и WASAPI Exclusive не выходит за рамки допустимой погрешности. Потому смело рекомендую последний в качестве “народного” решения.