MIDI - цифровой интерфейс музыкальных инструментов(music instrumental digital interface) - был разработан в 1982 году по инициативе нескольких ведущих
производителей музыкальных инструментов - Yamaha, Roland, E-mu, Korg и др. Необходимость такого интерфейса была вызвана прежде
всего тем, что выпускалось все больше автоматических устройств - ритм-машин и секвенсоров; первые по заданной программе
выдавали ритмическое сопровождение с нужным рисунком, вторые использовались для запоминания сыгранных партий с целью
последующего автоматического воспроизведения. Кроме этого, большой интерес представляло создание "электронного оркестра",
когда один исполнитель мог бы заставить одновременно звучать несколько инструментов, используя только одну или две клавиатуры.
Поскольку универсального способа соединения разнородных устройств тогда не было, каждый производитель сам разрабатывал
способ соединения (интерфейс) и обеспечивал совместимость только внутри определенной серии своих инструментов. Необходим был
единый интерфейс, который позволил бы соединять друг с другом инструменты различных производителей и моделей, с единым
способом управления процессом извлечением звука и его параметрами. В результате был создан и принят в качестве общемирового
стандарта интерфейс MIDI, устанавливающий как способ соединения инструментов - разъемы, кабели, электрические сигналы
(аппаратная часть) так и способ их общения между собой (информационная часть).
Основная идея MIDI состоит в том, что это - событийно-ориентированный интерфейс, по которому передаются сообщения ,
информирующие о наступлении различных событий в реальном времени. Когда исполнитель ударяет по клавише или, наоборот,
отпускает ее, усиливает или ослабляет давление на нажатую клавишу, переключает тумблеры или поворачивает регулятор на панели
управления, давит на педаль - инструмент преобразует каждое из этих действий в соответствующее сообщение, которое в
закодированном виде отправляется по интерфейсу. Сообщения генерируются и отправляются достаточно быстро - 1000..1500 в секунду,
поэтому они весьма точно описывают не только сами действия исполнителя, но и его индивидуальную манеру игры. Другие
инструменты, подключенные к этому же интерфейсу, могут воспринимать эти сообщения и отрабатывать их так же, как будто
исполнитель воздействует на их собственные органы управления - именно так и реализуется упомянутый "электронный оркестр". По
MIDI можно соединить практически любое количество инструментов, и все они могут обмениваться сообщениями друг с другом.
Кроме сообщений, непосредственно отражающих действия исполнителя, по MIDI передается и множество других сообщений.
Например, сообщения типа Clock (часы) передаются с частотой 6 раз на каждую четвертную долю и служат для синхронизации с
инструментами, автоматически выдающими ритм или аккомпанимент, а также с устройствами записи. Сообщения типа MMC (MIDI
Machine Control - управление MIDI-машинами) служат для запуска и остановки ритм-блоков: например, музыкант, отыграв вступление,
нажатием педали посылает сообщение Start, которое получает ритм-блок и начинает играть сопровождение, которое может быть
приостановлено и запущено вновь повторными нажатиями педали. Перед начало исполнения инструменты могут обмениваться
служебными сообщениями, "договариваясь" о режимах работы, используемых тембрах или видах звуковых эффектов.
Благодаря MIDI создалась возможность не только объединения нескольких "полных" - то есть содержащих и клавиатуру, и блок синтеза
звука - инструментов, но и разделения их на функционально независимые части - устройства ввода (контроллеры), обработки
(процессоры) и синтеза звука (тонгенераторы). MIDI-контроллеры существуют в виде клавиатур, педалей, дыхательных (breath)
датчиков, и даже гитар, скрипок или флейт, причем последние три вида - не какие-нибудь электронно-кнопочные, а самые обычные
инструменты, игра на которых при помощи датчиков и анализаторов преобразуется в поток MIDI-сообщений, по которому
специальные синтезаторы могут весьма натурально воспроизвести исполнительские нюансы. Тон-генераторы представляют собой
"черные ящики", к которым подключается только MIDI-кабель и кабель усилителя - звук они издают только по MIDI-командам. А в
качестве процессора чаще всего используется компьютер - Atari, Amiga, Macintosh или IBM PC.
Способ представления музыки в MIDI оказался настолько удобным и популярным, что уже в середине 80-х практически не
выпускалось инструментов без его поддержки, а в новых операционных системах - в том числе Windows и OS/2 он был реализован в
качестве одного из стандартных элементов ОС. Это очень важно, так как позволяет создавать программы, работающие только со
стандартными системными функциями посылки и приема сообщений, а преобразование этих функций в команды конкретной
интерфейсной или звуковой карты выполняется драйвером - специальной программой из комплекта карты. Таким образом, однажды
разработанная программа заведомо будет работать с любой интерфейсной или звуковой картой и любым внешним инструментом.
Реализация MIDI в Windows и OS/2 использует понятие порта , эквивалентного разъему на обычном "железном" инструменте. Все
сообщения, направляемые в порт вывода (MIDI Out), воспринимаются ответственным за него драйвером и либо пересылаются на
реальный интерфейс, оканчивающийся настоящим разъемом, либо преобразуются в команды для встроенного синтезатора звуковой
карты, либо отрабатываются самим драйвером, который в этом случае работает как имитатор синтезатора, самостоятельно создавая
цифровой звук одним из методов синтеза и выводя его уже через звуковой канал обычной звуковой карты или даже на встроенный
динамик-пищалку. Соответственно, все сообщения, приходящие по реальным кабелям на интерфейсную карту, воспринимаются ее
драйвером и направляются в порт ввода (MIDI In), откуда могут быть считаны любой программой. Существуют также драйверы, не
связанные с реальным оборудованием, предназначенные для создания "виртуальных MIDI-кабелей", соединяющих различные порты
прямо внутри системы. В совокупности все это сильно напоминает сеть - а MIDI-интерфейс, по сути, как раз и позволяет создавать сети
из музыкальных инструментов.
Практически каждая звуковая карта сейчас содержит хотя бы внешний MIDI-интерфейс, к которому через специальный адаптер может
подключаться любое количество MIDI-инструментов (в том числе - и другой компьютер с подобным адаптером). При установке таких
карт в системе порождается два MIDI-порта - Ext In и Ext Out (или с подобными названиями). Если карта допускает установку дочерней
платы-синтезатора, которая, по существу, является ни чем иным, как звуковым модулем синтезатора "в чистом виде" - для общения с
такой платой обычно используются те же порты (в основном - только Out, ибо большинство дочерних плат не умеет генерировать
сообщений), и при посылке сообщений в этот порт будут одновременно звучать как дочерняя плата, так и внешний инструмент.
Некоторые карты имеют раздельные интерфейсы для дочерней карты и внешнего инструмента - в этом случае MIDI-портов в системе
будет больше.
Для карт со встроенным FM-синтезатором (которых опять же большинство) в системе появляется его собственный порт - с именем FM
Synth, OPL-3 Music Synthesizer, или подобным; для карт с более мощным синтезатором, которые я называю комбинированными,
появляется порт с именем вроде Wavetable Synth, Advanced Wave Effects и т.п. Сообщения, направляемые в эти порты, не выходят за
пределы компьютера - они сразу же направляются на встроенные синтезаторы карты.
Благодаря системе портов в систем несложно создать специальные виртуальные MIDI-устройства, которые обрабатывают проходящие
через них сообщения - например, разделяют ноты, пришедшие с одной MIDI-клавиатуры, на две или более областей, направляя каждую
область в свой канал порта вывода, что позволяет играть на одной клавиатуре в две или четыре руки разными тембрами, или
преобразуя каждую ноту в аккорд, добавляя к ней дополнительные ноты.
Однако наиболее плодотворное использование MIDI получается не при живой игре, а путем применения секвенсоров - независимых
устройств или компьютерных программ, способных запоминать все приходящие сообщения (разумеется, с сохранением их временных
положений), а затем многократно воспроизводить по команде. Такая система подобна механическому пианино, в котором при игре на
клавишах пробиваются отверстия в перфоленте, а затем по этой же перфоленте пианино может довольно точно "сыграть"
произведение. По сути, секвенсор записывает ничто иное, как партитуру исполняемого произведения в виде, напоминающем
программу для станка с ЧПУ или компьютера. За исключением того, что каждая нота записывается парой сообщений - о нажатии и об
отпускании клавиши - такая запись почти не отличается от обычной нотной.
Первые секвенсоры выпускались в виде самостоятельных устройств, затем их стали включать в состав инструментов, получая рабочую
станцию композитора, арранжировщика и исполнителя, а сейчас наиболее популярны компьютерные секвенсоры - например,
Cakewalk для IBM PC и Cubase для IBM PC и Atari. С их помощью можно записать каждую партию на отдельную дорожку, подправить
неточно сыгранные ноты или динамику перемещения рукояток, выборочно заглушать отдельные дорожки или, наоборот, отдельно
слушать соло каждой дорожки, транспонировать, сдвигать, менять длительность и динамику как на уровне отдельных нот, так и фраз,
партий или всего произведения целиком. Многооконный интерфейс отображает партитуру в различных представлениях - как
традиционном нотном, так и в виде списка MIDI-сообщений или схематичном звуковысотном виде. Современные секвенсоры имеют и
ряд возможностей звуковой студии, позволяя записать на отдельные дорожки цифровой звук - голос певца или игру на акустической
гитаре - с последующим редактированием уже на уровне звуковой волны.
Важно понимать, что с точки зрения обмена MIDI-сообщениями совершенно неважна физическая реализация передатчика и
приемника - имеет значение лишь смысл команд и направление передачи сообщений. Под словами "инструмент" и "синтезатор" могут
пониматься как традиционные инструменты с клавиатурой или тонгенераторы, подключенные ко внешнему интерфейсу кабелями, так
и встроенные синтезаторы звуковых карт, программные имитаторы или устройства обработки. К тому же устройство, имеющее
способность издавать звук, не всегда будет делать это при получении сообщений - например, оно может быть настроено только на их
пропускание сквозь себя или запоминание во внутренний блок памяти.
Еще нужно подчеркнуть, что по MIDI не передается звук - по нему передаются только сообщения, при получении которых инструмент
может его издавать. Иначе говоря, соединив инструмент и компьютер MIDI-кабелями, вы только обеспечиваете "электронный" способ
управления им; звук же по-прежнему снимается со звукового выхода инструмента. Это говорит еще и о том, что сам характер звука -
набор тембров, их окраска или натуральность, соотношение между голосами - будет в общем случае индивидуален для каждого
инструмента или музыкальной карты, и если внутри одной серии инструментов еще наблюдается какое-то однообразие, то между
сериями и тем более - инструментами различных производителей - его почти не бывает. Кроме этого, большинство современных
инструментов и карт позволяет использовать собственные наборы (банки) тембров, еще больше усугубляющих эти различия.
Ассоциация производителей MIDI-инструментов (MMA) в какой-то мере попыталась сгладить эти различия, введя стандарт General
MIDI - единый MIDI, или GM. Инструменты, соответствующие этому стандарту (а ему уже давно соответствуют все MIDI-инструменты)
, обязаны иметь качественно одинаковый набор из 128 мелодических (пианино, арфа, клавесин, органы, гитары, струнные, духовые,
эффекты и т.п.) и 37 ударных (эстрадная ударная установка, тамбурины, конги, треугольники и т.п.) тембров, а также реагировать на
базовые команды управления звуком (громкость, панорама, модуляция и т.п.). Однако эта общность соблюдается лишь в отношении
типов тембров, ибо разные инструменты с совершенно одинаковым звучанием никому не нужны, и основную прелесть популярных
моделей синтезаторов составляет именно их "фирменное" звучание в сочетании с возможностями обработки звука. Поэтому и
исполнять MIDI-партитуры желательно на тех инструментах или музыкальных картах, для которых они были написаны, а при
исполнении на других - не обижаться на "неправильное" звучание тех или иных тембров.
Поскольку GM является предельно простым стандартом, практически каждый новый инструмент в этом стандарте имел сверх него как
дополнительные банки тембров, так и собственные команды управления синтезом звука. При этом одинаковые по смыслу команды
оказывались по-разному представленными в разных инструментах, что затрудняло их запоминание и использование. С целью
упорядочения банков инструментов и способов управления синтезом фирма Roland ввела стандарт General Synth (GS), описывающий
конфигурацию двенадцати дополнительных банков (содержащих в основном вариации основных тембров и звуковые эффекты вроде
взрывов, хохота или шума дождя), команды управления портаменто (глиссандо), эффектами реверберации, хора и задержки,
резонансным фильтром (эффект типа кваканья) а также раздельной настройки звучания ударных тембров. Около трех лет назад фирмой
Yamaha на частичной основе GS был разработан более широкий стандарт XG (eXtended General - расширенный единый), включающий
676 мелодических и 11 наборов (kits) ударных тембров, с чрезвычайно широким набором команд управления как параметрами самих
тембров, так и дополнительной обработкой исполняемой музыки (эффекты реверберации, хора, задержки, вращающегося источника
звука и другие). Очень важно, что для инструментов стандарта XG декларирована одинаковость основных характеристик тембров -
относительной громкости, времени нарастания и затухания, спектрального состава, благодаря чему партитура, созданная на одном XG-
синтезаторе, практически идентично звучит и на других, разве что более старшие модели звучат более качественно и натурально.
В заключение нужно сказать, что даже не очень дорогие музыкальные карты и дочерние платы нередко обладают не меньшим
потенциалом, чем "серьезные" инструменты; основная разница заключается в том, что если хороший и дорогой инструмент содержит
качественные аналоговые цепи, имеет тщательно подобранные наборы тембров, сопровождается подробной документацией и т.п., то
большинство карт содержит минимальный набор тембров, цепи среднего качества и достаточно бедную документацию.
Дополнительные тембры, программы и описания нужно либо приобретать отдельно, либо искать или изготавливать самостоятельно.
Например, известная группа карт Sound Blaster AWE на самом деле обладает достаточно мощным синтезатором, звучание которого
при грамотном применении удивляет даже давно знакомых с этими картами (хотя, по правде говоря, это относится ко всем без
исключения музыкальным инструментам). А вот не так давно появившиеся платы Yamaha XG уступают своим "старшим братьям" -
тонгенераторам MU10, MU50 и MU80 - только в общем качестве звука и полифонии, а в части управления звуком их возможности
практически идентичны.