Программы        12.04.2024   

Описание интерфейса MIDI. Android-устройства в качестве миди-контроллера

В настоящее время появилось много различных периферийных устройств, подключаемых по миди-интерфейсу. И естественно, что многие начинают интересоваться: а что это вообще за такой миди-интерфейс и с чем его кушать? Многие энциклопедии дают чисто техническое объяснение, но этого часто бывает мало для общего понимания сути процесса. Многие не до конца понимают, для чего он нужен, некоторые догадываются, но не до конца, и только немногие, видевшие рождение этого формата знают, что это такое. Так что же это за зверь такой - МИДИ?

MIDI - это аббревиатура от Music Instrument Digital Interface (он же МИДИ) - цифровой протокол передачи данных между электромузыкальными инструментами (ЭМИ). ЭМИ это инструмент, звучащий в результате электронного синтеза (в народе — синтезатор).
Впервые был реализован на инструменте с фортепианной клавиатурой. Позже на этой основе появились кнопочные инструменты (электро-баяны) и некоторые духовые (флейта, саксофон).

Суть формата.

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

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

История формата.

MIDI как отдельный протокол (пока ещё не стандарт) был задуман фирмами Roland и Sequential Circuits для своих синтезаторов.

До момента создания стандарта MIDI каждая фирма-производитель синтезаторов имела свою систему хранения всех этих данных (секвенцеры). Тогда были в моде дискеты (да и щас они ещё есть). Их объёма в 1,5 Мб (а HDD = 2 Мб) с лихвой хватало как для сохранения всех параметров регуляторов и кнопок, так и для полноценного хранения информации о целых композициях, сыгранных на этом синтезаторе. В целом на одну дискету можно было поместить до 30 отдельных полномасштабных композиций.

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

В 80-х годах эта проблема выросла достаточно сильно: многие музыканты были вынуждены покупать синтезаторы разных фирм только из-за пары фишек на их синтезаторе, возить всё это хозяйство становилось накладно, каждый синтезатор (а тогда они были ещё аналоговыми) были каждый размером с холодильник, а подключения перед концертами больше походили на фронтовые бои с выжившими и побеждёнными…

Тогда ведущие производители Roland, Sequential Circuits,Yamaha и Oberheim собрались и договорились о некоторых стандартах в плане формата сохранения данных. Так появился General MIDI первого поколения (GM1). Был создан типовой генератор и типовой протокол передачи данных для этого генератора. И теперь синтезатор с аббревиатурой GM мог уже более-менее сыграть то, что было сделано на другом GM-совместимом синтезаторе. В силу тогдашнего ограничения пропускной способности IBM PC компьютеров в данный стандарт вошло описание 2 банков звуков в 8 категориях по 8 инструментов в каждой (всего 128 стандартных звуков), и 127 контроллеров для каждого инструмента (громкость, панорама, эффект и т.д) со шкалой от 0 до 127. Но на деле этих контроллеров оказалось не более 20ти: остальные ячейки остались незанятыми (т.е. при передаче определённого сигнала в эти ячейки ничего не происходило).

Первая звуковая карта для PC компьютера была разработана фирмой Roland и называлась MPU-401 (MPU — Music Processing Unit). Этот интерфейс стал стандартом для подобного рода устройств на долгие годы и остается таковым и по сей день. В любой современной звуковой карте поддерживается режим эмуляции MPU-401. Если у вас Windows, то в «Информации о системе» в разделе «Звуковые, Видео и Игровые Контроллеры» вы наверняка найдете для своей звуковой карты эмуляцию MPU-401.

В 1988 году по предложению фирмы Opcode был принят формат Standard MIDI File (SMF) для полной совместимости синтезаторов с компьютерами. Этот файл с расширениями.mid или.smf и есть тот самый стандартный МИДИ файл . Модифицированная его версия используется для передачи букв и слов (то есть содержит и музыку и текст к ней), и имеет расширение.kar поскольку такие файлы широко используются в караоке.

Для поддержания стандарта и его дальнейшего расширения была учреждена независимая организация - MIDI Manufacturer’s Association (MMA). Позже, с развитием компьютерных технологий, в 1998 году стандарт General MIDI был доработан до 2 поколения. В новом стандарте расширили полифонию и палитру доступных инструментов до 256, добавили ряд новых контроллеров. С тех пор, для совместимости синтезаторов и появившихся компьютеров, в звуковые карты последних стали ставить банки звуков стандарта GM1 и GM2. Так стало возможным без самого синтезатора прослушать на компьютере то, что было сочинено на синтезаторе. Качество звуков стандарта GM естественно было далеко (и сейчас уже очень далеко) от реального звука, но тогда это было лучше, чем совсем ничего.

Возможности этого стандарта всё-таки не совсем удовлетворяли запросам многих производителей: у многих были свои фишки и маркетинговые ходы для своих покупателей. Так у Yamaha появился XG (Xtended General, по сути добавленный к GM ряд фирменных ямаховских звуков и улучшенная их обработка) и такой же фирменный GS (General Synth) у Roland. Таким образом формат GM формально был соблюдён: во многих синтезаторах Yamaha игрались дискеты от Roland. И наоборот.
Но с родным форматом XG (GS) звук был лучше. Так фирмы привязывали своих покупателей к продукции только своей фирмы.

Технологии.

В 90-е годы некоторые производители поняли, что технология MIDI применима не только к ЭМИ:
во-первых, клавиатура может быть не только аналогичной музыкальному инструменту, но и любой другой (в том числе, компьютерной). Так появились многочисленные контроллеры, пады (как ручные, так и ножные), электронные ударные установки, семплеры, секвенсеры…
во-вторых, оказалось, что через MIDI можно передавать не только информацию от клавиатуры к генератору, но и любую другую техническую информацию для совершенно разных устройств. Так, вдобавок к разъёмам IN и OUT, добавился «транзитный» разъём THRU, через который можно было передать информацию с первого синтезатора третьему синтезатору через второй транзитом. Т.е. можно было к двум синтезаторам подключить третий, который реагировал только на команды, предназначенные именно для него. Первые два синтезатора на них не реагировали.

Технически MIDI представляет собой последовательный интерфейс передачи данных со скоростью 32,25 килобод. Используются 5-контактные DIN-разъемы и экранированный кабель с двумя проводниками. На большинстве современных синтезаторов существует три MIDI-порта - IN, OUT и THRU.

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

По одному физическому MIDI-соединению передается 16 «виртуальных» MIDI-каналов. На синтезаторе для каждого из MIDI-каналов устанавливается нужный тембр и инструмент может играть одновременно разные музыкальные партии (каждая на отдельном канале) несколькими звуками.

