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.