Russian
LinkExchange Banner Network
Russian LinkExchange Member
 

Oписание интерфейса MIDI

Создано: 22.12.96

Последняя модификация: 04.07.98

Автор: Евгений Музыченко (Eugene Muzychenko)

2:5000/14@FidoNet, music@spider.nrcde.ru

Copyright (C) 1996-98, Eugene V. Muzychenko

Все права в отношении данного текста принадлежат автору. При воспроиз-

ведении текста или его части сохранение Copyright обязательно. Коммер-

ческое использование допускается только с письменного разрешения авто-

ра.

======================================================================

 

Что такое MIDI?

**********************************************************************

 

Musical Instrument Digital Interface - цифровой интерфейс музыкальных

инструментов. Создан в 1983 году ведущими производителями электронных

музыкальных инструментов - Yamaha, Roland, Korg, E-mu и др. Изначально

был предназначен для замены принятого в то время управления музыкаль-

ными инструментами при помощи аналоговых сигналов управлением при по-

мощи информационных сообщений, передаваемых по цифровому интерфейсу.

Впоследствии стал стандартом де-факто в области электронных музыкаль-

ных инструментов и компьютерных модулей синтеза.

MIDI представляет собой так называемый событийно-ориентированный про-

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

водит какое-либо воздействие на органы управления (нажатие/отпускание

клавиш, педалей, изменение положений регуляторов и т.п., инструмент

формирует соответствующее MIDI-сообщение, в тот же момент посылаемое

по интерфейсу. Другие инструменты, получая сообщения, отрабатывают их

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

ким образом, поток MIDI-сообщений представляет собой как бы слепок с

действий исполнителя, сохраняя присущий ему стиль исполнения - динами-

ку, технические приемы и т.п. При записи на устройства хранения инфор-

мации MIDI-сообщения снабжаются временнЫми метками, образуя своеобраз-

ный способ представления партитуры. При воспроизведении по этим меткам

полностью и однозначно восстанавливается исходный MIDI-поток.

Спецификация MIDI состоит из аппаратной спецификации самого интерфейса

и спецификации формата данных, или протокола - описания системы пере-

даваемых сообщений. Соответственно, различается аппаратный MIDI-интер-

фейс и формат MIDI-данных (так называемая MIDI-партитура); интерфейс

используется для физического соединения источника и приемника сообще-

ний, формат данных - для создания, хранения и передачи MIDI-сообщений.

В настоящее время эти понятия стали самостоятельными и обычно исполь-

зуются отдельно друг от друга - по MIDI-интерфейсу могут передаваться

данные любого другого формата, а MIDI-формат может использоваться

только для обработки партитур, без вывода на устройство синтеза.

 

Аппаратная спецификация MIDI

**********************************************************************

 

Интерфейс - старт-стопный последовательный "токовая петля" (активный

передатчик, 5 мА, токовая посылка - 0, бестоковая - 1), скоростью пе-

редачи 31250 +/-1% бит/с и протоколом 8-N-1 (один стартовый бит, 8 би-

тов данных, один бит стопа, без четности). Передатчики и приемники

должны обеспечивать длительность фронтов менее 2 мкс.

Каждый инструмент имеет три соединительных разъема: In (вход), Out

(выход) и Thru (копия сигнала с In через буфер). Все разъемы - типа

female DIN-5 (СГ-5), вид с наружной стороны (стороны соединения):

2

4 o 5

o o

1 o o 3

Контакты 4 и 5 - сигнальные, контакт 2 - экран. Соединение экрана с

корпусом желательно только со стороны выхода (Out и Thru). Полярность

сигналов дается относительно источника тока: контакт 4 - плюс (ток вы-

текает из вывода), контакт 5 - минус (ток втекает в вывод). Таким об-

разом, для разъемов Out и Thru назначение то же, для разъема In - об-

ратное.

Для соединения используется двужильный экранированный кабель длиной до

50 футов (около 15 м). Экран необходим только для защиты от излучаемых

помех - кабель практически нечувствителен к наводкам извне. Соединение

разъемов на двух концах кабеля - прямое (2-2, 4-4, 5-5).

Один MIDI-передатчик допускает подключение до четырех приемников.

Описанная схема позволяет создавать сеть MIDI-устройств, подключая их

по цепочке и нескольким направлениям:

------------¬ ------------¬ ------------¬

¦1 Thru ¦ ¦2 Thru +-----¬ ¦3 Thru ¦

¦ In ¦ -----+ In ¦ L----+ In ¦

¦ Out +------ ¦ Out +-¬ ¦ Out ¦

L------------ L------------ ¦ L------------

-----------------

¦ ------------¬ ------------¬

¦ ¦4 Thru +-----¬ ¦5 Thru ¦

L-+ In ¦ L----+ In ¦

¦ Out ¦ ¦ Out ¦

L------------ L------------

В этой схеме устройство 1 служит источником сообщений, которые получа-

ет устройство 2 и через его ретранслятор - устройство 3. Устройство 4

получает сообщения, посылаемые устройством 2 (они могут как включать,

так и не включать получаемые самим устройством 2) и ретранслирует их

на вход устройства 5.

 

Спецификация формата данных MIDI

**********************************************************************

 

MIDI-данные представляют собой сообщения, или события (events), каждое

из которых является командой для музыкального инструмента. Стандарт

предусматривает 16 независимых и равноправных логических каналов,

внутри каждого из которых действуют свои режимы работы; изначально это

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

момент времени воспроизводить звук только одного тембра - каждому ин-

струменту присваивался свой номер канала, что давало возможность мно-

готембрового исполнения. С появлением многотембровых (multi-timbral)

инструментов они стали поддерживать несколько каналов (современные ин-

струменты поддерживают все 16 каналов и могут иметь более одного

MIDI-интерфейса), поэтому сейчас каждому каналу обычно назначается

свой тембр, называемый по традиции инструментом, хотя возможна комби-

нация нескольких тембров в одном канале. Канал 10 по традиции исполь-

зуется для ударных инструментов - различные ноты в нем соответствуют

различным ударным звукам фиксированной высоты; остальные каналы ис-

пользуются для мелодических инструментов, когда различные ноты, как

обычно, соответствуют различной высоте тона одного и того же инстру-

мента.

Поскольку MIDI-сообщения представляют собой поток данных в реальном

времени, их кодировка разработана для облегчения синхронизации в слу-

чае потери соединения. Для этого первый байт каждого сообщения, назы-

ваемый также байтом состояния (status byte), содержит "1" в старшем

разряде, а все остальные байты содержат в нем "0" и называются байтами

данных (data bytes). Если после получения всех байтов данных последне-

го сообщения на вход приемника поступает байт, не содержащий "1" в

старшем разряде - это трактуется как повторение информационной части

сообщения (подразумевается такой же первый байт). Такой метод передачи

носит название "Running Status" и широко используется для уменьшения

объема передаваемых данных - например, передается один байт команды

"Controller Change" с нужным номером канала, а затем - серия байтов

данных с номерами и значениями контроллеров для этого канала.

 

Виды MIDI-сообщений

===================

MIDI- сообщения делятся на канальные - относящиеся к конкретному кана-

лу, и системные - относящиеся к системе в целом. Кодировка MIDI-сооб-

щений (шестнадцатеричная, n в первом байте обозначает номер канала):

Канальные сообщения:

8n nn vv - Note Off (выключение ноты)

9n nn vv - Note On (включение ноты)

An nn pp - Key Pressure (Polyphonic Aftertouch, давление на клавишу)

Bn cc vv - Control Change (смена значения контроллера)

Cn pp - Program Change (смена программы (тембра, инструмента))

Dn pp - Channel Pressure (Channel Aftertouch, давление в канале)

En ll mm - Pitch Bend Change (плавное изменение высоты тона в канале)

Системные сообщения:

F0 - System Exclusive (SysEx, системное исключительное сообщение)

F1 - резерв

F2 ll mm - Song Position Pointer (указатель позиции в партитуре)

F3 ss - Song Select (выбор партитуры)

F4 - резерв

F5 - резерв

F6 - Tune Request (запрос подстройки)

F7 - EOX (End Of SysEx, конец системного исключительного сообщения)

F8 - Timing Clock (синхронизация по времени)

F9 - резерв

FA - Start (запуск игры по партитуре)

FB - Continue (продолжение игры по партитуре)

FC - Stop (остановка игры по партитуре)

FD - резерв

FE - Active Sensing (проверка соединений MIDI-сети)

FF - System Reset (сброс всех устройств сети)

 

Описание канальных сообщений

============================

Note On (nn - номер ноты, vv - скорость (velocity) нажатия)

Note Off (nn - номер ноты, vv - скорость отпускания)

-----------------------------------------------------------

Сообщает о включении/выключении звучания ноты. MIDI-клавиатура генери-

рует эти сообщения при нажатии/отпускании клавиш, MIDI-синтезатор за-

пускает или останавливает работу соответствующего генератора звука.

Номер ноты задается абсолютным номером полутона в диапазоне 0..127,

при этом центральной фортепианной клавише - ноте "До" первой октавы -

соответствует десятичный номер 60 (в MIDI принята нумерация октав с

нуля, поэтому она обозначается как C-5).

Скорость нажатия/отпускания задается числом в диапазоне 0..127, отра-

жающим скорость перемещения клавиши (обычно используется логарифмичес-

кая шкала). Скорость нажатия косвенно отражает силу удара по клавише.

Чувствительная к скорости нажатия (динамическая) клавиатура выдает ре-

альные значения, нечувствительная должна выдавать десятичные значения

64. Значение 0 в сообщении Note On полностью эквивалентно сообщению

Note Off для этой же клавиши - это позволяет при передаче только нажа-

тий и отпусканий использовать режим Running Status.

Простые синтезаторы используют скорость нажатия для управления гром-

костью извлекаемого звука, более сложные - также для управления филь-

трами (более громким звукам соответствует более звонкое звучание) либо

выбора разных самплов, пропорции смешивания нескольких самплов, и т.п.

При поступлении повторного сообщения Note On для уже нажатой ноты раз-

личные инструменты ведут себя по-разному: одни автоматически отрабаты-

вают перед этим Note Off, прекращая звучание "зависшей" ноты; другие

запускают отдельный генератор, оставляя зависшую ноту звучать. Звуча-

ние зависшей ноты в этом случае может быть прекращено только командами

All Sounds Off или Reset.

 

Channel Pressure (pp - величина давления)

Key Pressure (nn - номер ноты, pp - величина давления)

------------------------------------------------------

Сообщает об изменении силы давления (After Touch - после прикосновения

(нажатия)) на всю клавиатуру или отдельную клавишу. Наиболее простые

клавиатуры не имеют датчика давления; клавиатуры средней сложности

имеют общий датчик для всех клавиш, посылая сообщения Channel Pressure

по результатам усреднения давления на все нажатые клавиши; наиболее

сложные клавиатуры имеют отдельные датчики для каждой клавиши, посылая

изменения в состоянии каждого датчика.

Поведение синтезатора в ответ на эти сообщения стандартом не определе-

но. Обычно синтезаторы с поддержкой Aftertouch имеют команды для при-

вязки сообщений к выбранным параметрам синтеза (громкости, модуляции,

фильтрам, эффектам и т.п.).

 

Control Change (cc - номер, vv - значение контроллера)

------------------------------------------------------

Сообщает об изменении состояния органов управления (контроллеров).

MIDI-контроллеры делятся на непрерывные (continuous) - рукоятки, движ-

ки, имеющие диапазон непрерывного изменения, и переключатели

(switches) - педали, кнопки, тумблеры, имеющие два дискретных состо-

яния (On/Off - включено/выключено). Значения 0..63 означают выключен-

ное состояние переключателя, значения 64..127 - включенное.

Основным стандартом (MIDI level 1) принята следующая нумерация кон-

троллеров:

0..31 - старшие байты значений непрерывных контроллеров 0..31

32..63 - младшие байты значений непрерывных контроллеров 0..31

64..95 - переключатели

96..121 - резерв

120..127 - специальные канальные сообщения

На самом деле практически никто не следует предложенной схеме распре-

деления, за исключением контроллеров 120..127 (специальные канальные

сообщения), которые везде имеют одинаковое значение.

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

0 - Bank Select MSB (выбор банка, старший байт)

1 - Modulation (глубина частотной модуляции)

2 - Breath Control (данные с духового контроллера)

4 - Foot Pedal (данные с ножной педали)

5 - Portamento Time (время скольжения от ноты к ноте)

6 - Data Entry MSB (ввод данных, старший байт)

7 - Main Volume (громкость всех звуков в канале)

8 - Balance (баланс)

10 - Pan (панорама - положение инструмента на стерепанораме)

11 - Expression (экспрессивность, выразительность звука)

16 - AC1 (Assignable Controller - назначаемый контроллер)

17 - AC2

18 - AC3

19 - AC4

32 - Bank Select LSB (выбор банка, младший байт)

38 - Data Entry LSB (ввод данных, младший байт)

64 - Sustain Pedal, Hold1 (удержание звучания всех отпущенных нот)

65 - Portamento (включение/выключение режима портаменто)

66 - Sostenuto Pedal (удержание звучания отдельных нот (аккорда))

67 - Soft Pedal (приглушение звука)

80 - AC5

81 - AC6

82 - AC7

83 - AC8

91 - External Effects Depth (глубина внешних эффектов)

92 - Tremelo Depth (глубина тремоло - амплитудного вибрато)

93 - Chorus Depth (глубина хорового эффекта)

94 - Detune Depth (глубина расстройки)

95 - Phaser Depth (глубина эффекта фейзера)

96 - Data Increment (увеличение значения)

97 - Data Decrement (уменьшение значения)

98 - NRPN LSB (номер незарегистрированного параметра, младший байт)

99 - NRPN MSB (номер незарегистрированного параметра, старший байт)

100 - RPN LSB (номер зарегистрированного параметра, младший байт)

101 - RPN MSB (номер зарегистрированного параметра, старший байт)

 

Поддержка устройством конкретных видов контроллеров определяется спе-

цификацией устройства или стандарта, в рамках которого оно разработа-

но.

Обычно, когда непрерывный контроллер используется для плавного управ-

ления каким-либо параметром звука, этот параметр пропорционально зави-

сит от значения контроллера. Используются два основных способа управ-

ления параметрами звука: абсолютный и относительный. При абсолютном

способе параметр полностью зависит от установленного значения контрол-

лера; при относительном способе имеется некоторое стандартное значение

параметра, соответствующее "нейтральному" значению контроллера - 64.

Изменение значений контроллера вверх или вниз пропорционально изменяет

значение выбранного параметра относительно стандартного значения, ко-

торое, вообще говоря, может быть различным для разных режимов, тембров

и т.п. Для глобальных параметров, таких, как громкость или панорама в

канале, используется абсолютный способ управления; для локальных -

глубина реверберации, частота среза фильтра и т.п. - относительный,

хотя интерпретация различными инструментами может не совпадать.

 

Специальные канальные сообщения

-------------------------------

Задаются контроллерами 120..127 и управляют обработкой сообщений в ка-

налах:

120 - All Sounds Off

121 - Reset All Controllers

122 vv - Local Control

123 - All Notes Off

124 - Omni Off

125 - Omni On

126 nn - Mono

127 - Poly

Многие устройства требуют, чтобы неиспользуемые значения контроллеров

были нулевыми.

Сообщение All Notes Off имитирует выключение всех включенных нот и

полностью эквивалентно посылке сообщения Note Off для каждой звучащей

ноты; будет ли при этом прекращено звучание ноты - зависит от состо-

яния режимов Sustain и Sostenuto. Сообщение All Sounds Off действует

так же, но не зависит от режимов Sustain/Sostenuto; кроме того, оно

немедленно прекращает звучание всех нот, находящихся в стадии концево-

го затухания (Release). Состояние самих режимов Sustain/Sostenuto эти

сообщения не затрагивают.

Сообщение Reset All Controllers устанавливает все контроллеры в значе-

ния по умолчанию, и используется для начальной установки устройства

перед проигрыванием партитуры.

Сообщение Local Control служит для запрета/разрешения управления ус-

тройством с локальной панели. Нулевое значение параметра запрещает уп-

равление с панели (устройство управляется только по MIDI), значение

127 разрешает его.

Сообщения Omni On/Off служат для включения/выключения режима Omni -

реакции устройства на канальные сообщения. При включенном режиме Omni

устройство обрабатывает сообщения для всех каналов, при отключенном -

только сообщения для выбранного канала (Basic Channel). Это позволяет

разделить устройства между каналами. Канал назначается устройству либо

с его панели управления, либо при помощи сообщений SysEx. Режим Omni

имеет смысл в основном для старых инструментов, имеющих один MIDI-ка-

нал и не поддерживающих разделение тембров.

Сообщения Mono/Poly служат для переключения одноголосного и многого-

лосного (полифонического) режимов. В одноголосном режиме в каждый мо-

мент времени может звучать только одна нота; включение новой ноты при-

водит к принудительному отключению предыдущей. В полифоническом режиме

включение каждой новой ноты запускает очередной свободный генератор, а

при исчерпании генераторов новые ноты либо игнорируются, либо приводят

к принудительному выключению наиболее "старых" нот.

Значение nn в сообщении Mono воспринимается некоторыми устройствами,

как количество MIDI-каналов, по которым, начиная с Basic Channel, рас-

пределяются ноты в одноголосном режиме при выключенном режиме Omni.

Смысл этой группы каналов различен для передающих и принимающих ус-

тройств. Передающее устройство направляет первую ноту в Basic Channel,

следующую за ней - в Basic Channel + 1, и так далее, затем очередная

нота снова направляется в Basic Channel, и цикл повторяется. Приемное

устройство воспринимает канальные сообщения только внутри заданной

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

кой прием позволяет реализовать многоголосное исполнение на синтезато-

рах, имеющих жесткую привязку голосов (генераторов) к MIDI-каналам.

Контроллеры Omni, Mono и Poly вызывают также отработку контроллера All

Sounds Off.

От различных сочетаний режимов Omni, Poly и Mono происходят четыре ос-

новных режиме работы (mode) MIDI-устройств:

1 - Omni On, Poly

2 - Omni On, Mono

3 - Omni Off, Poly

4 - Omni Off, Mono

Большинство современных устройств работает в mode 3 - полифонический

режим с независимой работой каналов.

 

Program Change (pp - номер тембра)

--------------------------------------------------

Служит для смены программы синтеза (чаще называемой тембром или ин-

струментом) в канале. Параметр задает номер тембра (0..127) в текущем

выбранном банке. Последующие ноты будут исполняться выбранным тембром,

тембр уже звучащих в канале нот не изменяется.

 

Pitch Bend Change (ll - младший, mm - старший байт значения)

------------------------------------------------------------

Задает смещение высоты тона для всех нот в канале - как звучащих, так

и последующих. Значение, образованное двумя 7-разрядными величинами,

изменяется в диапазоне 0..16383; среднее значение - 8192 - принимается

за относительный нуль, что дает условный диапазон изменения

-8192..8191. Чувствительность Pitch Bend может изменяться при помощи

RPN 0; по умолчанию принимается предельное смещение на два полутона в

любую сторону.

 

Системные сообщения

===================

 

System Exclusive (SysEx)

------------------------

Служат для передачи специальной информации определенным устройствам. В

сообщении SysEx может передаваться любое количество байтов. Признаком

конца сообщения служит байт F7. Первые три байта SysEx обычно содержат

идентификатор производителя устройства (присваивается Ассоциацией Про-

изводителей MIDI-устройств - MMA), номер устройства в сети (задается с

пульта) и код модели устройства (присваивается производителем). В ос-

тальном формат сообщений определяется производителем - это могут быть

команды, параметры, оцифрованные инструменты, партитуры и т.п.

Шестнадцатеричные идентификаторы наиболее известных производителей:

Sequential Circuits 01

Big Briar 02

Octave / Plateau 03

Moog 04

Passport Designs 05

Lexicon 06

PAIA 11

Simmons 12

Gentle Electric 13

Fairlight 14

Bon Tempi 20

S.I.E.L. 21

SyntheAxe 23

Kawai 40

Roland 41

Korg 42

Yamaha 43

 

Специальные идентификаторы сообщений, помещаемые в первый байт SysEx:

7F - универсальное сообщение реального времени;

7E - универсальное сообщение для настройки.

 

Tune Request

------------

Предписывает выполнить автоматическую подстройку устройствам, нужда-

ющимся в ней. Обычно это относится к аналоговым синтезаторам, строй

которых может смещаться из-за нестабильности управляющих элементов.

 

Song Position Pointer (ll - младший, mm - старший байт)

-------------------------------------------------------

Служит для установки позиции в партитуре для устройств, имеющих встро-

енный секвенсор, автоаккомпанемент или ритм-блок. Задается номером

четвертной (quarter) ноты с начала партитуры.

 

Song Select (ss - условный номер партитуры)

-------------------------------------------

Определяет, какая из существующих партитур будет проигрываться при по-

лучении сообщения Start.

 

Start

-----

Запускает прогрывание или запись выбранной партитуры с начала.

 

Stop

----

Останавливает проигрывание или запись партитуры.

 

Continue

--------

Запускает проигрывание или запись партитуры с прерванного места, либо

с позиции, установленной с помощью Song Position Pointer.

 

Timing Clock

------------

Служит для синхронизации устройств и передается с частотой 6 сообщений

на четвертную ноту. Генерация этого сообщения не является обязательной

для передающего устройства.

 

Active Sensing

--------------

Используется для проверки наличия связи внутри MIDI-сети. Генерация

сообщения не является обязательной для передающих устройств. В случае

получения этого сообщения каждое приемное устройство переходит в режим

слежения за MIDI-потоком, и в случае отсутствия любых сообщений в те-

чение 300 мс автоматически отрабатывает контроллеры All Notes Off, All

Sounds Off и Reset All Controllers. Это позволяет прекратить работу в

случае нарушения связи в сети. Однако до первого прохождения этого со-

общения по сети устройства не следят за длительностью пауз между сооб-

щениями.

 

Описание работы контроллеров

----------------------------

 

Контроллеры Bank Select

Многие устройства могут работать с большим количеством встроенных и

дополнительных тембров (инструментов) и звуковых эффектов, которые для

удобства объединены в банки. В каждый момент времени в одном канале

может использоваться только один банк; для переключения банков служат

контроллеры:

0 - Bank Select MSB (выбор банка, старший байт)

32 - Bank Select LSB (выбор банка, младший байт)

Одни устройства требуют для переключения банков только один из этих

контроллеров, другие требуют оба. Поведение некоторых устройств в этом

отношении может изменяться в различных режимах работы.

По умолчанию устанавливается нулевой банк (в устройствах, совместимых

с General MIDI, он содержит мелодические тембры GM). После смены банка

обязательна посылка сообщения Program Change для выбора тембра (ин-

струмента).

Обработка устройством команды смены банка и инструмента может занять

значительное время (десятки миллисекунд и более). Некоторые устройства

при получении команд смены банков и инструментов гасят звучащие ноты в

канале.

 

Контроллер Modulation

Задает глубину частотной модуляции в канале. Управление абсолютное.

Значение 0 отключает модуляцию, значение 127 устанавливает максималь-

ную глубину. Стандартное значение - 0. Действует на последующие и уже

звучащие ноты.

 

Контроллер Breath Control

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

мундштука - значение отражает силу воздушного потока, вдуваемого в

мундштук. Духовой контроллер может быть как автономным, так и совме-

щенным с другим MIDI-устройством (MIDI-саксофон, MIDI-флейта).

 

Контроллер Foot Pedal

Передает воздействия на ножную педаль - значение пропорционально силе

давления на педаль или глубине ее погружения.

 

Контроллер Portamento Time

Задает время плавного скольжения от частоты предыдущей ноты до частоты

очередной ноты. Управление абсолютное. Значение 0 соответствует мини-

мальному времени, 127 - максимальному. Стандартное значение не опреде-

лено.

 

Контроллер Main Volume

Задает громкость звучания внутри канала. Управление абсолютное. Стан-

дартное значение - обычно 100. Действует на последующие и уже звучащие

ноты.

 

Контроллер Pan

Задает соотношение уровня стереоканалов (точку стереопанорамы) для ка-

нала. Управление абсолютное. Значение 0 - крайняя левая позиция, 64 -

средняя, 127 - крайняя правая. Стандартное значение - 64. Действует на

последующие и уже звучащие ноты.

 

Контроллер Expression

Задает степень выразительности звука. Управление абсолютное. На прос-

тых инструментах дублирует контроллер Main Volume и действует и на

последующие, и на уже звучащие ноты. На инструментах с развитым синте-

зом управляет более тонкими параметрами выразительности, и действует

только на последующие ноты. Стандартное значение - обычно 127.

 

Контроллер Harmonic Content

Задает добротность (глубину резонанса) фильтра канала, позволяющего

подчеркнуть высокочастотные гармоники тембра. Увеличение добротности

увеличивает крутизну характеристики фильтра в области среза, усиливая

частоты, лежащие непосредственно ниже частоты среза. Управление отно-

сительное (0..64..127). Стандартное значение - 64.

 

Контроллер Release Time

Задает время концевого затухания звучания нот с момента отработки Note

Off (явного или автоматического) до полного исчезновения звука. Управ-

ление относительное (0..64..127). Стандартное значение - 64.

 

Контроллер Attack Time

Задает время начальной атаки - нарастания громкости звучания нот с мо-

мента отработки Note On до максимального значения громкости. Управле-

ние относительное (0..64..127). Стандартное значение - 64.

 

Контроллер Brightness

Задает частоту среза фильтра канала, управляющую ослаблением высоких

частот звука. Управление относительное (0..64..127). Стандартное зна-

чение - 64.

 

Контроллер Portamento Control

Задает номер ноты, от которой выполняется плавная перестройка частоты

в режиме Portamento, и позволяет установить исходную высоту, отличную

от определяемой последним сообщением Note On.

 

Контроллер Reverb Level

Задает глубину выбранного эффекта типа реверберации (основанного на

постоянной задержке сигнала) - Room, Hall, Delay, Echo и т.п. Управле-

ние - абсолютное или относительное в зависимости от инструмента.

 

Контроллер Chorus Level

Задает глубину эффекта типа хорового (основанного на переменной задер-

жке сигнала) - Chorus, Flanger, Phaser и т.п. Управление - абсолютное

или относительное в зависимости от инструмента.

 

Контроллер Variation Level

Задает глубину эффекта, выбранного в качестве Variation. Управление -

абсолютное или относительное в зависимости от инструмента.

 

Контроллер-переключатель Sustain

Во включенном состоянии вызывает удержание звучания для всех клавиш,

отпущенных во время действия контроллера - по аналогии с правой пе-

далью фортепиано. Иными словами, в режиме Sustain канал задерживает

отработку последнего поступившего для каждой ноты сообщения Note Off.

В момент отключения одновременно отрабатываются все задержанные таким

образом Note Off; на явно удерживаемые в этот момент клавиши (для ко-

торых последним поступившим сообщением является Note On) отключение

режима не влияет.

 

Контроллер-переключатель Sostenuto

Действует подобно Sustain, но удерживает звучание только тех нот, ко-

торые были нажаты на момент включения контроллера. Последующие нажатия

и отпускания отрабатываются в обычном порядке. Иначе говоря, отклады-

вается отработка Note Off только для тех нот, Note On для которых пос-

тупили до включения режима.

 

Контроллер-переключатель Soft

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

для нот, нажатых во время действия режима. Способ реализации - простое

уменьшение громкости или более тонкое управление - определяется ин-

струментом.

 

Контроллер-переключатель Portamento

При выключенном режиме каждая нажатая нота начинает звучать на часто-

те, определяемой высотой ноты и установленными на данный момент значе-

ниями контроллеров управления высотой (Pitch Bend Change и Coarse/Fine

Tune и т.п.). При включенном режиме очередная нота начинает звучать на

частоте, определяемой последним сообщением Note On или контроллером

Portamento Control, затем ее высота плавно изменяется до нужной со

скоростью, определяемой контроллером Portamento Time. Вне зависимости

от того, было ли скольжение выполнено до конца или прервано по отпус-

канию ноты, последнее сообщение Note On всегда фиксируется в качестве

исходной высоты для последующих нот. Это означает, что если, например,

после ноты C2 была нажата нота C7, а затем - нота C4, то высота второй

ноты будет плавно повышаться от C2 до C7, а высота третьей в то же

время - понижаться от C7 до 50, и в качестве исходной для последующих

нот будет принята нота 50. В момент нажатия C7 эта нота зазвучит в

унисон с C2 и начнет скользить в сторону C7, а в момент нажатия ноты

C4 та зазвучит с высотой C7 и начнет скользить к C4. Все скольжения

выполняются независимо.

 

Контроллеры RPN, NRPN и Data Entry

Дополнительно для расширенного управления синтезом введены зарегистри-

рованные (Registered Parameter Number - RPN) и незарегистрированные

(Non-Registered Parameter Number - NRPN) номера параметров, передава-

емые при помощи контроллеров:

98 - NRPN LSB (младший байт NRPN)

99 - NRPN MSB (старший байт NRPN)

100 - RPN LSB (младший байт RPN)

101 - RPN MSB (старший байт RPN)

Устройство запоминает однажды переданные ему RPN или NRPN, после кото-

рых могут передаваться значения выбранного параметра при помощи кон-

троллеров:

6 - Data Entry MSB (ввод данных, старший байт)

38 - Data Entry LSB (ввод данных, младший байт)

На сообщения, передающие значение старшего или младшего байта парамет-

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

байта либо ранее переданное, либо установленное по умолчанию значение.

Это можно использовать для передачи значений, отличающихся только од-

ним байтом, передавая только изменившийся байт.

Для отмены ранее зафиксированных номеров RPN и NRPN служит резервный

номер RPN 16383 - после посылки контроллеров 100 и 101 со значениями

127 контроллеры Data Entry отключаются от ранее назначенных RPN и

NRPN.

Таким образом, механизм представляет собой "контроллер в контроллере".

Стандартом General MIDI определена интерпретация только трех RPN, зна-

чения которых задаются старшими байтами параметров Data Entry:

RPN 0 - Pitch Bend Sensitivity (чувствительность Pitch Bend)

RPN 1 - Fine Tuning (точная подстройка)

RPN 2 - Coarse Tuning (грубая подстройка)

Чувствительность Pitch Bend определяет количество полутонов, на кото-

рое смещается высота тона при получении сообщения Pitch Bend Change с

предельным верхним или нижним значением параметра. По умолчанию прини-

мается диапазон в два полутона в любую сторону.

RPN подстройки позволяют сместить строй инструмента в канале на задан-

ное количество полутонов при грубой, или центов (сотых долей полутона)

- при точной подстройке. За относительный нуль принимается значение

64.

Интерпретация остальных параметров стандартом GM не определена. В ряде

инструментов для раздельной подстройки отдельных инструментов в раз-

личных банках используются также два дополнительных RPN:

RPN 3 - Tuning Program Select

RPN 4 - Tuning Bank Select

 

Стандарты MIDI-систем

**********************************************************************

 

Стандарт General MIDI (MMA)

===========================

Стандарт General MIDI (единый MIDI, GM) разработан ассоциацией

MIDI-производителей (MMA) в 1991 году в целях обеспечения частичной

совместимости выпускаемых MIDI-устройств и облегчения переноса парти-

тур между устройствами различных производителей. Устройство, совмести-

мое с GM Level 1, должно удовлетворять следующим требованиям:

- полифония не менее 24 голосов;

- наличие 128 мелодических и 47 ударных тембров;

- раздельный выбор тембров по всем 16 MIDI-каналам;

- поддержка специальных канальных контроллеров 121 и 123;

- выделение канала 10 для ударных тембров, остальных каналов -

для мелодических тембров.

Мелодическим и ударным тембрам присвоены постоянные номера. Мелодичес-

кие тембры распределены по 16 группам с 8 тембрами в каждой и выбира-

ются сообщением Program Change в каналах 1-9 и 11-16:

 

Piano Chrom Percussion

0 Acoustic Grand Piano 8 Celesta

1 Bright Acoustic Piano 9 Glockenspiel

2 Electric Grand Piano 10 Music Box

3 Honky-tonk Piano 11 Vibraphone

4 Electric Piano 1 12 Marimba

5 Electric Piano 2 13 Xylophone

6 Harpsichord 14 Tubular Bells

7 Clavinet 15 Dulcimer

Organ Guitar

16 Drawbar Organ 24 Acoustic Guitar (nylon)

17 Percussive Organ 25 Acoustic Guitar (steel)

18 Rock Organ 26 Electric Guitar (jazz)

19 Church Organ 27 Electric Guitar (clean)

20 Reed Organ 28 Electric Guitar (muted)

21 Accordion 29 Overdriven Guitar

22 Harmonica 30 Distortion Guitar

23 Tango Accordion 31 Guitar Harmonics

Bass Strings

32 Acoustic Bass 40 Violin

33 Electric Bass (finger) 41 Viola

34 Electric Bass (pick) 42 Cello

35 Fretless Bass 43 Contrabass

36 Slap Bass 1 44 Tremolo Strings

37 Slap Bass 2 45 Pizzicato Strings

38 Synth Bass 1 46 Orchestral Harp

39 Synth Bass 2 47 Timpani

Ensemble Brass

48 String Ensemble 1 56 Trumpet

49 String Ensemble 2 57 Trombone

50 Synth Strings 1 58 Tuba

51 Synth Strings 2 59 Muted Trumpet

52 Choir Aahs 60 French Horn

53 Voice Oohs 61 Brass Section

54 Synth Voice 62 Synth Brass 1

55 Orchestra Hit 63 Synth Brass 2

Reed Pipe

64 Soprano Sax 72 Piccolo

65 Alto Sax 73 Flute

66 Tenor Sax 74 Recorder

67 Baritone Sax 75 Pan Flute

68 Oboe 76 Bottle Blow

69 English Horn 77 Shakuhachi

70 Bassoon 78 Whistle

71 Clarinet 79 Ocarina

Synth Lead Synth Pad

80 Lead 1 (square) 88 Pad 1 (new age)

81 Lead 2 (sawtooth) 89 Pad 2 (warm)

82 Lead 3 (calliope) 90 Pad 3 (polysynth)

83 Lead 4 (chiff) 91 Pad 4 (choir)

84 Lead 5 (charang) 92 Pad 5 (bowed)

85 Lead 6 (voice) 93 Pad 6 (metallic)

86 Lead 7 (fifths) 94 Pad 7 (halo)

87 Lead 8 (bass + lead) 95 Pad 8 (sweep)

Synth Effects Ethnic

96 FX 1 (rain) 104 Sitar

97 FX 2 (soundtrack) 105 Banjo

98 FX 3 (crystal) 106 Shamisen

99 FX 4 (atmosphere) 107 Koto

100 FX 5 (brightness) 108 Kalimba

101 FX 6 (goblins) 109 Bagpipe

102 FX 7 (echoes) 110 Fiddle

103 FX 8 (sci-fi) 111 Shanai

Percussive Sound Effects

112 Tinkle Bell 120 Guitar Fret Noise

113 Agogo 121 Breath Noise

114 Steel Drums 122 Seashore

115 Woodblock 123 Bird Tweet

116 Taiko Drum 124 Telephone Ring

117 Melodic Tom 125 Helicopter

118 Synth Drum 126 Applause

119 Reverse Cymbal 127 Gunshot

 

Ударные тембры выбираются номером ноты в канале 10:

 

35 Acoustic Bass Drum 59 Ride Cymbal 2

36 Bass Drum 1 60 High Bongo

37 Side Kick 61 Low Bongo

38 Acoustic Snare 62 Mute High Conga

39 Hand Clap 63 Open High Conga

40 Electric Snare 64 Low Conga

41 Low Floor Tom 65 High Timbale

42 Closed High-Hat 66 Low Timbale

43 High Floor Tom 67 High Agogo

44 Pedal High Hat 68 Low Agogo

45 Low Tom 69 Cabasa

46 Open High Hat 70 Maracas

47 Low-Mid Tom 71 Short Whistle

48 High-Mid Tom 72 Long Whistle

49 Crash Cymbal 1 73 Short Guiro

50 High Tom 74 Long Guiro

51 Ride Cymbal 1 75 Claves

52 Chinese Cymbal 76 High Wood Block

53 Ride Bell 77 Low Wood Block

54 Tambourine 78 Mute Cuica

55 Splash Cymbal 79 Open Cuica

56 Cowbell 80 Mute Triangle

57 Crash Cymbal 2 81 Open Triangle

58 Vibraslap

 

Полифония в 24 голоса устанавливается либо общей для всех каналов, ли-

бо с разделением на 16 голосов для мелодических каналов и 8 - для

ударных. Поведение системы при исчерпании свободных голосов стандартом

не определено.

В GM обязательна поддержка следующих контроллеров:

1 - Modulation (глубина частотной модуляции)

7 - Main Volume (громкость всех звуков в канале)

10 - Pan (панорама - положение инструмента на стерепанораме)

11 - Expression (экспрессивность, выразительность звука)

64 - Sustain Pedal (удержание звучания всех отпущенных нот)

Контроллер Main Volume служит для долговременной установки громкости в

канале, а Expression - для управления громкостью звучания отдельных

нот или партий.

Для устройств, поддерживающих, кроме GM, другие стандарты синтеза,

введен SysEx "General MIDI On" для переключения в режим GM: F0 7E 7F

09 01 F7.

Информация по GM выпускается MMA в печатном виде, краткие справки мож-

но найти на www.mma.com и www.midi.com.

 

Стандарт General Synthesis (Roland)

===================================

Стандарт General Synthesis (единый синтез, GS) разработан фирмой

Roland в 1991 году, практически одновременно с GM. Целью создания

стандарта было обеспечение совместимости не только базового набора

тембров и способов управления, но и более тонких методов воздействия

на звук. Требования к устройству, поддерживающему GS:

- поддержка стандарта GM Level 1;

- поддержка 98 дополнительных тембров и 8 наборов ударных;

- приоритетное назначение голосов каналам - вначале 10, далее с 1;

- назначение дополнительных ударных каналов через SysEx;

- резервирование голосов в канале через SysEx;

- наличие управляемого резонансного фильтра в каждом канале;

- поддержка эффектов Reverb, Chorus и Delay.

Выбор банков осуществляется передачей старшего байта номера (контрол-

лер 0). Младший байт (контроллер 32) при этом либо не используется,

либо переключает режимы совместимости (например, SC55/SC88). Основной

набор тембров (General MIDI) выбирается банком 0. Дополнительны мело-

дические тембры и звуковые эффекты распределены по 12 банкам, имену-

емым Variation Tones: 1..9, 16, 24 и 32. Дополнительные наборы ударных

и набор звуковых эффектов имеют нумерацию (начиная с нуля):

8 Room Kit

16 Power Kit

24 Electronic Kit

25 TR-808 Kit

32 Jazz Kit

40 Brush Kit

48 Orchestra Kit

56 SFX Kit

 

Стандартом введены дополнительные контроллеры:

5 - Portamento Time (время скольжения от ноты к ноте)

6 - Data Entry MSB (ввод данных, старший байт)

65 - Portamento (включение/выключение режима портаменто)

66 - Sostenuto Pedal (удержание звучания отдельных нот (аккорда))

67 - Soft Pedal (приглушение звука)

84 - Portamento Control (номер ноты начала скольжения)

91 - Reverb Level (глубина реверберации)

93 - Chorus Level (глубина хорового эффекта)

98 - NRPN LSB (номер незарегистрированного параметра, младший байт)

99 - NRPN MSB (номер незарегистрированного параметра, старший байт)

а также - набор NRPN для управления генераторами огибающих и резонан-

сными фильтрами (номера NRPN даны в виде значений старшего и младшего

байтов):

NRPN 1/8 - Vibrato Rate (частота вибрато)

NRPN 1/9 - Vibrato Depth (глубина вибрато)

NRPN 1/10 - Vibrato Delay (задержка до включения вибрато)

NRPN 1/32 - Filter Cutoff Frequency (частота среза фильтра)

NRPN 1/33 - Filter Resonance (глубина резонанса фильтра)

NRPN 1/99 - Attack Time (длительность атаки)

NRPN 1/100 - Decay Time (длительность первичного спада)

NRPN 1/102 - Release Time (длительность концевого затухания)

и для раздельной настройки параметров ударных инструментов (nn - номер

ноты инструмента):

NRPN 24/nn - Drum Pitch Coarse Tune (грубая подстройка высоты)

NRPN 26/nn - Drum TVA Level (уровень громкости)

NRPN 28/nn - Drum Pan (панорамная позиция)

NRPN 29/nn - Drum Reverb Send Level (глубина эффекта reverb)

NRPN 30/nn - Drum Chorus Send Level (глубина эффекта chorus)

NRPN 31/nn - Drum Delay Send Level (глубина эффекта delay)

Значения параметров задаются старшими байтами Data Entry (контроллер

6).

Инструменты, поддерживающие стандарты GM и GS, почти всегда имеют до-

полнительные средства управления синтезом и обработкой звука, расширя-

ющие рамки стандарта. При этом используемые способы управления, как

правило, сохраняются внутри одной линии инструментов и внутри инстру-

ментов одного производителя.

 

Устройства, совместимые с GS, должны поддерживать SysEx "General Synth

On" (переключение в режим Roland GS): F0 41 10 42 12 40 00 7F 00 41

F7.

 

Стандарт Extended General (Yamaha)

==================================

Стандарт Extended General (расширенный единый, XG) разработан фирмой

Yamaha в 1994 году в виде расширения стандарта GS. Целью расширения

ния стандарта было в первую очередь внесение развитого управления эф-

фект-процессором и значительное увеличение количества тембров. Устрой-

ства, удовлетворяющие XG, способны самостоятельно создавать достаточно

современное звучание без применения дополнительных тонгенераторов и

модулей обработки, и к тому же гарантируют переносимость партитур с

младших моделей на старшие практически без доработки. Требования к ус-

тройству, поддерживающему базовый уровень XG (Level 1):

- 32-голосная полифония;

- поддержка стандартов GM и GS;

- наличие 676 мелодических тембров и 21 набора ударных/эффектов;

- независимая подстройка высоты каждой ступени звукоряда;

- поддержка плавного скольжения высоты тона (портаменто);

- управление чувствительностью тембра к силе удара (Velocity);

- синхронное и независимое управление высотой и амплитудой зву-

ка, частотой среза фильтра от нескольких MIDI-контроллеров;

- наличие трех эффект-процессоров - Reverb, Chorus и Variation.

Возможные расширения XG:

- до 64 MIDI-каналов (до четырех раздельных MIDI-портов с возможностью

управления всем устройством по любому из них);

- до 64 AD-каналов - аналоговых каналов с АЦП на входе, сигналы с ко-

торых поступают на обработку эффект-процессорами;

- дополнительный трехполосный эквалайзер;

- дополнительные эффект-процессоры - Distortion, Harmonizer и т.п.

Набор тембров состоит из двух перекрывающихся наборов: 480/10 в режиме

XG и 579/11 в режиме TG300B (GS).

В режиме GM доступны 128 стандартных мелодических тембров, стандартный

набор ударных и стандартные контроллеры/RPN. В режиме XG доступны до-

полнительные банки, контроллеры, NRPN и SysEx.

Выбор банков осуществляется передачей обоих байтов номера; при этом

старший байт (контроллер 0) задает тип банка, а младший байт (контрол-

лер 32) - номер банка указанного типа. В XG определено четыре типа

банков:

0 Normal (мелодические)

64 SFX (звуковые эффекты с переменной высотой)

126 SFX (звуковые эффекты с фиксированной высотой)

127 Drums (ударные)

Любой MIDI-канал путем выбора банка может быть установлен в мелодичес-

кий или ударный режим.

В режиме XG доступны 44 банка мелодических тембров:

0 Standard (General MIDI)

1 KSP (Key Scale Panning - панорамирование по клавиатуре)

3 Stereo (стереофонические)

6 Single

8 Slow (имитация медленного звукоизвлечения)

12 Fast Decay (с быстрым затуханием)

14 Double Attack (сдвоенные)

16-17 Bright (яркие)

18-19 Dark (тусклые)

20 Resonant (с резонансом)

24 Attack (с мягкой атакой)

25 Release (с послезвучием при отпускании клавиши)

27 Rezo Sweep (со скользящим резонансом)

28 Muted (приглушенные)

32 Detune 1 (с расстройкой слоев)

33 Detune 2

34 Detune 3

35 Octave 1 (слои настроены в октаву)

36 Octave 2

37 5th 1 (слои настроены в квинту)

38 5th 2

39 Bend

40-42 Tutti (слои из разных звуков)

43 Velo-Switch (с переключением по силе удара)

45 Velo-Xfade (с плавным переходом по силе удара)

64-72,

96-101 Other wave (прочие тембры)

9 банков ударных тембров:

0 Standard Kit 1

1 Standard Kit 2

8 Room Kit

16 Rock Kit

24 Electro Kit

25 Analog Kit

32 Jazz Kit

40 Brush Kit

48 Classic Kit

и 2 банка звуковых эффектов:

0 SFX 1

1 SFX 2

В режиме TG300B/GS раскладка банков и инструментов совпадает с GS.

 

Стандартом XG введены контроллеры, дополнительные к GS:

38 - Data Entry LSB (ввод данных, младший байт)

71 - Harmonic Content (содержание гармоник, добротность фильра)

72 - Release Time (время затухания звука после выключения ноты)

73 - Attack Time (время нарастания звука после включения ноты)

74 - Brightness (яркость, частота среза фильтра)

94 - Variation Level (глубина эффекта Variation)

96 - Data Increment (увеличение xRPN на 1, значение игнорируется)

97 - Data Decrement (уменьшение xRPN на 1, значение игнорируется)

Почти все контроллеры, стандартизированные в XG, до этого успели стать

стандартом де-факто во многих инструментах.

Стандартом также введены дополнительные к GS NRPN для ударных:

NRPN 20/nn - Drum Filter Cutoff (частота среза фильтра)

NRPN 21/nn - Drum Filter Resonance (глубина резонанса фильтра)

NRPN 22/nn - Drum Attack Time (длительность атаки)

NRPN 23/nn - Drum Decay Time (длительность первичного спада)

NRPN 25/nn - Drum Pitch Fine Tune (точная подстройка высоты)

 

Три эффект-процессора являются полностью независимыми, каждый из них

может обрабатывать сигнал от произвольного количества каналов. Reverb

и Chorus являются системными (System) эффектами - через них проходит

сигнал от каждого канала с возможностью независимой регулировки глуби-

ны эффекта. Variation может работать в режиме как системного, так и

выделенного (Insertion) эффекта, когда процессор обрабатывает сигнал

только одного канала.

XG Level 1 определяет по 8 эффектов типа Reverb и Chorus и 36 эффектов

типа Variation, в число которых также входит по 8 таких же типов

Reverb и Chorus. Параметры каждого из трех выбранных эффектов управля-

ются посредством набора SysEx.

Устройства, совместимые с XG, должны поддерживать SysEx "XG System On"

(переключение в режим Yamaha XG): F0 43 1n 4C 00 00 7E 00 F7, где n -

номер устройства в сети (устанавливается по-разному для разных ус-

тройств, по умолчанию 0). Для полной инициализации MIDI-системы необ-

ходима подача этого сообщения из режима GM.

 

Совместмость стандартов по звучанию

===================================

Общность инструментов внутри стандарта и между ними чаще всего подра-

зумевает только совпадение номеров и основных звуковых характеристик.

"Одинаковые" тембры на различных инструментах почти всегда имеют раз-

личную окраску, динамику, яркость, громкость по умолчанию и другие

особенности, а "синтетические" тембры могут совершенно отличаться друг

от друга. Кроме этого, у разных инструментов различается зависимость

характера звука от силы удара по клавише, динамика работы MIDI-кон-

троллеров, положения контроллеров по умолчанию и прочие "тонкие" пара-

метры. Поэтому MIDI-партитура, подготовленная для конкретного инстру-

мента, на других инструментах (даже внутри стандарта) часто звучит со-

вершенно по-другому, и это необходимо учитывать при переносе партитур

с между инструментами различных моделей. Единственным исключением из

этого является стандарт XG, специально ориентированный на повторение

особенностей звучания тембров во всех моделях устройств.

 

Применения MIDI

**********************************************************************

 

Основное применение MIDI - хранение и передача музыкальной информации.

Это может быть управление электронными музыкальными инструментами в

реальном времени, запись MIDI-потока, формируемого при игре исполните-

ля, на носитель данных с последующим редактированием и воспроизведени-

ем (так называемый MIDI-секвенсор), синхронизация различной аппаратуры

(синтезаторы, ритм-машины, магнитофоны, блоки обработки звука, свето-

вая аппаратура, дымогенераторы и т.п.).

Устройства, предназначенные только для создания звука по MIDI-коман-

дам, не имеющие собственных исполнительских органов, называются

тон-генераторами. Многие тон-генераторы имеют панель управления и ин-

дикации для установки основных режимов работы и наблюдения за ними,

однако создание звука идет под управлением поступающих MIDI-команд.

Устройства, предназначенные только для формирования MIDI-сообщений, не

содержащие средств синтеза звука, называются MIDI-контроллерами. Это

может быть клавиатура, педаль, рукоятка с несколькими степенями свобо-

ды, ударная установка с датчиками способа и силы удара, а также -

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

воздействия и приемов игры. Тон-генератор с достаточными возможностями

по управлению может весьма точно воспроизвести оттенки звучания ин-

струмента по сформированному контроллером MIDI-потоку.

Для хранения MIDI-партитур на носителях данных разработаны форматы SMF

(Standard MIDI File - стандартный MIDI-файл) трех типов:

0 - непосредственно MIDI-поток в том виде, в каком он передается по

интерфейсу.

1 - совокупность параллельных "дорожек", каждая из которых обычно

представляет собой отдельную партию произведения, исполняемую на одном

MIDI-канале.

2 - совокупность нескольких произведений, каждое из которых состоит из

нескольких дорожек.

В основном применяется формат 1, позволяющий хранить одно произведение

в файле.

Кроме MIDI-событий, файл содержит также "фиктивные события" (Meta

Events), используемые только для оформления файла и не передаваемые по

интерфейсу - информация о метрике и темпе, описание произведения, наз-

вания партий, слова песни и т.п.

======================================================================

Большое спасибо всем приславшим ответы, рекомендации, замечания и со-

веты для этого описания.

Текст описания в альтернативной кодировке доступен для FReq на

2:5000/14@FidoNet по имени MIDIDESC. Полный пакет FAQ и описаний дос-

тупен на ftp://spider.nrcde.ru/pub/text/tech/emhwfaqs.zip и через

страницу FAQ на http://spider.nrcde.ru. Пакет распространяется также

по FIDO fileecho XHRDDOCS.

=====================================================================