Sound FX (one file version .. eg. SONG+SMPS) format
Created by Christian Haller & Christian A. Weber (c) LINEL Softwares (1988)
Analysed by Asle / ReDoX (asle@warka.com)

Source:
 - Battle Isle game by Blue Byte
 - Also Exotica Web Page (GREAT SITE !)

Note: This format is based on OOOOOOLLD SoundTracker format. So, only 15 smps,
     Effects remapped, etc.
      Ok, since there are no nothing of a doc about this format around, I've
     based most of this description (esp. smp header and fx) upon Buggs's
     Noiseconverter v1.53.

Offset    size (byte)    Comment
------    -----------    -------
  0           3Ch        15 dwords. Sizes of each samples (real size)

  3Ch          4         "SONG" Id

  40h          1         (?) -\_ that's the speed ... still trying to
  41h          1         (?) -/  understand that !

  42h         12h        ?!? (some 00h)

      ***************************************
      * the following is repeated 15 times  *
      * with 16 bytes description for 1 smp *
*************************************************************
                                                            *
 50h          16h        Sample Name                        *
 66h           2         Loop Start (/2)    --+             *
 68h           1         Finetune ?           | ?!? Why two *
 69h           1         Volume (0 - 40h)     | times saved *
 6Ah           2         Loop Start      -----+             *
 6Bh           2         Loop Size(/2)                      *
                                                            *
*************************************************************
Note: I've never seen Loop Start beeing different from 0000h ... so the (/2)
     is not sure ... .

212h           1         Number of pattern to play

213h           1         ? restart pattern number ? (like stk ..)

214h          80h        Pattern order table. Like stk/ptk. Though, some musics
                         a padded up to 7Fh ... .

294h           ?         pattern data ... Each pattern is stored one after
                         another. (like ptk)


 pattern 0 :
 row 0 | voice 1 | voice 2 | voice 3 | voice 4 |
 row 1 | voice 1 | voice 2 | voice 3 | voice 4 |
 row 2 ...
 row 63| voice 1 | voice 2 | voice 3 | voice 4 |
 pattern 1 :
 ...

 the size of each pattern is 1024 (400h) bytes long.
 Follows the notes descriptions :

case 1:
          Sample number --
                         /\
                        |  |
  0000-0000  0000-0000  0000-0000  0000-0000
  |  | |             |       |  |  |       |
   \/   \           /         \/    \     /
 unused  note pitch         effect  effect
                                     value


case 2:

  0000-0000  0000-0000  0000-0000  0000-0000
  |                  |  |                  |
   \                /    \                /
         $FFF?                 ?!?!?!?

  Noiseconverter puts various things which I try to list here:
$FFFE0000  -> C00  (set volume to 00)
$FFFD????  -> 000  (remove all this)
-no other case encountered yet




note pitchs:

C-1 to B-1 : 856,808,762,720,678,640,604,570,538,508,480,453
C-2 to B-2 : 428,404,381,360,339,320,302,285,269,254,240,226
C-3 to B-3 : 214,202,190,180,170,160,151,143,135,127,120,113

effect commands:
0: nothing
1: arpeggio       (Fx 0 under ptk)
2: ?
3: ?  converted to nothing by Noiseconverter
4: ?
5: ?
6: ?  converted to nothing by Noiseconverter
7: slide up       (Fx 1 under ptk)
8: slide down     (Fx 2 under ptk)
9: ?  converted to nothing by Noiseconverter

NOTE: I've version 1.3 and 1.8 of the tracker (Sound FX) But no doc comes
along ... at least nothing is written in any file about how to use the
trackers. Too bad, really !.


 Follow Sample datas stored like Protracker (should I say SoundTracker ?).
Nothing is packed..


