Архивы: по дате | по разделам | по авторам

Стерео Х 5.1

Архив
автор : Александр Радзишевский   30.10.2003

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

Сегодня акустика формата 5.1 уже не является экзотикой. Многие если еще не приобрели многоканальную акустику, то всерьез об этом подумывают. Эта статья посвящена практическим рецептам организации звучания обычного стерео во всех пяти колонках (не забудем, конечно, и сабвуфер) в отсутствие специального аппаратного декодера.

Сначала о грустном. По большому счету, попытка воссоздать звучание пяти независимых каналов, имея лишь информацию о стереокартине — это попытка растащить два куска сыра по пяти бутербродам. Ни один способ не позволяет и никогда не позволит получить полноценное пространственное звучание, имея изначально лишь стерео. Однако слушать любимую музыку лишь через два канала на многоканальной акустике со спокойными нервами под силу лишь тем, в ком «дух экспериментаторства» крепко спит.

 Решаем «не напрягаясь»

Конечно же, самый простой и естественный метод решения поставленной задачи — найти какой-нибудь аудиоплейер, который способен воспроизводить стерео через 5.1 встроенными средствами. Перебрав и изучив множество существующих программ, мне пришлось констатировать необычайную скудность решений подобного рода. Все, что удалось найти, — это несколько устаревших и неудобных плагинов к WinAMP 2.xx (один, например, основан на использовании библиотек от уже не существующей компании Aureal), а также программу J. River Media Center1. Последняя хоть и имеет свои встроенные средства воспроизведения стерео на многоканальной акустике (JRSS), однако ввиду их нулевой конфигурируемости удовлетворить наши запросы не может. Конечно, воспроизводить стерео на многоканальной акустике может любой современный DVD-проигрыватель со встроенной системой Dolby Prologic, однако, во-первых, и в этом случае возможность управления параметрами звучания почти отсутствует, а во-вторых, пользоваться DVD-плейером, чтобы слушать музыку, по меньшей мере странно.

 Есть вариант!

Отчаявшись найти готовое решение задачи, я стал искать другие пути. Среди большого числа бесплатных программ обнаружился замечательный DirectShow-фильтр MatrixMixer2. Он предназначен для разложения любых стереозаписей на любое число каналов (путем «ап-микса» каналов) в режиме реального времени. Фильтр может быть подключен к любой программе, способной работать с DirectShow-фильтрами, и удобен тем, что является полностью настраиваемым.

Устанавливаем MatrixMixer и первый попавшийся проигрыватель видео (о том, почему первым попавшимся оказывается именно видеопроигрыватель, скажу позже), например Light Alloy3. Загружаем в него нужный аудиофайл и нажимаем F9 для вызова диалога настройки DirectShow-фильтров. В открывшемся списке фильтров, участвующих в декодировании  файла, при условии успешной установки, должен присутствовать и MatrixMixer. Двойным щелчком раскрываем окно его настройки4 (рис. 1).

Вкратце, настройка фильтра заключается в следующем. Основным органом настройки является матрица микширования. Входной сигнал из каждого канала (L — фронтальный левый, R — фронтальный правый, C — центральный, SL — тыловой левый, SR — тыловой правый, LFE — низкочастотный) микшируется в заданной пропорции с остальными каналами и подается на выход в соответствующий канал (результирующие каналы обозначены как X’). Например, чтобы смешать в одинаковой пропорции сигналы левого и правого каналов, а результирующий сигнал вывести через центральный канал, нужно указать значение 0,5 в двух ячейках матрицы, на пересечении строки C’ и столбцов L и R. Список Speakers позволяет указать конфигурацию имеющейся у вас акустики. Включение параметра Auto matrix заставит матрицу автоматически обновляться при изменении параметров. Подробное описание настройки фильтра можно прочесть на страничке проекта.

