Changes

Jump to: navigation, search

OggMIDI

1,478 bytes added, 19:37, 5 November 2008
roughly document the encapsulation structure
This mapping was designed by Jack Moffitt. See [http://lists.xiph.org/pipermail/vorbis-dev/2001-August/004501.html this mailing list post] for documentation of his scheme.
 
= Header packet
 
OggMIDI streams have a single header packet for codec identification.
 
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1| Byte
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Identifier 'OggMIDI\0' | 0-3
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | 4-7
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| version number | time format | 8-11
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| timebase | 12-13
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
The header packet begins with the character sequence 'OggMIDI\0' for codec identification.
 
This is followed by an 8 bit version field. The version must be 0 for the mapping described here.
 
The time format field is also 8 bits, and describes the timestamp format used by the midi data. It is interpreted as follows:
 
* 1 one beat per quarter note
* 24, 25, 29, 30, (50, 59, 60?) corresponding smpte frame
* other values are undefined
 
The timebase occupies the final 16 bits and gives the number of ticks per time format unit.
 
= Data packets
 
The header packet is followed by a series of data packets, each of which contains an integral number of midi events.

Navigation menu