Цифровой интерфейс музыкальных инструментовРефераты >> Программирование и компьютеры >> Цифровой интерфейс музыкальных инструментов
В сообщении «С0 рр», байт C0 является байтом состояния (C0=11000000), а pp-байтом данных.
MIDI-каналы:
Канал –это, в одном случае, число независимых генераторов звука, в других случаех, это количество разных инструментов(гитара, труба и т.д.), звуки которых может проигровать MIDI-устройство одновременно.
Обычно нумерация каналов начинается с 1, так что, если значение канала в команде равно 0, то мы имеем дело с каналом номер 1. Использование 16 каналов позволяет передать по кабелю MIDI – интерфейса сообщения для 16 различных голосов, звучащих одновременно. Как правило каждая строка MIDI-сообщения начинается с команды Program Change, которая определяет для каждого канала свой инструмент, а затем идет множество чередующихся Note On и Note Off с редкими вкраплении Program Change, необходимой для замены одного инструмента другим. Но в любой момент времени каждому каналу соответствует только один голос.
Рассмотрим такой пример, что наша клавиатура может генерировать MIDI-сообщения одновременно для двух каналов – канала 1 и канала 2. Нажав соответствующие кнопки, вы можете на синтезатор послать две команды Program Change:
С0 01
С1 05
Таким образом, для канала 1 установлена программа 2, а для канала 2 программа 6.
Теперь, если вы нажмете на клавишу, клавиатура сгенерирует две команды Note On для каждого из каналов:
90 kk vv
91 kk vv
То есть система начинает воспроизводить звук двух разных инструментов в унисон.
Существуют так называемые “разделенные” клавиатуры, в которых клавиши нижних октав могут генерировать команды для одного канала, а клавиши верхних для другого. Это дает возможность играть как бы на двух независимых инструментах одновременно. Возможности 16-и канальной организации MIDI-интерфейса становятся реально ощутимы при использовании программы – секвенсера, запущенной на подключенном к нашей системе компьютере. Каждому из каналов можно привести в соответствие свой голос, и если ваш синтезатор способен воспроизводить звуки 16 независимых инструментов одновременно – вы становитесь руководителем оркестра в составе 16 покорных вашей воле музыкантов.
В общем случае MIDI сообщение имеет следующий вид (по битово):
1 |
х |
х |
х |
у |
у |
у |
у |
|
| ||||||
| |||||||
0 |
0 |
|
| ||||
Какие бывают виды MIDI-сообщений?
MIDI- сообщения делятся на канальные - относящиеся к конкретному каналу, и системные - относящиеся к системе в целом. Кодировка MIDI-сообщений (шестнадцатеричная, n в первом байте обозначает номер канала):
Канальные сообщения: · 8n nn vv - Note Off (выключение ноты)· · 9n nn vv - Note On (включение ноты)· · An nn pp - Key Pressure (Polyphonic Aftertouch, давление на клавишу)· · Bn cc vv - Control Change (смена значения контроллера)· · Cn pp - Program Change (смена программы (тембра, инструмента))· · Dn pp - Channel Pressure (Channel Aftertouch, давление в канале)· · En ll mm - Pitch Bend Change (плавное изменение высоты тона в канале)·
Системные сообщения: · F0 - System Exclusive (SysEx, системное исключительное сообщение)· · F1 - резерв· · F2 ll mm - Song Position Pointer (указатель позиции в партитуре)· · F3 ss - Song Select (выбор партитуры)· · F4 - резерв· · F5 - резерв· · F6 - Tune Request (запрос подстройки)· · F7 - EOX (End Of SysEx, конец системного исключительного сообщения)· · F8 - Timing Clock (синхронизация по времени)· · F9 - резерв· · FA - Start (запуск игры по партитуре)· · FB - Continue (продолжение игры по партитуре)· · FC - Stop (остановка игры по партитуре)· · FD - резерв· · FE - Active Sensing (проверка соединений MIDI-сети)· · FF - System Reset (сброс всех устройств сети)
Описание канальных сообщений:
Note On (nn - номер ноты, vv - скорость (velocity) нажатия) Note Off (nn - номер ноты, vv - скорость отпускания)
Cообщает о включении/выключении звучания ноты. MIDI-клавиатура генерирует эти сообщения при нажатии/отпускании клавиш, MIDI-синтезатор запускает или останавливает работу соответствующего генератора звука.
Номер ноты задается абсолютным номером полутона в диапазоне 0 127, при этом центральной фортепианной клавише - ноте "До" первой октавы - соответствует десятичный номер 60 (в MIDI принята нумерация октав с нуля, поэтому она обозначается как C-5).
Скорость нажатия/отпускания задается числом в диапазоне 0 127, отражающим скорость перемещения клавиши (обычно используется логарифмическая шкала). Скорость нажатия косвенно отражает силу удара по клавише. Чувствительная к скорости нажатия (динамическая) клавиатура выдает реальные значения, нечувствительная должна выдавать десятичные значения 64. Значение 0 в сообщении Note On полностью эквивалентно сообщению Note Off для этой же клавиши - это позволяет при передаче только нажатий и отпусканий использовать режим Running Status.