Сайт о телевидении

Сайт о телевидении

» » Красивый интерфейс foobar2000. Цифровые обработчики звука. Установка сторонних скинов

Красивый интерфейс foobar2000. Цифровые обработчики звука. Установка сторонних скинов

Описание основных принципов настройки конвертера foobar2000.

2013-06-11T14:40

2013-06-11T14:40

Audiophile"s Software

ОБРАТИТЕ ВНИМАНИЕ : на данный момент информация в этой статье актуальна для foobar2000 v1.3.7

Copyright 2017, Taras Kovrijenko

Полное или частичное копирование текста допускается только с письменного разрешения автора .

Принцип работы

Для лучшего понимания изложенной здесь информации будет полезно знать принцип работы конвертера. Примерная его схема предоставлена на рисунке ниже.

Источником чаще всего является файл-контейнер (FLAC, MP3 и т.п.) содержащий сжатое (с потерями или без) аудио, исключением являются контейнеры WAV и AIFF часто содержащие несжатое аудио. Поток фреймов (и ещё некоторая информация) из источника поступает на декодер, который на выходе даёт несжатый цифровой поток.

В случае с lossy поток имеет 32-битный формат с плавающей точкой и тут же передаётся цифровым обработчикам - DSP, ReplayGain. Для таких lossless форматов, как FLAC и WavPack, может выполняться пост-обработка - в случае, если в них обнаружен HDCD слой, несжатые данные в формате 16 бит передаются непосредственно HDCD декодеру, который в результате дает фактически 20-битное аудио, но в виде 32 бит с плавающей точкой; далее поток так же, как и для lossy, поступает на обработчики.

После обработки производится конвертация битовой глубины: для lossless кодирования - до значения, указанного на последней вкладке настроек конвертера (также есть возможность использования dithering и noise shaping при понижении битовой глубины, см. далее), для lossy - до значения, указанного как максимальная поддерживаемая кодеком разрядность входных аудиоданных.

Если кодер поддерживает ввод через STDIN, данные передаются ему «на лету», прямо по ходу декодирования и обработки. В противном случае все данные из источника сначала декодируются и обрабатываются, затем записываются во временный контейнер WAV, и только по окончании процесса этот файл вместе с параметрами кодирования передается кодеру.

Получив параметры и входные данные, кодер начинает кодирование, уже самостоятельно записывая выходной файл по указанному в параметрах адресу. По завершении кодирования foobar2000 копирует из источника метаданные (теги) в новый файл. После всего этого, при включенном ReplayGain сканировании, полученный файл опять декодируется, несжатые данные анализируются RG сканером, который затем передает рассчитанные значения теггеру для записи этих данных в наш файл.

1. Предварительная настройка

На главной панели плеера выберите File->.

Из древовидного меню (слева) выберите Advanced->Tools->Converter . В поле ввода Additional command-line encoder paths укажите полные пути к папкам с исполняемыми файлами (exe) кодеров через точку с запятой. Помните, что foobar2000 самостоятельно может добавлять пути в эту строку - при ручном выборе кодера (см. далее).

Примечания:
- если кодеры находятся в подпапке foobar2000/encoders , путь к этой папке можно не указывать - плеер сам ищет кодеры по данному адресу; - относительные пути к каждому кодеру, при надобности (например, для портативных версий), можно указывать непосредственно в профиле конвертера (см. дальше).

2. Настройка конвертера (на примере LAME MP3)


Нажмите на любом файле из плейлиста или библиотеки правой кнопкой, выберите Convert->Convert...

2.1 Настройка кодера (Output format)

Тут мы видим список профилей кодировщиков. Обратите внимание на настройки битности и Dithering для lossless кодеров:

Output bit depth - глубина квантования при декодировании входных файлов: Auto, 8/16/24 (с фиксированной точкой), или 32 бит (с плавающей точкой). Рекомендуется значение Auto . Но при этом надо учитывать, что в таком случае для lossy источников будет выбрана глубина 16 бит.

Dither - использование Dithering + Noise Shaping: never (не использовать), lossy sources only (только для lossy источников), always (всегда использовать). Использование данной технологии рекомендуется только в случае когда глубина квантования источника больше чем выходная, в остальных случаях следует установить значение never .

Для наглядности создадим новый профиль с помощью кнопки Add New .

Появится окно с настройками кодера. Изначально конвертер предложит Вам стандартный диалог настройки с помощью обычного ползунка, которым можно регулировать качество от -V 9 (VBR) до -b 320 (CBR). Для более тонкой настройки, а также использования дополнительных ключей я настоятельно рекомендую выбрать в раскрывающемся списке Custom .

Теперь можно перейти непосредственно к настройке параметров кодера.

Encoder - тут устанавливаются параметры, непосредственно влияющие на кодирование. Вверху из списка выберите Custom и введите параметры:

Encoder - укажите путь к файлу кодировщика. Полный путь можно указать нажав кнопку "...". Также можно указать путь относительно foobar2000.exe, например: ./encoders/lame.exe . Самым простым способом будет указание имени файла кодера (для LAME это обычно lame.exe ), но работать такой способ будет только если кодер с данным именем находится в одной из папок, указанной в настройках foobar2000 (смотрите пункт 1)

Extension - расширение выходных файлов. Указать mp3

Parameters - параметры кодирования, которые передаются кодеру. Для максимального качества пропишем:
--silent -b 320 -q 0 --noreplaygain - %d

Do not convert in miltiple threads - установив здесь галочку, можно запретить параллельное кодирование нескольких треков при использовании данного пресета.

Bit Depth Control - параметры отвечающие за тип кодека и максимально поддерживаемую им глубину квантования входных файлов.

Format is - тип кодека. Может быть lossy (с потерями) или lossless/hybrid (без потерь/гибридный). Опция влияет на формат данных передаваемых кодеру. Для lossy кодеров поток передается с максимальной поддерживаемой глубиной бит (смотрите ниже), для lossless сохраняется глубина бит используемая при декодировании источника (см. ниже). Для LAME установить lossy .

Highest BPS mode supported - максимальная поддерживаемая кодеком разрядность входных аудиоданных. Может быть 8, 16, 24 (с фиксированной точкой), или 32 бит (с плавающей точкой). Так как наш кодер LAME имеет поддержку формата с плавающей точкой, установим 32 бит.

Display Info - настройка информации отображаемой в названии профиля кодировщика, на сам процесс кодирования не влияет .

Encoder name - укажите название кодировщика. Укажем MP3 (LAME)

Bitrate (kbps) - укажите битрейт. Для текущего пресета - 320 kbps

Settings - укажите параметры кодирования (не влияет на кодирование, только для отображения в списке профилей кодировщиков). Указываем параметры влияющие на качество - в данном случае это только ключи -b 320 -q 0

Нажмите "ОК".

Теперь в списке появится наш профиль - MP3 (LAME).5 320 kbps -b 320 -q 0 . Нажмите кнопку Back . Перейдем к следующей группе настроек...

