*************************************************************** ******* ******** ******* Scream Tracker - Technical information ******** ******* ******** *************************************************************** Program protection: The program's protection (the one displaying the username in the topline) CAN be cracked, thus enabling someone to enter any name on the line. Although the topline info is NOT the only name information in the file! In fact the name is encoded into over 10 places! Not all of them are used in any way, so finding them is practically impossible. So even if you manage to remove your name from the topline, you can be sure that hidden owners inscription is still there (at least a few of them)! Sample storage on disk: The samples used are stored to disk in 8 bit unsigned format. (Amiga uses 8 bit signed format) To convert: newbyte=(oldbyte+128) and 255. VOXKIT samples: If you have a soundblaster and have digitized voxkit samples you can use them as instruments. Save samples in unpacked format and remove the first 32 bytes (which form the header) from the VOXKIT files. Covox specification: The Covox in setups means a device converting the printer ports 8 data lines to analog information (DA converter). Informing about other output methods: If you have knowledge of other PC cards/methods of outputting 8 bit digital sound, contact the author, and include a description of the ouput method (Initialization and how to output a byte) and the method will be added to new versions. REMARK that the method must be a sequential byte at the time, and NOT for example DMA, for sounds must be mixed in real time. See README for how to contact the author. File extension used with Scream Tracker: .HLP - Help file .STS - Scream Tracker song .STM - Scream Tracker module .ILB - Instrument library .MOD - Amiga module Scream Tracker program files: ST.EXE - main program ST.HLP - help file ST.SET - saved setup ST.ILB - main library (library names etc.) STxx.ILB - libraries 00-99 Amiga conversion file extensions: Amiga has 20 byte filenames, and PC only 8 byte ones. Due to this fact amiga instrument names must be truncated to 8 chars. To avoid confilict with for example BASSDRUM1 and BASSDRUM2 the converter calculates an CRC of the entire amiga filename (chars added together) and adds a CRC mod 512 to the files extension. The examples would become: BASSDRUM.657 and BASSDRUM.658 Conversion differencies with amiga: Volume Vibrato and Volume Portamento (NT 2.0) are converted to funktions K and L, but have no effect in current version of ST. The arpeggio command is now implemented. Benchmarks: The new ST enables using the Timer interrupt, so benchmarking is now easier. With my machine (20Mhz 386SX) and ST playing at 12Mhz, my benchmarks showed that ST used 60% of raw processing power. Playing frequencies: The frequency listed is the frequency at which the samples are mixed. The leftmost column describes the name for the speed (in setup): 5Mhz AT - 5000Hz 6Mhz AT - 6500Hz 7Mhz AT - 8000Hz 8Mhz AT - 9943Hz 10Mhz AT - 11932Hz 11Mhz AT - 13000Hz 12Mhz AT - 15909Hz 16Mhz 386 - 17045Hz 20Mhz 386 - 19886Hz 23Mhz 386 - 23863Hz Song/Module file structure: Offset: Info: 0 Song/File name, max 20 chars, ASCIIZ, except if 20 chars long 20 Tracker name, max 8 chars, NO NUL 28 0x1A 29 File type: 1=song, 2=module 30 Version major (eg. 2) 31 Version minor (eg. 2) 32 byte; tempo 33 byte; num of patterns saved 34 byte; global volume 36 reserved, 13 bytes 48 Instruments (31 kpl) (see below) Instrument structure: Offset Info 0 Inst. Filename, 12 bytes max, ASCIIZ 12 0x00 13 byte; instrument disk 14 word; reserved (used as internal segment while playing) 16 word; length in bytes 18 word; loop start 20 word; loop end 22 byte; volume 23 byte; reserved 24 word; speed for mid-C (in Hz) 26 reserved, 4 bytes 30 word; internal segment address/(in modules:)length in paragraphs XXXX Music pattern orders (64 bytes/orders) XXXX Patterns (number in header, each pattern 1KB) Patterns consist of 64 rows, each 4 channels. Each channel is 4 bytes in length, and the channels are stored from left to right, row by row. Special [BYTE0] contents: 251=last 3 bytes NOT in file, all bytes 0 252=last 3 bytes NOT in file, note: -0- 253=last 3 bytes NOT in file, note: ... 254=(in memory), -0- 255=(in memory), ... otherwise: note=[BYTE0] and 15 (C=0,C#=1,D=2...) octave=[BYTE0] / 16 instrument=[BYTE1]/8 volume=([BYTE1] and 7)+[BYTE2]/2 command=[BYTE2] and 15 command info=[BYTE3] [XXXX] In modules: Samples, padded to 16 byte limits. Sample lengths in paragraphs (and as saved) are storen in instruments internal segment address.