Главная Протокол MIDI Принцип действия Звукосниматель Лады и струны Питание Аналоговая часть Контроллер PIC16x74 COM-порт MIDI-порт Управление и индикация Алгоритм детектирования нот |
Протокол MIDIПротокол MIDI (Musical Instrument Digital Interface) получил широкое распространение в начале 80-х годов. Основное его назначение - обеспечивать передачу команд управления от MIDI-контроллера (чаще всего это клавиатура, подобная фортепианной) к синтезатору, который собственно порождает звук, передаваемый затем на усилитель и акустические системы. В тех устройствах, которые в обиходе принято называть "синтезаторами", на самом деле обычно собраны все перечисленные компоненты - клавиатура, собственно синтезатор, есть усилитель и встроенные динамики. Однако профессиональные синтезаторы выполняют в виде отдельного "ящика", ничем внешне на рояль не похожего. В этом случае к нему при помощи кабеля MIDI подключаются контроллеры - рояльные клавиатуры, MIDI-барабаны и т.д., а также секвенсоры - устройства, позволяющие записывать, обрабатывать и воспроизводить последовательности MIDI-команд. В интернете можно найти следующие иллюстрации к сказанному: Данные по протоколу 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-гитар. |