2.2 Выходные файлы (Destination).

Тут находятся настройки выходных файлов.

Output path - укажите, куда будут помещаться выходные файлы:

Ask me later (useful for saving preset) - программа каждый раз будет просить Вас указать папку

Source folder каждый трек будет сохранятся в папку соответствующего файла-источника.

Specify folder - все файлы будут сохраняться в папку указанную Вами в поле ввода (в случае отсутствия таковой, папка создастся автоматически).

If file already exists - если файл с именем выходного файла уже существует:

Ask - спросить, что делать.

Skip - пропустить кодирование данного трека.

Overwrite - перезаписать существующий файл новым.

Output style and filename formatting - выберите способ форматирования выходных файлов:

Convert each track to an individual file - каждый трек будет сохраняться в отдельный файл, в поле ввода Name format можно указать формат имени файла. Желательно указать "%track% %artist% - %title% (<номер трека> <исполнитель> - <название трека>), подробную информацию смотрите на странице . Учтите, что полное имя (включая расширение) выходных файлов не должно совпадать с именем файлов-источников, в противном случае Вы увидите ошибку.

Generate multi-track files - объединение отдельных групп файлов, в соответствующие файлы. В поле «Name format & grouping pattern» указывается способ группировки/форматирования имени выходных файлов.

Merge all tracks into one output file - все треки будут объединены в один выходной файл под названием "Image"(расширение зависит от указанного в настройках кодировщика).

2.3 Обработка (Processing)

Тут указываются параметры обработки треков перед их кодированием.

Enable decode postprocessing - опция доступна только при установленных плагинах foo_dts и/или foo_hdcd. С ее помощью включается декодер DTS или HDCD, в результате чего выполняется необратимое преобразование исходного PCM потока (например, в формат 5.1 для DTS CD, или в 24-битное аудио для HDCD). Для lossy кодирования эту опцию желательно держать включенной.

ReplayGain - Вы можете использовать данную функцию, если входные треки имеют теги ReplayGain, но учтите что её использование в случае lossless источника крайне не рекомендуется.

DSP - включает возможность применять DSP эффекты, без необходимости не включать .

DSP chain presets - Вы можете сохранять цепочки DSP в отдельные предустановки, и в дальнейшем загружать ту которая будет необходима.

Don"t reset DSP between tracks - не начинать обработку заново для каждого трека - функция необходима например для кроссфейдинга (когда конец предыдущего трека миксуется с началом следующего), etc.

2.4 Остальные настройки конвертера (Other)

Preview generation - Вы можете получать на выходе короткие отрезки входных треков (например, для предварительного прослушивания):

Length percentage - задать продолжительность отрезков в процентах от исходного трека (от 3 до 30%).

Fixed track length - задать фиксированную продолжительность отрезков (от 10 до 60 секунд).

When done - в этой графе указываются действия, которые будут выполняться по окончании кодирования.

Show full status report - включить вывода отчета о результатах кодирования. Если данную опцию выключить, отчет будет выводиться только при наличии ошибок.

ReplayGain-scan output files as albums - автоматическое сканирование созданных файлов сканером ReplayGain. Рекомендуется включить при lossy кодировании.

Transfer attached pictures - копирование картинок, вшитых в теги исходных треков, в теги результирующих треков.

Copy files to destination folder - копировать файлы с указанным расширением из исходной папки в целевую (например, «*.CUE;*.JPG»)

2.5 Завершение настройки.

Теперь вернитесь в главное окно конвертера. Нажмите кнопку Save чтобы сохранить профиль, введите имя профиля - LAME MP3, 320 kbps . После нажатия на кнопку Convert начнется конвертация файлов, для выхода нажмите Cancel .

ОБРАТИТЕ ВНИМАНИЕ : Статья находится в процессе доработки . На данный момент информация в этой статье актуальна для foobar2000 v0.9.6.9 - v1.0 и Windows XP SP3.

Copyright (C) 2010, Audiophile

При воспроизведении данного текста или его части ссылка на источник обязательна .

ВСТУПЛЕНИЕ.

Основным критерием качества воспроизведения является количество искажений, которое вносится в аудиопоток при прохождении через звуковой тракт. Искажения, в свою очередь, неизбежно вносятся при любой обработке, так что главная для нас задача - свести к минимуму или вообще исключить обработку звука на участке тракта, по которому сигнал передается в цифровом виде.

Звуковой тракт в нашем случае имеет следующий вид:

1) Источник - сам звуковой файл - MP3, FLAC, OGG etc

2) Декодер - встроен в плеер, декодирует входной поток данных, в результате чего получаем несжатый звуковой поток в виде импульсно-кодовой модуляции, а точнее поток в формате 32 bit floating-point PCM (с плавающей точкой).

3) Цифровые обработчики звука - DSP, эффекты etc. - совершают дополнительную обработку звукового потока. Надо отметить, что данную составляющую тракта надо использовать только при необходимости, т.к. практически любая обработка звука - будь то даже изменение громкости - непременно вносит определенные искажения

4) Плагин вывода - данная составляющая необходима как связующее звено между плеером и звуковой картой. Плагин вывода определяет каким образом будет производиться вывод полученного (в результате работы всех предыдущих звеньев) аудиопотока из плеера на звуковую карту. Часто это звено играет решающую роль, т.к. порой позволяет обойти некоторые некачественные участки дальнейшего тракта. Надо отметить, что на этапе вывода поток преобразуется в формат с фиксированной точкой (глубина бит от 8 до 32 бит - в зависимости от выбранных параметров), к чему это может привести - будет рассмотрено далее.

5) Драйвер звуковой карты - составляющая, которая играет не меньшую роль, чем все предыдущие - на этом этапе также может совершаться обработка звука, но тут она абсолютно нежелательна

6) DSP звуковой карты - это уже аппаратная составляющая. Digital Signal Processor находится непосредственно на звуковой карте и совершает необходимую обработку звукового потока, а также обработку в соответствии с выставленными настройками в микшере звуковой карты (все действия, которые производит данный блок зависят от выставленных настроек звуковой карты и от самой модели звуковой карты)

7) ЦАП - Цифро-Аналоговый Преобразователь. Производит преобразование полученных цифровых аудиоданных в аналоговый вид для дальнейшего усиления и подачи на аналоговый выход звуковой карты (с него - на наушники или внешний усилитель).

ЧАСТЬ 1. Настройка программного плеера foobar2000

Теперь рассмотрим первые четыре составляющие тракта - источник и компоненты относящиеся к плееру.

1. Источник

Бесспорно, это звено является основой. Если изначально запись некачественная, нет большого смысла тратить усилия на настройку остального тракта.

Источники можно подразделить на два типа:

Lossless (wav, flac, wv, ape, tak, tta, ofr etc.) - аудио закодированное без потерь (при декодировании полученный аудиопоток в точности соответствует тому что кодировали в Lossless - аналогично распаковке файлов из архива ZIP)