Для того чтобы некоторая нота зазвучала на определенном MIDI-канале, синтезатор должен получить сообщение «Note On». Оно состоит из трех байтов - в первом кодируется тип сообщения (Note On) и номер канала (0-15), во втором высота ноты (128 ступеней по полтона), а в третьем громкость взятой ноты (тоже 128 ступеней). Почти такое же сообщение (только с типом Note Off) необходимо для того, чтобы инструмент прекратил воспроизводить данную ноту. Такая простая организация позволяет довольно эффективно использовать не очень высокую пропускную способность MIDI, при этом иметь до 16 каналов в одном последовательном интерфейсе. Из-за «последовательности» в MIDI невозможно сделать так, чтобы две ноты звучали абсолютно одновременно. Однако задержки между одновременно взятыми нотами в аккорде минимальны (единицы миллисекунд) и становятся заметны только в очень насыщенных произведениях.

Кроме команд «Note On» и «Note Off» в MIDI предусмотрено множество других сообщений. Прежде всего это контроллеры, с их помощью можно в реальном времени изменять звучание тембра (если последний это поддерживает). Например, можно плавно менять высоту взятой ноты, создавать эффект вибрато и делать множество других вещей. Вообще живучесть MIDI (почти 30 лет) объясняется тем, что разработчики заложили в стандарт возможности к расширению. В MIDI существует множество не стандартизированных команд, которые каждый производитель может использовать по своему усмотрению (при этом не понимающий этих команд прибор их просто проигнорирует или передаст третьему через THRU), а кроме того до сих пор возможно расширение формата при помощи стандартизации новых команд по предложению производителей (этим и занимается MMA в настоящее время). Сейчас формат MIDI используется не только по своему прямому назначению (игра на синтезаторах), но и во многих смежных областях, таких как синхронизация аудио/видеоустройств и даже управление световыми эффектами (DMX технологии).

Бум подобного подключения синтезаторов между собой пришёлся на пик творчества Жана Мишеля Жарра: именно он впервые в мире смог подключить (и запрограммировать) более 10 синтезаторов в одну MIDI-цепь, где каждый из синтезаторов имел свою чётко написанную программу включения/выключения заданных параметров в заданное время (т.е. мог менять звук на синтезаторе в заданное время без вмешательства со стороны исполнителя: последний мог спокойно продолжать играть на инструменте, только уже другим звуком и с другими параметрами.
Тогда многие поняли, что за миди-технологией большое будущее: ведь только эта технология на зарождавшихся тогда свето-звуковых шоу могла точно, секунда в секунду, поменять звук на синтезаторе и сдетонировать залп фейерверка и ещё много чего сделать в эту секунду. Что практически невозможно сделать вживую, живым оператором.

Перспективы.

В настоящее время на рынке миди-устройств наблюдается всё более и более глубокое разделение по классам:
1. появились отдельные миди-клавиатуры (как фортепианного типа, так и баянного), это те же синтезаторы, только без встроенного генератора, с различным количеством всевозможных регулировок и механикой, от обычной до максимально приближенной к реальности (молоточковая клавиатура и прочие фишки),
2. появились отдельные миди-интерфейсы, призванные обеспечить совместимость форматов USB-to-MIDI и передачу информации от одного устройства в другой (компьютер) и обратно,
3. появились звуковые модули (тот же синтезатор, только без клавиатуры) с огромными библиотеками звуков и с возможностью размещения модуля в студийной рэковой стойке,
4. появились многочисленные миди-контроллеры (тот же синтезатор, только без клавиатуры и генератора), призванные облегчить жизнь оператора и имеющие возможность аппаратной регулировки практически любого параметра звукового модуля (№3) либо компьютерного звукового редактора (DAW),
5. появились драм-машины (разновидность того же синтезатора, только с клавиатурой в виде падов (pad) и набором семплов),
6. появились сэмплеры (бывшие секвенсоры), позволяющие запрограммировать на любую клавишу любой звук, реально записанный с оригинала (звуки природы, людей, машин, реальных музыкальных инструментов),
7. появились электронные барабанные установки (сочетание падов и миди-контроллера с генератором)
8. появились мобильные миди-рекордеры (те же секвенсоры) - приборы для совместной работы с клавиатурами (№1), контроллерами (№4) и модулями (№3) , записывающие в своей памяти в реальном времени всю историю манипуляций с клавиатуры и регуляторов, с целью сохранения/редакции и повторного использования/воспроизведения, но уже без исполнителя и без участия компьютера…

Настоящее.

Сегодня самое большое распространение технология MIDI получила в живых концертах, в виде отдельных семплеров. Например, активно использует семплеры группа Linkin Park. С помощью семплера многие барабанщики сейчас могут сыграть любым звуком, который можно заранее загрузить в семплер. Суть проста: к пластику каждого барабана крепится миди-триггер, который при ударе по пластику передаёт сигнал семплеру. В итоге получается два звука - звук самого пластика и звук из семплера. Смесь этих звуков может дать фантастические краски и драйв, чем многие барабанщики и пользуются повсеместно (и так же скрывают истинную природу звучания барабанов на концерте). Точно так же можно говорить и о гитаристах: миди-триггеры на гитаре уже не редкость. Да и педаль не нужно так часто нажимать для переключения звука: если смена этого звука запрограммирована заранее в тайм-коде звучащей композиции, то семплер может сам переключить нужный звук в нужное время в нужном месте. Именно благодаря технологии МИДИ сейчас стали возможны потрясающие и грандиозные свето-звуковые шоу многих исполнителей…

Сейчас при прямом подключении устройств к компьютеру наличие разъёмов именно MIDI абсолютно не обязательно: эти миди-сигналы спокойно можно передавать и через обычную шину USB, что ещё более удобно. Тем более что сейчас подобных миди-устройств с USB выпускается довольно много. Хотя при подключении двух независимых совместимых устройств, наличие родных миди-разъёмов пока обязательно.

Ошибки.

Самая распространённая ошибка многих пользователей - они пытаются подключить аудио-аппаратуру между собой через миди-разъёмы, не понимая, что звук (потоковое аудио) никаким образом не может передаваться по миди-каналу. По миди передаётся ТОЛЬКО ИНФОРМАЦИЯ о нажатом (повёрнутом) контроллере. Миди это не оцифрованный звук, это набор стандартизированных команд для генератора.

Точно так же бессмысленно говорить о «плохом или хорошем звучании миди-музыки». MIDI-файл - не музыка, это набор команд по управлению электронными музыкальными инструментами и ничего более. Вспомним классический духовой орган. Здесь исполнитель посредством сложнейшей механики управляет подачей воздуха в комбинации звучащих труб. MIDI - электронный аналог такой механики. Это просто инструмент, при помощи которого исполнитель реализует свои замыслы. Поэтому совершенно бессмысленно говорить о качестве MIDI в плане музыки, имеет место лишь разговор о возможностях управления, предоставляемого этим цифровым интерфейсом.

Сейчас для реализации всех возможностей технологии миди в домашней студии достаточно 4 вещей:
1) компьютер с установленным редактором (DAW) и VST-плагинами,
2) миди-интерфейс, который может быть в звуковой карте (PCI, USB, FireWire), либо реализован на шине USB (отдельный кабель),
3) миди-контроллер для управления DAW (чтобы многочисленные регуляторы не крутить мышкой) тоже бывает на USB-шине,
4) миди-клавиатура, обычно фортепианного типа, для наигрывания мелодий (рисовать мелодию мышкой не очень удобно).

