Future Composer 1.0 - 1.3

0	00	ID mark (SMOD)
4	04	Length of sequences in bytes (Song length by divide it with13)
8	08	Offset to patterns
12	0C	Length of patterns in bytes
16	10	Offset to frequency sequence
20	14	Length of frequency sequence in bytes
24	18	Offset to volume sequence
28	1C	Length of volume sequence in bytes
32	20	Offset to sample data
36	24	Length of sample data
40	28	Sample info (10 samples, each use 6 bytes)
		0	Length in words
		2	Loop start offset in bytes
		4	Loop length in words (1 = no loop)
100	64	Sequences (13 bytes each)
		0	Voice 1 pattern to play
		1	Voice 1 transpose value
		2	Voice 1 sound transpose value
		3	Voice 2 pattern to play
		4	Voice 2 transpose value
		5	Voice 2 sound transpose value
		6	Voice 3 pattern to play
		7	Voice 3 transpose value
		8	Voice 3 sound transpose value
		9	Voice 4 pattern to play
		10	Voice 4 transpose value
		11	Voice 4 sound transpose value
		12	Default start speed

The rest of the structures are the same as Future Composer 1.4.


Future Composer 1.4

0	00	ID mark (FC14)
4	04	Length of sequences in bytes (Song length by divide it with13)
8	08	Offset to patterns
12	0C	Length of patterns in bytes
16	10	Offset to frequency sequence
20	14	Length of frequency sequence in bytes
24	18	Offset to volume sequence
28	1C	Length of volume sequence in bytes
32	20	Offset to sample data
36	24	Offset to wave tables
40	28	Sample info (10 samples, each use 6 bytes)
		0	Length in words
		2	Loop start offset in bytes
		4	Loop length in words (1 = no loop)
100	64	Wavetables lengths in word (80 bytes)
180	B4	Sequences (13 bytes each)
		0	Voice 1 pattern to play
		1	Voice 1 transpose value
		2	Voice 1 sound transpose value
		3	Voice 2 pattern to play
		4	Voice 2 transpose value
		5	Voice 2 sound transpose value
		6	Voice 3 pattern to play
		7	Voice 3 transpose value
		8	Voice 3 sound transpose value
		9	Voice 4 pattern to play
		10	Voice 4 transpose value
		11	Voice 4 sound transpose value
		12	Default start speed


Patterns (64 bytes each, 32 rows):

0	Note
1	Info + Instrument


Frequency sequence (64 bytes each):

Commands:

$E0 x		Position jump
$E1		End of sequence
$E2 x		Set waveform (will trig it)
$E3 x y	New vibrato
$E4 x		Change waveform (will not trig it, but when the previous waveforms
loop, this one is used)
$E7 x		Pattern jump
$E8 x		Set sustain time
$E9 x y	Set sample (x = instrument, y = sample in the instrument)
$EA x y	Pitchbend


Volume sequence (64 bytes each):

Commands:

$E0 x		Position jump
$E1		End of sequence
$E8 x		Set volume sustain
$EA x y	Volume bend


Samples:

0	00	ID (SSMP)
4	04	Sample info (16 bytes for each sample)
		0	Start offset in bytes
		4	Length in words
		6	Loop start offset in bytes
		8	Loop length in words
		10
324	144	Sample data

Thomas Neumann / The APlayer-Team (tneumann@polycode.dk)