Lossy (mp3, ogg, aac, mpc etc.) - аудио сжатое с потерями. При кодировании происходят необратимые потери некоторой части информации (а именно, вырезается та часть звуковых данных, которую человек не воспринимает или же почти не воспринимает).

Если в первом случае проблемы качественного воспроизведения сводятся к минимуму, то во втором случае для наиболее качественного воспроизведения необходимо принять определенные меры, о которых будет написано дальше.

2. Декодер.

С данным компонентом (а точнее, с компонентами, декодер под каждый формат - свой) у foobar2000 проблем нет - декодеры постоянно обновляются, мельчайшие ошибки быстро исправляются, о качестве не стоит и говорить.

3. Цифровые обработчики звука

Это звено в плеере можно подразделить на два пункта: ReplayGain и DSP. Также сюда входит регулятор громкости и конвертер битовой глубины, но о них будет сказано позже.


Прежде всего нужно отметить, что любой lossy аудио-файл не содержит цифрового аудиопотока как такового. Он содержит его описание с помощью различных функций и т.д., по которым можно восстановить примерную форму исходной волны (что и делают декодеры lossy форматов). И вот, при декодировании возникает один нюанс: т.к. кодирование происходит с потерями (повторюсь: данные в lossy аудио-файле позволяют восстановить только примерную форму исходной волны), уровень семплов на выходе имеет уровень отличный от того что был на входе - вплоть до того что некоторые участки звуковой волны могут выходить за максимальный уровень - 0dB (если Вы включите в Foobar2000 View->Visualizations->Peakmeter, сами сможете увидеть текущий уровень). Чаще всего это бывает когда уровень закодированной записи был высоким и пик записи находился на максимальном уровне - 0dB - или же близко к нему, практически всегда такие записи после кодирования в lossy и последующего декодирования имеют участки выходящие за 0dB.

Далее должен указать на еще один факт. Декодер foobar2000 работает в формате с плавающей точкой, что позволяет ему обрабатывать и описывать волну не только в пределах 0dB (значения уровня в таком случае могут быть от 0 до 1) но и за ними (значения выше 1). Проблема же состоит в следующем. После того как сигнал передается плеером на вывод, он автоматически преобразовывается в формат с фиксированной точкой, что равносильно потере всего что лежит выше максимального уровня, все семплы, имеющие значения выше 0dB (в формате с плавающей точкой они имели значение больше 1) - приравниваются к уровню 0dB (в формате с плавающей точкой это было бы аналогично их приравниванию к единице). И что же мы получаем? Все участки волны выходящие за максимальный уровень "обрезаются", в следствии чего, вместо синусоиды например мы получим что-то похожее на прямоугольные импульсы (если "верхушки" синусоиды окажутся выше 0dB, они будут "срезаны"), а это означает что мы имеем дополнительные нелинейные искажения (уровень искажений зависит от того, какая часть звуковой волны выходит за максимум). Что-то схожее можно услышать при "запирании" колонок - когда подаешь на колонки сигнал с мощностью превышающей максимальную допустимую - диффузоры не могут двигаться дальше максимального уровня отклонения, получаются такие же искажения как и в нашем случае. Первое явление (с цифровым аудиопотоком) - это софтовый клиппинг (англ. clipping - обрезание), второе (с диффузорами) - аппаратный клиппинг (в некоторых других случаях это явление называют "перегрузкой").

Для чего же в нашем случае нужен ReplayGain?

а) Чтобы определить, выходит ли уровень декодированного сигнала за допустимые пределы, а именно определить пиковый уровень записи - это делает ReplayGain Scanner.

б) Понизить уровень трека так, чтобы он вписывался в рамки допустимого - после того как сканер произвел сканирование, он записывает ReplayGain теги (с информацией о пиковом уровне), а плеер при проигрывании считывает эти теги и занижает уровень громкости всей записи (именно всей - чтобы не менять баланс громкости между отдельными участками) так, что пик оказывается на уровне 0 dB (в данном случае этот уровень соответствует значению 1), а всё остальное - конечно же, не выше этого уровня.

Настройка:

Volume - изменение громкости в плеере. Настоятельно рекомендуется максимальное значение.

Replay Gain

Source mode: track , если Вы хотите сохранять баланс громкости только в пределах одного трека, album - если Вам важен баланс громкости между треками всего альбома.

Processing: Prevent clipping according to peak - лучший в большинстве случаев вариант, при котором будет только предотвращаться clipping (уровень, на который будет занижаться громкость, будет рассчитываться с помощью тега track peak или album peak - в зависимости от выбранного source mode).
Apply gain - в этом режиме ReplayGain поможет выровнять воспринимаемую громкость прослушиваемых Вами треков (часто воспринимаемая громкость не связана с пиковыми уровнями, т.к. она определяется методом психоакустического анализа); данный вариант не рекомендуется, т.к. при этом может сильно изменяться громкость треков, что только ухудшает положение в плане качества.
Apply gain and prevent clipping according to peak . в результате анализа трека утилита ReplayGain может посчитать его слишком тихим и прописать в тегах положительное значение усиления, громкость при воспроизведении такого трек будет завышаться, в следствии чего пики результирующего сигнала могут оказаться выше максимального уровня. Этот режим позволяет утилите при воспроизведении анализировать не только тег track (или album - в зависимости от source mode) gain, но и track (album) peak и рассчитывать максимальное допустимое усиление, чтобы предотвратить клиппинг.

Pre-amp: Дополнительное усиление на выбор пользователя. Работает только при включенном Apply gain (или apply gain and prevent clipping), суммируется с усилением из тега Track (Album) gain. Использование данной функции не рекомендуется , т.к., опять же, может негативно повлиять на качество.
With RG Info - для треков с тегами ReplayGain
Without RG info - для треков без тегов Replay Gain

3.2 DSP

Это цифровые обработчики звука, необходимы для выполнения различных преобразований звукового потока в режиме реального времени.

В идеале любая обработка звука конечно же должна отсутствовать, но в большинстве случаев для достижения более высокого качества приходится использовать некоторые обработчики. В частности, DSP под названием Resampler просто необходим при отсутствии аппаратной поддержки звуковой картой частоты дискретизации воспроизводимого сигнала (чаще всего это материал со звуковых компакт-дисков с частотой дискретизации 44.1кГц) для выполнения предварительного преобразования звукового потока в вид соответствующий аппаратным возможностям звуковой карты (чаще всего это преобразование 44.1->48кГц).

Настройка

Рассмотрим два варианта для воспроизведения материалов с частотой дискретизации 44.1кГц:

a) Ваша карта аппаратно поддерживает данную частоту дискретизации. В этом случае для достижения максимального качества на вкладке DSP должны отсутствовать какие-либо включенные обработчики (первый список, слева).

