MIDI (от англ. Musical Instrument Digital Interface) — стандарт цифровой звукозаписи. В основе стандарта — обмен информацией между электронными музыкальными инструментами и компьютерами. MIDI появился в 1983 году, навсегда изменив музыкальную индустрию: технология позволила отделить игру музыканта от воспроизводимых инструментом звуков. Музыканты получили возможность использовать любые звуки, вне зависимости от используемого оборудования.
Для использования стандарта не требуется наличие технических знаний. Достаточно соединить между собой устройства с поддержкой MIDI, чтобы извлекать любые звуки. MIDI всегда остается дружелюбным к пользователю, позволяя в любой момент изменять воспроизводимый звук.
Создание виртуальных инструментов и смелые эксперименты со звуком требуют знаний о MIDI-событиях (англ. MIDI messages). События разделены на семь видов, в зависимости от предназначения.
Что такое MIDI-события?
MIDI-событие — это инструкция, управляющая аспектом работы принимающего устройства. События состоят из комбинаций байтов, в которых на устройство поступают определенные параметры. В качестве приемников служат любые студийные и музыкальные инструменты с поддержкой MIDI: синтезаторы, MIDI-клавиатуры, электропианино, электророяли, электронные ударные, диджейские консоли.
MIDI-события делятся на два вида:
- Канальные (Channel). Такие события отправляют информацию на определенный канал устройства-приемника. Услышать канальное событие можно только при прослушивании канала, на который они отправлены. В случае, если эти каналы деактивированы, событие не услышать. Канальные события бывают двух видов: голосовые (Voice) и режимные (Mode);
- Системные (System). Эти события влияют на работу всех компонентов приемника и передаются на все MIDI-каналы одновременно. Системные события бывают трех видов: общие (Common), реального времени (Real-Time) и эксклюзивные (Exclusive).
Каждое MIDI-событие состоит из трех байт информации. Первый байт (Status Byte) содержит специальный идентификатор события, передающий основные данные о воспроизведении звука. Второй байт (Data Byte 1) сообщает информацию о воспроизводимой ноте, ее высоте и положении в октаве. Третий байт (Data Byte 2) передает параметр Note Velocity — силу извлечения звука.
Что такое Note Velocity и зачем это нужно?
Note Velocity — аналог атаки при игре на реальном инструменте, то есть информация о том, с какой силой или скоростью извлекается звук при работе с MIDI-инструментами.Чем сильнее нажатие на клавишу MIDI-клавиатуры или удар по электронному пэду барабанов, тем выше параметр Note Velocity.
Параметр принимает значения от 0 до 127, где 0 — извлечения ноты не было, а 127 — звук извлечен с максимальной силой. Представление этой информации виртуальным инструментом или синтезатором зависит только от задумок разработчиков. Тем не менее, в 99% случаев виртуальный инструмент реагирует на параметр Note Velocity так же, как и реальный инструмент. Благодаря этому, MIDI может передавать особенности игры и звукоизвлечения.
Удобство в том, что у музыканта сохраняется возможность исправить огрехи слишком слабой или сильной игры во время записи и устранить недочеты хорошо записанной партии.
MIDI-события System Common
Общие системные MIDI-события активно применяются в синтезаторах для передачи общей информации о воспроизводимых MIDI-файлах.
Среди информации, передаваемой общими системными событиями, выделяют:
- Информацию о тональности (Tune Request). Когда музыкант изменяет тональность демо или MIDI-файла, на устройство передаются данные Tune Request;
- Информацию о выбранной песне (Song Request). Выбрав файл для воспроизведения, на MIDI-устройство отправляется специальный набор байтов, указывающий на этот файл;
- Информацию о позиции для воспроизведения (Song Pointer Position). Если пользователь хочет начать воспроизведение с определенной отметки, переход по файлу осуществляется при помощи этого подсобытия.
- Информацию о длительности файла (MIDI Time Code). MIDI Time Code кодирует и передает данные о длительности проигрываемого файла.
MIDI-события System Real-Time
Системные MIDI-события реального времени помогают управлять воспроизведением MIDI-файлов. Такие события отвечают за запуск и остановку проигрывания файлов. Дополнительно к этой категории относятся события, отвечающие за полный сброс настроек устройства.
MIDI-события System Exclusive
Системные эксклюзивные события отведены под передачу информации об используемом MIDI-устройстве. При помощи этих событий MIDI-инструменты выводят данные о производителе и модели устройства, его серийном номере и другой системной информации.
MIDI-события Channel Mode
Канальные режимные изменяют параметры работы MIDI-устройства во время игры. Так, здесь передаются данные о включении моно- и полифонии, отключении звуков и нот, а также активации приема MIDI-данных на всех каналах устройства (Omni Mode).
MIDI-события Channel Voice
Большая часть информации, генерируемой музыкантом при игре, относятся к канальным голосовым событиям (Channel Voice). События Channel Voice делятся на два типа: связанные со звуками и непрерывные. Группа Channel Voice состоит из 7 подсобытий:
- Note On — активация ноты, начало звука;
- Note Off — деактивация ноты, окончание звука;
- Monophonic (Channel) Pressure/Aftertouch — параметры силы нажатия клавиши или силы извлечения монофонического звука (эффект послекасания);
- Polyphonic (Key) Pressure/Aftertouch — параметры силы извлечения полифонического звука (эффект послекасания);
- Pitch Bend — изменение высоты звука;
- Program Change — изменение программы;
- Control Change/Continuous Controller — события потокового управления (127 штук), участвующие в управлении извлеченным звуком и обозначаемые при помощи сокращения CC.
Обычно разработчики стараются расположить активацию этих параметров на неиспользуемых клавишах. Если речь идет о виртуальной гитаре, чей диапазон меньше, чем у фортепиано, активацию MIDI-событий обычно присваивают на те клавиши, которые находятся за пределами используемого диапазона.
Состав передаваемой на MIDI-устройство информации на примере канальных голосовых событий
MIDI-событие | Первый байт (Status Byte) | Второй байт (Data Byte 1) | Третий байт (Data Byte 2) |
---|---|---|---|
Note On | Начало воспроизведения ноты | Какая нота будет извлечена | Сила нажатия |
Note Off | Окончание воспроизведения ноты | Какая нота будет извлечена | Сила нажатия |
Monophonic (Channel) Pressure | Активация функции послекасания | Сила давления на клавишу | - |
Polyphonic (Key) Pressure | Активация функции послекасания | Какая нота будет извлечена | Сила давления на клавишу |
Pitch Bend | Активация функции изменения высоты звука | Значение, на которое повышается или понижается звук | Исходное значение звука |
Program Change | Активация изменения программы | Номер программы | - |
Control Change | Активация потокового управления | Вызов подсобытия CC | Значение CC# |
MIDI-события, связанные с нотами и звуками
С точки зрения MIDI, любая нота имеет начальную и конечную позицию, в рамках которой воспроизводится звук. Когда на приемник MIDI-информации поступает событие Note On, устройство или редактор воспроизводит звук. Чтобы воспроизведение ноты прекратилось, на приемник поступает событие Note Off — сами по себе MIDI-устройства не знают, как долго должен издаваться звук.
Обычно событие Note On привязано к зажатию клавиши MIDI-клавиатуры, а Note Off — к отпусканию клавиши. Тем не менее, иногда для большей правдоподобности звучания инструментов разработчики сдвигают событие Note Off, чтобы оно появлялось через некоторое время после отпускания клавиши.
Непрерывные MIDI-события
К непрерывным относятся подсобытия Pitch Bend, Control Change и два вида Aftertouch. Непрерывные сообщения объединяют информацию о том, как было сгенерировано MIDI-событие.
Эта информация поступает на MIDI-приемник постоянно, а значения параметров Pitch Bend, Control Change и Aftertouch изменяются постепенно во время генерации звука. В потоке информации непрерывных событий передаются сведения о громкости, высоте, тембре, резкости, ясности и других особенностях извлеченного звука.
Имитация эффекта вибрато на гитаре, звучание звука с определенным количеством сустейна, нарастание громкости звука и другие подобные сложные эффекты создаются при помощи Pitch Bend, Control Change и Aftertouch.
Aftertouch или эффект послекасания
Два параметра Aftertouch генерируются в зависимости от силы нажатия клавиши и длительности зажатия. Благодаря событиям Aftertouch современные MIDI-клавиатуры и электронные пианино имитируют эффект послекасания, который передает ощущения от игры на реальном инструменте.
События Aftertouch работают в связке со специальными датчиками, реагирующими на силу нажатия. Датчики устанавливаются под клавишами и непрерывно генерируют события послекасания, передавая сведения о давлении, с которым производится извлечение ноты. Эффект послекасания добавляет извлекаемым звукам экспрессии.
Если Aftertouch-событие относится к типу Channel (Monophonic) Aftertouch, то на всю клавиатуру приходится один датчик давления, а параметры послекасания применяются сразу ко всем нотам. События Channel (Polyphonic) Aftertouch применяются к каждой клавише по отдельности.
Pitch Bend
Генерацию сведений об изменении высоты звука выполняют специальные колеса модуляции и питча. Это событие полностью игнорирует длительность звука, а влияние параметра Pitch Bend на высоту звука зависит только от разработчиков софта или настроек, заданных музыкантом. Самым распространенным вариантом изменения является повышение или понижение звука на целый тон, хотя никто не запрещает запрограммировать изменение на октаву или две.
У параметров Pitch Bend отсутствует нулевое значение: 0 не заглушает звук, а указывает на отсутствие изменения его высоты.
MIDI-события изменения программы
События Program Change отвечают за смену наборов инструментов, звуков и патчей. Несмотря на то, что подобные события официально не признаны устаревшими, разработчики используют их очень редко.
MIDI-события потокового управления
Сообщения потокового управления (CC) — обширная категория из 127 разных типов событий. Все CC-события непрерывны и постепенно изменяют собственные значения для управления динамикой извлеченного звука.
Несмотря на большое количество CC-событий, активно используются далеко не все. Одни подсобытия заранее определяются разработчиками, другие доступны пользователям для свободного использования, третьи — не используются никогда. Среди самых популярных обычно выделяют пять подсобытий — CC#1, CC#7, CC#10, CC#11 и CC#64 (см. полный список событий потокового управления на сайте midi.org).
СС#1 привязано к колесу модуляции, хотя в теории привязать к нему можно любую функцию изменения звука. Чаще всего на это подсобытие назначают добавление автоматического эффекта вибрато. В более редких случаях за ним закрепляют функции управления тембром инструмента.
CC#7 и CC#10 отвечают за параметры громкости и панорамы. MIDI-устройства с поворотными регуляторами могут изменять громкость и значение панорамы в окне DAW через эти события. Во всех остальных случаях CC#7 и CC#10 не нужны.
Подсобытие CC#11 обозначается «Expression» и контролирует громкость исполнения. Самыми распространенными устройствами, поддерживающими это подсобытие, являются педали экспрессии (громкости) синтезаторов, MIDI-контроллеров, электропианино и электроорганов.
MIDI-событие CC#64 отведено под педаль демпинга MIDI-клавиатуры или синтезатора. Подсобытие реагирует на положение педали, присваивая ноте значение в пределах 0-63, если педаль поднята, и 64-127, если педаль опущена (зажата). Некоторые продвинутые MIDI-контроллеры, педали и виртуальные инструменты расширяют возможности подсобытия CC#64, позволяя применять техники игры с полуоткрытой педалью.