MIDI: что это и как работает
MIDI — не звук, а язык команд: какая нота, как сильно, на каком канале. Ниже — из чего собрано сообщение, как устроены разъёмы и почему ноты иногда залипают.
MIDI — это нотная запись для машин, а не звук
MIDI (Musical Instrument Digital Interface) — протокол обмена командами между музыкальными устройствами. По кабелю идёт не аудио, а сообщения вроде «нажата нота 60 со скоростью 100», «поверни ручку фильтра», «нажата педаль сустейна». Звук рождается уже в приёмнике: в синтезаторе, семплере или VST-плагине. Поэтому один и тот же MIDI-файл звучит на рояле, на электропиано или на гитарном плагине — смотря чем его проиграть.
Стандарт появился в 1983 году: его показали в январе, а спецификацию опубликовали в августе. Его делали вместе Roland, Yamaha, Korg, Kawai и Sequential Circuits, чтобы клавиатура одной фирмы могла играть синтезатором другой. Получилось так хорошо, что формат живёт сорок с лишним лет.
Из чего состоит сообщение
Каждое сообщение — это статус-байт и до двух байт данных. Первый бит байта говорит, статус это или данные, поэтому на значение остаётся семь бит: числа от 0 до 127. Отсюда все «сто двадцать семь» в MIDI: номера нот, скорость нажатия, громкость.
Ноты нумеруются от 0 до 127 — это диапазон от до минус первой октавы до соль девятой, шире рояльных 88 клавиш. Нота 60 — «до» первой октавы. Один нюанс: в одних программах её называют C3, в других C4, и это не ошибка, а разные договорённости об октавах. Если ноты уехали на октаву, смотрите на номера, а не на подписи.
Скорость нажатия (velocity) задаёт, как громко и ярко сыграна нота. Если у клавиатуры нет чувствительности, она шлёт одно и то же значение. Нота выключается другим сообщением — Note Off; многие устройства вместо него шлют Note On со скоростью 0.
Каналы, контроллеры и педали
По одному кабелю идут 16 каналов: к одной линии можно подключить несколько инструментов и адресовать команды каждому отдельно. Например: канал 1 — рояль, канал 2 — бас, канал 10 — барабаны (так принято в General MIDI, о нём ниже).
Кроме нот, есть Control Change — номера контроллеров, у части из них закреплён смысл: CC 1 — колесо модуляции, CC 7 — громкость канала, CC 64 — педаль сустейна. Остальные ручки и фейдеры вы назначаете сами: на частоту среза фильтра, на реверберацию, на что угодно, что умеет принимать плагин. Смена тембра — Program Change.
Колесо питча отдельное: его значение занимает два байта данных и хранится с разрешением 14 бит, то есть 16384 шага. Для плавного глиссандо 128 ступеней мало, на слух они превращаются в лесенку, а 16384 — уже нет.
Разъёмы: DIN, USB и Bluetooth
Оригинальный MIDI — это пятиконтактный разъём DIN и последовательная линия на скорости 31 250 бод. Вход в приборе развязан оптроном, чтобы между устройствами не возникало земляных петель. Три гнезда на корпусе: IN, OUT и необязательный THRU, который просто повторяет то, что пришло на вход.
Сегодня клавиатуры чаще подключают по USB: компьютер обычно видит устройство как MIDI-интерфейс без драйверов. На некоторых устройствах есть ещё Bluetooth MIDI. Сам протокол при этом остаётся тем же, меняется только перевозчик. Если у старого синтезатора только DIN, берут MIDI-интерфейс — у некоторых звуковых карт он есть на борту; о выборе карты есть отдельная статья.
Почему MIDI не «тормозит» — и когда всё-таки тормозит
Каждый байт на линии занимает 10 бит (стартовый, восемь данных, стоповый), при 31 250 бод это 320 микросекунд. Нота — три байта, то есть меньше одной миллисекунды. Аккорд из десяти нот, отправленный по одному DIN-кабелю, растягивается примерно на десять миллисекунд: ноты идут одна за другой, а не одновременно. В обычном аккорде эта «лесенка» на слух незаметна. В плотных партиях на нескольких каналах её иногда слышно.
Реальная задержка при игре в плагин складывается из другого: размера аудио-буфера и драйвера звуковой карты. Про это подробно в статье про ASIO, задержку и форматы плагинов. Если нота после нажатия звучит с заметным опозданием, смотрите прежде всего на размер аудио-буфера.
Если нота залипла, а клавиатура молчит, виновата почти всегда потерянная команда Note Off. В любой DAW есть кнопка «Panic» или «All notes off»: она посылает выключение на все ноты всех каналов.
MIDI в DAW: пиано-ролл вместо нотной записи
В FL Studio и любой другой программе MIDI-данные лежат в пиано-ролле: прямоугольники по оси времени, высота — нота, длина — длительность. Скорость нажатия видна столбиками снизу. Записанную с клавиатуры партию можно поправить: подвинуть ноту, выровнять по сетке (квантизация), поменять инструмент, перенести на октаву — звук при этом не пересводится, ведь звука нет.
Отсюда главное правило: пока партия остаётся MIDI, ею можно играть чем угодно. Когда нужно зафиксировать звучание, партию «печатают» — рендерят в аудио. Это уже необратимо: поменять ноту после этого нельзя.
Попробовать MIDI без железа можно в виртуальной клавиатуре в браузере или в онлайн-пианино. Если вы только выбираете клавиатуру, начните со статьи про выбор MIDI-клавиатуры.
General MIDI и MIDI-файлы
В 1991 году появился стандарт General MIDI: 128 инструментов в фиксированном порядке и барабаны на канале 10. Благодаря ему файл .mid играл примерно то же самое на любой звуковой карте. Сам файл крошечный: он хранит только события, а не звук, и песня занимает килобайты.
Минус General MIDI: «рояль» у каждого производителя свой.
MIDI 2.0: что изменилось
О MIDI 2.0 объявили в январе 2020 года. Он не заменяет первую версию, а расширяет её: устройства договариваются по двусторонней связи (MIDI-CI), значения контроллеров получили гораздо большее разрешение вместо 128 ступеней, а управление отдельными нотами стало точнее. Новый формат пакетов называется Universal MIDI Packet. Старые клавиатуры и синтезаторы остаются совместимыми: сегодня подавляющее большинство инструментов всё ещё говорит на MIDI 1.0.
Практический вывод для домашней студии простой: покупайте инструмент по звуку и клавишам, а не по версии протокола.
Частые вопросы
Что такое MIDI простыми словами? +
Протокол, по которому клавиатуры, секвенсоры и синтезаторы передают друг другу команды: какую ноту играть, как сильно и на каком канале. Звука в MIDI нет.
Чем MIDI-файл отличается от MP3? +
MIDI-файл хранит ноты и команды, поэтому весит килобайты и звучит так, как его проиграет синтезатор. MP3 хранит уже готовый звук.
Сколько каналов в MIDI? +
Шестнадцать на один кабель или порт. На каждом канале может играть свой инструмент.
Почему ноты залипают? +
Приёмник не получил команду Note Off. Помогает кнопка Panic или «All notes off» в программе.
Нужен ли MIDI-кабель, если есть USB? +
Нет: большинство современных клавиатур подключаются по USB и передают те же MIDI-сообщения. Пятиконтактный DIN нужен для старого железа.
Больше сорока лет один и тот же протокол. И клавиатура 1983 года до сих пор может сыграть на синтезаторе, который сделали сорок лет спустя.