пятница, 3 февраля 2012 г.

Виртуальная звуковая карта - Virtual Audio Cable 4.10

Мне потребовалась виртуальная звуковая карта, чтобы можно было записывать видео со звуком с других программ. Обычно достаточно включить стереомикшер, но моя звуковая карта не поддерживает такой возможности. Из бесплатных аналогов я смог найти только Vacard (Virtual Audio Card driver) Beta 0.9d / 08 March 2005. Как видно, она давно не обновлялась, и, к сожалению, она не работает в Windows 7. Есть несколько платных продуктов, из которых мне понравилась программа Virtual Audio Cable, о которой хочу рассказать несколько слов.


Что такое Virtual Audio Cable?

Программа представляет собой набор виртуальных устройств (звуковая карта, микрофон, S/PDIF устройство), который можно соединять между собой виртуальным кабелем. Это позволяет подключать аудио-вывод одного Windows-приложения к аудио-входу другого Windows-приложения. Это полностью аналогично тому, как различные устройства (CD-плейер, эквалайзер, усилитель, FM-приёмник и т.д.) могут соединяться кабелями.

Идея создания виртуального звукового кабеля возникла вскоре после появления программ для создания и обработки цифрового звука - виртуальные генераторы звуковых сигналов, синтезаторы музыкальных тембров, ритм-машины, эквалайзеры, компрессоры/экспандеры, процессоры эффектов и т.п. Поначалу каждая из этих программ была автономной: получала звуковой сигнал непосредственно со входа звукового адаптера или из звукового файла и выводила результат на выход адаптера или в другой звуковой файл. Такой подход позволял использовать программы на любом компьютере, имеющем звуковой адаптер, однако имел три основных недостатка:
  • Отсутствие универсальности. Несколько программ не могли быть соединены в цепочку, как это делается в студии или даже дома, в случае блочной аппаратуры (проигрыватель, предварительный усилитель, эквалайзер, усилитель мощности и т.п.). Таким образом, каждая программа представляла собой «моноблок» с определенным набором функций, расширить который было довольно сложно.
  • Потеря качества при работе в реальном времени. Запись результатов работы с выхода звукового адаптера при работе программы в реальном времени неминуемо влекла потерю качества исходного цифрового звука при преобразовании его в аналоговую форму. Чтобы сохранить качество сигнала неизменным, требовался адаптер с цифровым интерфейсом вместе с цифровым же магнитофоном (ценой порядка 1000 долл.).
  • Ограничение оперативности при работе в режиме записи. Некоторые программы позволяли записывать результаты в звуковой файл на диске, и тогда никаких потерь качества не происходило. Однако при этом терялась возможность оперативного управления параметрами звука, и прослушать созданный фрагмент можно было лишь после завершения его записи на диск.
Программа Virtual Audio Cable позволяет практически полностью решить все эти проблемы, организуя в системе компьютерный вариант обычного звукового соединительного кабеля, которым подключаются друг к другу блоки звуковой аппаратуры - бытовой или студийной. Можно сказать, она эмулирует набор звуковых адаптеров, у каждого из которых вход и выход намертво соединены изнутри.


Для чего это нужно?

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

Это, в частности, позволяет:
  • записывать ролики с сайтов со звуком;
  • записывать работу программ со звуком;
  • заставить программу "замолчать" или "затихнуть", пока другие будут работать;
  • записывать чат в Skype;
  • вести чат под музыку;
  • записывать исполнение под караоке;
  • копировать звук с защищённых носителей;
  • микшировать звуковые дорожки;
  • записывать звук из приложений, которые не поддерживают запись звука в файл (например, из игр);
  • подключать несколько входных аудиоустройств к приложениям, в которых такая особенность отсутствует.
Как это работает

Виртуальный звуковой кабель VAC представляет собой звуковой (Wave) драйвер Windows, создающий в системе два звуковых устройства (порта): Virtual Cable n In и Virtual Cable n Out, где n - номер кабеля начиная с 1. К каждому из портов может быть присоединено любое количество приложений (клиентов); эта возможность в зарубежных документах носит название multi-client feature. Звуковые сигналы, выводимые приложениями в порт Out, смешиваются в единый сигнал, который затем передается всем приложениям, извлекающим звук из порта In. От приложений требуется лишь умение работать со стандартными Wave-устройствами Windows - и ничего больше.

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