Дополнительно можно подключить электронные ударные, либо драм-машину, либо отдельный звуковой модуль и управлять ими по миди.
Функционал и ценовой диапазон современных миди-устройств поражает воображение: от обычного кабеля до монстра …

Практические примеры и настройки будут в

Я уверен, что многие из тех, кто пользуется компьютером в качестве музыкального инструмента, обладают миди-клавиатурами, либо миди-контроллерами. Это действительно удобно! Причем, даже если вы не выступаете вживую, то крутить ручки или, к примеру, сыграть партию «вживую» гораздо интересней и эффективней, чем писать ее в секвенсоре. Впрочем, эти устройства - дополнительная статья расходов, что не всегда по карману непрофессиональным музыкантам. Но, к счастью, разработчики софта улучшают и улучшают его. И на данный момент любой обладатель Android-устройства может превратить его в миди-контроллер. Как сделать это в конкретных программах и будет данная статья.

Что мы имеем на данный момент

Итак, я предполагаю, что Вы - счастливый обладатель андроид-устройства и, естественно, компьютера на базе windows. Рассматривать iMac и совместимые устройства я, к сожалению, не имею возможности, но уверен, там все происходит подобным образом. Примеры будут на основе Ableton , хотя можно использовать и другие секвенсоры с поддержкой миди. Теперь насчет андроид-устройства. В моем случае - это телефон Lenovo A750 с Android ICS 4. Опять же, на более ранних ОС я не имею возможности проверить, так что будем отталкиваться от такой конфигурации.

