Цифровой звук. Реальный мир стр.181
\4
В реальном MIDI-сообщении все три байта представляют собой числа в двоичном формате (последовательности нулей и единиц). Поскольку длинные строки двоичных знаков неудобочитаемы, программисты обычно работают с такими данными, представленными в шестнадцатеричной системе счисления, в которой для записи чисел используются шесть букв (А-F) и десять цифр (0-9). Например, десятичное число 26 в шестнадцатеричной форме j имеет вид 1А. Конечным пользователям нет особой нужды забивать себе голову командами в шестнадцатеричной форме. (Тем, кто пишет команды для программ или самодельной MIDI-аппаратуры, рекомендуем Web-сайт http://en.wikipedia.org/wiki/Hexadecimal; здесь вы найдете превосходное объяснение того, как читать команды в шестнадцатеричном формате.)
Вот пример MIDI-сообщения: “Нажмите нотную клавишу «ми» первой октавы — и клавиатура выдаст три числа: 144 52 42”.
Первое число (байт состояния, 144) указывает тип сообщения — note-on, канал
1. Второе число (первый байт данных, 52) — это номер ноты, соответствующий ноте “ми” первой октавы. Третье число (второй байт данных, 42) — это значение параметра velocity, скорость, с которой была нажата клавиша этой ноты.
Поскольку все без исключения MIDI-сообщения обязательно начинаются с байта состояния, формально их можно разбить на типы в соответствии со значением байта состояния.
• Note-on
• Note-off
• Pitch-bend
• Key pressure (иногда называют poly aftertouch или poly pressure)
• Channel pressure (чаще называют aftertouch; давление на клавишу после того, как она нажата)
• Control change (тип сообщения СС (изменение положения регулятора) и контрольное число для одного из 128 возможных регуляторов)
• Program change (изменение настроек программы; используется для переключения инструмента с одной программы звука в другую)
Все эти MIDI-сообщения относятся к категории Channel — канальные. Это значит, что их можно использовать в общем потоке MIDI-данных одновременно для нескольких (максимум — 16-ти) каналов. Остальные сообщения относятся к категории System (системные) и используются для управления устройствами или музыкальной системой в целом, а также для выполнения ряда специальных функций, не относящихся к созданию музыки. К ним относятся сообщения категорий system-realtime (оперативные системные), system-common (стандартные системные), MIDI Time Code (все сообщения этой категории являются синхронизирующими) и system-exclusive (нестандартные системные). Сообщения категории system-exclusive определяются разработчиками самостоятельно. (Машинные коды MIDI Machine Code [ММС] —образец системных данных.)
Сообщения категории system-exclusive могут быть не трехбайтовыми, а намного длиннее. Используя формат сообщения “В начале — системный байт start of exclusive (начало нестандартного системного сообщения), после него — байты I данных и в конце системный байт end of exclusive (конец нестандартного системного сообщения)”, разработчик конкретной модели оснащения может как угодно наращивать длину сообщения категории system-exclusive.
Комментарии 0