В статье описывается история интерфейса передачи звука музыкальных инструментов MIDI.
Ключевые слова: интерфейс передачи информации музыкального инструмента, формат передаваемых сообщений, библиотеки для программирования MIDI сообщений.
- История
Необходимость в едином стандарте передачи звука между устройствами возникла примерно к концу 70-х годов прошлого столетия. В то время синтезаторы управлялись напряжением с помощью интерфейса CV/Gate.
Главным недостатком интерфейса являлось, что с помощью него можно было управлять только одним голосом полифонии. Т.е проигрывать только один звук за раз. Для извлечения дополнительной ноты нужно было добавлять еще один интерфейс CV/Gate. Кроме того, таким способом передавался только сам факт нажатия клавиши и ее высота, этого мало для передачи выразительной игры. [1]
О разработке MIDI
В 1980 году компания Roland представила интерфейс DIN sync для синхронизации различных электронных музыкальных инструментов. Через год Roland показала шину цифрового управления (DCB).
Её основной функцией было позволять синтезаторам воспроизводиться на секвенсорах (устройствах, запоминающими наигранную мелодию). Она использовала интерфейс в параллельном стиле, который был быстрым, но дорогим в реализации.
Поэтому компании-производители договорились о разработке и поддержке единого стандарта на интерфейс управления синтезаторами — MIDI, который и появился в 1982 году.
Идеология стандарта подразумевала разделение органов управления и аппаратуры синтеза звука . Интерфейс MIDI фактически стал средством отдельной передачи положения клавиш и положения регуляторов от музыкальной клавиатуры к аппаратуре синтеза звука.
Теперь музыкант мог с одной клавиатуры управлять несколькими синтезаторами разных типов и фирм-изготовителей. Более того, цифровой формат передачи позволил дополнить саму музыкальную аппаратуру секвенсорами без внешних устройств. [1]
Таблица 1
Значимые даты
Июнь 1981 |
На выставке NAMM (это ежегодное мероприятие в США, организованное Национальной ассоциацией музыкальных торговцев) произошел первый разговор на тему единого интерфейса между главами компаний Sequential Circuits, Roland и Oberheim |
Осень 1981 |
Разработана первая версия интерфейса под названием UMI (Universal Musical Interface) |
Июнь 1982 |
На выставке NAMM были представлены результаты международной разработки. Ввиду возможных юридических проблем от названия UMI пришлось отказаться в пользу MIDI |
Осень 1982 |
Закончена предварительная спецификация MIDI |
Зима 1982 |
Выпущен первый синтезатор, оборудованный MIDI-интерфейсом — Sequencial Circuits Prophet 600 |
1983 |
Cформированs комитетs по MIDI-стандартам (JMSC), международная группа пользователей MIDI (IMUG), выпущена спецификация MIDI 1.0 |
1984 |
сформирована ассоциация MIDI-производителей (MMA) |
- Стандарты MIDI :
На протяжении многих лет, с тех пор как был создан первый стандарт MIDI, требования к интерфейсу росли и несколько менялись, чтобы удовлетворить растущие потребности электронной музыки MIDI и их производителей. Итак, давайте взглянем на четыре наиболее распространенных стандарта MIDI.
— General MIDI Level 1:
Это первый созданный стандарт. Он дал нам 128 инструментов (называемых программами или патчами), которые мы все знаем сегодня. Он также дал 64 перкуссионных патча (звуки образующие ритм — колокольчики, трещотки, бубен и пр.), которые могут быть в любом MIDI-файле. Наконец, он представил нам некоторый стандартный набор CC (непрерывных контроллеров), который сегодня предлагает большинство MIDI-программ.
— General MIDI 2:
Спустя пару лет технологии синтезаторов сильно развились, и вскоре после этого 128 звуков стало недостаточно, чтобы удовлетворить звуковые потребности современного музыканта. Некоторые производители MIDI-оборудования добавили свои собственные наработки, чтобы предложить больше звуков, больше функций в своем оборудовании. Чуть позже MMA начал процесс создания стандарта General MIDI Level 2, чтобы учесть новые функции, поскольку большинство производителей уже добавили намного больше, чем было доступно в стандарте GM level 1. GM Level 2 добавляет такие вещи, как переключение банков (чтобы иметь разные банки звуковых патчей), RPN (номер зарегистрированного параметра), чтобы обеспечить больший контроль над выразительностью звука, и NRPN (номера незарегистрированных параметров), чтобы производители могли добавлять свои собственные сочетания специальных функций. GM Level 2 полностью соответствует GM Level 1.
— Стандарт Roland GS:
Как только был установлен GM Level 2, Roland создала собственный бренд подстандартов (особенно в системных эксклюзивных данных) и NRPN, которые с тех пор внедряются во все новое MIDI-оборудование. По сути, стандарт Roland GS — это уровень GM 2, а также специальные функции и функции Roland.
— Стандарт Yamaha XG:
Как и Roland, Yamaha также создала свой собственный набор специфических функций NRPN и Sysex, чтобы придать своему MIDI-оборудованию собственное сочетание специфических функций.
- ВОЗМОЖНОСТИ MIDI:
В отличие от других форматов, MIDI — это не оцифрованный звук, а наборы команд (проигрываемые ноты, ссылки на проигрываемые инструменты, значения изменяемых параметров звука), которые могут воспроизводиться по-разному в зависимости от устройства воспроизведения. Информация, заключенная в MIDI, как правило, имеет на несколько порядков меньший размер, чем оцифрованный звук сравнимого качества. [7]
Все типы midi-сообщений делятся на две большие группы:
Рис. 1. Деление MIDI сообщений
Системные midi-сообщения (System message) передают команды, которые воздействуют на общие параметры и режимы работы всех устройств-получателей. Например, синхронизация тактов, между устройствами, урегулирование темпа и другое.
Канальные midi-сообщения (Channel message) включают в себя номер midi-канала и передают сообщения на каждый midi-канал индивидуально. Этот тип сообщения используется для непосредственно звукообразования.
Канальные midi -сообщения можно разделить на голосовые (Voice message) и режимные (Mode message). [5]
Таблица 2
Н екоторые канальные сообщения из General MIDI Level 1
Note Off |
выключение ноты |
Note On |
включение ноты |
Key Pressure |
давление на клавишу |
Program Change |
смена программы (тембра, инструмента) |
Рис. 2. Голосовые и режимные сообщения
- Физическое устройство MDI:
Физически интерфейс MIDI представляет собой вариацию последовательного интерфейса UART.
Каждый инструмент имеет три соединительных разъема: In (вход), Out (выход) и Thru (копия сигнала с In через буфер). Контакты 1 и 3 разъёма не используются. [6]
Рис. 3. MIDI соединение
Рис. 4. Разъём USB — B
С течением времени логику интерфейса перенесли на разъём USB A — USB B. И данный интерфейс используется повсеместно на современных музыкальных инструментах.
- Написание программ для работы с MIDI
Для работы с midi форматом, а именно подключением инструментов и вводом/выводом, программистами было создано несколько различных библиотек. В частности среди них:
С++
— PortMidi [2]
— RtMIDI [3]
Python
— Mido (базируется на PortMidi)
— JythonMusic [4]
Данные библиотеки предусматривают подключение midi-устройств, считывание с них информации и её обработку.
Литература:
- Мэннинг, Питер. Электронная и компьютерная музыка. 1985.
- Оф.сайт PortMidi — https://github.com/PortMidi/portmidi/
- Оф. сайт RtMidi — http://www.music.mcgill.ca/~gary/rtmidi/
- Оф. сайт проекта JythonMusic — https://jythonmusic.me/
- Живайкин.П. Л. Midi-технология в картинках и таблицах, 2006.
- Музыченко.Е.В Описание интерфейса MIDI, 1996.