Что такое Интерфейс MIDI.

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

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

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

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

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

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

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

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

Формат MIDI очень удобен ещё и тем что, размер файлов этого формата на несколько порядков меньше оцифрованного звука.

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

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

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

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

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

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

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

В этом значении формат MIDI сравним с файлами, содержащими текстовую информацию.

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

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

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

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

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

Почти всегда пользователю не нравится звучание синтезатора-секвенсора, установленного по умолчанию на его компьютере со встроенной звуковой картой. Объясняется это качеством семплов в его коллекции звуков.

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

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

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

______________________


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

Musical Instrument Digital Interface (MIDI)

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

Musical Instrument Digital Interface (MIDI) - цифровой интерфейс музыкальных инструментов. Стандарт на интерфейс создан ведущими производителями музыкальных инструментов: Yamaha, Roland, Korg, E-mu и др.

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

MIDI-интерфейс - это старт-стопный последовательный асинхронный интерфейс "токовая петля".

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

В последовательном интерфейсе двоичные данные передаются не одновременно, а поочередно (последовательно).

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

Структура элементарного MIDI-сигнала

Активный передатчик формирует токовую посылку с силой тока 5 мА. Токовая посылка соответствует логическому нулю, бестоковая - логической единице. Структура элементарного MIDI-сигнала (рис. 1.1) характеризуется следующими признаками: 7 битов данных, один бит (старший) статусный, один бит старта, один бит стопа. Проверка на четность отсутствует.

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

Рис. 1.1.Структура элементарного MIDI-сигнала:

Пропускная способность MIDI-канала 3,125 кбайт/с. Команды могут быть одно-, двух- и трехбайтными. Первый байт - статусный. Он определяет действие команды. За ним могут следовать 1 - 2 байта данных. Старший бит статусного байта 1, а байта данных - 0.

Соединительные MIDI-разъемы и MIDI-кабель

Полноценное MIDI-устройство имеет три соединительных разъема: MIDI In (вход), MIDI Out (выход) и MIDI Thru (на разъем MIDI Thru через буфер ретранслируется копия сигнала, поступающего с внешнего MIDI-устройства на вход MIDI In). Все разъемы - пятиконтактные. Контакты 4 и 5 - сигнальные, контакт 2 - экран. Полярность сигналов определяется относительно источника тока: контакт 4 - плюс (ток вытекает из вывода), контакт 5 - минус (ток втекает в вывод). Таким образом, для разъемов MIDI Out и MIDI Thru назначение контактов одно и то же, для разъема MIDI In - обратное.

Рис. 1.2. Схема распайки разъемов MIDI-кабеля:

Для соединения используется двужильный экранированный кабель. Соединение разъемов на двух концах кабеля - прямое (2-2, 4-4, 5-5). Схема распайки разъёмов MIDI-кабеля представлена на рис. 1.2.

Принцип соединения MIDI-устройств

Принцип соединения двух MIDI-устройств показан на рис. 1.3. Контакт передатчика, с которого во внешнюю цепь снимается сигнал, называется MIDI TXD (Transmitter Data). Контакт приемника, на который из внешней цепи должен поступать сигнал, - MIDI RXD (Receiver Data).

Рис. 1.3. Принцип соединения двух MIDI-устройств:

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

Стандартом предусмотрено, что в сети MIDl-устройств в одно и то же время только одно из них может быть передатчиком MIDI-сообщений, а все остальные - только приемниками. Один MIDI-передатчик допускает подключение до четырех приемников. На рис. 1.4 представлен вариант подключения MIDI-устройств к MIDI-интерфейсу звуковой карты, установленной в компьютер.

Рис. 1.4. Подключение MIDI-устройств к звуковой карте:

MIDI-сигналы в разъеме игрового порта звуковой карты

Следует заметить, что у звуковых карт, как правило, отсутствуют стандартные MIDI-разъемы. Это связано с тем, что габариты не позволяют разместить их в прорезях на задней стенке компьютера, предназначенных для закрепления плат расширения. "Полуфабрикаты" MIDI-сигналов (MIDI RXD и MIDI TXD) выводятся на контакты разъема игрового порта (рис. 1.5).

Для правильной ориентации в номерах контактов нужно учесть, что разъем показан таким, каким он представлялся бы наблюдателю, сидящему внутри компьютера. Не очень удобная точка наблюдения, но именно ей соответствует рисунок, обычно приводимый в описании звуковой карты. Чтобы не запутать вас, на рис. 1.5 мы не стали менять направления взгляда.