б) Ваша карта аппаратно НЕ поддерживает данную частоту дискретизации. Для достижения максимального качества установите плагин и выставьте в его настройках максимальную частоту дискретизации, которую аппаратно поддерживает Ваша звуковая карта. После плагина SoX resampler в список активных плагинов обязательно добавьте Advanced Limiter - этот плагин позволит предотвратить клиппинг, занижая уровни участков звукового потока которые в результате ресемплинга сигнала могут оказываться выше максимально допустимого уровня.


Если у Вас второй случай и Вы выставили рекомендуемые настройки, то теперь появится возможность максимально качественно (для этой звуковой карты)воспроизводить не только записи 44.1 кГц, но и записи с любой другой частотой дискретизации. В случае, если частота воспроизводимого материала совпадет с максимальной поддерживаемой Вашей картой, ресемплер просто отключится (за ненадобностью).


3.3 Output (вывод)

Как я уже писал, это звено цифрового аудиотракта часто является решающим. Но должен отметить, что не всегда. На данный момент в foobar2000 существуют следующие способы вывода звука: DirectSound, Kernel Streaming, ASIO, WASAPI (только для Vista и Windows 7, будет рассмотрен позже, в более новых версиях статьи).

Первый выводит звук через микшер Windows - то есть на громкость воспроизведения будет влиять регулятор Wave в микшере Windows. Надо сказать, что в случае использования этого вывода и некачественных драйверов звуковой карты (это сейчас не редкость, особенно устаревшие драйвера) в аудио могут вноситься дополнительные искажения. Искажения эти могут возникать как в результате программной регулировки громкости регулятором Wave (что крайне не рекомендуется!), так и в случае положения этого регулятора на максимум, т.к. для некоторых драйверов положение регулятора Wave на максимум в действительности не соответствует максимальному значению.

Эту проблему решают два других плагина вывода. Оба плагина обходят некоторые некачественные участки дальнейшего тракта, включая регулятор Wave. Главное отличие ASIO и Kernel Streaming заключается как раз в том что они способны выводить звук мимо микшера Windows и в некоторых случаях избежать вышеописанных проблем с качеством. Отличие ASIO в том что данный интерфейс ориентирован на минимизацию задержки (латентности вывода), что на качество воспроизведения никоим образом не влияет. К тому же различные драйвера ASIO могут иметь свои ошибки, а потому для достижения наиболее точного вывода рекомендуется использовать именно Kernel Streaming.

Настройка:

И так, тут всё просто. Устанавливаем плагин , запускаем foobar2000 и на странице вывода выбираем:

Output Device: KS: <Ваша звуковая карта> - для вывода звука будет использоваться плагин Kernel Streaming, звук будет выводиться на указанную звуковую карту.

Buffer Length: регулировка буфера плеера. Чем меньше значение - тем быстрее (считая от момента включения/изменения) будут вступать в силу изменения громкости, включение плагинов и т.д. На качество вывода данная опция не влияет, изменять стандартное значение не рекомендуется.

Output format / Postprocessing

Output data format: установите максимальную разрядность, аппаратно поддерживаемую Вашей звуковой картой.

Dither: включение dither + noise shaping. Данная функция может быть полезна только при выполнении одного из следующих условий:

а) Если Ваша звуковая карта аппаратно НЕ поддерживает разрядность звука выше 16 бит и Вы используете одну из функций: ReplayGain, DSP, Volume Control (регулятор громкости в foobar2000).

б) Ваша звуковая карта аппаратно НЕ поддерживает разрядность звука выше 16 бит и Вы воспроизводите в foobar2000 материал с разрядностью более 16 бит.

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

ЧАСТЬ 2. Настройка звуковой карты

Так как звуковых карт огромное множество, в этой части даются только общие рекомендации или же рекомендации по настройке с помощью стандартных средств Windows.

1. Настройка средствами Windows

Чтобы начать настройку, Вам необходимо перейти в Панель управления Windows->(Звук, речь и аудиоустройства->)->Звуки и аудиоустройства.

Рис. 1. Громкость следует установить в максимальное положение, регулировку уровня громкости производить аналоговым методом (например, ручкой на усилителе). По окончании настройки нажать на кнопку "Дополнительно" в графе "Громкость микшера".

Рис. 2.1. Все источники, кроме Wave (его надо установить на максимум) и Play Control конечно же, следует отключить. Wave тоже можно отключить, если Вы не используете в плеере вывод через DirectSound, при этом все остальные звуки, в том числе системные, не будут слышны. Предварительно необходимо перейти в "Свойства" и включить отображение всех источников:

Рис. 2.2. Тут Вы должны включить отображение всех источников воспроизведения для настраиваемого устройства.

Рис. 3. Данное окно вызывается с помощью кнопки "Дополнительно" в графе "Настройка динамиков" окна изображенного на рис. 1. Здесь Вы должны выбрать Вашу конфигурацию динамиков. Далее переходим на вторую вкладку.

Рис. 4. Тут оба регулятора следует выставить в максимальное положение. Естественно, подразумевается, что никаких неполадок с воспроизведением звука (чаще всего это может происходить в играх) у Вас не возникает. Если же неполадки есть, подберите наибольшие положения регуляторов, при которых неполадки исчезнут. В таком случае, стоит отметить, что данные настройки не влияют на воспроизведение с использованием Kernel Streaming и ASIO, из этого следует, что если Вам пришлось установить один из регуляторов в более низкое положение, для качественного вывода звука в плеере необходимо использовать один из этих плагинов вывода.

По завершении настроек в каждом окне следует нажимать кнопку "Ок".

На этом этапе принцип настройки не отличается от предыдущих: необходимо обеспечить достоверную передачу цифрового аудиопотока без внесения в него каких-либо изменений (в идеале - до самого цифро-аналогового преобразователя). Рекомендации по настройке состоят в следующем:

а) Все эффекты/эквалайзеры и т.п. должны быть выключены . По возможности следует включить режим "Bit-Matched Playback" (для карт Creative эта опция может находиться в Creative Audio Console или же Console Launcher).

б) Для большинства карт есть возможность выбора опорной частоты дискретизации (Master Sampling Rate) - ее следует установить равной частоте дискретизации воспроизводимого материала или же частоте установленной в ресемплере foobar2000. Там же может быть настройка глубины квантования (Bit Depth) - ее следует выставить на максимум.

в) Все регуляторы громкости влияющие на громкость воспроизведения следует устанавливать в положение максимум .

Для получения наилучшего результата, перед воспроизведением трека рекомендуется выполнить следующие действия.

Для lossy:

1. Выделите трек(и) в библиотеке или плейлисте foobar2000, нажмите на выделенном правую кнопку мыши и выберите из раскрывшегося списка Utils->Verify Integrity. Произведется сканирование трека(ов) на наличие ошибок. При наличии ошибок в файлах формата MP3 foobar2000 может их исправить. Если Вы увидите ошибку вроде "Reported length is inaccurate...", выделите треки для которых отобразилась данная ошибка, нажмите правую кнопку и выберите Utils->Fix VBR MP3 Header, после обработки проверьте трек еще раз, ошибка должна отсутствовать.