Смешивание и передача звуковых данных выполняются внутри VAC строго равномерно, по событиям (прерываниям) от системного таймера, с тем чтобы каждое виртуальное устройство работало, как реальное, обеспечивая заданную скорость звукового потока. По каждому прерыванию передается блок определенного размера, зависящего от интервала между таймерными прерываниями (latency). Минимальный интервал - 1 миллисекунда - обеспечивает наиболее плавную передачу потока, однако на «слабых» компьютерах может привести к чрезмерным накладным расходам.

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

Точно так же у каждой программы обработки звука, взаимодействующей со звуковым адаптером, могут быть вход и выход. Путем выбора устройства записи (Wave In) вход программы соединяется с выходом АЦП нужного звукового адаптера, а путем выбора устройства воспроизведения (Wave Out) ее выход подключается ко входу ЦАП того же или другого адаптера. Здесь налицо определенная путаница в терминах, поскольку в Windows мультимедийные устройства классифицируются не по входам-выходам, а по портам ввода-вывода. Понятно, что порт ввода (In) - это на самом деле выход устройства, обращенный внутрь системы, а порт вывода (Out) - такой же обращенный внутрь системы вход. Звук, поданный, например, на внешний линейный вход адаптера (Line In), преобразуется АЦП в цифровую форму и передается адаптером во внутренний порт ввода, а цифровой звук, переданный программой во внутренний порт вывода, преобразуется в аналоговую форму в ЦАП, после чего выводится на внешний выход (Line Out или Speaker Out).

Поскольку VAC является цифровым кабелем, он передает на свой выход звуковые данные именно в том формате (сочетании частоты дискретизации, разрядности отсчета и количества каналов), в каком они получены от источника звука. Это означает, что пока один конец кабеля (порт In или Out) открыт в каком-либо формате, другой может быть открыт только в точно таком же формате. Преобразования форматов при передаче VAC не выполняет.

Для того чтобы можно было подключать к кабелю не только программы, но и сами звуковые адаптеры, в комплект VAC входит программа Audio Repeater (звуковой повторитель). Она делает то же, что и драйвер VAC, но наоборот - передает звуковой поток от одного устройства Wave In к другому устройству Wave Out. Повторитель полезен для контроля сигнала, передаваемого по кабелю, или для «раздачи» сигнала от звукового адаптера нескольким программам обработки. Повторитель обычно включается между кабелем и звуковым адаптером - с входного или выходного конца кабеля.

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

Когда один из концов кабеля свободен (не имеет присоединенной программы), он ведет себя как обычный провод. Звук, выводимый в порт Out, теряется, а из порта In вводится абсолютная тишина.

Установка

Программу можно взять, как с официального сайта, так и rutracker.org. Установка проста и не вызывает проблем.

Пример использования

Щёлкаем правой кнопкой на значке аудиопараметров и выбираем "Устройства воспроизведения":


Во вкладке "Воспроизведение" щёлкам правой кнопкой на устройстве "Line 1" и выбираем "Использовать по умолчанию":


Теперь все звуки по-умолчанию попадают на это устройство:


Переходим во вкладку "Запись", щёлкаем правой кнопкой по устройству "Line 1" и выбираем "Свойства":


Во вкладке "Прослушать" ставим галочку "Прослушивать с данного устройства", а "Воспроизводить с данного устройства" выбираем динамики:


Теперь у нас имеется устройство "Line 1" с линейным входом, на который попадают звуки всех приложений. Выход этого устройства соединён с динамиками, что позволяет слышать звуки приложений. Далее в программе записи выбираем в качестве устройства записи "Line 1" или "Линейный вход". По окончании записи, можно выставить динамики снова как основное устройство вывода:


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

Комментариев нет:

Отправить комментарий