Montanasoft

Meta - Messages

Meta-Messages betreffen nicht die einzelnen Spuren, sondern den Ablauf wie z.B. Tempoänderungen, Taktänderungen etc..
Sie sind wie folgt aufgebaut: (hexadezimal, im Big-Endian-Format)

Status-Byte (FFh) - Längen-Byte(s) - Message

Die Message-Länge ist normalerweise in einem Byte notiert. Es besteht jedoch die Möglichkeit größerer Message-Längen, dann ist die Längenangabe in mehreren Bytes abgelegt.

Beispiel für eine Message-Länge größer 7Fh (127d):
Längen-Bytes: 8412h

Von Byte 1 (84h - 132d) wird Bit 7 gelöscht (84h AND 7Fh) und der resultierende Wert mit 128 multipliziert, daraus ergibt sich 512 (4 * 128). Das zweite Byte (12h - 18d) wird nun addiert, die Länge der Message beträgt also 530 Bytes.

Die folgende Tabelle enthält einige geläufige Meta-Messages:
Message Bedeutung
FF01 bb cc Text (allgemeingültig)
FF02 bb cc Text (i.d.R. Copyright-Informationen)
FF03 bb cc Text (i.d.R. Midi-Name)
FF04 bb cc Text (i.d.R. Instrument-Namen)
FF05 bb cc Text (i.d.R. Songtext)
FF06 bb cc Text (i.d.R. Markierungen o.ä.)
FF07 bb cc Text (i.d.R. Hinweis auf folgende Ereignisse)
FF5103 cc cc cc Tempowert in Mykrosekunden pro Viertelnote
FF5804 cc dd ee ff Abstimmungsparameter
cc Numerator Takt
dd Denominator Takt (2^dd)
ee Zähler des Metronoms per Click
ff Verhältnis 1/32-Note zu 1/4-Note
FF5903 cc dd Tonart (key signature)
cc = Anzahl #/b (0-7) für b ist der Wert negativ
dd=0 - major (Dur), dd=1 - minor (Moll)
FF7F bb Daten sequencerspezifische Information
FF5405 cc dd ee ff gg SMPTE-Offset für Zeitkarten
FF2F00 Spurende