Если при проверке Вы наблюдаете ошибку вида "MPEG Stream error...", её можно исправить с помощью опции Utils->Rebuild MP3 Stream. После выполнения операции исправления ошибки не забывайте повторно проверять треки.

2. Выделите треки, нажмите на выделении правой кнопкой и выберите ReplayGain->Scan Per-File Track Gain, если выделены треки из разных альбомов или альбомы в тегах не указаны, Scan Selection As Single Album - если выделены треки одного альбома и Scan As Albums (by tags) - если выделены несколько альбомов. Также можно использовать опцию Scan As Albums (by folders), если теги альбомов не прописаны но треки каждого альбома находятся в отдельной папке. После сканирования Вы увидите информацию о рассчитанных пиках и значениях усиления для каждого альбома/трека (в зависимости от выбранного типа сканирования), нажмите кнопку "Update File Tags" чтобы записать теги ReplayGain в файл.


Для lossless:

В случае с этим типом источника выполнение каких-либо действий для достижения максимального качества не требуется. Вы также можете проверить материал на ошибки с помощью функции Utils->Verify Integrity, но вероятность ошибок для lossless меньше, тем более, в случае их наличия, исправить их средствами foobar2000 возможности нет (по крайней мере, таким же образом как в случае с MP3). Функцию ReplayGain в случае c lossless использовать не рекомендуется, т.к. клиппинга (в том виде, в котором мы его обычно имеем в случае lossy) в lossless источниках быть не может, а использование функции "Apply Gain" не рекомендуется потому как данная обработка может только ухудшить качество.

За помощь в "поисках истины" огромное спасибо участникам форумов foobar2000.org, websound.ru, hydrogenaudio.org

Если вы решили установить и настроить его сами, а не воспользоваться чьей-либо сборкой, тогда идем на http://www.foobar2000.org/download и качаем последнюю версию. Установка обычна - выбор типа установки (стандартная и портабельная), пути и компонентов - я выбираю все, за исключением Archive Reader (чтение музыки из архивов):

Если выбран стандартный тип установки, то фубар, как и большинство программ под Windows, для хранения своих файлов использует две папки:

C:\Program Files\foobar2000 (или C:\Program Files (x86)\foobar2000 - для x64)

Для хранения файлов самой программы и компонентов, и

C:\Documents and Settings\имя_пользователя\Application Data\foobar2000 (для Windows XP) или
C:\Users\имя_пользователя\AppData\Roaming\foobar2000 (для Windows Vista и Seven)

Для хранения пользовательских данных, плагинов и файлов настроек. В реестре никакие записи кроме информации об интеграции в систему не хранятся, поэтому перенос фубара на другой компьютер со всеми плагинами и настройками осуществляется крайне просто - копируем эти две папки и все.

После первого запуска появляется вот такое окно:

Где можно выбрать внешний вид из предустановленных тем. Но пока просто закроем его и увидим главное окно фубара:

Не сильно впечатляет на первый взгляд. Что ж, посмотрим, что он умеет.

Через File -> Add folder… / Add files… добавим какую-нибудь музыку. Это самый примитивный и в тоже время эффективный способ создания плейлистов - по мере надобности через File -> New Playlist (или двойным щелчком на пустом месте в панели вкладок) создаем новый, а старые так и остаются во вкладках:

Неплохой вариант для тех, кому нужно что-то простое и в тоже время функциональное, без сложностей с созданием библиотеки, сортировкой по каталогам, проставлением тегов и т.д.

Через пункт меню View -> Equalizer доступен 18-ти полосный эквалайзер, а через View -> Visualisations набор предустановленных визуализаций:

И здесь уже можно заметить одну любопытную особенность фубара - практически все его дочерние окна (эквалайзер, визуализации, настройки, прогресс-бары и т.д.) немодальные. То есть, в отличие от других приложений, где открыв какое-либо диалоговое окно (например, окно настроек), вы уже не сможете переключить фокус на само приложение пока не закроете это окно, в фубаре вы можете открыть хоть с десяток таких окон и, не закрывая их, снова вернуть фокус управления на главное окно. При этом при переключении между самими окнами они будут накладываться друг на друга, а при возврате фокуса на главное, они останутся на переднем плане. Сначала очень непривычно и странно, но потом понимаешь, насколько это удобно.

Теперь последовательно пройдемся по настройкам File -> Preferences .

Как уже говорил, фубар поддерживает плагины - программные модули как от самого автора, так и от сторонних разработчиков, придающие ему дополнительную функциональность. Любой плагин представляет собой dll-файл с именем вида foo_имяплагина .dll . И самым первым пунктом в настройках идет как раз управление установленными плагинами:

Серым цветом показаны плагины либо идущие вместе с плеером, как на этом скриншоте, либо установленные вручную в папку самой программы C:\Program Files\foobar2000\components\ (как это делалось раньше), а не в папку профиля через кнопку Install… Удаляются они тоже только вручную.

По двойному щелчку можно просмотреть информацию о плагине, а через ПКМ -> Remove - удалить. Любое изменение в составе плагинов требует перезагрузки плеера.

Список многих (но далеко не всех) плагинов находится на странице http://www.foobar2000.org/components . Плагины от самого Питера - http://www.foobar2000.org/components/author/Peter .

Выборочно (и необходимый минимум, на мой взгляд):


Как это решается в iTunes и ему подобных, я до сих пор не знаю. Плейлистами?

3) Проблема множественных жанров. Первым параметром по которому идет навигация является, как правило, жанр. Вот только кто мне скажет - Ennio Morricone к какому жанру относится? Во всех интернетовских базах он идет как Soundtrack, но для меня это чистый Instrumental. А Space? Это Electronic, и он же Synth Pop, а к этим жанрам относится и Yello. Но для меня Space это опять же Instrumental, а Yello это Yello. В общем, навигация по жанрам для меня тоже не подходит.

К чему я все это веду - да к тому, что самым удобным видом навигации по библиотеке для меня оказалась бы самая обычная навигация по папкам, но со всем преимуществом библиотеки - быстротой, поиском, выборкой и пр. Именно это я искал во всех плеерах, и именно это в нужном виде я нашел только в фубаре.

При «чистой» установке (а не обновлении) на Windows 7 в медиабиблиотеку автоматически добавляются папки входящие в системную библиотеку «Музыка» самой Windows. По умолчанию это папки c:\Users\имя_пользователя\Music\ и c:\Users\Public\Music\ . Через контекстное меню доступны возможные действия с папками:

Rescan on Startup - сканировать папки на предмет изменений при запуске. Если папка находится на сетевом носителе, то эту возможность лучше отключить.

Monitor for changes while running
- следить за изменениями пока плеер работает.

