Проект "ТРЫНДЕЛКА"

MIDI-гитара своими руками

Главная
Протокол MIDI
Принцип действия
Звукосниматель
Лады и струны
Питание
Аналоговая часть
Контроллер PIC16x74
COM-порт
MIDI-порт
Управление и индикация
Алгоритм детектирования нот

Фотоальбом
MIDI-файлы

Об авторе

Протокол MIDI

Протокол MIDI (Musical Instrument Digital Interface) получил широкое распространение в начале 80-х годов. Основное его назначение - обеспечивать передачу команд управления от MIDI-контроллера (чаще всего это клавиатура, подобная фортепианной) к синтезатору, который собственно порождает звук, передаваемый затем на усилитель и акустические системы. В тех устройствах, которые в обиходе принято называть "синтезаторами", на самом деле обычно собраны все перечисленные компоненты - клавиатура, собственно синтезатор, есть усилитель и встроенные динамики. Однако профессиональные синтезаторы выполняют в виде отдельного "ящика", ничем внешне на рояль не похожего. В этом случае к нему при помощи кабеля MIDI подключаются контроллеры - рояльные клавиатуры, MIDI-барабаны и т.д., а также секвенсоры - устройства, позволяющие записывать, обрабатывать и воспроизводить последовательности MIDI-команд. В интернете можно найти следующие иллюстрации к сказанному:

midi1.gif (5734 bytes)

midi2.gif (6692 bytes)

Данные по протоколу MIDI передаются в виде асинхронных последовательных посылок, скорость передачи составляет 31 250 бит/с. Обычная команда MIDI представляет собой 3 байта, поэтому чаще 1000 раз в секунду команды в принципе передаваться не могут. В некоторых случаях это ограничение по скорости является существенным "тормозом прогресса". В кабеле два провода (питание +5 В и сигнал) и заземленный экран, данные по нему всегда передаются в одном направлении - от выхода MIDI-OUT или MIDI-THRU одного устройства ко входу MIDI-IN   другого; допустимо параллельно подключать до 4 входов к одному выходу. Выход MIDI-THRU предназначен для того, чтобы устройство могло просто пропускать через себя  (ретранслировать) поток MIDI-команд в неизменном виде. На выходе MIDI-OUT клавиатур обычно имеются собственные MIDI-команды плюс ретранслированный вход MIDI-IN; данный подход позволяет подключать несколько клавиатур к одному входу синтезатора по принципу "одна сквозь другую".

Основные команды MIDI - это включение и выключение ноты. Когда музыкант нажимает клавишу, в синтезатор передается команда, в которой закодированы канал, высота ноты и скорость нажания клавиши (velocity). Каналов MIDI всего 16, для каждого канала могут быть независимо назначены параметры звучания, такие как тембр(инструмент), модуляция, реверберация и т.д. Высота ноты определяется номером нажатой клавиши, ноте До первой октавы соответствует клавиша номер 60. Скорость нажатия клавиши влияет на громкость и, в хороших синтезаторах, на тембровую окраску звука. Когда музыкант отпускает клавишу, передается аналогичная посылка о выключении "канал-нота-скорость". Некоторые клавиатуры вместо команды выключения ноты посылают команду включения с нулевой скоростью нажатия, что в принципе должно иметь тот же эффект, но на первых порах обескураживает. Это позволяет практически все время обходиться двухбайтовыми посылками вместо трехбайтовых за счет использования предусмотренного стандартом MIDI режима "Running  Status" - в этом режиме допускается посылка нескольких сообщений с одинаковым "кодом операции" (без указания первого байта для всех сообщений, кроме первого).

Собственно, основная задача при разработке MIDI-гитары состоит в том, чтобы она корректно формировала команды на влючение и выключение нот в зависимости от действий гитариста со струнами. Как показывает практика, задача эта сложная и до сих пор как следует не решенная ни в одной из моделей MIDI-гитар.

<<< Назад   |   Вперед >>>

Хостинг от uCoz