Тщательно настроенный фильтр MatrixMixer обеспечивает прекрасное звучание через любое количество каналов. Для создания «взвешенного», сбалансированного звучания не забудьте также отрегулировать уровень центрального и задних каналов относительно передних.

Фильтр MatrixMixer является очень удобным инструментом и во многом решает поставленную перед нами задачу. Однако в истории с использованием MatrixMixer есть один подводный камень, из-за которого был выбран именно видеоплейер. Дело в том, подавляющее большинство аудиопроигрывателей (WinAMP, FooBar, 1by1 и другие) пока не позволяют работать с фильтрами DirectShow. Единственным известным мне аудиоплейером, способным подключить MatrixMixer, оказался плейер Juke5.

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

Для подключения MatrixMixer к плейеру «X», не поддерживающему подключение DirectShow-фильтров, нам нужны две программы: Virtual Audio Cable6 (VAC) и GraphEdit7.


1 (назад) www.jrmediacenter.com.
2 (назад) Автор программы Александр Выговский (matrix-mixer.sourceforge.net/matrix_mixer_rus.html). Проект является ответвлением от AC3filter (ac3filter.sourceforge.net/ac3filter_rus.html).
3 (назад) Автор Игорь Вапняр (www.video-soft.com/la).
4 (назад) К сожалению, далеко не все программы позволяют добраться до диалога настройки DirectShow-фильтров.
5 (назад) Разработчик плейера фирма Wolosoft (страничка www.wolosoft.com/en/juke).
6 (назад) Автор программы Евгений Музыченко (spider.nstu.nsk.su/ music/software/eng/vac.html).
7 (назад) Разработчик программы Microsoft, скачать можно с websound.ru/software/utils/graphedit.zip.

- Название программы VAC («Виртуальный аудиокабель») точно объясняет ее назначение — программа является виртуальным аудиодрайвером и создает мнимые источники и приемники аудио, что дает возможность перенаправлять аудиопоток из одной программы в другую, минуя аппаратные звуковые тракты.
- GraphEdit — это программа, графически отображающая схему (граф) декодирования и воспроизведения информации (в том числе аудио) в Windows. Действие графа можно проверить, запустив схему (это делается нажатием Enter). GraphEdit позволяет изменять параметры работы всех участвующих в схеме фильтров. Кроме того, программа дает возможность пользователю самостоятельно строить графы, а также просматривать графы программ, запущенных в других процессах системы.

После установки обеих программ выбираем в качестве устройства вывода виртуальное устройство Virtual Cable 1 Out (таким образом, единственное, что требуется от плейера «X», — возможность выбора выходного аудиоустройства). Теперь запустим GraphEdit и построим свой граф прохождения сигнала, включающий MatrixMixer. Для этого заходим в диалог Graph Х Insert Filters, откуда последовательно добавляем на рабочее поле программы:

- Virtual Cabel 1 In (из ветки Audio capture sources);
- MatrixMixer (из ветки DirectShow filters);
- подходящее устройство вывода, например Default WaveOut device (из ветки Audio renderers).
Теперь, закрыв диалог, соединяем выход Virtual Cabel 1 In со входом MatrixMixer, а также выход MatrixMixer со входом Default WaveOut device. Построение графа на этом завершено (см. рис. 2).

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

Для изменения настроек MatrixMixer нужно зайти в свойства фильтра, кликнув на нем правой кнопкой мыши. Чтобы слушать аудио, нужно включить плейер «X» в режим воспроизведения и запустить построенный в GraphEdit граф (нажатием клавиши Enter).

Чтобы каждый раз при желании послушать музыку не приходилось заново строить граф в GraphEdit, построенный однажды граф можно записать в файл (меню File Х Save Graph As) и вывести иконку с файлом графа на рабочий стол. Тогда перед каждым запуском проигрывателя придется лишь вызывать этот файл и запускать GraphEdit.

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

 Аудио-экстрим

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

