Според протокола MIDI, определени събития в MIDI никога не се изпращат по връзките MIDI, но съществуват във файловете MIDI. Такива събития се наричат мета събития и съобщенията, които се носят от тези събития, се наричат мета съобщения.
Мета съобщенията в MIDI са съобщения, които съдържат информация за поредицата от събития MIDI, но които не се изпращат по връзките MIDI.
Мета съобщенията имат следната стандартна структура.
Поле | Дължина | Започва на байт | Стойност |
Статусен байт | Един байт | 0x00 | Винаги 0xFF |
Вид мета | Един байт | 0x01 | различни, виж по-долу |
Дължина | Различни | 0x02 | 0-255 |
Данни | Различни | 0x03 | различни |
Статусен байт – първият байт на мета съобщенията в MIDI е "статусния байт" както при всички други съобщения в MIDI. Статусният байт на едно мета съобщение в MIDI винаги е равен на 0xFF.
Вид мета – байта за "вида мета" определя как остатъка от съобщението трябва да се чете (виж таблицата по-долу с мета видовете, които се знаят).
Дължина – "дължината" е дължината в байтове на останалите данни в съобщението. По този начин устройствата MIDI знаят колко байта да очакват (без статусния байт, вида мета, и байта за самата дължина). Дължината на някои мета съобщения (виж по-долу) е предопределена, а пък други мета съобщения могат да имат различна дължина. Самата дължина е с неопределена дъжина (за един пример на стойности в MIDI, които са с неопределена дължина, виж описанието на времето делта в темата Събитие в MIDI).
Данни – "данните" в съобщенията определят нещо, което устройствата MIDI трябва да преведат.
Ето списъка с мета съобщения.
Съобщение | Вид мета | Дължина на данните | Съдържа | Съществува в |
Номер на песента | 0x00 | 2 байта | Броя на една MIDI поредица | При делта време 0 |
Текст | 0x01 | различна | Някакъв текст | Където и да е |
Бележка за авторски права | 0x02 | различна | Бележка за авторски права | При делта време 0 в първата писта |
Име на пистата | 0x03 | различна | Име на пистата | При делта време 0 |
Име на инструмента | 0x04 | различна | Името на инструмента в пистата | Където и да е |
Лирика | 0x05 | различна | Текста на песента, обикновено една сричка на четвърт нота | Където и да е |
Маркер | 0x06 | различна | Текста на някаква маркировка | Където и да е |
Знак за встъпване | 0x07 | различна | Текста на някакъв знак за встъпване, обикновено да подскаже някакво действие на потребителя | Където и да е |
Представка на канала | 0x20 | 1 байт | Номера на един канал (мета съобщенията, които следват, ще важат за този канал) | Където и да е |
Край на пистата | 0x2F | 0 | На края на всяка писта | |
Определи темпото | 0x51 | 3 | Броя на микросекундите за всеки пулс | Където и да е, но обикновено в първата писта |
SMPTE отлагане | 0x54 | 5 | SMPTE време, за да отбележи времето от началото, което трябва мине, преди да започне свиренето | В началото на една писта и в първата писта във файлове с MIDI формат 1 |
Ритъм | 0x58 | 4 | Темпо, в пулсове на метронома и дължина на един пулс в 32-ри ноти | Където и да е |
Тоналност | 0x59 | 2 | Тоналност | Където и да е |
Специално за устройството | 0x7F | различна | Нещо специфично за устройствата MIDI на един производител на устройства | Където и да е |
Бележка за статусния байт 0xFF
Съобщението "превключи" (едно съобщение за системата в реално време) има същия статусен байт като съобщенията мета: 0xFF. По споразумение, съобщението превключи в MIDI никога не съществува във файловете MIDI, а се изпраща по връзките MIDI по заявка на потребителя. Така, ако едно устройство MIDI получи статусния байт 0xFF по една връзка MIDI, устройството ще го възприеме като съобщението "превключи". Ако устройството MIDI прочете статусния байт 0xFF в някакъв файл MIDI, тогава устройството ще възприеме този байт като началото на едно мета съобщение.
Бележка за вида мета
Тъй като всички мета съобщения имат един и същи статусен байт (0xFF), вида мета позволява на устройствата MIDI да правят разлика между различните мета съобщения. Ако вида мета във втория байт на мета съобщението например е 0x02, тогава това съобщение съдържа бележка за авторските права (виж таблицата по-горе).
Виж също:
Протокол Musical Instrument Digital Interface (MIDI)
Добави нов коментар