Rescan now
- пересканировать сейчас. Нужно в том случае, если по какой-либо причине не сработало автоматическое слежение за изменениями. Например, добавили в папку новый альбом, а в библиотеке он не появился.

В прошлых версиях сканирование библиотеки показывалось отдельным окном-прогрессбаром, а начиная с этой - в колонке Status . Значение Initializing означает что библиотека сканируется в данный момент, а Monitoring - слежение за изменениями.

Активизировать просмотрщик библиотеки отдельным окном можно через Library -> Album List , а список возможных действий доступен через контекстное меню:

Send to Current Playlist - отправить в текущий плейлист (все его предыдущее содержимое сотрется).

Add to Current Playlist
- добавить в текущий плейлист (с сохранением предыдущего содержимого).

Send to New Playlist
- отправить в новый плейлист.

Create Autoplaylist - создание автоплейлиста, содержимое которого будет автоматически изменяться вместе с содержимым библиотеки по определенным параметрам.


Через выпадающий список View можно выбирать способ просмотра: по структуре папок (как сейчас), по альбомам, артистам и так далее. Причем, опять же, можно добавить и свои варианты:

А также выбрать нужный способ реагирования на двойной щелчок и нажатие средней кнопки мыши.

Кстати, может возникнуть вопрос - а чем навигация по папкам отличается от встроенного во многих плеерах файлового браузера? Да хотя бы удобством и молниеносной быстротой - около 17 тыс. треков отображаются в плейлисте вместе со всеми тегами приблизительно за секунду. Попробуйте такое количество добавить в плейлист через файловый браузер в любом другой плеере.

Это не единственный, да и к тому же не самый удобный способ навигации по библиотеке, но другие будут рассмотрены вместе с Columns UI .

Добавлю еще, что у многих до сих пор существует предубеждение против библиотеки, и зачастую как раз из-за неудачной ее реализации в других плеерах. Так могу с уверенностью сказать, что им просто попадались неправильные пчелы и неправильный мед:) Я сам, как вспомню хотя бы тот же iTunes или Windows Media Player, так вздрогну. В фубаре же библиотека, во-первых, вообще не тормозит, по крайней мере на моих 130 Gb, а, во-вторых, не мешает - можно и дальше использовать File -> Add files / Add folder . Поэтому смело ее включайте - минусов практически нет, а вот плюсов очень много.

Остальные разделы настроек пока особого интереса не представляют, поэтому выборочно и коротко.

Настройки воспроизведения:

Resume playback after restarting foobar2000 - восстанавливать проигрывание после перезапуска плеера.

Cursor follows playback
- курсор следует за проигрыванием (отмечаем сразу).

Playback follows cursor
- проигрывание следует за курсором.

Управление DSP-плагинами:

Интеграция в систему:

И расширенные настройки, которые стоит изменять только если хорошо знаешь, что делаешь.

Настройка побитово-точного вывода звука на аудио карту. Описание настроек плеера foobar2000, а также рекомендации по поводу источника и настроек оборудования.

2017-09-17T19:10

2017-09-17T19:10

Audiophile"s Software

ВНИМАНИЕ : статья постоянно дорабатывается и дополняется. На данный момент информация актуальна для foobar2000 v1.3.x и операционных систем Windows XP, Vista/7/8/10. Настройки преимущественно ориентированы на воспроизведение стерео звука через аналоговый выход звуковой карты.

Copyright 2017, Taras Kovrijenko

Полное или частичное копирование текста допускается только с письменного разрешения автора .

Вступление

Основным критерием качества воспроизведения является количество искажений, которое вносится в аудиопоток при прохождении через звуковой тракт. Искажения, в свою очередь, неизбежно вносятся при любой обработке, так что главная для нас задача - свести к минимуму или вообще исключить обработку звука на участке тракта, по которому сигнал передается в цифровом виде. Также нам необходимо следовать принципу последовательного включения: в каждом звене тракта сохранять максимальный уровень сигнала, громкость же регулировать в самом последнем звене (например, на усилителе для акустики).

Звуковой тракт в нашем случае имеет следующий вид:

1) Источник - звук в одном из форматов lossy, lossless PCM или DSD.

2) Плеер - foobar2000. Содержит:

  • Декодер
  • Обработчики звука
  • Вывод
(подробнее см. дальше)

3) Микшер Windows, драйвер звуковой карты - очень тесно взаимодействующие элементы. На данном этапе может выполняться программная обработка звука (порой некачественная), что крайне нежелательно.

4) DSP звуковой карты - это уже аппаратная составляющая. Digital Signal Processor находится непосредственно на звуковой карте и совершает необходимую обработку звукового потока, а также обработку в соответствии с выставленными настройками в микшере звуковой карты (большинство операций, которые производит данный блок, зависит от выставленных настроек звуковой карты и от самой модели звуковой карты).

5) ЦАП - цифро-аналоговый преобразователь. Производит преобразование полученных цифровых аудиоданных в аналоговый вид для дальнейшего усиления (с помощью операционных усилителей) и подачи на аналоговый выход звуковой карты (с него - на наушники или внешний усилитель).

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 .

Если для lossless PCM проблемы качественного воспроизведения сводятся к минимуму, то для наиболее качественного воспроизведения lossy необходимо принять определенные меры (смотрите «Рекомендации по воспроизведению аудиоматериала»).

2. Программный плеер foobar2000

Теперь рассмотрим подробнее всё, что касается foobar2000. Одним из достоинств этого плеера является очень продуманный и прозрачный тракт. Чтобы наглядно это продемонстрировать я нарисовал блок-схему (нажмите для просмотра):

Примечания:
1. Как видно из схемы, присутствие всех компонентов необязательно - некоторые можно отключать, а некоторые включаются только при необходимости. Так, например, декодер нужен только для сжатых форматов, а конвертер глубины бит включается при несоответствии формата входных данных настройкам вывода (output data format).
2. Для Windows 7+ возможен вывод в формате с плавающей точкой (32-bit вывод через DS).

2.1 Декодер

Декодирует входные данные, в результате чего получаем несжатый звуковой поток в виде импульсно-кодовой модуляции. Большинство lossy декодеров работают в режиме с плавающей точкой (32-бит). На выходе декодеров lossless получаются данные с параметрами аналогичными исходному аудио (которое сжималось). Обратите внимание, что поток DSD (если SACD/DSD декодер работает в режиме DSD) следует на вывод, минуя все звенья, через которые проходит PCM.

2.2 Постпроцессор

Этот элемент был включен разработчиком в тракт сравнительно недавно. Выполняет роль декодера форматов HDCD и DTS (только lossless источники - пока только CDDA, WAV, FLAC, ALAC и WV). Так как для успешного декодирования этих форматов данные с обычного декодера должны передаваться бит-в-бит, постпроцессор находится в тракте сразу после него.

2.3 Обработчики