Технология Ambisonics8 явилась результатом работы британских исследователей. Еще в 70-х они разработали технологию, которая позволяет очень точно доносить до слушателя оригинальное звучание. Технология реализует комплексный подход, обуславливающий способы записи и воспроизведения. Запись живого звучания производится с использованием специальной аппаратуры, которая продуцирует четырехканальный сигнал (записанный в специальном формате B-Format), несущий информацию о звуковом поле в горизонтальном и вертикальном направлениях9. Естественно, воспроизведение такого сигнала также требует наличия специального кодера/декодера. Интересно, что для правильной передачи сигнала при воспроизведении нужно лишь верно указать декодеру месторасположение используемых репродукторов (расположив их при этом почти по своему усмотрению). Необходимое количество репродукторов ограничивается лишь четырьмя. Надо заметить, что большинство современных технологий пространственного звучания не позволяют воссоздавать вертикальную составляющую передаваемого звукового поля.

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

Несмотря на явно минорный тон рассказа об Ambisonics, эта технология еще сослужит нам службу, по крайней мере, в этом материале. С помощью Ambisonics мы сейчас попробуем оттранслировать обычный стерео .WAV в шестиканальный .WAV для его последующего кодирования, например, в .AC3 или DTS. Для этого нам понадобится:

- программа Plogue Bidule10 (www. plogue.com/download_form.php?file=PlogueBiduleInstaller.exe)
- комплект VST плагинов (websound. ru/articles/software/stereo51_files/ ambisonics_vst.zip), включающий: кодер (BPan_e_gui.dll) и декодер Ambisonics (Emigrator.dll), процессор Ambisonics (bfprocedit.dll) для изменения характеристик звукового поля, а также низкочастотный фильтр для генерации канала LFE (HNM_Filter.dll).

Программа Plogue Bidule — это универсальный инструмент, представляющий собой модульную студию для работы со звуком. Работа с Bidule похожа не работу c GraphEdit — на рабочем поле программы из различных внешних и внутренних плагинов (в том числе VST) и модулей создается блок-схема прохождения аудиосигнала. Запустив механизм и регулируя настройки участвующих в схеме модулей, можно выполнять обработку звука, экспериментировать со звучанием или просто тестировать модули и их взаимодействие.


8 (назад) www.ambisonic.net, www.ambisonic.net/pdf/ambidvd2001. pdf, members.tripod.com/martin_leese/Ambisonic/faq_latest.html.
9 (назад) Пространственную звуковую картину, несущую информацию обо всех направлениях прихода звука (в частности, по вертикали), назвали перифонией.
10 (назад) www.plogue.com/bidule.

Порядок действий по преобразованию стерео .WAV в .WAV с шестью каналами формата 5.1 следующий.

- Устанавливаем программу Bidule.
- В папке с установленной Bidule находится папка VSTPlugins. В нее необходимо полностью распаковать упомянутый выше комплект VST плагинов.
- Запускаем Bidule. Программа произведет поиск VST плагинов. Если на вашем компьютере есть другая программа, использующая VST плагины, то Bidule может «подцепить» VST плагины от нее. Если это произошло, то придется подкорректировать путь к плагинам с помощью меню Edit Х Preferences. Обратите внимание: запуск программы может оказаться достаточно продолжительным.
- С рабочего поля программы удаляем все модули и начинаем строить свою схему.

- С помощью диалога Tools Х Palette добавляем следующие модули:

- Audio file Х Player Х 2 channels
- VST Х Swiss Center Х BPan_e_gui
- VST Х York Music dept. Х bfprocedit
- VST Х gerzonic Х emigrator11
- VST Х Unknown vendor Х HNM_filter12 (пять штук)
- Audio File Х Recorder Х 6 channels
- Соединяем добавленные модули как показано на рис. 4.

