Едно съобщение MIDI е поредица от байтове, която се изпраща на устройството MIDI за да го накара да извърши някакво действие.
Статусният байт на съобщението в MIDI е първия байт на съобщението, стойността на който определя вида на самото съобщение и показва на получаващото устройство какво да направи и как да разбере останалите байтове в съобщението.
Следното е списък от възможни стойности на статусния байт.
Статусен байт | Съобщение в MIDI | Категория на съобщението | Действие на устройството MIDI |
0x80 до 0x8F | Спри нотата | Гласови / озвучаващи | Спира да свири някаква нота |
0x90 до 0x9F | Свири нотата | Гласови / озвучаващи | Започва да свири някаква нота |
0xA0 до 0xAF | Натиск на клавиша | Гласови / озвучаващи | Упражнява натиск върху някаква нота, подобно на натиска върху клавиша на една електронна клавиатура |
0xB0 до 0xBF | Контрола | Гласови / озвучаващи | Променя някаква контрола. Самата контрола може да е плъзгач, копче, педал, бутон и т.н. |
0xC0 до 0xCF | Смяна на програмата | Гласови / озвучаващи | Избира някаква програма за един от каналите в MIDI. Програмата може да е виртуален инструмент или настройка |
0xD0 до 0xDF | Натиск на канала | Гласови / озвучаващи | Упражнява натиск върху един от каналите в MIDI, подобно на натиска върху клавишите на електронните клавиатури |
0xE0 до 0xEF | Транспониране | Гласови / озвучаващи | Транспонира звука в канала нагоре или надолу с някаква определена стойност |
0xF0 | Ексклузивно за системата | Обикновени за системата | Извършва някакво действие, което е специфично за устройството |
0xF1 | Четвърт кадър | Обикновени за системата | Определя времето в MIDI за да синхронизира устройството с някакво друго устройство |
0xF2 | Позиция в песента | Обикновени за системата | Подрежда се към някаква позиция в песента MIDI и се приготвя да свири |
0xF3 | Избор на песен | Обикновени за системата | Избира някаква песен за свирене |
0xF6 | Настрой се | Обикновени за системата | Настройва се |
0xF8 | Часовник | За системата в реално време | Разбира позицията на времето в MIDI (когато е синхронизирано към някакво друго устройство) |
0xFA | Започни | За системата в реално време | Започва да свири някаква поредица MIDI |
0xFB | Продължи | За системата в реално време | Продължава да свири някаква поредица MIDI |
0xFC | Спри | За системата в реално време | Спира да свири поредицата MIDI |
0xFE | Активен усет | За системата в реално време | Разбира, че връзката MIDI съществува (ако няма други съобщения) |
0xFF | Превключи | За системата в реално време | Превключва се и минава на някакви предопределени начални настройки |
Канали
Съобщенията със статусни байтове от 0x80 до 0xEF са специфични за един канал. В техните статусни байтове, горната половина на байта определя статуса, а долната половина определя канала. Статусният байт 0x92 например казва на получаващото устройство MIDI да свири някаква нота на канал 2.
Статусен байт 0xFF
Ако е изпратен по връзките MIDI, статусният байт 0xFF е съобщението "превключи". Устройството MIDI, което получава това съобщение, ще се превключи и ще се настрои с някакви предопределени начални настройки, което обикновено означава, че то ще спре да свири, ще се подреди към началната позиция в песента и така нататък.
В един файл MIDI обаче, статусният байт 0xFF показва началото на едно "мета" съобщение. Мета съобщенията носят мета информация за песента MIDI, като например съобщения с имената на пистите, съобщения за края на пистите, различни съобщения с текст и други.
Съобщенията "превключи" и "мета" съобщенията са различни, но имат един и същи статусен байт. Едно устройство обаче може да направи разлика между двете. Съобщенията превключи се изпращат по връзките MIDI и обикновено се пораждат от потребителите (т.е., с натискането на бутон, вместо просто да са записани в една песен MIDI). Мета съобщенията са записани във файловете MIDI, но никога не се изпращат по връзките MIDI.
Статус на изпълнението в MIDI
Едно устройство MIDI стои в своя статус докато получи едно съобщение с нов статус. Протокола MIDI позволява, ако две или повече последователни съобщения имат един и същи статусен байт, да се пропусне статусния байт на второто, третото и така нататък съобщения. Това намалява обема на данните, които трябва да се изпращат. Ако едно ново съобщение има различен статусен байт, тогава статусният байт трябва да присъства, така че получаващото устройство да бъде уведомено за новия статус.
Статусният байт може също да се пропусне от последователни съобщения със един и същи статусен байт, когато данните MIDI се запазват в един файл MIDI.
Най-често, след изпращането на едно съобщение свири нотата с някаква скорост за да се изсвири една нота, устройствата MIDI могат да изпратят едно друго съобщение свири нотата, но със скорост равна на нула, за да спрат свиренето на същата нота. Статусният байт на второто съобщение свири нотата може да се пропусне, защото е същия като статусния байт на предишното съобщение (ако няма съобщения между тях).
Устройството MIDI ще знае, че статусният байт е пропуснат, защото статусните байтове имат стойности между 0x80 и 0xFF и най-висок бит равен на 1, а другите байтове с данни в съобщенията имат стойности между 0x00 и 0x7F и най-горен бит равен на 0.
Виж също:
Протокол Musical Instrument Digital Interface (MIDI)
Добави нов коментар