ВНИМАНИЕ: статья постоянно дорабатывается и дополняется. На данный момент информация актуальна для foobar2000 v1.5.x и операционных систем Windows XP — Windows 10.
Copyright © 2020, Taras Kovrizhenko
Полное или частичное копирование текста допускается только с письменного разрешения автора.
1. Общие сведения
Критерием качества воспроизведения звука является количество искажений, которое вносится в сигнал при его прохождении через звуковой тракт. Искажения вносятся практически при любой обработке, так что главная для нас задача — свести к минимуму или вообще исключить обработку звука там, где это возможно. Также сигнал может искажаться при передаче (при передаче в аналоговом виде это неизбежно).
Приведенная ниже схема охватывает типичные способы воспроизведения звука на компьютере с использованием цифровых и аналоговых интерфейсов.
Источник — звук в одном из форматов lossy, lossless PCM или DSD. Может быть файлом на жестком диске, сетевом диске, флешке, либо же потоком данных из сети.
Плеер — содержит декодер, обработчики звука, вывод.
Микшер Windows, драйвер звуковой карты — тесно взаимодействующие элементы. На данном этапе может выполняться программная обработка звука (порой некачественная), что крайне нежелательно.
Звуковое устройство ПК — это может быть встроенная в материнскую плату или дискретная PCI/PCI-E звуковая карта, HDMI выход видеокарты или Bluetooth-адаптер. Особый интерес представляют именно звуковые карты, важным элементом которых является Digital Signal Processor, совершающий необходимую обработку звукового потока, а также обработку в соответствии с выставленными настройками в драйвере звуковой карты. Большинство операций, которые производит звуковая карта, зависит от модели звуковой карты и её настроек. Также звуковая карта содержит цифро-аналоговый преобразователь, который используется в случае вывода звука в аналоговом виде.
Внешний ЦАП / звуковая карта — внешнее звуковое устройство, подкюченное по цифровому интерфейсу к USB порту или цифровому выходу звуковой карты. Такое утсройство берет на себя цифро-аналоговое преобразование, а также может выполнять обработку аналогично внутренней звуковой карте. Разделение устройств на ЦАП и звуковые карты условно: как правило, ЦАП больше ориентирован на воспроизведение и имеет миинимум функций; звуковая карта же обычно является мультимедийным устройством, может содержать сложные обработчики, а также позволяет записывать звук.
Усилитель — усилитель звуковой частоты. Аналоговый элемент, предназначенный для увеличения уровня электрического сигнала до необходимого для воспроизведения через звукоизлучатели. Ресиверы, как правило, уже содержат в себе УЗЧ, позволяющий выводить звук на колонки. Звуковые карты и ЦАП обычно имеют на выходе уровень сигнала достаточный только для воспроизведения через наушники и потому для вывода на колонки нужен дополнительный УЗЧ.
Цифровой ресивер — аудио-видео ресивер. Высокотехнологичное устройство со множеством цифровых и аналоговых входов, включающее в себя ЦАП, различные обработчики и усилитель звука. Позволяет выводить звук на колонки, наушники, а также (некоторые модели) на Bluetooth устройства воспроизведения.
Звукоизлучатели (отмечены значками наушников и колонок) — электроакустические элементы, которые преобразовывают электрический сигнал от усилителя в звуковые волны. Как правило представляют собой динамические головки громкоговорителей (колонок) или наушников. Каждому выходному каналу УЗЧ соответствует один или несколько звукоизлучателей колонок или наушников.
Bluetooth устройства вывода (отмечены наушниками со значком Bluetooth) — беспроводные устройства, на которые можно выводить звук в цифровом виде с Bluetooth-адаптера компьютера или с ресивера (если он оборудован передатчиком). Содержат в себе декодер, ЦАП и усилитель. Передача чаще всего происходит в lossy формате SBC.
Интерфейс вывода, канал передачи (стрелки, соединяющие элементы) — транспортное звено между элементами тракта. Могут быть аналоговыми и цифровыми. Передача аналогового сигнала технически осуществляется проще, однако такой канал подвержен воздействию помех, создающих в сигнале шумы, причем чем меньше уровень передаваемого сигнала, тем значительнее воздействие помех на форму сигнала. Цифровые интерфейсы менее подвержены воздействию шумов (при низких уровнях помех они вообще не влияют на передачу данных), но здесь в случае синхронной передачи данных (когда данные на ЦАП непосредственно тактуются синхроимпульсами с источника сигнала) существует проблема джиттера, дающего искажения на выходе ЦАП. Передача по цифровым интерфейсам может осуществляться в несжатом (PCM, DSD) или сжатом (чаще с потерями — DTS, Dolby, SBC) форматах.
2. Рекомендации по выбору и настройке компонентов
2.1 Источник
Важно понимать, что если изначально запись некачественная, нет большого смысла тратить усилия на настройку остального тракта.
Источники можно подразделить на три типа:
- Lossless PCM (wav, flac, wv, ape, tak, tta, ofr, etc.) — аудио закодированное без потерь (при декодировании полученный аудиопоток в точности соответствует тому, что кодировали в lossless — аналогично распаковке файлов из архива ZIP).
- Lossy (mp3, ogg, aac, wma, etc.) — аудио сжатое с потерями. При кодировании происходят необратимые потери некоторой части информации (а именно, вырезается та часть звуковых данных, которую человек не воспринимает или же почти не воспринимает).
- DSD (SACD-R образы, DSF/DFF файлы) — 1-битный высокочастотный поток (сжатый или несжатый), которым оперируют сигма-дельта АЦП/ЦАП. Так как настройка вывода DSD (если ваша звуковая карта его поддерживает) очень специфична, за информацией по нему обратитесь в соответствующий раздел статьи про SACD.
Выбирая, в каком формате слушать музыку, следует отталкиваться от возможностей вашего тракта. Если вы используете устройство с поддержкой DSD, с точки зрения достоверности лучшим выбором будет SACD источник (или рипы в формате dst, dsf, dsdiff). Однако обработчики сигналов не умеют работать с DSD данными, и если где-то на пути сигнала выполняется обработка (в плеере или в внешнем устройстве - например, эквализация на ресивере), будет выполняться преобразование потока в PCM, что убивает саму идею передачи DSD потока напрямую на ЦАП. Также следует понимать, что DSD аудио занимает много места, сложно в использовании, а при воспроизведении даёт высокую нагрузку на процессора (особенно сжатое в DST) — недостаточно производительный ПК может попросту не справиться с такой задачей.
Если для вас не слишком важен объем файлов, то можно качать DVD-audio рипы в форматах 24/96, однако они не дадут ожидаемого многими прироста качества относительно грамотно сконвертированных из тех же исходников CD дисков в формате 16 бит / 44.1 кГц (читайте Загрузки в формате 24/192 — почему они не имеют смысла). Поэтому разумным выбором будут именно качественные CD-рипы в не слишком ресурсоёмких форматах FLAC или WavPack. Также может возникнуть вопрос, что выбрать — image + CUE или tracks + CUE. Здесь я рекомендую второй вариант, т. к. он значительно удобнее в обращении (далеко не весь софт умеет хорошо работать с CUE), а потерь качества при порезке на треки не происходит (при неграмотной порезке максимум можно потерять пару секунд тишины между треками).
В случае, если для вас критичен размер треков и вы не можете позволить себе хранить аудио с битрейтом ~800 кбит/c, можете сделать выбор в пользу качественного lossy. Хорошим вариантом будет скачать lossless исходники и конвертировать их в lossy, выбрав кодек согласно рекомендациям. Надо учитывать, что если для lossless PCM проблемы качественного воспроизведения сводятся к минимуму, то для наиболее качественного воспроизведения lossy необходимо принять определенные меры (см. далее).
Отдельно надо сказать про High-Res рипы винила. Винил уступает по всем характеристикам даже формату Audio CD, поэтому хранить рипы винила в формате 24/192 как минимум неразумно. Тут советую ознакомиться со статьей Заблуждения о виниле (HA Wiki). Если вам нравится окрас, который даёт записям винил, более чем достаточно будет рипов в формате 16/44.1. Если же вы ожидаете от виниловых записей какого-то невероятного качества, вы обманываетесь.
2.2 Операционная система
Учитывая популярность ОС Windows, её документированность, широкие возможности настройки, а также тот факт, что под многие звуковые устройства полноценный драйвер с ПО для доступа ко всем настройкам можно найти только под Windows, здесь выбор не вызывает никаких сомнений. Рекомендую использовать последнюю обновленную версию Windows 10 установленную на ПК.
2.3 Выбор и подключение оборудования
Несмотря на обширную информацию, посвященную программным элементам тракта (то что называется software), огромный вклад в характер звучания системы вносит именно оборудование (hardware), т. к. именно здесь выполняется преобразование цифровых данных в непрерывный аналоговый сигнал, его обработка (в цифровом или аналоговом виде) и конечно же преобразование в звуковые волны (пожалуй, самый важный пункт). Именно здесь в форму сигнала вносятся искажения, задающие характер его звучания. Поэтому прежде вcего вам необходимо выбрать и приобрести (если вы еще этого не сделали) компоненты, которые подойдут под ваши требования по объективным характеристикам — соотношение сигнал/шум, частотный диапазон, неравномерность АЧХ, чувствительность, уровень громкости. Кроме объективных характеристик, важно чтобы характер звучания системы нравился именно вам, поэтому перед покупкой акустики, наушников — крайне важно их оценивать на слух.
Помните, что имея некачественное оборудование, вы не исправите его звучание никакими волшебными плеерами или ресемплерами. Почитать на эту тему можно в моей публикации Ещё раз о печальной правде: откуда на самом деле берётся хорошее звучание?.
Вопросы выбора аналоговой аппаратуры и её коммутации выходят за рамки тематики моего сайта, поэтому здесь я дам лишь общие рекомендации по выбору схем подключения, главным образом по части цифровых интерфейсов.
2.3.1 Звуковая карта: встроенная или дискретная?
В последние годы большинство встраиваемых в материнские платы аудиокодеков обеспечивают достаточный уровень качества при выводе на внешний усилитель. Чтобы убедиться в этом, в спецификации своей материнской платы найдите, какой кодек в ней используется, после чего найдите в интернете его тест (например, с использованием RightMark Audio Analyzer). Однако встроенной звуковой карты может оказаться недостаточно для прослушивания аудио через наушники, особенно если это качественные высокоомные наушники. Также в случае, если вы хотите выводить аудио по цифровому интерфейсу S/PDIF на внешнее устройство, встроенная звуковая карта может давать повышенный уровень джиттера (хотя как правило на слух он не воспринимается) или не поддерживать необходимую частоту дискретизации (например, 176.4 кГц для вывода DSD over PCM).
Если по какой-то из причин встроенная звуковая карта вам не подходит, обратитесь за советом на форум, изложив при этом свои требования к устройству и бюджет. Что касается выбора типа звукового устройства (внутренняя или внешняя, карта или ЦАП) — также исходите из свои требований и личных предпочтений. Из объективных характеристик — внешние USB устройства меньше подвержены наводкам, которые могут создаваться внутри системного блока ПК (например, видеокартой, находящейся в непосредственной близости). Также их можно быстро переподключать к другим устройствам, в т. ч. к телефону.
2.3.2 Какому интерфейсу отдавать предпочтение
Если ваше звуковое устройство ПК не имеет ЦАП (например, это видеокарта с HDMI выходом) или у вас есть внешнее устройство, у которого характеристики ЦАП и аналогового тракта выше, чем у вашей звуковой карты, вы можете вывести цифровой поток по одному из доступных цифровых интерфейсов. Например, у вас есть качественный цифровой ресивер и встроенная звуковая карта с интерфейсом S/PDIF. Логично будет выводить звук в цифровом виде на ресивер, и уже к нему подключать проводные наушники или колонки. Если вы подключите ресивер по аналоговому интерфейсу, то получите менее качественное ЦА-преобразование, а также искажения вносимые усилителем звуковой карты + искажения от аналогового тракта ресивера, а возможно еще и от преобразования в цифровой вид и обратно, если ресивер выполняет цифровую обработку сигнала. В случае цифрового подключения ресивер получит нетронутые цифровые данные, при необходимости обработает их, затем пустит на свой качественный ЦАП и затем на усилитель — что является оптимальной схемой.
Но нередко бывает, что есть несколько вариантов, как вывести цифровой сигнал на внешнее устройство. Например: у ресивера есть оптический и коаксиальный S/PDIF, HDMI вход, а также Bluetooth приёмник. Или у ЦАП есть S/PDIF и USB интерфейс — что выбрать? Ниже я перечислю и дам описание интерфейсам, начиная с наиболее рекомендуемых
USB — наиболее совершенный и надежный интерфейс. Обычно им оснащены внешние звуковые карты и ЦАП. Подавляющее большинство USB устройств использует асинхронную передачу цифрового потока — передача полностью контролируется устройством, что сводит проблему джиттера на нет. USB поддерживает передачу данных на очень высокой скорости (например, PCM 32 бит/384 кГц) и идеально подходит для передачи DSD потока. Большинство USB-устройств оснащены ASIO драйвером.
HDMI — интерфейс, предназначенный для одновременной передачи аудио и видео данных. Поддерживает высокие скорости передачи - до 8 каналов, 24 бит, 192 кГц (ограничения зависят от ширины видеопотока), а также широкий спектр сжатых форматов (в т. ч. lossless Dolby TrueHD). В отличие от S/PDIF имеет отдельный канал синхронизации, что сводит к минимуму проблему джиттера. Выходом HDMI, как правило, оснащены видеокарты. Огромным минусом является невозможность передачи только звукового сигнала — т. е. если вы подключаете внешнее устройство по HDMI, оно воспринимается операционной как монитор, при отключении которого отключается и аудиоустройство. Хорошим вариантом будет подключение второго монитора (если у вас он есть) через ресивер. Также HDMI не поддерживает передачу DSD.
S/PDIF — спецификация от Sony и Philips, имеющая две аппаратных реализации — коаксиальную и оптическую. Различия между этими реализациями — вечная тема для холиваров. Каждая из них имеет свои недостатки: коаксиальный канал подвержен затуханию сигнала, воздействию помех и имеет проблему земляной петли между устройствами; оптический интерфейс сейчас более распространен, он более высокотехнологичен и не подвержен помехам, однако оптический кабель уязвим для изгибов и из-за отражений имеет проблемы с передачей на высоких частотах (более 96 кГц). Так что для передачи DSD over PCM (176.4 и 196 кГц) лучше выбрать коаксиальный кабель, для передачи же аудио до 96 кГц включительно лучше выбрать оптику.
Также ограничения зависят от реализации приёмника и передатчика. Например, многие встроенные карты не поддерживают передачу потока с частотой выше 48 кГц.
В целом интерфейс S/PDIF является довольно проблемным, в частности из-за джиттера: сигнал синхронизации передаётся по тому же каналу, что и данные, в итоге джиттер может зависеть от формы сигнала. Кроме того, S/PDIF не позволяет выводить многоканальное аудио без сжатия, а сжатие в таком случае происходит с потерями — в форматах DTS, Dolby Digital (AC3). Однако неплохим вариантом является передача AC3 аудио-дорожек фильмов без промежуточной конвертации в PCM на устройство, но эту функцию должен поддерживать плеер.
Bluetooth — беспроводной интерфейс, чаще всего используется в беспроводных наушниках и портативных колонках. Отличается удобством, однако ценой кодирования в lossy формат. Большая часть устройств использует довольно старый кодек SBC с битрейтом до 384 кбит/c, который впрочем доёт достаточно прозрачное качество. Но следует учитывать, что битрейт понижается при ухудшении связи и часто восстанавливается только при переподключении. Также существует альтернативный формат для Bluetooth аудио — aptX. Прочитать дательный разбор Bluetooth-аудио можно на Хабре.
Советую использовать Bluetooth только если удобство беспроводного канала для вас важнее бескомпромиссного качества. Предварительно стоит проверить качество декодера на вашем устройстве с помощью тестового файла, т. к. на некоторых устройствах тракт BT воспроизведения оставляет желать лучшего и на тестовом сигнале можно услышать сильные искажения.
Сетевое проигрывание по DLNA. DLNA является стандартом взаимодействия мультимедийных устройств в домашней сети. Цифровые ресиверы (или другие устройства воспроизведения) с его поддержкой могут выступать в локальной сети в качестве устройства медиарендеринга. С помощью ПО с поддержкой вывода по DLNA можно выводить звук из плеера прямо на такое устройство. Недостатком такого способа является ограниченное количество поддерживаемых форматов вывода, невозможность использовать сетевое устройство как обычное звуковое устройство Windows, а также значительная задержка при инициализации вывода.
2.3.3 Кабели для коммутации
Не стоит покупать кабели за сотни долларов в надежде, что они украсят звучание вашей аппаратуры. Кабель должен быть просто качественным: надежным, достаточно толстым, с хорошей изоляцией. Это касается как цифровых так и аналоговых кабелей. Наиболее чувствительным к качеству кабеля является оптический интерфейс S/PDIF, тут желательно не поскупиться уж совсем и взять что-то хотя бы за 7$ (существуют тонкие некачественные кабели по 3 доллара). Но опять же, помните, что качество передачи не увеличивается прямо пропорционально цене кабеля.
Не используйте слишком длинные кабели — это увеличивает уровень шумов, наводимых в них электромагнитными полями.
Также важно обеспечить надежное крепление соединительных проводов в соответствующих гнездах: хороший контакт очень важен, плохой же контакт станет узким местом и сведёт на нет качество самого добротного кабеля.
2.3.4 Принцип последовательного включения
Чтобы свести к минимуму искажения в аналоговых цепях, нужно держать сигнал на максимально возможном уровне, чтобы вклад шумов по сравнению с уровнем сигнала был незначительным. Здесь необходимо следовать т. н. принципу последовательного включения: в каждом звене тракта сохранять максимальный уровень сигнала, громкость же регулировать в самом последнем звене (например, на усилителе для акустики).2.4 Плеер
Я настоятельно рекомендую использовать foobar2000, из-за его максимально качественного и прозрачного звукового тракта, а также широких возможностей настройки. Ниже привожу, собственно, схему тракта плеера:
Примечания:1. Как видно из схемы, присутствие всех компонентов необязательно — некоторые можно отключать, а некоторые включаются только при необходимости. Так, например, декодер нужен только для сжатых форматов, а конвертер глубины бит включается при несоответствии формата входных данных настройкам вывода (output data format).
2. Для Windows 7+ возможен вывод в формате с плавающей точкой (32-битный вывод через DS).
2.4.1 Декодер
Декодирует входные данные, в результате чего получаем несжатый звуковой поток в виде импульсно-кодовой модуляции. Большинство lossy декодеров работают в режиме с плавающей точкой (32-битном). На выходе декодеров lossless получаются данные с параметрами аналогичными исходному аудио (которое сжималось). Обратите внимание, что поток DSD (если SACD/DSD декодер работает в режиме DSD) следует на вывод, минуя все звенья, через которые проходит PCM.
2.4.2 Постпроцессор
Выполняет роль декодера форматов HDCD и DTS (только lossless источники — пока только CDDA, WAV, FLAC, ALAC и WV). Так как для успешного декодирования этих форматов данные с обычного декодера должны передаваться бит-в-бит, постпроцессор находится в тракте сразу после него.
2.4.3 Обработчики
Совершают цифровую обработку звукового потока. Надо отметить, что использовать их надо только при необходимости, т. к. практически любая обработка звука — будь то даже изменение громкости — непременно вносит определенные искажения. Все обработчики по умолчанию работают в режиме с плавающей точкой. К цифровым обработчикам foobar2000 относятся:
ReplayGain
Используется для нормализации уровня записей Подробно почитать о громкости в цифровом звуке и вариантах настройки ReplayGain можно в отдельной статье.RG может использоваться в нескольких целях:
а) Для предотвращения клиппинга.
б) Для воспроизведения разного музыкального материала с одинаковой громкостью (чтобы не крутить каждый раз ручку громкости).
в) Для повышения громкости до максимально возможного уровня с целью улучшения соотношения сигнал/шум. Это называется пиковая нормализация до 0 dBFS, читайте о ней в статье по ссылке выше.
г) Для корректной работы тонкомпенсации, если ваше оборудование имеет такую функцию. Настройка описана в отдельной статье.
Я рекомендую не использовать ReplayGain без необходимости, а проблему клиппинга решать с помощью Advanced Limiter DSP (см. дальше)
DSP
Это цифровые обработчики звука, необходимы для выполнения различных преобразований звукового потока в режиме реального времени.
В идеале любая обработка звука, конечно же, должна отсутствовать, но в некоторых случаях для достижения более высокого качества приходится использовать некоторые обработчики. В частности, ресемплер просто необходим при отсутствии аппаратной поддержки звуковой картой частоты дискретизации воспроизводимого сигнала (чаще всего это материал со звуковых компакт-дисков с частотой дискретизации 44.1 кГц) для выполнения предварительного преобразования звукового потока в вид соответствующий аппаратным возможностям звуковой карты (чаще всего это преобразование 44.1->48/96/192 кГц).
Примечание: для встроенных визуализаций поток снимается сразу после прохождения через цепочку DSP.
Выявление некачественной передискретизации
На этот случай существует специальный семпл:
udial.flac
[СКАЧАТЬ] (0.18 MБ)
Этот семпл состоит из последовательности тональных сигналов с наложенным на неё синусоидальным сигналом, частота которого плавает в пределах 19—20 кГц:
В случае некачественного софтового ресемплинга при воспроизведении этого семпла вы услышите скрежет, шум, или другие искажения.
Примечание: для точной проверки ресемплинга сначала следует установить правильные настройки вывода (см. п. 2.4.1/2.4.2).
Настройка
Рассмотрим два варианта для воспроизведения материалов с частотой дискретизации 44.1кГц:
a) Ваше устройство вывода аппаратно поддерживает данную частоту дискретизации. В этом случае для достижения максимального качества на вкладке DSP должны отсутствовать какие-либо включенные обработчики (первый список, слева).
б) Ваше устройство вывода аппаратно НЕ поддерживает данную частоту дискретизации. Для достижения максимального качества установите плагин SoX Resampler и выставьте в его настройках максимальную частоту дискретизации, которую аппаратно поддерживает ваше устройство. После плагина SoX Resampler в список активных плагинов обязательно добавьте Advanced Limiter — этот плагин позволит предотвратить клиппинг, «на лету» занижая уровни участков звукового потока, которые в результате ресемплинга сигнала (или другой обработки) могут оказываться выше максимального уровня.
Если у вас второй случай и вы выставили рекомендуемые настройки, то теперь появится возможность максимально качественно (для этой звуковой карты) воспроизводить не только записи 44.1 кГц, но и записи с любой другой частотой дискретизации. В случае, если частота воспроизводимого материала совпадет с максимальной поддерживаемой устройством, ресемплер просто отключится (за ненадобностью).
Есть и ещё один вариант настройки, который подойдёт для дорогих высокотехнологичных звуковых карт/ЦАП. Дело в том, что в некоторых случаях (а именно, при выводе через WASAPI Exclusive или ASIO — о них читайте далее) такие устройства умеют автоматически подстраивать свою опорную частоту под частоту дискретизации воспроизводимого потока (т. н. автомат частоты). В этих случаях использование ресемплера для тех частот, с которыми устройство может работать на аппаратном уровне, излишне, и идеальным решением будет использование SoX Resampler mod:
Здесь я указал все частоты, поддерживаемые подключенным сейчас у меня ЦАП iFi nano iDSD. Теперь при подаче потока с любой из указанных частот ресемплер включаться не будет, а ЦАП будет сам определять и подстраивать свою частоту:
В случае нестандартной частоты источника (например, 32000 Гц) она будет преобразовываться в 384 кГц. Конечно, не каждая звуковая карта может похвастаться такой поддержкой частот (в данном случае SoX Resampler можно даже не включать — записи с другими частотами дискретизации практически не встречаются), для линейки Creative X-Fi 2004 года, например, автомат частоты работает только при выводе через ASIO в режиме Audio Creation и только с частотами 44.1/48/88.2/96 кГц. Пользоваться описанным методом можно только если вы уверены в «родной» поддержке указанных частот и можете проверить текущую опорную частоту в панели устройства или на цифровом индикаторе.
Регулятор громкости (Volume Сontrol)
Собственный регулятор громкости плеера. В случае необходимости программной регулировки громкости рекомендуется использовать именно его (а не регуляторы в настройках звуковой карты/микшере Windows). При выводе через WASAPI shared ("DS: <звуковая карта>" в Windows Vista+) синхронизируется с регулятором программы в микшере Windows.
Конвертер глубины бит
Используется для преобразование данных в формат, который способна воспринять звуковая карта (обычно это 16 или 24-битное аудио в формате PCM с фиксированной точкой). Возможности выбора формата зависят от используемого плагина вывода (смотрите следующий пункт).
2.2.4 Вывод
Плагин вывода необходим как связующее звено между плеером и Windows/драйвером звуковой карты. Плагин определяет каким образом и через какой интерфейс будет производиться вывод полученного (в результате работы всех предыдущих звеньев) аудиопотока из плеера на звуковую карту. Иногда использование альтернативных интерфейсов позволяет обойти некоторые некачественные участки тракта. Надо отметить, что на этапе вывода поток чаще всего преобразуется в формат с фиксированной точкой (глубина бит от 8 до 32 бит — в зависимости от выбранных параметров), к чему это может привести — уже рассматривалось в разделе о ReplayGain. На данный момент в foobar2000 существуют следующие способы вывода звука: DirectSound, Kernel Streaming, ASIO, WASAPI Shared и WASAPI Exclusive (только для Vista — 10).
Ввиду принципиальных различий между архитектурами Windows XP и Windows Vista+ рассмотрим настройку вывода для них отдельно.
Windows XP
Вот примерная схема звуковой подсистемы Windows XP:
Как видно, при выводе через DirectSound или MME звук проходит через микшер Windows (Kmixer). Главное отличие DirectSound состоит в широких возможностях использования аппаратных ресурсов звукового устройства, в т.ч. аппаратного микширования и низкой задержке. Но дело в том, что эти возможности напрямую зависят от используемых драйверов. Таким образом, из-за некачественных драйверов звуковой карты (это сейчас не редкость, особенно устаревшие драйвера) в аудио могут вноситься искажения. Возникать они могут как в результате работы регулятора Wave (входящего в Kmixer), так и в результате некачественной программной передискретизации или другой нежелательной обработки.
Решить проблему помогут два других вывода, которые способны обойти Kmixer — ASIO и Kernel Straming. Kernel Streaming — это средство по-битового вывода звука от Microsoft, входящее в DirectSound (на схеме — поток обходящий Kmixer). ASIO (Audio Stream Input/Output) также позволяет является профессиональным стандартом ввода/вывода, призванным минимизировать задержки (значение задержек для простого воспроизведения музыки совершенно не критично и на качество не влияет), и также позволяет обойти Kmixer.
ОБРАТИТЕ ВНИМАНИЕ: для многих современных звуковых карт с нормальными драйверами, результаты для всех выводов (в foobar2000) при регуляторе Wave на максимум (имеет значение только для DirectSound) совпадают. А при поддержке 24-битного (и выше) вывода вообще можно обойтись одним DirectSound, даже в случае когда уровень Wave нельзя выставить на максимум — качество будет таким же, как и при выводе через KS. Чтобы окончательно развеять Ваши сомнения, рекомендую к прочтению статью foobar2000: Kernel Streaming против DirectSound.
Настройка:
Итак, если Ваша звуковая карта поддерживает ASIO, скачайте и установите со страницы плагинов foobar2000 ASIO Output. Если же поддержки нет, установите Kernel Streaming. Далее запустите foobar2000 и на странице вывода выберите в Output device драйвер ASIO производителя Вашей карты (например: ASIO: Creative ASIO, ASIO: Xonar Essence STX ASIO) или же KS: <ваша звуковая карта>:
Buffer Length — это регулировка буфера плеера. Чем меньше значение — тем быстрее (считая от момента включения/изменения) будут вступать в силу изменения громкости, включение плагинов и т. д. На качество вывода данная опция не влияет, изменять стандартное значение не рекомендуется (т. к. при высокой нагрузке могут появится щелчки и треск).
Output format / Postprocessing
Output data format: установите максимальную разрядность, поддерживаемую вашей звуковой картой. Форматы 8 и 16 бит являются полноценными форматами с фиксированной точкой. Формат 24 бит соответствует либо i24v24 («integer 24 valid 24», 24 бита с фиксированной точкой, 24 значащих бита) либо i32v24 (32 бита, фиксированная точка, 24 значащих бита) — в зависимости от поддержки драйвером звуковой карты. Формат 32 бита соответствует либо 32 битам с плавающей точкой (f32v32), либо, в случае отсутствия поддержки драйвером плавающей точки — 32 битам с фиксированной точкой (i32v32). В некоторых случаях (для вывода ASIO и в более новых ОС) разрядность вывода плеер выбирает сам, на основе полученных от драйвера данных.
Dither: включение dithering + noise shaping (подробно читайте в статье «Системы понижения разрядности в мастеринге». Данная функция может быть полезна только при выполнении одного из следующих условий:
а) Если ваша звуковая карта аппаратно НЕ поддерживает разрядность звука выше 16 бит и вы используете одну из функций: ReplayGain, DSP, Volume Control (регулятор громкости в foobar2000).
б) ваша звуковая карта аппаратно НЕ поддерживает разрядность звука выше 16 бит и вы воспроизводите в foobar2000 материал с разрядностью более 16 бит.
Во всех остальных случаях (например, если все обработчики выключены и вы воспроизводите материал с разрядностью 16 бит) включение данной функции только ухудшит качество.
Если вы используете вывод ASIO, его также необходимо настроить:
Use 64-bit ASIO drivers — если у вас 64-битная ОС и имеется 64-битный драйвер ASIO, очень желательно включить этот параметр для повышения производительности.
Run with high process priority — запускает обработчик ASIO (процесс ASIOHOst[64].exe) с высоким приоритетом. Также позволяет улучшить производительность.
Кроме того, если кликнуть два раза по названию ASIO драйвера в ASIO drivers , появится окно настройки ASIO драйвера:
Разрядность (если она настраивается в вашем драйвере) рекомендуется установить в 24 бита, оптимальное значение буфера ASIO обычно 20—40 мс. Обратите внимание на то, что буфер ASIO влияет на частоту обновления визуализаций плеера (чем меньше — тем выше частота), при этом малое значение может привести к явным искажениям, щелчкам и зависаниям.
Windows Vista — Windows 10
В этих ОС звуковая подсистема имеет совершенно иную структуру. Ниже представлена её упрощенная блок-схема:
API — Application Programming Interface
APO — Audio Processing Object
CPT — Cross Process Transport
KST — Kernel Streaming Transport
Как видно из схемы, никакого DirectSound тут нет (есть только его видимость для совместимости со старыми программами). По-умолчанию все звуки выводятся через интерфейс WASAPI (Windows Audio Session API) в т. н. общем (shared) режиме, который включает в себя различные службы, софтовые обработчики и микшер. Также очевидно, что звук передается драйверу устройства только пройдя все вышеуказанные составляющие. Таким образом, все звуки приводятся к одной частоте и битности, смешиваются, (вся обработка идет с использованием вычислительных ресурсов ЦП), а на звуковую карту поток поступает уже в готовом виде.
Как показала практика, в некоторых случаях обработчики подсистемы WASAPI могут сужать динамический диапазон записи, привнося в него некоторый шум. Это зависит от выбранной разрядности в настройках устройства, однако, так или иначе, получить побитовый вывод при использовании WASAPI shared удаётся не всегда.
В данных ОС также присутствует Kernel Streaming (KST), но на практике он далеко не всегда работает — порой устройство по непонятным причинам оказывается «занято».
Если посмотреть на схему, то можно заметить, что прямой доступ к драйверу имеется через ASIO. Отсюда вывод: если ваша карта аппаратно поддерживает ASIO (и имеет вменяемый драйвер ASIO 2.0) — используйте этот интерфейс. Не забывайте, что для этого необходим плагин ASIO Output.
Но что же делать если у карты нет поддержки ASIO? Сразу скажу, что ASIO4ALL тут едва ли поможет, так как работает через тот же нестабильный Kernel Streaming.
К счастью, выход из этой неприятной ситуации всё же существует. Разработчики оставили нам лазейку, и называется она WASAPI Exclusive. В этом режиме можно обойти все нежелательные составляющие WASAPI. Правда, в эксклюзивном режиме действуют жесткие ограничения — при использовании приложением этого режима звуки всех остальных приложений отключаются.
Настройка
Примечание: описание настроек вывода можно найти в предыдущем разделе. Здесь освещены лишь специфические для новых ОС моменты.
Как я уже сказал, если у вашей карты есть поддержка ASIO — используйте его (описание настроек можно найти выше). В противном случае скачайте со страницы плагинов foobar2000 и установите плагин WASAPI Output, после чего выберите его для вывода:
Обратите внимание: у WASAPI exclusive существует два режима буферизации — Event и Push. Первый режим является технически более совершенным и лучше совместим с USB устройствами. Однако, режим event поддерживается не всеми звуковыми картами. Таким образом, предпочтительным является режим event. Если же воспроизведение в нем работать отказывается, необходимо переключиться на режим push.
В связи с частыми проблемами щелчков и треска во время воспроизведения звука в Windows Vista и более новых здесь немаловажно упомянуть дополнительные настройки воспроизведения, которые находятся в File->Preferences->Advanced->Playback:
Hardware buffer in MS — аппаратный буфер вывода для каждого из режимов WASAPI Exclusive. Если наблюдаются проблемы со щелчками, попробуйте увеличить значение для используемого вывода.
High worker process priority — этот параметр устанавливает высокий приоритет выполнения обработчика WASAPI Exclusive, который запускается в отдельном процессе WASAPIHost[64].exe (аналогично ASIO Host). Для достижения максимального эффекта можно установить и этому процессу, и процессу foobar2000.exe в Диспетчере задач Windows приоритет реального времени.
Thread priority — устанавливает приоритет для потока, отвечающего за воспроизведение. Желательно установить в максимум.
Use MMCSS — включает взаимодействие со службой Multimedia Class Scheduler Service, которая занимается распределением процессорных ресурсов. Эту функция рассматривается в статье по разбору звуковой подсистемы WASAPI.
MMCSS mode — выбор режима MMCSS. Для наилучшей производительности и стабильности рекомендуется значение Pro Audio.
3. Настройка звуковой карты и микшера Windows
Так как звуковых карт огромное множество, в этой части даются только общие рекомендации или же рекомендации по настройке с помощью стандартных средств Windows.
3.1 Настройка средствами Windows
3.1.1 Windows XP
Чтобы начать настройку, вам необходимо перейти в Панель управления Windows->(Звук, речь и аудиоустройства->)->Звуки и аудиоустройства.
Рис. 1.1 Громкость следует установить на максимум, регулировку уровня громкости производить аналоговым методом (например, ручкой на усилителе). Если вы используете наушники без регулятора громкости, регулируйте её средствами foobar2000. По окончании настройки нажать на кнопку Дополнительно в графе Громкость микшера.
Рис. 1.2. Все источники, кроме Wave (его надо установить на максимум) и Play Control конечно же, следует отключить. Wave тоже можно отключить, если вы не используете в плеере вывод через DirectSound, при этом все остальные звуки, в том числе системные, не будут слышны. Предварительно необходимо перейти в "Свойства" и включить отображение всех источников:
Рис. 1.3. Тут вы должны включить отображение всех источников воспроизведения для настраиваемого устройства.
Рис. 1.4. Данное окно вызывается с помощью кнопки Дополнительно в графе Настройка динамиков окна изображенного на рис. 1.1. Здесь вы должны выбрать Вашу конфигурацию динамиков. Далее переходим на вторую вкладку.
Рис. 1.5. Тут оба регулятора следует выставить в максимальное положение. Естественно, подразумевается, что никаких неполадок с воспроизведением звука (чаще всего это может происходить в играх) у вас не возникает. Если же неполадки есть, подберите наибольшие положения регуляторов, при которых неполадки исчезнут. В таком случае, стоит отметить, что данные настройки не влияют на воспроизведение с использованием Kernel Streaming и ASIO, из этого следует, что если вам пришлось установить один из регуляторов в более низкое положение, для качественного вывода звука в плеере необходимо использовать один из этих плагинов вывода.
По завершении настроек в каждом окне следует нажимать кнопку Ок.
3.1.2 Windows Vista — Windows 10
Чтобы начать настройку, вам необходимо перейти в Панель управления Windows->Оборудование и звук->Звук и на первой вкладке дважды нажать на устройстве воспроизведения, которое вы хотите настроить.
Рис. 2.1 Основную громкость установить на максимум. Все ненужные источники (микрофон, линейный вход) выключаем, регуляторы каналов (Front, Rear и т.д. — на скриншоте их не видно) устанавливаем в максимальное положение..
Рис. 2.2 Наличие и название данной вкладки зависит от установленной звуковой карты. Как показали опыты, включение/отключение этой опции влияет только на софтовые эффекты накладывающиеся при выводе в общем режиме . При выводе через WASAPI Exclusive эта опция ни на что не влияет — в этом случае будут работать только эффекты накладываемые аппаратным DSP звуковой карты.
Рис. 2.3 На этой вкладке нас больше всего интересует включение монопольного режима, необходимого для работы WASAPI. Параметр Предоставить приоритет приложениям монопольного режима оставьте включенным.
Настройка частоты и глубины бит здесь тоже работает лишь для общего режима, т.е. это опорная частота и глубина бит программного микшера, к которой будут приводиться все поступающие в него звуки. Частоту желательно установить соответствующую характеристикам вашей звуковой карты, глубину бит — максимальную поддерживаемую (используйте кнопку Проверка).
Эта вкладка отображается для цифровых интерфейсов. На ней либо указаны форматы, поддерживаемые устройством (для HDMI определяются автоматически), либо их поддержку можно проверить и указать самому. Эта страница никак не влияет на вывод через ASIO и WASAPI Exclusive.
3.2 Настройка звуковой карты (общие рекомендации)
На этом этапе принцип настройки не отличается от предыдущих: необходимо обеспечить достоверную передачу цифрового аудиопотока без внесения в него каких-либо изменений (в идеале — до самого цифро-аналогового преобразователя). Рекомендации по настройке состоят в следующем:
- Все эффекты/эквалайзеры и т.п. должны быть выключены. По возможности следует включить режим Bit-Matched Playback (для карт Creative эта опция может находиться в Creative Audio Console или же Console Launcher).
- Для большинства карт есть возможность выбора опорной частоты дискретизации (Master Sampling Rate) — ее следует установить равной частоте дискретизации воспроизводимого материала или же частоте установленной в ресемплере foobar2000. Там же может быть настройка глубины квантования (Bit Depth) — ее следует выставить на максимум.
- Все регуляторы громкости влияющие на громкость воспроизведения следует устанавливать в положение максимум.
4. Рекомендации по воспроизведению lossy аудио
Для получения наилучшего результата, перед воспроизведением выделите трек(и) в библиотеке или плейлисте foobar2000, нажмите на выделенном правую кнопку мыши и выберите из раскрывшегося списка Utils->Verify Integrity. Произведется сканирование трека(ов) на наличие ошибок. При наличии ошибок в файлах формата MP3 foobar2000 может их исправить. Если вы увидите ошибку вроде «Reported length is inaccurate...», выделите треки для которых отобразилась данная ошибка, нажмите правую кнопку и выберите Utils->Fix VBR MP3 Header, после обработки проверьте трек еще раз, ошибка должна отсутствовать.
Если при проверке вы наблюдаете ошибку вида «MPEG Stream error...», её можно исправить с помощью опции Utils->Rebuild MP3 Stream. После выполнения операции исправления ошибки не забывайте повторно проверять треки.
За помощь в «поисках истины» огромное спасибо участникам форумов foobar2000.org, websound.ru, hydrogenaudio.org