To provide a convenient way of collecting multiple MIDI sequences and accessing them from the ROM, Silicon Graphics has defined a simple Sequence Bank format. Files of this format are produced by the Sequence Bank Compiler (sbc), which takes multiple MIDI files and collects them with a simple header.
The format for the Sequence Bank file header is:
typedef struct { u16 version; /* Should be 01 */ s16 seqCount; ALSeqData seqArray[]; }
where seqCount is the number of sequences in the file, and the seqArray gives a list of offsets into the file and lengths for the individual sequences.
typedef struct { u8 *offset; s32 seqLen; } ALSeqData
The offsets represent the position of the start of the sequence from the beginning of the file. Note that the start of all sequences are 8-byte aligned when the Sequence Bank Compiler is used to compile.