Strogino Sound Tracker 25KHz format description version 0.2 note: text string always ends with 0 Value type comment --------------------------------------------------------------- "SST0" text string | Format marker Title text string | Song description Author text string | Group text string | Year text string | Comment text string | Sample name 1 text string | WAV file names, usual samples Sample name 2 text string | ... | Sample name N text string | 0 byte Drum name 1 text string | WAV file names, drums Drum name 2 text string | ... | Drum name N text string | 0 byte (0 optional) byte | If address is odd Volume word | Sound volume: above 85 is risky (clipping) BPM word | Playing speed: beats per minute Order 1 byte | Playing order: the list of pattern numbers Order 2 byte | ... | Order N byte | 0 byte -1,-1,-1,-1,-1 5 bytes | Initial channels values Sample number byte | Channel 1 data Note number byte | Sample number byte | Channel 2 data Note number byte | Drum number byte | Channel 3 data ... | Repeat for each row of the pattern -1,-1,-1,-1,-1 5 bytes | End of pattern marker ... 5 * N bytes | Next pattern contains N rows -1,-1,-1,-1,-1 5 bytes | End of pattern marker -1,-1,-1,-1,-1 5 bytes | End of song marker (0 optional) byte | If address is odd "OFFSETS" text string | Additional data marker (optional part) Pattern number byte | Number of pattern Row number byte | Row in this pattern Channel number byte | Channel in this row Offset value byte | Sample offset (1 = 256 bytes) ... | Repeat for each note with sample offset 0 word --------------------------------------------------------------- Note numbers -------------- High octave: 1 C 2 B 3 A# 4 A 5 G# 6 G 7 F# 8 F 9 E 10 D# 11 D 12 C# 13 C Middle octave: 14 B 15 A# 16 A 17 G# 18 G 19 F# 20 F 21 E 22 D# 23 D 24 C# 25 C Low octave: 26 B 27 A# 28 A 29 G# 30 G 31 F# 32 F 33 E 34 D# 35 D 36 C# 37 C Song Example: --------------------------------------------------------------- .ASCIZ "SST0" ; format id .ASCIZ "In Your Space" ; title .ASCIZ "Real and Manwe" ; author .ASCIZ "The SandS" ; group .ASCIZ "1996" ; year .ASCIZ "www.thesands.ru" ; comment ; file names .ASCIZ "bass.wav" ; sample 1 .ASCIZ "solo.wav" ; sample 2 .ASCIZ "synth1.wav" ; sample 3 .ASCIZ "synth4.wav" ; sample 4 .ASCIZ "pizzicat.wav" ; sample 5 .ASCIZ "major2.wav" ; sample 6 .ASCIZ "minor2.wav" ; sample 7 .BYTE 0 ; end of usual samples .ASCIZ "kick.wav" ; sample 10 .ASCIZ "kicksnar.wav" ; sample 11 .ASCIZ "hats.wav" ; sample 12 .ASCIZ "hat1.wav" ; sample 13 .BYTE 0 ; end of drums .EVEN .WORD 90. ; volume, 85 is maximum safe value .WORD 132. ; beats per minute ; order list .BYTE 1,2,3,4,5,4,6,7,8.,7,9.,10. .BYTE 0 ; --- pattern 01 ; instr1, note1, instr2, note2, drum .BYTE 0,0,1,1,0 .BYTE 0,0,0,1,0 ; note without instrument .BYTE 0,0,0,1,0 ; means continue to play sample .BYTE 0,0,1,1,0 .BYTE 0,0,0,1,0 .BYTE 0,0,0,1,0 .BYTE 0,0,1,1,0 .BYTE 0,0,0,1,0 .BYTE 0,0,0,1,13 .BYTE 0,0,0,1,0 .BYTE 0,0,1,1,12 .BYTE 0,0,0,1,0 .BYTE 0,0,1,1,13 .BYTE 0,0,0,1,0 .BYTE 0,0,1,6,12 .BYTE 0,0,0,6,0 .BYTE 0,0,1,5,13 .BYTE 0,0,0,5,0 .BYTE 0,0,0,5,12 .BYTE 0,0,1,5,0 .BYTE 0,0,0,5,13 .BYTE 0,0,0,5,0 .BYTE 0,0,1,5,12 .BYTE 0,0,0,5,0 .BYTE 0,0,1,3,13 .BYTE 0,0,0,3,0 .BYTE 0,0,0,3,12 .BYTE 0,0,0,3,0 .BYTE 0,0,0,0,13 .BYTE 0,0,0,0,0 .BYTE 0,0,0,0,12 .BYTE 0,0,0,0,0 .BYTE -1,-1,-1,-1,-1 ; end of pattern .BYTE -1,-1,-1,-1,-1 ; end of song .EVEN