Notation Information
Сообщение Time Signature (музыкальный размер) существует в двух вариантах: "немедленном" (Sub ID 2 равен 2) и "задержанном" (Sub ID 2 равен 42). При получении первого приемник должен сразу же изменить текущий музыкальный размер, второго — по окончании текущего такта. В остальном эти сообщения идентичны и имеют структуру, показанную на рис. 9. Байт данных ln содержит количество байт, следующих за ним, до завершающего EOX. В большинстве случаев оно равно трем — числитель/знаменатель размера (nn / dd) и байт qq, который определяет количество сообщений MIDI Clock, приходящихся на каждый удар метронома. Числитель записывается "как есть", знаменатель — как степень двойки. Например, при размере 6/8 байт nn будет равен 6, байт dd — 3. При составном размере внутри такта (например, 3/4 + 7/4), за байтом qq могут следовать дополнительные пары байт nn и dd, а, следовательно, значение ln будет больше 3.
Структура сообщения такая. За стандартным заголовком следуют два байта (lb и mb), которые содержат номер такта, целое 14-битное число со знаком (младшие семь бит находятся в байте lb, старшие — в mb; о компьютерном представлении целых отрицательных чисел рассказано во врезке). Так что номера тактов получаются в диапазоне от -8192 до +8191. Положительные номера означают текущий номер такта, а также косвенно говорят о том, что передающее устройство находится в режиме воспроизведения. Нумерация тактов идет с единицы, так что получение байтов lb mb = 0x01 0x00 означает, что начался первый такт. Максимальное положительное значение (lb mb = 0x7F 0x3F) говорит о том, что воспроизведение идет, но номер текущего такта неизвестен или не имеет значения. Отрицательные номера означают "затакт" (отсчет перед воспроизведением). Например, получая -1 (lb mb = 0x7F 0x7F), приемник понимает, что до начала воспроизведения остается один такт, о чем можно известить и музыканта. Максимальный отрицательный номер (lb mb = 0x00 0x40) говорит о том, что воспроизведение остановлено.
|