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

    Стандарты 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
1 Bright Acoustic Piano
2 Electric Grand Piano
3 Honky-tonk Piano
4 Electric Piano 1
5 Electric Piano 2
6 Harpsichord
7 Clavinet
8 Celesta
9 Glockenspiel
10 Music Box
11 Vibraphone
12 Marimba
13 Xylophone
14 Tubular Bells
15 Dulcimer

Organ Guitar

16 Drawbar Organ
17 Percussive Organ
18 Rock Organ
19 Church Organ
20 Reed Organ
21 Accordion
22 Harmonica
23 Tango Accordion
24 Acoustic Guitar (nylon)
25 Acoustic Guitar (steel)
26 Electric Guitar (jazz)
27 Electric Guitar (clean)
28 Electric Guitar (muted)
29 Overdriven Guitar
30 Distortion Guitar
31 Guitar Harmonics

Bass Strings

32 Acoustic Bass
33 Electric Bass (finger)
34 Electric Bass (pick)
35 Fretless Bass
36 Slap Bass 1
37 Slap Bass 2
38 Synth Bass 1
39 Synth Bass 2
40 Violin
41 Viola
42 Cello
43 Contrabass
44 Tremolo Strings
45 Pizzicato Strings
46 Orchestral Harp
47 Timpani

Ensemble Brass

48 String Ensemble 1
49 String Ensemble 2
50 Synth Strings 1
51 Synth Strings 2
52 Choir Aahs
53 Voice Oohs
54 Synth Voice
55 Orchestra Hit
56 Trumpet
57 Trombone
58 Tuba
59 Muted Trumpet
60 French Horn
61 Brass Section
62 Synth Brass 1
63 Synth Brass 2

Reed Pipe

64 Soprano Sax
65 Alto Sax
66 Tenor Sax
67 Baritone Sax
68 Oboe
69 English Horn
70 Bassoon
71 Clarinet
72 Piccolo
73 Flute
74 Recorder
75 Pan Flute
76 Bottle Blow
77 Shakuhachi
78 Whistle
79 Ocarina

Synth Lead Synth Pad

80 Lead 1 (square)
81 Lead 2 (sawtooth)
82 Lead 3 (calliope)
83 Lead 4 (chiff)
84 Lead 5 (charang)
85 Lead 6 (voice)
86 Lead 7 (fifths)
87 Lead 8 (bass + lead)
88 Pad 1 (new age)
89 Pad 2 (warm)
90 Pad 3 (polysynth)
91 Pad 4 (choir)
92 Pad 5 (bowed)
93 Pad 6 (metallic)
94 Pad 7 (halo)
95 Pad 8 (sweep)

Synth Effects Ethnic

96 FX 1 (rain)
97 FX 2 (soundtrack)
98 FX 3 (crystal)
99 FX 4 (atmosphere)
100 FX 5 (brightness)
101 FX 6 (goblins)
102 FX 7 (echoes)
103 FX 8 (sci-fi)
104 Sitar
105 Banjo
106 Shamisen
107 Koto
108 Kalimba
109 Bagpipe
110 Fiddle
111 Shanai

Percussive Sound Effects

112 Tinkle Bell
113 Agogo
114 Steel Drums
115 Woodblock
116 Taiko Drum
117 Melodic Tom
118 Synth Drum
119 Reverse Cymbal
120 Guitar Fret Noise
121 Breath Noise
122 Seashore
123 Bird Tweet
124 Telephone Ring
125 Helicopter
126 Applause
127 Gunshot

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

35 Acoustic Bass Drum
36 Bass Drum 1
37 Side Kick
38 Acoustic Snare
39 Hand Clap
40 Electric Snare
41 Low Floor Tom
42 Closed High-Hat
43 High Floor Tom
44 Pedal High Hat
45 Low Tom
46 Open High Hat
47 Low-Mid Tom
48 High-Mid Tom
49 Crash Cymbal 1
50 High Tom
51 Ride Cymbal 1
52 Chinese Cymbal
53 Ride Bell
54 Tambourine
55 Splash Cymbal
56 Cowbell
57 Crash Cymbal 2
58 Vibraslap
59 Ride Cymbal 2
60 High Bongo
61 Low Bongo
62 Mute High Conga
63 Open High Conga
64 Low Conga
65 High Timbale
66 Low Timbale
67 High Agogo
68 Low Agogo
69 Cabasa
70 Maracas
71 Short Whistle
72 Long Whistle
73 Short Guiro
74 Long Guiro
75 Claves
76 High Wood Block
77 Low Wood Block
78 Mute Cuica
79 Open Cuica
80 Mute Triangle
81 Open Triangle

    Полифония в 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 в печатном виде, краткие справки можно найти на http://www.mma.com и http://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), используемые только для оформления файла и не передаваемые по интерфейсу - информация о метрике и темпе, описание произведения, названия партий, слова песни и т.п.

Полезные ссылки:

http://www.synthzone.com - обширный сайт по синтезаторам
http://www.yamaha.co.uk/xg/index.htm - область XG на сервере Yamaha
http://otto.cmr.fsu.edu/~kings/mid/midi.shtml - коллекция MIDI-файлов
http://www.usd.edu/~tgannon/midinfo.html - информация о MIDI

ftp://spider.nrcde.ru/pub/sound/docs - подборка разной документации


Полный пакет FAQ и описаний доступен на http://spider.nrcde.ru .

 

Hosted by uCoz