Обратите внимание на подключение модуля Emigrator к Audio File Recorder. Шесть выходов Emigrator нумеруются с 1 по 5 (слева направо) и несут сигналы в последовательности: «центр», «левый передний», «левый задний», «правый задний», «правый передний». На вход Audio File Recorder сигналы подаются в последовательности (слева направо) 2, 1, 5, 3, 4. Это обусловлено тем, что выходной шестиканальный .WAV мы хотим получить в формате: «левый передний», «центр», «правый передний», «левый задний», «правый задний». Шестой канал (шестая нога Audio File Recorder) является суммой низкочастотных составляющих ото всех пяти каналов, поэтому к ней все каналы подсоединены через низкочастотные фильтры HNM_Filter_n (этих фильтров, соответственно, пять).

- Устанавливаем параметры модулей (двойной клик на соответствующем модуле):

- В BPan_e_gui регулятор Left поворачиваем так, чтобы стрелка на нем указывала строго влево, регулятор Right — вправо.
- В bfprocedit самый левый регулятор поворачиваем так, чтобы стрелка указывала на 30–35° левее центрального положения, остальные регуляторы должны быть повернуты стрелкой вверх.
- В emigrator форматом акустической системы должен быть выбран Pentagon (пять каналов), а горизонтальный регулятор рекомендуется установить в крайнее правое положение. Обратите внимание, что вместо Pentagon можно выбрать другое количество каналов — все зависит от того, сколько каналов мы хотим получить на выходе.
- В каждом из фильтров HNM_filter нужно указать следующие параметры: Filter = 0,0, CutOff = 0,24 (соответствует частоте среза 83 Гц), Resonance, InAmp и OutAmp = 0,5, Slope = 0,0.
- Синхронизируем воспроизведение и запись Audio File Player и Audio File Recorder. Для этого в меню Tools выбираем диалог Parameters, в котором слева выбираем Audio File Player Х Playing, а справа — Audio File Recorder Х Recording, и нажимаем кнопку Link.

Подготовка схемы завершена. Вы можете записать полученную схему в файл (через меню File). Теперь для преобразования желаемого стерео .WAV-файла в шестиканальный, нужно сначала запустить построенный нами механизм (это делается кликом на шестой слева иконке панели инструментов). Затем нужно открыть модуль Audio File Recorder и указать в нем имя выходного шестиканального .WAV-файла, после чего нужно открыть модуль Audio File Player, загрузить в него желаемый входной .WAV-файл и нажать кнопку воспроизведения. По окончании воспроизведения (его прогресс отображается в виде шкалы с регулятором), можно остановить механизм программы. Если у вас все прошло успешно, то на выходе вы уже получили желаемый шестиканальный .WAV.

Полученным после преобразования шестиканальным файлом вы можете распоряжаться по своему усмотрению. В частности, его можно сжать в формат .AC3 каким-нибудь доступным кодером (например, Sonic Foundry Soft Encode).

Напоследок, несколько замечаний.

- Параметры модулей, участвующих в схеме преобразования, вы можете выбрать иные — поэкспериментируйте.
- Частота среза низкочастотного фильтра зависит от характеристик используемого вами сабвуфера. В принципе частота 80–85 Гц является оптимальной.
- Полученный шестиканальный .WAV можно разделить на шесть отдельных файлов, например, с помощью программы BeSweet (dspguru.doom9.net).
- В процессе преобразования сигнала можно слушать выходной сигнал. Для этого нужно добавить какой-нибудь модуль из ветки Audio devices Х Output и подсоединить два его входа к выходам желаемого модуля (к сожалению, прослушивать все шесть каналов в Bidule одновременно нельзя).

Эта статья не могла бы увидеть свет, если б не помощь Валерия Прокопчука, Александра Выговского, а также других посетителей форумов WebSound.Ru и doom9.net.


11 (назад) www.gerzonic.net.
12 (назад) www.hnm-freeware.com.

© ООО "Компьютерра-Онлайн", 1997-2022
При цитировании и использовании любых материалов ссылка на "Компьютерру" обязательна.