ReWire, что это такое?. О технологии ReWire...

Концепция ReWire
ReWire – это система для передачи аудио данных между двумя музыкальными программами в режиме реального времени . Вы можете представить ReWire как невидимый кабель (подобные программы выходили ранее), который передаёт аудио поток из одной компьютерной программы в другую.

ReWire был разработан Propellerhead Software AB в 1998 году и впервые появился в ReBrith RB-338, а так же в программно-апппаратном комплексе Cubase VST фирмы Pinnacle, позволяя двум программам взаимодействовать в процессе работы, что невозможно было ранее. Спустя некоторое время, была выпущена вторая версия ReWire со значительными улучшениями и дополнениями. На сегодняшний день большое количество музыкальных приложений различных производителей поддерживают ReWire.

Вы используете в своей работе программные синтезаторы или семплеры? Вы используете аудио-MIDI секвенсоры или программы многодорожечной записи? Вам надоело довольствоваться единственным средством коммутации между программами - HLD (Hubi's LoopBack Device)? Вам надоело бороться с выпадением из синхронизации, подбирать параметры HLD и входных/выходных интерфейсов программ вручную? Вы хотите использовать обработку эффектами и автоматизацию микшера своего секвенсора при работе с программным синтезатором?

Если хотя бы на один вопрос вы ответили "да", знайте, существует технология, способная разрешить эти и многие другие вопросы. Имя ей - ReWire.
Как это ни странно, но, несмотря на стремительный прогресс компьютерных технологий в программно-аппаратной сфере в целом и в музыкальной сфере в частности, существует область, в которую, кажется, не заглядывала сколько-нибудь известная фирма-производитель музыкального ПО. Это - коммутация между программами. Практически все, что мы имеем на сегодняшний день - это HLD (и ей подобные), протокол VST 2.0 и стандарт DirectX для работы с подключаемыми модулями (я не рассматриваю реализацию обмена данными между модулями, специфичными для какой-либо программы или программно-аппаратных комплексов, и работающих только с ними).

Ответьте на вопрос: что вы делаете, если хотите подключить синтезатор (семплер, звуковой модуль и т. п.) к микшеру или многодорожечному устройству записи? Правильно - вы используете обыкновенный звуковой кабель. Можете ли вы сделать то же самое при работе с музыкальными приложениями на PC или Mac? Ответ прост: не можете. Или, по крайней мере, не могли.

В октябре прошлого года появилась первая ласточка - программа "Виртуальный аудио кабель" (VAC). Она позволяет передавать аудио информацию между приложениями через оперативную память, минуя физические входы и выходы. Программа неприхотлива, не пожирает системные ресурсы, поддерживает частоту дискретизации до 192 кГц, разрядность до 32 бит, предлагает до 64 виртуальных кабелей (на деле, при задействовании уже нескольких "кабелей" начинаются проблемы).

VAC не может работать с драйверами DirectX (что крайне неудобно для современных приложений, некоторые работают исключительно через DirectSound). VAC не делает ничего другого, кроме пересылки аудио блоков из одной программы в другую. Применение VAC наиболее эффективно тогда, когда какая-либо программа не позволяет писать результаты своей работы в звуковой файл, но выводит сигнал на физический выход. VAC имитирует такой выход; программа об этом даже не догадывается, а, запустив любой рекордер (хоть "фонограф" Windows), можно и WAV состряпать.

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

Концепция ReWire

До появления ReWire основных способов коммутации между музыкальными программами было всего два.
В первом случае основная программа (как правило, аудио-MIDI секвенсор) подгружала в себя некоторый компонент - модуль обработки. Последний, разумеется, не мог работать самостоятельно и требовал для себя "контейнера". Обмен аудио данными (в том числе потоковый, в реальном времени) происходил довольно просто, не выходя за рамки приложения-контейнера. После выхода в свет огромного количества модулей обработки, специфичных для конкретной программы конкретного производителя, и нареканий со стороны пользователей (приходилось покупать другую систему только из-за того, что к ней прилагался модуль, которого так не хватало в текущей), было решено установить стандарты. Результатом усилий Великого Стандартизатора (Microsoft, разумеется) стал стандарт DirectX, который в настоящий момент поддерживают практически все производители музыкального ПО.

Steinberg, в свою очередь, плавно внедрял протокол VST для того же способа обмена данными. С появлением стандарта VST 2.0 стало возможным управлять работой подключаемых модулей по MIDI. Это привело к использованию технологии VST для создания не только типичных модулей обработки, но и программных синтезаторов. Вы можете подгрузить программный синтезатор как подключаемый модуль в контейнер, поддерживающий VST (первый и самый главный контейнер - Cubase).

Однако такое положение вещей связывает по рукам и ногам разработчиков ПО жесткостью требований к модулям. Так, модули не могут иметь своего развитого пользовательского интерфейса с системой меню как в основной программе, и, как правило, размещаются в одном окне. Обмен аудио данными происходит исключительно через "хозяина" модуля - основную программу, что также не всегда приемлемо.
Поэтому разработчики серьезных программных синтезаторов и имитаторов оборудования предпочитают создавать самостоятельные приложения. Как в этом случае обеспечить синхронизацию и обмен аудио данными с программным секвенсором/ микшером/ рекордером? Синхронизация реализуется через HLD - виртуальный MIDI кабель, непосредственные потоки аудио между приложениями не реализуются никак. Разумеется, ни о какой синхронизации с точностью до семпла (как при использовании ASIO протокола и драйверов) речи быть не может.

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

Итак, три основных функциональных возможности протокола:

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

ReWire предлагает до 64 независимых каналов (версия 2.0 до 256) передачи аудио данных. Текущая версия поддерживает максимальную частоту дискретизации 96 кГц, разрядность 24 бита. Заявлено, что проблем с расширением этого диапазона в будущем не возникнет. Все вопросы синхронизации между программами ReWire берет на себя. После того, как приложения запустились и обнаружили друг друга через ReWire (что происходит автоматически), между ними устанавливается точная до семпла и гарантированная от выпадения синхронизация. Может показаться странным, но в ReWire нет даже настроек и регулировок, связанных с синхронизацией. Синхронизация абсолютна.

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

Просто незаменимая штука для электронных музыкантов музыкального общества J.


Савин Иван