Рис. 1.5. Назначение некоторых контактов разъема игрового порта:

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

  • 4, 5 - соединенные с общим проводом блока питания компьютера или, как иногда говорят, с корпусом, с землей (на схемах это соединение обозначают GND);
  • 1, 8, 9 - соединенные с выводом +5 В источника питания компьютера;
  • 15 - на который из внешних цепей должен поступать сигнал MIDI RXD (Receiver Data);
  • 12 - с которого во внешнюю цепь снимается сигнал MIDI TXD (Transmitter Data).
Наличие контактов 12 и 15, а также соответствующих им сигналов позволяет производителям и продавцам утверждать, что данная звуковая карта снабжена интерфейсом MIDI. Однако на деле сигналы MIDI TXD и MIDI RXD следует рассматривать как полуфабрикаты настоящих MIDI-сигналов. С их помощью можно принимать и передавать информацию, представленную стандартными для компьютеров значениями напряжения (говорят, уровнями транзисторно-транзисторной логики - TTL). И даже если заменить один из пятиконтактных разъемов MIDI-кабеля на разъем, соответствующий тому, что изображен на рис. 1.8, то подключить через этот кабель синтезатор к звуковой карте не удастся. Дело в том, что сигнал MIDI TXD не будет правильно восприниматься светодиодом, с помощью которого в интерфейсе MIDI передают полезные сигналы и прерывают гальваническую связь MIDI-устройств друг с другом.

Для подключения звуковой карты к MlDI-устройствам необходим переходной кабель-адаптер, содержащий оптронную развязку. При соединении MIDI-устройств нужно придерживаться несложного правила: кабель не должен соединять одноименные разъемы двух устройств, т. е. нельзя соединять MIDI Out одного устройства с MIDI Out другого, также MIDI In с MIDI In. Однако если вы случайно ошиблись, ничего страшного не случится: в схеме MIDI-интерфейса есть необходимая защита.

А вот один кабель или два следует протягивать между MlDI-устройствами, зависит от того, что это за устройства и в каких целях они используются.

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

Подключение к звуковой карте MIDI-клавиатуры и MIDI-синтезатора

Вернемся к вопросу о подключении MIDI-клавиатуры к звуковой карте (рис. 1.6). Действительно, сделать это очень просто: в гнездо MIDI Out клавиатуры вставьте вилку MIDI In адаптера, а 15-контактный разъем MIDI-адаптера соедините с разъемом игрового порта, расположенным на звуковой карте. MIDI-клавиатура здесь будет играть роль ведущего MIDI-устройства, а звуковая карта - ведомого.

Рис. 1.6. Подключение MIDI-клавиатуры к звуковой карте:

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

При проигрывании композиции внешний синтезатор с клавиатурой можно использовать как дополнение к звуковой карте и извлекать из него звуки тех инструментов, которые отсутствуют в палитре звуковой карты. Для реализации этой возможности выход MIDI Out адаптера следует соединить со входом MIDI In синтезатора (рис. 1.7).

Рис. 1.7. Схема подключения внешнего синтезатора к звуковой карте:

Решение проблемы самовозбуждения MIDI-системы

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

Из рис. 1.7 следует, что оба устройства - и звуковая карта и синтезатор - одновременно оказываются и MIDI-приемниками и MIDI-передатчиками. Это недопустимо. Тривиальный выход - отключить второй кабель на время использования синтезатора в качестве MIDI-клавиатуры и подключить его при воспроизведении записанной ранее мелодии, - крайне неудобен. Все эти отключения, подключения, поверьте, кончатся плохо. Проще и безопасней для аппаратуры и вашего кошелька выполнить необходимую коммутацию на логическом уровне. Делается это или непосредственно в синтезаторе (выключателем Local Off), или в музыкальном редакторе.

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

1. Вы нажимаете на синтезаторе клавишу, синтезатор воспроизводит соответствующую ноту.
2. MIDI-сообщение типа Note On (см. разд. 1.2.1) поступает в звуковой редактор.
3. В звуковом редакторе, благодаря ретрансляции MIDI-сообщений, это же сообщение передается на входной порт синтезатора.
4. Синтезатор, получив сообщение Note On, отрабатывает его, воспроизводя соответствующую ноту (заметьте, уже не в первый раз).
5. В синтезаторе тоже работает ретрансляция MIDI-сообщений (можно ли ее отключить и как это сделать - ищите в руководстве пользователя), поэтому дальше см. п. 2.

