Появившаяся в начале восьмидесятых годов MIDI-технология вскоре получила новый импульс в связи с широким распространением персональных компьютеров. И хотя еще в 1991 году мне попалась какая-то статья, где почти со злорадством перечислялись ее недостатки и предсказывалась скорая кончина, до настоящего времени альтернативной идеи и альтернативной технологии создано не было.
Основными недостатками MIDI считаются низкая скорость передачи информации, узкий диапазон изменения параметров и ограниченная сфера применения. В то время как одно из главных ее достоинств — небольшой объем файлов — в последнее время уже потеряло решающее значение: цены на пишущие CD-приводы и “болванки” для записи становятся все доступнее. А с появлением широких возможностей по использованию при создании музыки готовых, заранее записанных музыкальных фраз с CD-качеством (всякие “лупы”, “сэмплы” и т.п.) многие “артисты” вообще решили, что таких проблем, как обучение нотной грамоте, владению инструментом, MIDI-технология и пр. для них не существует.
Следуя этой логике, запись музыки банальными нотами и диезами должна была уйти в небытие с появлением фонографа Эдисона. Вот когда настоящий прогресс пришел на смену устаревшей технологии и беспросветному консерватизму! Как подумаешь, что и Бах, и Шнитке пользовались одними и теми же пятью нотными линейками, то такие понятия, как “секвенсор” или “контроллер” уже не кажутся столь древними.
Однако если принять во внимание, что MIDI-технология изначально предназначалась не для записи или воспроизведения музыки, а только лишь для управления на некоем расстоянии (в пространстве и времени) синтезаторами, звуковыми модулями и прочими “железными” ящиками, то многие претензии к ней будут сняты. Это все
равно, что упрекать виолончель за плохое звучание во флейтовом регистре. Научись правильной аранжировке, а иначе и Ростропович не поможет!Итак, чтобы закончить мысль о достоинствах и недостатках MIDI, сделаем несколько предварительных выводов. Во-первых, MIDI-технология остается ведущей в компьютерной и аппаратно-студийной области. Во-вторых, она совершенствуется, учитывает новые требования и новые технические возможности. Об этом говорит последовательное появление стандартов GM, GS и XG. В-третьих, идея
оказалась настолько удачной, что MIDI-технология вовлекает в сферу своего влияния все новые и новые области, для которых она и не предназначалась, — управление магнитофонами, устройствами звуковой обработки, микшерскими пультами (не говоря уже о мультимедийных продуктах и компьютерных играх).Здесь же хочу затронуть еще одну близкую мне тему. В музыкальном обучении качество звучания уже не играет столь значительной роли, как в звукозаписи или концертной деятельности. Зато возможность воспроизводить изучаемый опус в любом темпе и (тут вокалисты и духовики должны затаить дыхание) в любой тональности делают MIDI-технологию незаменимой в музыкальных школах и училищах. Смешно сказать, но для этого достаточен 286-й компьютер со звуковой картой за 40 долл. Я думаю, недалеко то время, когда некий аппарат, подобными характеристиками станет распространенней метронома. А вместо толстых нотных сборников люди будут покупать дискеты с этюдами Черни или Шопена.
Когда ко мне приходит молодой человек с просьбой научить его работать с какой-нибудь программой, я предлагаю для начала пройти азы MIDI. Если до этого он уже записал пару треков на каком-нибудь секвенсоре, то его первая реакция: “Да это и так понятно”! Когда ему показываешь разницу между MIDI-файлом, “настуканным” (выражение грубое, но справедливое) одним пальцем в шаговом режиме, и аранжировкой, сделанной с учетом всех возможностей MIDI, он с энтузиазмом хватается за все доступные источники информации.
Здесь его подстерегают первые неприятности. В течение многих лет разные наши авторы пишут о MIDI в различных журналах, а иногда и в книгах. Это по-настоящему хорошо, потому что никакого другого учебника или пособия нет. Трудно судить о зарубежных изданиях, которые усиленно рекламируются в американских и английских музыкальных журналах. Переводить их — сплошное мучение из-за горючей смеси компьютерных, музыкальных и “жаргонно-тусовочных” терминов. Вполне возможно, что такой переводчик еще не родился.
О второй очереди неприятностей многие сразу и не догадываются. Дело в том, что эти пособия пишут не музыканты и преподаватели, а инженеры, программисты и дилеры. Не кажется странным, что учебник по теории музыки написан не Полом Маккартни или Владимиром Спиваковым, а скромным профессиональным педагогом. Я не думаю обижать или обвинять кого-нибудь из авторов. Спрос есть, и писать об этом надо. Но, к сожалению, и логика изложения, и форма, и прочие невинные педагогические приемы во всех материалах отсутствуют.
Рано или поздно об этом догадывается любой читатель. Он прочитывает страницу за страницей один раз, потом второй, третий… И, наконец, приходит к одному из трех выводов.
“Мне никогда этого не одолеть”, — решает он, и это порой справедливо. Сведения не систематизированы, изложены в произвольном порядке, отрывочны, и не все термины объяснены...
“Ну и черт с ним, проживу без этих премудростей”, — может подумать уставший читатель. И здесь я соглашусь — о смертельных исходах от незнания MIDI что-то пока не слыхать!
А если ему совсем не повезет, он решит, что нечего тратить время и деньги на книги и журналы, благо у всякой программы есть руководство и хэлп. И хотя я знаю книгу об одной популярной музыкальной программе, содержащую по пять-шесть ошибок на страницу в логике, фактах, в английском, а иногда и в русском языке — тут я с ним не соглашусь никогда.
Во-первых, эти руководства и хэлпы создают те же программисты с их “особенным” видением мира. Если бы этих руководств было достаточно, компьютерные отделы книжных магазинов не сияли бы такой глянцевой пестротой.
Во-вторых, ни в одном руководстве я не видел ничего похожего на фразу: “Здесь наша программа должна сделать то-то, но почему-то она этого не делает”. Столько полезного можно найти в журналах, что порой кажется, будто производители заранее договариваются с журналистами о том, какие они наделают “бяки” в программах, а уж писатели на радость читателям будут их на этом ловить.
На основании всего вышесказанного хочу обратиться к любому человеку, будь он музыкант, звукорежиссер, разработчик мультимедийных программ или простой любитель покопаться в музыкальных программах: MIDI-технология не устарела, не так уж и сложна и не будет тормозом в вашем творчестве — смелее!
В этом материале будут рассмотрены самые первые, и, пожалуй, самые главные темы — назначение MIDI и типы MIDI-сообщений.
MIDI — Musical Instrument Digital Interface — компьютерный протокол (иногда говорят — язык), предназначенный для связи одного музыкального устройства с другим. Оба эти устройства должны обладать любого вида микропроцессором или программой, которые поддерживают MIDI-протокол.
Рис. 1. Пример использования MIDI. На синтезаторе вы можете играть ноты, выбирать новый тембр инструмента, менять громкость, но сам он сейчас не звучит. Все перечисленные действия передаются по MIDI-кабелю (красного цвета) в виде команд на звуковой модуль. Последний выполняет все эти действия (звучат сыгранные ноты, меняется тембр и громкость) и выдает звук через обычные динамики. Красная стрелка показывает направление потока MIDI-сообщений |
Цель MIDI — управлять работой музыкального устройства не с его панели или клавиатуры, а на расстоянии (по MIDI-кабелю) — с другого устройства. Для этого второе устройство передает первому последовательность управляющих команд, которые называются MIDI-сообщениями.
Все, что вы делаете, управляя работой своего музыкального устройства (крутите ручки, нажимаете на кнопки, играете на клавиатуре), может передаваться в виде управляющих MIDI-сообщений на ваше устройство с другого MIDI-устройства.
Примечание 1. MIDI-сообщение передает не сам звук (аудиоинформацию) или какие-то его характеристики, а только управляющие команды, которые выполняются устройством-получателем.
Примечание 2. Сам процесс передачи MIDI-сообщения может осуществляться в реальном времени (во время исполнения или воспроизведения музыки), но может быть и разорванным во времени. В этом случае MIDI-сообщение записывается в виде файла на дискету или хард-диск компьютера, а потом считывается устройством-получателем.
Какие музыкальные устройства могут получать и принимать информацию по MIDI
Технология MIDI с самого начала была предназначена для связи между самыми различными устройствами (синтезаторами, звуковыми модулями, компьютерами, устройствами цифровой обработки звука и многими другими).
MIDI-устройство должно иметь:
По MIDI-кабелю (в отличие, скажем, от телефонного) информация передается всегда в одном направлении. Поэтому каждый MIDI-разъем используется только для одной цели в зависимости от его вида.
MIDI Out | MIDI-выход. Через этот разъем устройство посылает MIDI сообщение на другое устройство |
MIDI In | MIDI-вход. Через этот разъем устройство получает MIDI сообщение от другого устройства |
MIDI Thru | Сквозной. Через этот разъем посылается точная копия любого MIDI-сообщения, которое поступило на разъем MIDI In |
В качестве разъема для MIDI используется стандартный европейский 5-контактный разъем (рис. 2).
Рис. 2. MIDI-разъем. Контакт 2 — земля, контакты 4 и 5 — сигнальные, контакты 1 и 3 — не используются. |
Существует три вида MIDI-разъемов. Назначение каждого понятно из табл. 1.
MIDI-кабель соответственно должен иметь три провода, которые соединяют контакты 1, 4 и 5 на обоих его концах.
Всегда одно устройство передает MIDI-сообщение, другое получает. MIDI-кабель связывает разъем MIDI Out передающего устройства с разъемом MIDI In принимающего (рис. 1). Если вы хотите направить информацию в обратную сторону, вы должны соединить устройства по-новому (в соответствии с тем, что было сказано в предыдущем предложении) или использовать еще один кабель и, опять же, связать MIDI-выход одного устройства с MIDI-входом другого (рис. 3).
Рис. 3. По одному MIDI-кабелю синтезатор передает MIDI-сообщение на звуковой модуль. Затем (но не одновременно) по другому MIDI-кабелю этот модуль может послать свое MIDI-сообщение на синтезатор |
У любого устройства имеется только один MIDI-выход. Поэтому, если с него нужно посылать команды на два или несколько других устройств, используется разъем MIDI Thru. Тогда подключение устройств-приемников происходит последовательно (рис. 4). Но имеются, конечно, и специальные приборы, которые способны разветвлять MIDI-сообщения. Тогда нет необходимости в последовательном подключении MIDI-устройств.
Рис. 4. Компьютер посылает MIDI-сообщения для синтезатора и звукового модуля через свой MIDI-выход. Они оба поступают на MIDI-вход синтезатора, оба выходят через его разъем MIDI Thru. Синтезатор не может добавить никакую свою информацию, поэтому эти MIDI-сообщения в неизмененном виде поступают на MIDI-вход звукового модуля. Каждое из устройств-получателей само определяет, какие команды, находящиеся в MIDI-сообщениях, ему следует выполнять. Кривые линии красного цвета изображают MIDI-кабели, прямые линии красного цвета — схематический путь MIDI-информации |
Итак, первое — при подключении MIDI-устройств вы всегда должны учитывать направление передачи информации. Второе — при подключении третьего и следующих MIDI-устройств вы должны пользоваться разъемом MIDI Thru. Третье — передаваемая MIDI-информация аналогична управлению вашим синтезатором с помощью ручек, кнопок или клавиш.
Для того чтобы одно устройство могло понимать информацию, посланную другим устройством, язык MIDI имеет строгую формальную структуру. Вся информация передается в виде последовательности MIDI-сообщений.
MIDI-сообщение — это управляющая команда, использующая особый язык (протокол) MIDI.
MIDI-сообщение (как и любое компьютерное сообщение) записывается в битах, то есть выглядит как последовательность цифр 1 или 0 — 10011010 00101110… Но так как такая запись выглядит очень громоздкой, то для чтения и редактирования MIDI-сообщений применяется шестнадцатеричный способ записи иединица измерения — байт.
Записать число | ||
В байтах (в шестнадцатеричном виде) |
В байтах (в двоичном виде) |
В байтах (в десятичном виде) |
00 |
0000 0000 |
0 |
01 |
0000 0001 |
1 |
02 |
0000 0010 |
2 |
03 |
0000 0011 |
3 |
04 |
0000 0100 |
4 |
05 |
0000 0101 |
5 |
06 |
0000 0110 |
6 |
07 |
0000 0111 |
7 |
08 |
0000 1000 |
8 |
09 |
0000 1001 |
9 |
0A |
0000 1010 |
10 |
0B |
0000 1011 |
11 |
0C |
0000 1100 |
12 |
0D |
0000 1101 |
13 |
0E |
0000 1110 |
14 |
0F |
0000 1111 |
15 |
10 |
0001 0000 |
16 |
11 |
0001 0001 |
17 |
12 |
0001 0010 |
18 |
… |
… |
… |
FF |
1111 1111 |
127 |
Для того, чтобы быть понятным, MIDI-сообщение имеет четкую структуру. Эта структура зависит от типа MIDI-сообщения.
Все типы MIDI-сообщений делятся на две большие группы (рис. 5). Системные MIDI-сообщения (System message) передают команды, которые воздействуют на общие параметры и режимы работы всех устройств-получателей.
Рис. 5. Разделение всех типов MIDI-сообщений на две группы |
Примером системного сообщения может служить команда “Старт”, которая включает режим воспроизведения у любого секвенсора или магнитофона, находящегося в MIDI-связке.
Канальные MIDI-сообщения (Channel message) включают в себя номер MIDI-канала и передают сообщения на каждый MIDI-канал индивидуально. Всего для одного (и каждого) устройства MIDI-технология предусматривает 16 MIDI-каналов.
Представьте себе обычный многодорожечный магнитофон. На одну дорожку можно записать трубу, на другую — гитару и так далее. При воспроизведении мы слышим все записанные дорожки одновременно.
MIDI-каналы предназначены для того, чтобы один синтезатор или звуковой модуль мог играть несколькими разными тембрами одновременно, причем каждый тембр (инструмент) исполняет свою независимую партию.
Когда одно устройство передает канальные MIDI-сообщения на другое, внешне это выглядит так, как если бы они были соединены шестнадцатью кабелями (и по каждому следуют указания о том, какие ноты каким тембром играть).
Рис. 6. Разделение MIDI-сообщений на MIDI-каналы |
На самом деле MIDI-технология использует один кабель, но в каждое канальное MIDI-сообщение вписывается номер MIDI-канала, для которого оно предназначено. Устройство-получатель, пользуясь этим номером, направляет каждое канальное MIDI-сообщение на свой канал (рис. 6).
Канальные
MIDI-сообщения можно разделить по типам их структуры и по их целям. В последнем случае имеются две группы MIDI-сообщений: голосовые (Voice message) и режимные (Mode message).Рис. 7. MIDI-сообщения из группы Channel. Все режимные сообщения по типу (а не по функциям, как они разделены на этом рисунке) являются MIDI-сообщениями типа Control Change, поэтому изображены одним цветом и обведены пунктиром |
Голосовые сообщения несут информацию о нотах, тембре и других характеристиках, которые должно учитывать устройство-получатель для конкретного MIDI-канала.
Режимные сообщения тоже делятся на две группы. Первая группа воздействует на конкретный MIDI-канал (эти сообщения устанавливают канал в состояние по умолчанию — сбрасывают все ноты, настраивают канал на стандартную высоту звука и пр.).
Сообщения второй режимной группы воздействуют на все MIDI-устройство в целом, другими словами, устанавливают режим его работы.
В отличие от канальных сообщений все MIDI-сообщения группы
System message принадлежат одному типу (то есть имеют одинаковый статус). Это можно увидеть и на рис. 7.Но по своему функциональному назначению их делят на три подгруппы (рис. 8). К первой из них (System Real Time) относятся сообщения, связанные с синхронизацией работы двух MIDI-устройств.
Рис. 8. MIDI-сообщения из группы System message (подгруппы показаны разным цветом, но по статусу принадлежат к одному типу — Control Change) |
Во второй подгруппе (System Common) находятся сообщения, которые одинаково воспринимаются всеми MIDI-устройствами. Поэтому они и называются “общими”. Эта группа просто собрана из различных MIDI-сообщений, и между ними нет никакой логической связи.
Сообщения третьей группы (System Exclusive) являются одними из самых важных и самых неформализованных в MIDI-технологии. Они носят название “эксклюзивные”, потому что содержание данных определяется для каждого MIDI-устройства своей фирмой-производителем и не может быть распознано устройством другой модели или фирмы. Среди этих сообщений могут быть команды о настройке всего устройства целиком или отдельных его модулей. Другие сообщения управляют процессом передачи данных сэмплов или каких-то специальных файлов (Sample Dump, File Dump).
Каждое MIDI-сообщение (кроме System Exclusive) состоит из одного, двух или трех байтов (рис. 9). Первый байт содержит информацию о типе MIDI-сообщения — Status byte (иногда называют Status Bar). Этот байт определяет тип сообщения, и затем, в зависимости от типа, устройство-получатель будет перерабатывать другие байты этого MIDI-сообщения в соответствующую команду.
Некоторые MIDI-сообщения (например, Program Change) не имеют второго байта данных.
Если MIDI-сообщение является канальным, то его первый байт (кроме статуса) содержит номер MIDI-канала. Второй и третий байты MIDI-сообщения называются Байт данных 1 (Data byte 1) и Байт данных 2 (Data byte 2). Байты данных содержат конкретную информацию, которую несет это MIDI-сообщение. Например, для сообщения “Взять ноту” Байт данных 1 указывает, какую именно ноту, а Байт данных 2 — с какой громкостью.
Рис. 9. Возможные виды MIDI-сообщений группы Channel message |
Сообщения типа System Exclusive могут содержать большое количество байтов данных (рис. 10).
Рис. 10. Возможные виды MIDI-сообщений типа System message |
А MIDI-сообщения типа System Real time содержат только Status byte.
Как уже отмечалось, тип MIDI-сообщения определяется по его статус-байту. В табл. 2 показаны различные значения статус-байта и соответствующие типы сообщений.
Итак, MIDI-информация, которую одно устройство передает другому, может быть в форме какого-либо из этих восьми типов. Некоторые из них понятны без комментариев (нажатие и снятие ноты), другие нуждаются в небольших пояснениях.
Любое MIDI-устройство не обязано посылать или отрабатывать обязательно все типы сообщений. Каждая фирма-производитель исходит из соображений целесообразности. Из этого следует, что различные MIDI-устройства, например синтезаторы, в одинаковых условиях могут вести себя по-разному (хотя с этим идет борьба). Самые простые домашние синтезаторы (с уменьшенными клавишами) не воспринимают, например, силу удара по клавише — громкость можно менять только ручкой и для всего инструмента сразу. Это напоминает игру на
аккордеоне, только у него громкость зависит от величины разведения мехов.Для чего, кому, и в каком объеме нужно разбираться в MIDI-технологии? Если вы принесли из магазина синтезатор, включили его, и он заиграл — то, возможно, никаких знаний и не потребуется. Кстати, такова цель любого производителя.
Знания нужны или потому, что что-то не работает (а может быть оно, кстати, и не должно работать), или для того, чтобы применить их в каком-то творческом процессе. Во втором случае вам придется подробней разобраться в тонкостях MIDI-технологии, но, конечно, в рамках необходимости. Абсолютно сведущих специалистов, возможно, вообще нет, так как процессом развития этой области занимаются многие фирмы в разных концах земного шара.
Для иллюстрации же первого случая разберем простой пример. Посмотрите еще раз на рис. 1. Вы правильно соединили проверенным MIDI-кабелем два устройства (то есть MIDI Out синтезатора с MIDI In звукового модуля), а звука в колонках нет, хотя демонстрационные пьесы самого модуля играют. И сам по себе синтезатор тоже играет. Налицо факт отсутствия понимания между устройствами.
Проверяем у синтезатора:
Некоторые MIDI-устройства и компьютерные программы имеют кнопку Reset или Panic, которая устанавливает все параметры в значения по умолчанию. Если она имеется, воспользуйтесь ею.
Проверяем у звукового модуля:
Возможна еще одна причина непонимания. Поиграйте в середине клавиатуры. Возможно, какой-нибудь тембр звукового модуля и не должен звучать очень высоко или очень низко.
Все это верно и при подключении синтезатора к компьютеру, только в роли звукового модуля будет выступать установленная на компьютере программа.
И последнее. На стандартном синтезаторе колесико или рычажок слева от клавиатуры посылает MIDI-сообщения типа Pitch Bend (изменение высоты звука). Колесико или рычажок, называемый Modulation, посылает сообщение Control Change (см. рис. 9, первый байт данных равен единице, что и означает модуляцию, второй байт равен глубине модуляции). Ручка или движок громкости тоже посылает сообщение Control Change (первый байт данных равен семи, что означает громкость, второй байт сообщает о силе громкости).
Кнопки или ручки, меняющие громкость, посылают MIDI-сообщение типа Program Change (оно имеет только первый байт данных — номер тембра).
Таблица 2. Определение типа MIDI-сообщения по статус-байту
Группа MIDI-сообщений | Status byte | Тип MIDI-сообщения | Пояснение | |
Channel | 8 | Note Off | Снятие ноты | |
9 | Note On | Взятие ноты | ||
A | Aftertouch Poly (Polyphonic Key Pressure) | Контроллер Aftertouch, который влияет на отдельную ноту | ||
B | Control Change | Контроллер для изменения какого-нибудь параметра MIDI-канала | ||
C | Program Change | Номер тембра для MIDI-канала | ||
D | Aftertouch Channel (Channel Pressure) | Контроллер Aftertouch, который влияет на все ноты MIDI-канала | ||
E | Pitch Bend | Относительное изменение высоты звука (влияет на все ноты MIDI-канала) | ||
System | F | System | Real Time | Сообщения, которые передаются не для отдельного MIDI-канала, а для всего устройства или группы устройств |
Common | ||||
Exclusive |
И, конечно, все эти сообщения имеют в статус-байте букву — E, B, B и С соответственно — и номер MIDI-канала (см. рис. 9 и табл. 2).