|
|
|
|
|
|
|
rewire
|
|
|
|
Концепция ReWire До появления ReWire основных способов коммутации
между музыкальными программами было всего два.
В первом случае основная
программа (как правило, аудио-MIDI секвенсор) подгружала в себя некоторый
компонент - модуль обработки. Последний, разумеется, не мог работать
самостоятельно и требовал для себя "контейнера". Обмен аудио данными (в том
числе потоковый, в реальном времени) происходил довольно просто, не выходя за
рамки приложения-контейнера. После выхода в свет огромного количества модулей
обработки, специфичных для конкретной программы конкретного производителя, и
нареканий со стороны пользователей (приходилось покупать другую систему только
из-за того, что к ней прилагался модуль, которого так не хватало в текущей),
было решено установить стандарты. Результатом усилий Великого Стандартизатора
(Microsoft, разумеется) стал стандарт DirectX, который в настоящий момент
поддерживают практически все производители музыкального ПО.
Steinberg, в
свою очередь, плавно внедрял протокол VST для того же способа обмена данными. С
появлением стандарта VST 2.0 стало возможным управлять работой подключаемых
модулей по MIDI. Это привело к использованию технологии VST для создания не
только типичных модулей обработки, но и программных синтезаторов. Вы можете
подгрузить программный синтезатор как подключаемый модуль в контейнер,
поддерживающий VST (первый и самый главный контейнер - Cubase).
Однако
такое положение вещей связывает по рукам и ногам разработчиков ПО жесткостью
требований к модулям. Так, модули не могут иметь своего развитого
пользовательского интерфейса с системой меню как в основной программе, и, как
правило, размещаются в одном окне. Обмен аудио данными происходит исключительно
через "хозяина" модуля - основную программу, что также не всегда
приемлемо.
Поэтому разработчики серьезных программных синтезаторов и
имитаторов оборудования предпочитают создавать самостоятельные приложения. Как в
этом случае обеспечить синхронизацию и обмен аудио данными с программным
секвенсором/ микшером/ рекордером? Синхронизация реализуется через HLD -
виртуальный MIDI кабель, непосредственные потоки аудио между приложениями не
реализуются никак. Разумеется, ни о какой синхронизации с точностью до семпла
(как при использовании ASIO протокола и драйверов) речи быть не
может.
Совокупность всего вышеперечисленного заставила производителей
искать лучшие способы коммутации. На сегодняшний день единственным работающим
протоколом является ReWire.
Основное предназначение ReWire -
многоканальная передача аудио информации между приложениями в реальном времени.
Типичными приложениями, использующими ReWire, являются программные синтезаторы
(семплеры, имитаторы и подобные программы) с одной стороны, - и программные
микшеры, секвенсоры, многодорожечные рекордеры, системы обработки с другой
стороны.
Итак, три основных функциональных возможности протокола: -
передача потокового аудио между приложениями в реальном времени; -
синхронизация с точностью до семпла; - связанный транспорт в
приложениях.
ReWire предлагает до 64 независимых каналов передачи аудио
данных. Текущая версия поддерживает максимальную частоту дискретизации 96 кГц,
разрядность 24 бита. Заявлено, что проблем с расширением этого диапазона в
будущем не возникнет. Все вопросы синхронизации между программами ReWire берет
на себя. После того, как приложения запустились и обнаружили друг друга через
ReWire (что происходит автоматически), между ними устанавливается точная до
семпла и гарантированная от выпадения синхронизация. Может показаться странным,
но в ReWire нет даже настроек и регулировок, связанных с синхронизацией.
Синхронизация абсолютна.
ReWire обеспечивает связанные функции
транспорта между приложениями (воспроизведение, перемотка, остановка и т. д.).
Это значит, что если две программы работают через ReWire, нажатие кнопок
транспорта в одной из них приводит к тому же эффекту в другой.
По-моему,
достаточно аргументов, чтобы считать ReWire чем-то большим, нежели простой аудио
кабель.
|
|
|
|