Чтобы разорвать эту цепочку, следует отключить ретрансляцию MIDI-сообщений или в синтезаторе, или в программе (как правило, в музыкальных редакторах эта опция по умолчанию включена). В Cubase SX следует поступить так: откройте меню File , выберите команду Preferences . Откроется диалоговое окно Preferences . В дереве, находящемся в левой части окна, выберите ветвь MIDI. На открывшейся вкладке MIDI сбросьте флажок MIDI Thru Active . Теперь зацикливания не будет. Убедиться в этом можно, нажав ОК , после чего диалоговое окно Preferences закроется. Можно также нажать кнопку Apply , окно Preferences останется открытым, а изменения, внесенные вами, будут применены.

При сброшенном флажке MIDI Thru Active теряется возможность использовать внешний синтезатор в качестве MIDI-клавиатуры для управления встроенным синтезатором звуковой карты.

Что такое MIDI, и чем такие файлы отличаются от Wave-файлов

Что такое MIDI

Стандарт MIDI (акроним от Musical Instruments Digital Interface, в буквальном переводе - цифровой интерфейс музыкальных инструментов) представляет собой «язык», на котором «общаются» MIDI-совместимые устройства. Иными словами, этот стандарт описывает определённые сообщения (двоичные команды), которыми могут обмениваться различные MIDI-устройства.

Ключевой особенностью интерфейса MIDI является то, что с его помощью устройства обмениваются именно логическими командами, и никакого отношения к передаче звука как такового MIDI не имеет .

Пример Рассмотрим взаимодействие двух устройств: MIDI-клавиатуры и синтезатора звуков. При нажатии на MIDI-клавиатуре клавиши, соответствующей, к примеру, ноте ЛЯ третьей октавы, MIDI-клавиатура даст синтезатору команду «начать воспроизведение ноты ЛЯ третьей октавы». Когда клавиша будет отпущена, клавиатура, послав другое сообщение, прикажет синтезатору прекратить воспроизведение ноты ЛЯ третьей октавы. При этом звук, издаваемый синтезатором, будет различаться в зависимости от конкретной последнего и его настроек. По MIDI же, подчеркну, передаются только команды и никакого звука.

Следует заметить, что потенциальная сфера применения MIDI не ограничивается только музыкальными инструментами. С таким же успехом можно управлять, например, светомузыкальным оборудованием, а при большом желании - даже промышленными роботами. :)

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

Модификации MIDI

Существует ряд модификаций стандарта MIDI:

  • GM (General MIDI),
  • GS (General Standard),
  • XG (eXtended General).

Каждая из них, помимо основных MIDI-сообщений (одно из которых рассмотрено в примере чуть выше), описывает количество и конкретный набор инструментов (тембров), которые обязательно должны поддерживаться устройством, совместимым соответственно с GM, GS или XG. Фактически эта характеристика имеет смысл только применительно к синтезаторам звуков и означает, что синтезатор с поддержкой, например, GM должен уметь воспроизводить звук любого из 128 предусмотренных спецификацией инструментов. Каждому инструменту соответствует строго определённый номер. Кроме того, MIDI-устройства должны обладать строго определённым количеством независимых MIDI-каналов, каждому из которых может быть назначен свой тебмр и соответствовать собственная последовательность MIDI-событий. Смена тембра, аналогично началу и окончанию воспроизведения ноты, производится также после получения MIDI-синтезатором уникального MIDI-сообщения. Таким образом, обеспечивается схожее звучание одного и того же MIDI-файла на разных MIDI-синтезаторах с поддержкой одного и того же стандарта.

Например, любой синтезатор с поддержкой GM обладает следующими возможностями: 16 каналов, каждому из которых может быть назначен собственный тембр (инструмент). Выбрать тембр можно произвольным образом по его номеру из совокупности определённых стандартом GM тембров, включающих 128 как живых, так и синтезированных инструментов, куда входят фортепиано, гитара, струнные, флейта и др. Кроме того, можно использовать как минимум один набор ударных звуков.

Предусмотрен также ряд так называемых MIDI-контроллеров, позволяющих влиять на характер звучания воспроизводимой синтезатором музыки: например, при помощи серии событий контроллера Pitch можно плавно или резко (зависит от вашего желания и целей) изменять высоту звука, при помощи контроллера Expression - изменять громкость звучания на каждом из 16-ти каналов в отдельности, с помощью контроллера Pan устанавливать любой сдвиг MIDI-канала в стереопанораме и т. д. Существуют также контроллеры, не оговорённые стандартом и являющиеся специфичными для отдельных моделей синтезаторов, однако их использование чревато несовместимостью с другими MIDI-устройствами, которые попросту «не поймут» незнакомые команды.

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

