Цифровой звук. Реальный мир стр.180

Оба события, note-on и note-off, сопровождаются номером ноты (таким образом, MIDI-приемник узнает, какую ноту играть) и значением параметра velocity (это значение дает датчик, фиксирующий силу нажатия клавиши).

За кулисами: анатомия MIDI-сообщения

Аналогично большинству форматов представления цифровых данных MIDI-сообщения состоят из байтов. Музыканту слово “байт”, в общем-то, ничего не говорит. Но тому, кто мало-мальски знаком с компьютерной техникой, покажется удивительным, как удается втиснуть так много разных типов сообщений в такие крошечные габариты? И почему в обсуждениях MIDI-технологии постоянно фигурирует число 128?

Начнем с самих основ. Компьютеры работают с битами (от “binary digit” — “двоичный знак”). Бит — это число, которое может принимать одно из двух значений: 0 или 1. Байт — это более крупная единица, он состоит из восьми битов. Таким образом, байт может принимать всего 256 значений— от 0000 0000 до 1111 1111. (256 — это 2 в степени 8).

Спецификация MIDI определяет два типа байтов: байт состояния (status byte) и байт данных (data byte). Байт состояния обязательно начинается с 1, а байт данных обязательно начинается с 0. Таким образом, из 256 возможных значений байта 128 значений относятся к байтам состояния, а остальные 128 — к байтам данных. Итак, байт данных может принимать любое значение в пределах от 0 до 127.

Любое MIDI-сообщение состоит из байта состояния, за которым следует (в большинстве случаев) один или два байта данных. Конкретное значение байтов данных целиком зависит от предшествующего им байта состояния. Таким образом, 128 разных байтов данных дают возможность описать в MIDI-формате множество разных вещей.

MIDI-сообщения в большинстве случаев состоят из трех байтов — байта состояния, за которым следуют два байта данных. Структура MIDI-сообщения имеет следующий вид.

1.    Байт состояния. Указывает тип сообщения и канал, для которого оно предназначено. Например, байт состояния может указывать следующее: “нота, исполняемая в канале номер 14”. Он не сообщает, какая именно нота.

2.    Первый байт данных. Число, следующее за байтом состояния, принимает значения в диапазоне от 0 до 127, дает дополнительную информацию. Если байт состояния указывает событие note-on, первый байт данных указывает номер ноты, например 60 означает “до” (Middle С).

3.    Второй байт данных. Третье и последнее число, которое, опять-таки, принимает значения в диапазоне от 0 до 127, дополняет информацию, содержащуюся в первом байте данных или дает иную дополнительную информацию. Если байт состояния указывает событие note-on, первый байт данных указывает номер ноты, т.е. какая клавиша была нажата, а второй байт указывает значение параметра velocity (скорость, с которой была нажата клавиша). Например, полное трехбайтовое сообщение может указывать, что в канале 14 исполнена нота “до” малой октавы с значением параметра velocity, равным 64, означающим среднюю силу удара по клавише. Заметим, что в некоторых типах MIDI-сообщений, в первую очередь, это касается channel pressure (определение этого типа сообщения дается ниже), отсутствует второй байт данных. Это — двухбайтовые сообщения (байт состояния и один байт данных).

⇐ вернуться назад | | далее ⇒