Совершают цифровую обработку звукового потока. Надо отметить, что использовать их надо только при необходимости, т.к. практически любая обработка звука - будь то даже изменение громкости - непременно вносит определенные искажения. Все обработчики по умолчанию работают в режиме с плавающей точкой. К цифровым обработчикам foobar2000 относятся:

2.3.1 ReplayGain

Прежде всего нужно отметить, что любой lossy аудио файл не содержит цифрового аудиопотока как такового. Он содержит его описание с помощью различных функций и т.д., по которым можно восстановить примерную форму исходной волны (что и делают декодеры lossy форматов). И вот, при декодировании возникает один нюанс: т.к. кодирование происходит с потерями (повторюсь: данные в lossy аудио-файле позволяют восстановить только примерную форму исходной волны), семплы на выходе имеют уровень отличный от того что был на входе.

Чем же это грозит? Декодер foobar2000 работает в формате с плавающей точкой, что позволяет ему обрабатывать и описывать волну не только в пределах какого-то диапазона. Например, для 16 бит с фиксированной точкой (16-bit signed integer): 2^16=65536 возможных значений уровня, а именно, числа от -32768 до 32767. Но дело в том, что после того как сигнал передается плеером на вывод, он автоматически преобразовывается в формат с фиксированной точкой.

Рассмотрим пример. Если мы будем преобразовывать семпл с уровнем 1.000000 (плавающая точка) в формат 16 бит с фиксированной точкой, то получим число 32767 - это максимальный уровень для 16-bit integer. Но не будем забывать, что при декодировании lossy исходный сигнал восстанавливается приближенно, и мы можем получить семплы с более высокими уровнями, например 1.124325. И правильно описать это значение в режиме фиксированной точки уже не получится, т.е. уровень этого семпла он автоматически приравняется к максимальному - 32767.

И что же мы получаем? Таким образом все участки волны (состоящей из точек-семплов), выходящие за максимальный уровень, «обрезаются», вследствие чего вместо синусоиды например мы получим что-то похожее на прямоугольные импульсы (если «верхушки» синусоиды окажутся выше максимума, они будут «срезаны»), а это означает что мы имеем дополнительные нелинейные искажения (уровень искажений зависит от того, какая часть звуковой волны выходит за максимум). Что-то схожее можно услышать при «запирании» колонок - когда подаешь на колонки сигнал с мощностью превышающей максимальную допустимую - диффузоры не могут двигаться дальше максимального уровня отклонения, получаются такие же искажения как и в нашем случае. Первое явление (с цифровым аудиопотоком) - это софтовый клиппинг (англ. clipping - обрезание), второе (с диффузорами) - аппаратный клиппинг (в некоторых других случаях это явление называют «перегрузкой»).

Для чего же в нашем случае нужен ReplayGain?

а) Чтобы определить, выходит ли уровень декодированного сигнала за допустимые пределы, а именно определить пиковый уровень записи - это делает ReplayGain Scanner.

б) Понизить уровень трека так, чтобы он вписывался в рамки допустимого - после того как сканер произвел сканирование, он записывает ReplayGain теги (с информацией о пиковом уровне), а плеер при проигрывании считывает эти теги и занижает уровень громкости всей записи (именно всей - чтобы не менять баланс громкости между отдельными участками) так, что пик оказывается на максимальном уровне (0 dB на пикметре), а всё остальное - конечно же, не выше этого уровня.

Настройка:

Source mode: track , если вы хотите сохранять баланс громкости только в пределах одного трека, album - если вам важен баланс громкости между треками всего альбома.

Processing: Prevent clipping according to peak - лучший в большинстве случаев вариант, при котором будет только предотвращаться clipping (уровень, на который будет занижаться громкость, будет рассчитываться с помощью тега track peak или album peak - в зависимости от выбранного source mode).

Apply gain - в этом режиме ReplayGain поможет выровнять воспринимаемую громкость прослушиваемых Вами треков (часто воспринимаемая громкость не связана с пиковыми уровнями, т.к. она определяется методом психоакустического анализа); данный вариант не рекомендуется, т.к. при этом может сильно изменяться громкость треков, что только ухудшает положение в плане качества.

Apply gain and prevent clipping according to peak . в результате анализа трека утилита ReplayGain может посчитать его слишком тихим и прописать в тегах положительное значение усиления, громкость при воспроизведении такого трек будет завышаться, в следствии чего пики результирующего сигнала могут оказаться выше максимального уровня. Этот режим позволяет утилите при воспроизведении анализировать не только тег track (или album - в зависимости от source mode) gain, но и track (album) peak и рассчитывать максимальное допустимое усиление, чтобы предотвратить клиппинг.

Pre-amp: Дополнительное усиление на выбор пользователя. Работает только при включенном Apply gain (или apply gain and prevent clipping), суммируется с усилением из тега Track (Album) gain. Использование данной функции не рекомендуется , т.к., опять же, может негативно повлиять на качество.
With RG Info - для треков с тегами ReplayGain
Without RG info - для треков без тегов Replay Gain.

Примечание: если вы по какой-то причине не хотите или не можете использовать ReplayGain, есть другой вариант - Advanced Limiter DSP (смотрите ниже).

Более подробную информацию по этой теме можно найти в моей статье «О понятии громкости в цифровом представлении звука и о методах её повышения» .

2.3.2 DSP

Это цифровые обработчики звука, необходимы для выполнения различных преобразований звукового потока в режиме реального времени.

В идеале любая обработка звука, конечно же, должна отсутствовать, но в некоторых случаях для достижения более высокого качества приходится использовать некоторые обработчики. В частности, DSP под названием Resampler просто необходим при отсутствии аппаратной поддержки звуковой картой частоты дискретизации воспроизводимого сигнала (чаще всего это материал со звуковых компакт-дисков с частотой дискретизации 44.1 кГц) для выполнения предварительного преобразования звукового потока в вид соответствующий аппаратным возможностям звуковой карты (чаще всего это преобразование 44.1->48/96/192 кГц).

Примечание : для встроенных визуализаций поток снимается сразу после прохождения через цепочку DSP.

Выявление некачественной передискретизации

На этот случай существует специальный семпл:

Настройка:

Итак, если Ваша звуковая карта поддерживает ASIO, скачайте и установите со 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.exe) с высоким приоритетом. Также позволяет улучшить производительность.

Кроме того, если кликнуть два раза по названию ASIO драйвера в ASIO drivers , появится окно настройки ASIO драйвера:

Разрядность (если она настраивается в вашем драйвере) рекомендуется установить в 24 бита, оптимальное значение буфера ASIO обычно 20-40 мс. Обратите внимание на то, что буфер ASIO влияет на частоту обновления визуализаций плеера (чем меньше - тем выше частота), при этом малое значение может привести к явным искажениям, щелчкам и зависаниям.

2.4.2 Windows Vista/7/8/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? Сразу скажу, что ASIO4ALL тут едва ли поможет, так как работает через тот же нестабильный Kernel Streaming.