Отличия формата MIDI от формата Wave

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

Проблемы качества звучания MIDI-файлов

Характер звучания результата синтеза может различаться весьма существенно при использовании различных синтезаторов. В этой связи полезно будет рассмотреть основные из существующих типов синтеза звука, к каковым можно отнести:

  • собственно синтез по неким математическим зависимостям;
  • Wave-синтез (сэмплирование), т. е. синтез звука на основе заранее оцифрованных звуковых фрагментов (сэмплов).

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

Несколько позднее был разработан новый, гораздо более эффективный метод - Wave-синтез, который и используется в подавляющем большинстве современных синтезаторов. Принцип, лежащий в его основе, достаточно прост: заранее оцифрованные звуковые фрагменты просто воспроизводятся на разной скорости, что и позволяет получать звуки разной высоты. Задача отвечающего за синтез процессора в этом случае несоизмеримо проще, нежели при синтезе звуковых волн по сложным зависимостям. Качество же результирующего звука при этом определяется, главным образом, качеством исходного звукового фрагмента, которое может быть сколь угодно высоким. Синтезаторы, работающие по описанному принципу, называют сэмплерами (от англ. sampler), а используемые в качестве основы для синтеза звуковые фрагменты - сэмплами (samples).

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

Улучшение качества звучания MIDI-файлов

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

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

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

Вероятно, здесь и находится грань, разделяющая слушателя и музыканта - у них просто разные цели. И если для слушателя на одном из первых мест универсальность, присущая конкретным стандартам, то для музыканта целью является результат, максимально качественный, максимально соответствующий его творческим замыслам. Последнее невозможно без точного подбора уникального сочетания инструментов, что недостижимо в рамках, к примеру, GM хотя бы потому, что звуки разных GM-совместимых синтезаторов различаются. В руках же музыканта 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-данные (например, ритм сердца - в темп песни).

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

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

Слова

FF 05 len text

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

Отметим, что величина len представляется в виде значения переменной длины.

Маркер

FF 06 len text

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

Отметим, что величина len представляется в виде значения переменной длины.

Точка входа Cue Point

FF 07 len text

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

Отметим, что величина len представляется в виде значения переменной длины.

Канал MIDI

FF 20 01 cc

Это необязательное мета-событие обычно располагается в начале MTrk сообщения перед первой ненулевой временной меткой и перед первым мета-событием, исключая мета-событие номера последовательности. Мета-событие «канал MIDI» устанавливает значение MIDI-канала с которым будут связаны все последующие мета-события и события SYSEX. Байт данных cc - это номер MIDI-канала, величине 0 соответствует первый канал.

Спецификация MIDI не предусматривает указание номера канала для SYSEX событий и мета-событий. Если создается файл типа 0, то все SYSEX события и мета-события находятся на одном треке и затруднительно распределить эти события между соответствующими канальными (голосовыми) сообщениями (например, если вы хотите обозначить партию канала 1 как «Флейта соло», а партию канала 2 как «Труба соло», то вам придется использовать два мета-события «Имя трека» для введения этих названий, но поскольку оба этих трека расположены на одном канале, то перед первым мета-сообщением имени трека необходимо поместить мета-сообщение «канал MIDI», в котором указать номер соответствующего канала, а перед вторым мета-сообщением имени трека поместить мета-сообщение канала MIDI с указанием номера второго канала.

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

Порт MIDI

FF 21 01 pp

Это необязательное событие, которое как правило располагается в начале записи MTrk перед первым ненулевым временем дельта и перед первым MIDI-событием, которое определяет, с каким MIDI-портом (или устройством) связаны события данного MTrk сообщения. Байт данных pp - это номер порта, нулевому значению pp соответствует первое MIDI-устройство в системе.

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

Поддержите проект — поделитесь ссылкой, спасибо!
Читайте также
Геометки в Instagram: зачем они нужны Геометки в Instagram: зачем они нужны Автоматизированная система ирбис, разработка и использование Установка и настройка «ирбис» Автоматизированная система ирбис, разработка и использование Установка и настройка «ирбис» Как включить гироскоп на андроиде Информация о типе громкоговорителей и поддерживаемых устройством аудиотехнологиях Как включить гироскоп на андроиде Информация о типе громкоговорителей и поддерживаемых устройством аудиотехнологиях