Программы я выбрал бесплатные, доступные на сервисе Google-Play. Ссылки будут указаны далее. Первая - это Touch OSC (https://play.google.com/store/apps/details?id=net.hexler.touchosc_a). Вторая - FingerPlay MIDI (https://play.google.com/store/apps/details?id=com.flat20.fingerplay&hl=ru). И если первая позволяет работать, в общем, без дополнительных программ (со своим драйвером), то вторая требует установки на компьютере своего сервера в виде отдельной программы. Но обо всем по-порядку.

Подготовка

Для начала нам нужно установить виртуальные миди-порты. Как это сделать, я описывал в . Кто не знает - читаем. Во-вторых, у нас должно быть настроено соединение wi-fi, со статическим ip-адресом. В windows 7 это можно проверить (сделать), зайдя в «Центр управления сетями и общим доступом-Беспроводное сетевое соединение-Свойства-Протокол интернета версии tcp/ipv4 » (рис. 1).

Рисунок 1. Установка статического IP-адреса на компьютере.

Как видим на рисунке, установлен статический адрес 192.168.1.57. Нам нужно будет запомнить этот адрес, он нам пригодится далее, в настройке программ на андроиде.

Во-вторых, должно быть установлено wi-fi соединение между компьютером и телефоном. Вариантов тут много. Лично у меня установлен обычный роутер wi-fi, со стандартными настройками, через него и соединяется компьютер и телефон. Возможны и другие варианты подключения напрямую телефона и компьютера через wi-fi, но это тема отдельной статьи. Предполагаем, что соединение между компьютером и телефоном существует. Теперь устанавливаем на телефон вышеуказанные программы и будем начинать.

FingerPlay MIDI

Первая пограмма - FingerPlay MIDI. Кроме основной программы в памяти телефона, она требует установки сервера на компьютере, для создания собственного канала, через который будут передаваться миди-сообщения в виртуальный порт (Midi-Yoke) на компьютере. Для начала настроим ее в телефоне. Запускаем ее, нажимаем на значке настроек (кнопка с шестеренкой) и попадаем во вкладку Settings (рис. 2).


Рисунок 2. Настройки FingerPlay.

Во-первых, устанавливаем Server type - FingerServer. Во-вторых, в Server Address устанавливаем ip-адрес нашего компьютера. Теперь на компьютере разархивируем FingerPlayServer.zip и запускаем run.bat. Хочу обратить внимание, что для его работы необходимо наличие java. Итак, появляется окно, в котором мы видим статус подключения телефона и компьютера. Теперь на телефоне ставим галочку напротив Connect to server и если все правильно, то статус превратится в Connected to 192.168.1.57 (или адрес вашего компьютера). Окно сервера на компьютере тоже изменится, показывая, что устройство подключено (рис. 3).


Рисунок 3. Окно сервера FingerPlay.

Как видим, в статусе - Phone connected, что означает, что телефон подключен, а также отображается на какой выход приходят миди-сообщения (Midi-Yoke 1). Кроме того, в настройках на телефоне, мы можем выбрать другое виртуальное миди-устройство (рис. 4).


Рисунок 4. Выбор миди-устройства для вывода сообщений.

Вот, собственно и вся подготовка. Теперь можно покрутить любой регулятор и в окне сервера появятся сообщения о том, какой параметр изменяется. Теперь самое время перейти в Ableton.

В Ableton нам достаточно выбрать то, миди-устройство, которое указано в FingerPlay (в нашем примере, Midi-Yoke 1) (рис. 5).


Рисунок 5. Включаем Midi-Yoke 1 в Ableton.

Если все правильно, то теперь можно замапить разные контроллеры и кнопки. И касаясь экрана на телефоне, управлять параметрами в Ableton. Например, перейдем в раскладку (Layout) для микшера в FingerPlay (она занимает среднее положение на панели справа, см. рис.6).


Рисунок 6. Раскладка микшера в FingerPlay.

Теперь в Ableton нажимаем Ctrl+M, включается режим миди-маппинга. Нажимаем, к примеру, на регуляторе громкости первого канала в Ableton и касаемся первого регулятора на экране телефона. Если все правильно, в карте маппинга появится новая запись (рис. 7).


Рисунок 7. Новый параметр в карте миди-маппинга.

Нажимаем Ctrl+M для возвращения в обычный режим. И теперь если мы касаемся первого регулятора на экране, у нас изменяется громкость на первом канале в Ableton! (рис. 8).


Рисунок 8. Регулятор на экране телефона управляет регулятором в Ableton.

Вот и все, миссия выполнена. Аналогично можно замапить кнопки, которые находятся в другой раскладке FingerPlay и пользоваться.

Touch OSC

Это приложение отличается от предыдущего мультиплатформенностью. Его клиент доступен не только для андроида, но и для iOs. А сервер, соответственно, может работать и на mac-совместимых компьютерах. Но я буду рассматривать связку android+windows 7, как и упоминал выше. Сервер для windows можно скачать на официальном сайте по этой ссылке: http://hexler.net/pub/touchosc/touchosc-bridge-1.0.1-win32.zip .

Устанавливаем его в телефон и на ПК, если все верно, то в системном трее на ПК появится иконка TouchOSC bridge (рис. 9).


Рисунок 9. Сервер TouchOSC Bridge установлен и запущен.

Обращаю внимание на то, что данная программа умеет работать не только по миди-протоколу, но и по протоколу OSC. Нас интересует в данном случае миди. Что касается соединения с компьютером - требования те же (см. выше). Теперь перейдем к настройкам TouchOSC на телефоне. При запуске программы сразу запускается окно настроек. Здесь мы кликаем на Midi Bridge (рис. 10) и вписываем ip-адрес нашего компьютера.


Рисунок 10. Настройки Touch OSC в телефоне.

Здесь есть одна сложность, с которой я очень долго промучился. Дело в том, что у меня телефон ни в какую не хотел показывать мой компьютер в списке Found Hosts. Там постоянно отображался 0. Несмотря на это, все заработало замечательно, так что не обращаем на это внимание и продолжаем. Переходим в Ableton.

В Ableton, как несложно догадаться, нам нужно выбрать миди-порт Touch OSC. На этот раз это собственный порт, который появляется в системе после установки сервера (рис. 11).


Рисунок 11. Настройки Touch OSC в Ableton.

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

Немного об интерфейсе и возможностях

Особых сложностей, как видим, не возникает. Лично для меня самой большой сложностью было законнектить компьютер с телефоном, и то, только в случае с TouchOSC. А что же они по сути нам предлагают в качестве контроллеров? Сразу скажу, что TouchOSC будет посильнее и в плане интерфейса, и в плане уже готовых раскладок.


Рисунок 12. Раскладка Keys в TouchOSC.

Здесь доступно 5 раскладок, в каждой из которых по 3 закладки. На рисунке 12, к примеру мы видим, что есть даже раскладка одной октавы пианино. Поддержка мультитача присутствует. Кроме того, в Touch OSC есть гораздо большее количество контроллеров - тут и клавиатура и всевозможные регуляторы, фейдеры, кроссфейдеры, X-Y-контроллеры. Finger Play, к сожалению, обладает всего несколькими типами контроллеров, клавиатуры нет. И раскладка у него всего лишь одна. Зато, в отличии от Touch OSC, здесь можно собственноручно, без проблем редактировать эти раскладки, создавать свои. Конечно, придется разобраться в синтаксисе, либо использовать онлайн-конструктор (https://dl.dropbox.com/u/1856630/fingerplay/index.html). Хотя он работает, мягко говоря, не очень хорошо. В Touch OSC загрузка раскладок доступна только для iPod, iPhone. Редактирование возможно и на windows. Хотя в сети есть способ как загрузить свою раскладку на андроид-устройство. Но метод довольно сложный.

Итог

Что ж, на данный момент обе программы со своими обязанностями вполне справляются. У каждой есть плюсы и минусы, но тем не менее, имея ноутбук, wi-fi и телефон на базе андроид можно успешно использовать телефон в качестве контроллера. Если же выбирать из этих программ, я все же отдаю предпочтение Touch OSC.

Что же это такое - MIDI? Для начала скажем так: MIDI (Musical Instrument Digital Interface - Цифровой Интерфейс Музыкальных Инструментов) - это то, что позволяет вам нажать клавишу на одном синтезаторе и воспроизвести при этом звук другого.

И хотя MIDI может еще очень многое, мы начнем с этого простого примера.

MIDI разъемы

Когда вы нажимаете клавишу C 3 (нота До третьей октавы) на одном синтезаторе, ваши действия переводятся в MIDI сообщение, которое поступает на MIDI Выход (MIDI Out) этого инструмента. Если его MIDI Выход соединен с MIDI Входом (MIDI In) другого инструмента, то тот принимает это сообщение и выполняет те же действия, как будто клавиша была нажата на его клавиатуре, т. е. воспроизводит звук C 3!

Представим себе, что мы имеем три синтезатора (во всяком случае, попытаемся), и хотим с одного из них управлять двумя другими. Здесь вступает в действие третий разъем с веселым названием MIDI Thru (Сквозной). Его задача - дублировать все сообщения, которые поступают на MIDI Вход данного инструмента. Таким образом, мы берем еще один MIDI кабель, подключаем его к MIDI Thru второго синтезатора (так как именно на его MIDI Вход поступают сообщения) и к MIDI In третьего. Теперь вся информация, выходящая из MIDI Выхода первого инструмента, поступает на MIDI Вход второго, и дублируется через Сквозной MIDI разъем на MIDI Вход третьего. Теоретически вы можете подключать бесконечное число инструментов таким образом, но на практике при соединении более трех происходят задержки сигнала и прочие неприятности. Если вам все же необходимо подключить несколько MIDI инструментов, следует воспользоваться специальными устройствами: MIDI Thru Box или MIDI Patch Bay.

MIDI каналы

Теперь у нас возникает первая проблема. Если мы нажмем клавишу на первом инструменте, нота будет звучать одновременно на всех трех. Если это и была наша цель, то она достигнута. А если мы хотим, чтобы звучал только один синтезатор? Кроме того, большинство современных синтезаторов - мультитембральные, то есть могут воспроизводить несколько тембров (звуков) одновременно.

Чтобы отделить MIDI сообщения, предназначенные для одного синтезатора (или для одного тембра на этом синтезаторе), от сообщений другого, существуют 16 MIDI каналов. Вы устанавливаете на первом синтезаторе звук пианино на MIDI канале 2 (о том, как это делается, следует прочитать в руководстве пользователя для каждого инструмента), на втором синтезаторе - звуки баса и струнных на MIDI каналах 5 и 8, а на третьем - барабаны на канале 10 (каналы можно устанавливать в любом порядке). Теперь вам надо переключать MIDI каналы, по которым передает информацию первый синтезатор - включили на канал 2 - звучит пианино с первого синтезатора, на канал 10 - барабаны с третьего и т. д.

Собственно говоря, при таком раскладе нам вообще не нужны клавиатуры на втором и третьем синтезаторах. Это соображение и привело к широкому распространению звуковых модулей - синтезаторов без клавиатуры, а также к появлению отдельных клавиатур для управления несколькими инструментами (MIDI Master Keyboard).

Запись MIDI событий

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

В отличии от магнитофона, секвенсер записывает не звук, а управляющую MIDI информацию (например: на второй доле первого такта по MIDI каналу 10 передано сообщение о нажатии клавиши C 3). Вы можете затем изменить звук на 10 MIDI канале и воспроизвести записанную информацию с новым звуком! Вы можете даже заменить синтезатор на другой и, если вы установите один из его звуков на MIDI канал 10, то сможете воспроизвести вашу игру со звуками нового инструмента.

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

Синхронизация

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

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

После записи всех необходимых партий пора приступить к окончательному сведению. Здесь MIDI может помочь вам в управлении громкостью, панорамой и другими параметрами звуков различных MIDI инструментов. Многие компьютерные секвенсеры имеют для этих целей специальные редакторы, воспроизводящие реальные движки и ручки на экране монитора (например MIDI Manager в Steinberg Cubase). Некоторые пульты (например Soundcraft Spirit Auto или Mackie CR 1604 с системой OTTO) позволяют вам аналогичным образом управлять громкостью своих каналов, таким образом контролируя обычные инструменты.

Что еще может MIDI?

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

Если у вас есть два инструмента (чаще всего семплеры), соответствующие стандарту MIDI Sample Dump, вы можете передавать между ними семплы по MIDI. Это происходит довольно медленно, и вы не сможете передать программы полностью (область клавиш, динамическое реагирование, огибающую), а только сами семплы. Тем не менее и это может быть очень полезно.

MIDI продолжает развивать и упрощать управление и передачу данных между различными музыкальными устройствами. Стандартные MIDI Файлы (SMF - Standard MIDI Files) позволяют вам записать информацию на одном секвенсере, сохранить ее на дискету в этом формате, а потом загрузить с этой дискеты в другой секвенсер.

Если вы когда-нибудь записывали песню с одним звуковым модулем, а воспроизводили с другим, то вы уже поняли о чем речь. Дело в том, что номера звуков и расположение барабанов на клавиатуре не совпадает в разных инструментах. Решить эту проблему призвано General MIDI. Инструмент, соответствующий этой системе, должен быть минимум 24-голосным, 16-ти мультитембральным, иметь 128 звуков, которые должны быть одинаково организованы по номерам. То есть звук номер 001 всегда акустическое фортепиано, номер 036 - безладовый бас, номер 126 - вертолет и т. д. Кроме того, барабаны должны находиться на MIDI канале 10, и их звуки должны соответствовать определенным MIDI номерам нот.

Надо отметить, что управляющие MIDI контроллеры не обязательно должны быть клавишными инструментами. Это могут быть электронные барабаны, MIDI гитары и бас-гитары, MIDI фейдеры, MIDI саксофоны, тромбоны, аккордеоны, мандолины и т. д. На выставке музыкального оборудование NAMM фирмой WaveAccess был представлен революционный продукт - WaveRider. Он подсоединяется к вашему телу, снимает данные мышечной, сердечной, кожной активности и биотоки мозга, и переводит их в MIDI данные (например ритм сердца - в темп песни). Похоже настало время отрешиться от грешных мыслей перед сочинением музыки!

Что же это такое - MIDI? Для начала скажем так: MIDI (Musical Instrument Digital Interface - Цифровой интерфейс музыкальных инструментов) - это то, что позволяет нажать клавишу на одном синтезаторе и воспроизвести при этом звук другого.

И хотя MIDI может еще очень многое, мы начнем с этого простого примера.

MIDI-разъемы
Когда вы нажимаете клавишу C 3 (нота До третьей октавы) на одном синтезаторе, ваши действия переводятся в MIDI-сообщение, которое поступает на MIDI-выход (MIDI Out) этого инструмента. Если его MIDI-выход соединен с MIDI-входом (MIDI In) другого инструмента, то тот принимает это сообщение и выполняет те же действия, как будто клавиша была нажата на его клавиатуре, то есть воспроизводит ноту C 3.

Представим себе, что мы имеем три синтезатора (во всяком случае, попытаемся) и хотим с одного из них управлять двумя другими. Здесь вступает в действие третий разъем с веселым названием MIDI Thru (сквозной). Его задача - дублировать все сообщения, которые поступают на MIDI-вход данного инструмента. Таким образом, мы берем еще один MIDI-кабель, подключаем его к MIDI Thru второго синтезатора (так как именно на его MIDI-вход поступают сообщения) и к MIDI In третьего. Теперь вся информация, выходящая из MIDI-выхода первого инструмента, поступает на MIDI-вход второго и дублируется через сквозной MIDI-разъем на MIDI-вход третьего. Теоретически можно подключать бесконечное число инструментов таким образом, но на практике при соединении более трех происходят задержки сигнала и прочие неприятности. Если все же необходимо подключить несколько MIDI-инструментов, следует воспользоваться специальными устройствами: MIDI Thru Box или MIDI Patch Bay.

MIDI-каналы
Теперь у нас возникает первая проблема. Если мы нажмем клавишу на первом инструменте, нота будет звучать одновременно на всех трех. Если это и была наша цель, то она достигнута. А если мы хотим, чтобы звучал только один синтезатор? Кроме того, большинство современных синтезаторов - мультитембральные, то есть могут воспроизводить несколько тембров (звуков) одновременно.

Чтобы отделить MIDI-сообщения, предназначенные для одного синтезатора (или для одного тембра на этом синтезаторе), от сообщений другого, существуют 16 MIDI-каналов. Вы устанавливаете на первом синтезаторе звук пианино на MIDI-канале 2 (о том, как это делается, следует прочитать в руководстве пользователя для каждого инструмента), на втором синтезаторе - звуки баса и струнных на MIDI-каналах 5 и 8, а на третьем - барабаны на канале 10 (каналы можно устанавливать в любом порядке). Теперь вам надо переключать MIDI-каналы, по которым передает информацию первый синтезатор: включили на канал 2 - звучит пианино с первого синтезатора, на канал 10 - барабаны с третьего и т. д.

Собственно говоря, при таком раскладе нам вообще не нужны клавиатуры на втором и третьем синтезаторах. Это соображение и привело к широкому распространению звуковых модулей - синтезаторов без клавиатуры, а также к появлению отдельных клавиатур для управления несколькими инструментами (MIDI Master Keyboard).

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

В отличии от магнитофона, секвенсор записывает не звук, а управляющую MIDI-информацию (например: на второй доле первого такта по MIDI-каналу 10 передано сообщение о нажатии клавиши C 3). Вы можете затем изменить звук на десятом MIDI-канале и воспроизвести записанную информацию с новым звуком. Вы можете даже заменить синтезатор на другой и, если вы установите один из его звуков на MIDI-канал 10, то сможете воспроизвести вашу игру звуками нового инструмента.

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

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

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

После записи всех необходимых партий пора приступить к окончательному сведению. Здесь MIDI может помочь в управлении громкостью, панорамой и другими параметрами звуков различных MIDI-инструментов. Многие компьютерные секвенсоры имеют для этих целей специальные редакторы, воспроизводящие на экране монитора реальные регуляторы (например, MIDI Manager в Steinberg Cubase). Некоторые пульты (например, Soundcraft Spirit Auto или Mackie CR 1604 с системой OTTO) позволяют аналогичным образом управлять громкостью своих каналов, таким образом, контролируя обычные инструменты.

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

Если у вас есть два инструмента, соответствующих стандарту MIDI Sample Dump (чаще всего это семплеры), вы можете передавать между ними семплы по MIDI. Это происходит довольно медленно, и вы не сможете передать пэтчи полностью (область клавиш, динамическое реагирование, огибающую), а только сами семплы. Тем не менее, и это может быть очень полезно.

Надо отметить, что управляющие MIDI контроллеры не обязательно должны быть клавишными инструментами. Это могут быть электронные барабаны, MIDI-гитары и бас-гитары, MIDI-фейдеры, MIDI-саксофоны, тромбоны, аккордеоны, мандолины и т. д. На выставке музыкального оборудование NAMM фирмой WaveAccess был представлен революционный продукт - WaveRider. Он подсоединяется к вашему телу, снимает данные мышечной, сердечной, кожной активности и биотоки мозга, и переводит их в MIDI-данные (например, ритм сердца - в темп песни).

Оценка статьи


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

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

До 1982 года, когда была принята спецификация MIDI, синтезаторы разных производителей имели разные архитектуры и системы управления. Это было очень неудобно для музыкантов - ведь при покупке каждого нового инструмента приходилось "с нуля" изучать принципы его работы. Кроме того, секвенсеры одних производителей не могли работать с синтезаторами других – в результате для каждого синтезатора приходилось покупать отдельный секвенсер. Поэтому-то и возникла идея стандартизировать синтезаторы и другое сопутствующее оборудование и принять единую систему обмена данными между ними. В результате и появился Music Instruments Digital Interface - цифровой интерфейс музыкальных инструментов. А через некоторое время им стали оборудовать подавляющее большинство студийных устройств.

Благодаря MIDI интерфейсу, во-первых, все цифровые синтезаторы теперь имеют очень похожие системы управления, и если музыкант или звукорежиссер знает основные принципы работы MIDI, то без труда может разобраться с любым из них. Во-вторых, музыкальные инструменты разных фирм могут работать вместе и, например, с Roland"а можно получить доступ ко всем ресурсам Korg"а и даже играть "зашитыми" в него звуками. В третьих, секвенсер может управлять не только подключенными синтезаторами, но и любыми другими устройствами, имеющими MIDI-входы и выходы. Например, под управлением секвенсера процессор эффектов в нужный момент аранжировки может менять свои настройки, а цифровой микшер включать и отключать каналы, а также выставлять заранее запрограммированный уровень дорожек или автоматически плавно убирать громкость в конце композиции.

Как работает MIDI интерфейс?

"Артериями" любой MIDI-системы являются 16 информационных MIDI каналов, по которым передаются MIDI-сообщения - сигналы, несущие информацию о состоянии органов управления звуковым устройством (например, синтезатором). MIDI-сообщениями могут быть ноты, команды о смене звука, информация о положении колеса изменения высоты тона и т.д. На рисунке слева изображена

Схема Sample Playback синтезатора, который тоже является такой системой, так как в его корпусе размещены минимум два совершенно независимо работающих устройства - клавиатура и звуковой модуль. Доступ к памяти синтезатора, где хранятся оцифрованные семплы (образцы звучания), осуществляется по уже упомянутым 16 MIDI-каналам. В начале работы музыкант указывает при помощи кнопок управления какой канал с каким звуком будет работать. На рисунке первому каналу присвоено фортепиано, пятому - орган, десятому - ударные и пятнадцатому - бас. Причем эти связи устанавливаются совершенно произвольно по желанию музыканта: на любой канал может быть присвоен любой звук, находящийся в памяти.

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

Теперь давайте разберемся со связкой синтезатор-секвенсер. Второй рисунок изображает схему работы синтезатора, соединенного с компьютерным секвенсером. И у синтезатора, и у компьютера, в

Котором установлена звуковая плата или плата MIDI-интерфейса есть MIDI-входы и выходы. Они соединяются между собой специальными шнурами с пятиштырьковыми разъемами. По этим шнурам передаются MIDI-сообщения, рассортированные по независимым 16 каналам. Это не означает, что в шнурах используются целых 16 жил. Они обычные - трехжильные (по двум идет сигнал, а один используется для заземления), просто перед передачей сообщений по физическим проводам, вся информация кодируется особым образом, а при приеме происходит обратный процесс - раскодирование.

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

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

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

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

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

MIDI сообщения – это управляющие сигналы, которые передаются по MIDI интерфейсу. Например, при нажатии клавиши на динамической MIDI-клавиатуре производятся три сообщения, которые описывают исполнение ноты: Pitch (высота ноты), Velocity (скорость нажатия клавиши) и Duration (длительность). Эти сообщения могут передаваться по одному из каналов в звуковой модуль, а могут направляться и в секвенсер, который запишет их в определенное место композиции. Такая группа сообщений, привязанная к одному из моментов времени композиции и каналу называется Event (Событие). То есть, каждая нота композиции, записанная секвенсером - это событие.

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

Второй по важности после MIDI нот вид сообщений - это Controllers (контроллеры). Они управляют различными параметрами синтезаторов типа громкости или панорамы выбранного канала. Кстати, не путайте эти MIDI-сообщения и ручки управления автономным синтезатором, которые тоже иногда называются контроллерами.

Стандарт MIDI предусматривает наличие 127 контроллеров, каждый из которых может принимать значения от 0 до 127. Но реально из них используется не более 20. Самые главные из них - это Volume (громкость), Pan (панорама) и Modulation(модуляция). Они управляют параметрами воспроизведения нот по каждому из каналов. То есть, записав в секвенсер на первый канал контроллер Volume, имеющий значение 127, а на второй - значение 64, вы получите разницу в громкости этих каналов в два раза.

И, наконец, третий важный тип MIDI сообщений – это SysEx, или «системные эксклюзивные сообщения». Как и контроллеры, они предназначены для управления различными параметрами синтезаторов, или другого студийного оборудования. Однако SysEx «персонифицированы», то есть они работают только в пределах одного конкретного устройства. Их существование необходимо из-за того, что 127 контроллеров просто не хватает для управления всеми параметрами современных синтезаторов. Поэтому чаще всего контроллеры используются в стандартных ситуациях («порулить» громкость и панораму на канале, выставить уровень посыла на эффекты, изменить частоту среза и резонанс фильтра и т.д.). А вот для управления процессорами эффектов, «глубинными» параметрами синтеза или операциями по обслуживанию инструмента («сбрасывание» отредактированных звуков в компьютер, например) применяются SysEx.

MIDI-синхронизация

В студиях очень часто бывает необходимо обеспечить синхронную работу двух или нескольких устройств: секвенсера и многоканального магнитофона, двух магнитофонов одновременно и т.д. Раньше, в эпоху аналоговых магнитофонов, чаще всего использовалась SMPTE синхронизация, однако сейчас большинство студийных устройств синхронизируются по MIDI.

Делается это так. Например, у вас есть секвенсер и многоканальный магнитофон. Любой секвенсер должен равномерно "проматывать" виртуальную ленту (по аналогии с магнитофоном), на которую записываются MIDI-сообщения. Для этого во всех секвенсерах есть генератор временного кода, который производит MIDI-сообщение под названием MIDI Clock. При помощи этого временного кода и осуществляется точное управление "лентопротяжным механизмом" секвенсера, а также синхронизация со внешними устройствами. Группа MIDI-сообщений, которые используются для синхронизации называются MIDI Time Code ((MTC).

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

А для того, чтобы магнитофон включался одновременно с секвенсером и вместе с ним выполнял все остальные действия (перемотка, остановка, запись) используют целую группу MIDI-сообщений, которые называются MIDI Machine Control(MMC). В секвенсерах, которые поддерживают MMC, нажатие любой кнопки управления производит соответствующее MIDI-сообщение, которое немедленно передается в магнитофон. А ему остается только выполнить команду.

Системные эксклюзивные сообщения

Как уже говорилось в разделе «MIDI сообщения и события», системные эксклюзивные сообщения (SysEx) – это управляющие команды, которые, в отличие от контроллеров действуют только в пределах одного синтезатора или другого Студийного MIDI устройства. Например, контроллер Volume меняет громкость выбранного канала любого синтезатора, а вот SysEx сообщение, управляющее уровнем искажений эффекта Distortion, и предназначенное для использования с синтезатором Roland XP 30 не произведет ни малейшего «впечатления» на синтезатор Quasimidi Sirius, у которого также есть дисторшн. Но несмотря на узкую специализацию каждого такого сообщения, «язык» на котором они написаны абсолютно универсален, и зная его основы можно очень быстро подобрать «ключи» к любому инструменту и студийному устройству и заставить его делать именно то, что нужно.

Любое системное эксклюзивное сообщение представляет собой

последовательность шестнадцатеричных цифр (см. рис.), которую вы можете составить в любом редакторе SysEx (эти редакторы есть в большинстве развитых секвенсеров). Каждая цифра этого сообщения несет определенную информацию, и все искусство программирования SysEx заключается в том, чтобы поставить нужную цифру в нужное место. А помогает в этом раздел руководства пользователя устройства под названием MIDI Implementation – в нем фирма-производитель разъясняет пользователям принципы построения SysEx сообщений для каждой конкретной модели.

Итак, SysEx сообщения имеют обязательную и произвольную части. Вы должны обязательно начать сообщение с символа F0 и закончить символом F7 – это команды, заставляющие любой синтезатор или другое студийное устройство начать и закончить прием системной информации. Следом за символом F0 следуют еще три символа, которые несут информацию об идентификационном номере производителя, идентификационном номере устройства в MIDI системе и идентификационном номере модели устройства – они будут одинаковыми у любых сообщений для конкретного устройства. Например, для синтезатора Roland XP 30 обязательная часть SysEx будет выглядеть так: F0 41 11 6A ……………..F7, где 41 – это код фирмы Roland, 11 – идентификационный номер синтезатора (он выставляется в системном меню инструмента) и 6A – это код модели XP-30. Конкретные идентификационные номера для других синтезаторов нужно смотреть в MIDI Implementation их руководств.

Следом первыми четырьмя цифрами обязательной части SysEx идет часть произвольная. Ее конкретное наполнение зависит от того, чего вы хотите. Но она всегда начинается с номера команды и заканчивается значением контрольной суммы. Номер команды и ее формат нужно опять-таки смотреть в MIDI Implementation, а контрольная сумма вычисляется путем сложения всех цифр, составляющих команду (за исключением ее номера) и вычитанием получившегося значения из 128. И после контрольной суммы идет символ окончания SysEx – F7.
Давайте разберем конкретный пример. Предположим, нам до зарезу понадобилось вставить в аранжировку команду, которая меняет тип реверберации у синтезатора Roland XP30 с холла на дилэй. Прежде чем приступать к написанию, открываем редактор SysEx секвенсера, пишем заветный символ F0 (начало Sys Ex) и вооружаемся руководством пользователя синтезатора. Первым делом нам нужно выяснить, что писать в постоянной части. Добираемся в MIDI Implementation руководства пользователя до раздела Data Transmission (Передача данных) и смотрим раздел System Exclusive Messages. В этом разделе находится шаблон SysEx для передачи данных в синтезатор. Выясняется, что код Roland – 41, а код XP 30 – 6A. В системном же меню самого синтезатора смотрим deviceID – у меня он оказался равным цифре 17. Но это в десятичной системе, а в шестнадцатеричной он будет выражаться цифрой 10 (см таблицу перевода десятичных значений в шестнадцатеричные). Таким образом, можно продолжать SysEx (цифры вводятся через один пробел): F0 41 10 6A...

Итак, смотрим шаблон SysEx дальше. Идентификационный номер команды для нашего случая – 12. Кстати говоря, во многих руководствах шестнадцатиричные числа пишутся с обязательным прибавлением буквы H в конце (от Hexadecimal). В шаблоне SysEx руководства XP30 они даются именно в таком виде, например, номер команды приводится как 12H. Но в редакторе SysEx секвенсера букву H писать не надо – он и так знает, что речь идет о шестнадцатиричных числах. Таким образом, продолжаем сообщение: F0 41 10 6A 12…

Далее в шаблоне идут четыре цифры, сообщающие синтезатору адрес, по которому следует передавать команду. Они обозначаются как aa, bb, cc и dd. Их значение нужно смотреть в таблицах под названием Parameter Address Map. Поковырявшись некоторое время с таблицами выясняем, что адрес для смены типа ревербератора пишется так: 01 00 00 28. Наконец, мы добрались и до самой команды, которая пишется как 06 – это становится очевидным из колонки Data (Value) таблицы Parameter Address Map. Продолжаем наш SysEx: F0 41 10 6A 12 01 00 00 28 06…

Теперь осталось посчитать контрольную сумму. Для этого нам сначала нужно сложить цифры адреса и значения команды: 01 + 00 + 00 + 28 + 06… Но цифры-то записаны в шестнадцатеричной системе счисления. Чтобы успешно завершить арифметическую операцию нужно перевести их в десятичный вид: 1 + 0 + 0 + 40 + 6 = 47. Теперь вычитаем 47 из 128 и получаем число 81, которое в шестнадцатеричной системе будет писаться как 51. Все, теперь наше SysEx сообщение приобретает законченный вид: F0 41 10 6A 12 01 00 00 28 06 51 F7. Остается его сохранить в отдельный файл и вставить последний в нужное место аранжировки.

Организация памяти и форматы банков синтезаторов

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

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

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

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

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

Если вы видели автономные sample playback синтезаторы, то наверняка обращали внимание, что на них почти всегда есть надписи типа General MIDI или аббревиатуры GS или XG. Эти обозначения часто пишутся и в спецификациях звуковых карт. Они указывают, какому стандарту соответствует синтезатор.

Аббревиатура GM или надпись General MIDI означает, что в памяти синтезатора находится как минимум один банк (может быть и больше), из 128 программ плюс один банк ударных инструментов, состоящий из 44 пэтчей барабанов различного звучания, причем
каждой MIDI-ноте присвоен свой барабан (банков ударных и пэтчей в этих банках может быть и больше). Все программы (как основные, так и пэтчи ударных) имеют раз и навсегда установленный номер, под которым их можно разыскать в памяти. Это означает, что в GM-совместимых синтезаторах программа, имитирующая рояль всегда скрывается под номером 1, а под номером 53 - имитатор хора. Такой стандарт введен для того, чтобы без проблем воспроизводить музыку, записанную в любом секвенсере при помощи разных синтезаторов с предсказуемым результатом. Есть и специальный формат файла, который называется "стандартным MIDI-файлом" и обеспечивает воспроизведение музыки на любом синтезаторе или звуковой карте.

GM-синтезатор имеет как минимум 16 MIDI-каналов. Каждый из каналов может быть использован для записи или воспроизведения одной программы или одной ударной установки. Обычно в спецификациях звуковых карт или автономных синтезаторов на этот счет пишется так: "Синтезатор имеет 16-частную мультитембральность".
любых синтезаторов есть еще одно ограничение - вы не можете одновременно воспроизвести больше определенного количества нот, причем неважно, одним инструментом играются эти ноты или несколькими. Это количество называется полифонией, и для стандарта GM оно определено минимум в 24 ноты (может быть и 28, и 32 - GM это не запрещает). Это означает, что если вы задумали сыграть на клавиатуре аккорд из 25 нот, позвав для этого своих друзей, то у вас ничего не получится. Девять нот из взятого аккорда звучать не будут. Девять - это из-за того, что 8 нот резервируются под барабаны и лишь 16 остаются на все остальные программы. В спецификациях некоторых синтезаторов для описания полифонии может применяться и следующая формулировка: "Синтезатор имеет 24 голоса".

Существует очень распространенное заблуждение: будто все GM синтезаторы звучат одинаково - ведь инструменты у них одни и те же. Это совершенно не верно. Рояль из GM-совместимой карты Cuncun FX производства Turtle Beach звучит совершенно не так как рояль с GM-совместимого синтезатора Korg N5. Конечно, оба они - рояли, но вот тембр у этих роялей совершенно разный. Стандарт General MIDI описывает только общий характер инструмента, который должен храниться в памяти под тем или иным номером. Но конкретное качество семплов, "раскладка" колец по клавиатуре и многие другие параметры программы остаются на совести производителя.

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

Теперь об аббревиатурах GS и XG. Стандарт GS введен японской фирмой Roland. Первоначально этот стандарт назывался GSS и расшифровывался как General Synthesizer System. Позже от трех букв остались только две и они расшифровываются чаще всего как General Synthesizer - Основной Синтезатор. GS - это расширение стандарта GM в сторону увеличения количества банков, а соответственно, и количества инструментов, хранящихся в памяти. Причем GS-устройства полностью совместимы с GM, т.е. стандартные MIDI-файлы всегда проигрываются без проблем. Наращивание количества программ происходит в виде добавления вариаций основного банка. Это означает, что в GS-синтезаторе по прежнему будет инструмент номер 90 из набора GM под названием Warm pad, но у него будет пара вариаций 90/1 и 90/2, которые могут быть и совершенно не похожи на основной звук и будут размещены в других банках. При воспроизведении стандартного MIDI-файла банки с вариациями не будут доступны, если в файл не записать специальные MIDI-сообщения. Обычно GS синтезаторы имеют в постоянной памяти 200-400 программ и 6-9 ударных установок (хотя их может быть и больше).

Есть еще одно важное отличие GS от GM - это обязательное присутствие в синтезаторах, поддерживающих Roland"овский стандарт, отдельного процессора эффектов, который может обрабатывать инструменты двумя эффектами одновременно. Обычно это реверберация и хорус. Уровень эффекта регулируется индивидуально у каждого инструмента, но эффекты - общие для всех 16 MIDI-каналов. То есть, если вы обрабатываете на первом канале фортепиано холл-реверберацией, то на всех остальных каналах нельзя установить другой тип эффекта. Можно только поменять уровень "холла".

XG - это стандарт фирмы Yamaha, который появился относительно недавно. Он представляет собой дальнейшее расширение GM и GS в сторону увеличения количества банков и инструментов в памяти и количества эффектов. Расшифровывается эта аббревиатура как eXtended General MIDI - Расширенный General MIDI, и он тоже полностью совместим с GM. Таблица звуков организована точно так же, как и в стандарте GS, т.е. увеличение количества программ происходит при помощи увеличения количества банков с вариациями. Обычно в памяти XG-синтезаторов находится более 400 инструментов. Одновременно можно использовать три эффекта из имеющихся 64, причем 2 могут работать как в GS, сразу со всеми воспроизводимыми инструментами на 16 MIDI-каналах, а еще один можно присваивать любой из программ индивидуально. Выбор последнего эффекта очень богат - как минимум 42 возможных варианта. Кроме этого, в соответствии со спецификацией XG, любым из эффектов можно обрабатывать и внешние источники звука, подключенные к линейному входу. И GS и XG имеют не менее 32 голосов полифонии (чаще - 64) и 16-частную мультитембральность.