К счастью, выход из этой неприятной ситуации всё же существует. Разработчики оставили нам лазейку, и называется она WASAPI Exclusive. В этом режиме можно обойти все нежелательные составляющие WASAPI. Правда, в эксклюзивном режиме действуют жесткие ограничения - при использовании приложением этого режима звуки всех остальных приложений отключаются.

Настройка

Примечание : описание настроек вывода можно найти в предыдущем разделе. Здесь освещены лишь специфические для новых ОС моменты.

Как я уже сказал, если у вашей карты есть поддержка ASIO - используйте его (описание настроек можно найти выше). В противном случае скачайте со и установите плагин WASAPI Output, после чего выберите его для вывода:

Обратите внимание : у WASAPI exclusive существует два режима буферизации - Event и Push. Первый режим является технически более совершенным и лучше совместим с USB устройствами. Однако, режим event поддерживается не всеми звуковыми картами. Таким образом, предпочтительным является режим event. Если же воспроизведение в нем работать отказывается, необходимо переключиться на режим push.

В связи с частыми проблемами щелчков и треска во время воспроизведения звука в Windows Vista и более новых здесь немаловажно упомянуть дополнительные настройки воспроизведения, которые находятся в File->Preferences->Advanced->Playback :

Hardware buffer in MS - аппаратный буфер вывода для каждого из режимов WASAPI Exclusive. Если наблюдаются hgj,ktvs со щелчками, попробуйте увеличить значение для используемого вывода.
High worker process priority - этот параметр устанавливает высокий приоритет выполнения обработчика WASAPI Exclusive, который запускается в отдельном процессе WASAPIHost.exe (аналогично ASIO Host). Для достижения максимального эффекта можно установить и этому процессу, и процессу foobar2000.exe в Диспетчере задач Windows приоритет реального времени.

Thread priority - устанавливает приоритет для потока, отвечающего за воспроизведение. Желательно установить в максимум.
Use MMCSS - включает взаимодействие со службой Multimedia Class Scheduler Service, которая занимается распределением процессорных ресурсов. Эту функция рассматривается в статье по разбору звуковой подсистемы WASAPI .
MMCSS mode - выбор режима MMCSS. Для наилучшей производительности и стабильности рекомендуется значение Pro Audio .

3. Настройка звуковой карты

Так как звуковых карт огромное множество, в этой части даются только общие рекомендации или же рекомендации по настройке с помощью стандартных средств 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->Оборудование и звук->Звук и на первой вкладке дважды нажать на устройстве воспроизведения, которое вы хотите настроить.

Рис. 2.1 Основную громкость установить на максимум. Все ненужные источники (микрофон, линейный вход) выключаем, регуляторы каналов (Front, Rear и т.д. - на скриншоте их не видно) устанавливаем в максимальное положение..

Рис. 2.2 Наличие и название данной вкладки зависит от установленной звуковой карты. Как показали опыты, включение/отключение этой опции влияет только на софтовые эффекты накладывающиеся при выводе в общем режиме. При выводе через WASAPI Exclusive эта опция ни на что не влияет - в этом случае будут работать только эффекты накладываемые аппаратным DSP звуковой карты.

Рис. 2.3 На этой вкладке нас больше всего интересует включение монопольного режима, необходимого для работы WASAPI. Параметр Предоставить приоритет приложениям монопольного режима оставьте включенным.

Настройка частоты и глубины бит здесь тоже работает лишь для общего режима, т.е. это опорная частота и глубина бит программного микшера, к которой будут приводиться все поступающие в него звуки. Частоту желательно установить соответствующую характеристикам вашей звуковой карты, глубину бит - максимальную поддерживаемую (используйте кнопку Проверка ).

На этом этапе принцип настройки не отличается от предыдущих: необходимо обеспечить достоверную передачу цифрового аудиопотока без внесения в него каких-либо изменений (в идеале - до самого цифро-аналогового преобразователя). Рекомендации по настройке состоят в следующем:

  • Все эффекты/эквалайзеры и т.п. должны быть выключены . По возможности следует включить режим Bit-Matched Playback (для карт Creative эта опция может находиться в Creative Audio Console или же Console Launcher).
  • Для большинства карт есть возможность выбора опорной частоты дискретизации (Master Sampling Rate) - ее следует установить равной частоте дискретизации воспроизводимого материала или же частоте установленной в ресемплере foobar2000. Там же может быть настройка глубины квантования (Bit Depth) - ее следует выставить на максимум.
  • Все регуляторы громкости влияющие на громкость воспроизведения следует устанавливать в положение максимум .

Для получения наилучшего результата, перед воспроизведением трека рекомендуется выполнить следующие действия.

Для lossy:

1. Выделите трек(и) в библиотеке или плейлисте foobar2000, нажмите на выделенном правую кнопку мыши и выберите из раскрывшегося списка Utils->Verify Integrity . Произведется сканирование трека(ов) на наличие ошибок. При наличии ошибок в файлах формата MP3 foobar2000 может их исправить. Если вы увидите ошибку вроде «Reported length is inaccurate...», выделите треки для которых отобразилась данная ошибка, нажмите правую кнопку и выберите Utils->Fix VBR MP3 Header , после обработки проверьте трек еще раз, ошибка должна отсутствовать.

Если при проверке вы наблюдаете ошибку вида «MPEG Stream error...», её можно исправить с помощью опции Utils->Rebuild MP3 Stream. После выполнения операции исправления ошибки не забывайте повторно проверять треки.

2. Выделите треки, нажмите на выделении правой кнопкой и выберите ReplayGain->Scan Per-File Track Gain, если выделены треки из разных альбомов или альбомы в тегах не указаны, Scan Selection As Single Album - если выделены треки одного альбома и Scan As Albums (by tags) - если выделены несколько альбомов. Также можно использовать опцию Scan As Albums (by folders), если теги альбомов не прописаны но треки каждого альбома находятся в отдельной папке. После сканирования вы увидите информацию о рассчитанных пиках и значениях усиления для каждого альбома/трека (в зависимости от выбранного типа сканирования), нажмите кнопку «Update File Tags» чтобы записать теги ReplayGain в файл.

Для lossless:

В случае с этим типом источника выполнение каких-либо действий для достижения максимального качества не требуется. вы также можете проверить материал на ошибки с помощью функции Utils->Verify Integrity, но вероятность ошибок для lossless меньше, тем более, в случае их наличия, исправить их средствами foobar2000 возможности нет (по крайней мере, таким же образом как в случае с MP3). Необходимости использовать ReplayGain в случае c lossless нет, т.к. клиппинга (в том виде, в котором мы его обычно имеем в случае lossy) в lossless источниках быть не может, так что эта функция может пригодиться разве что для выравнивания громкости между треками/альбомами.

За помощь в «поисках истины» огромное спасибо участникам форумов foobar2000.org, websound.ru, hydrogenaudio.org