Music File format (.ttm) (compiled)

From TriloTracker
Jump to: navigation, search
Notepad red.png NOTE: This is a draft document. The actual .ttm format is not finalized and supported in the tracker yet.

File layout

Song data ("*_tmu.asm"):

+2        restart (offset from end delimiter)
+1        speed
+??       order track pattern pointers (8*2 byte pointer)
+2        order end delimiter (0x0000)
+??       track data
+??       sub-track data
Track data (and sub-track data)
For the replayer TT pattern data is divided in individual tracks. The track data is optimized.
Range Description Values Remarks
000-095 Notes 0-95
096 Rest 96
097-127 Instrument 1-31
128-143 Volume 1-15
144-175 Effect 0-* Effect number. Each effect event action is followed by a 0,1 or 2 byte value. The effect numbers are different to the numbers used in the tracker pattern data.
191 EoT 191 This marks the end of a track. Once found the next pattern is initialized.
192-255 Wait 1-63 Contains the number track steps to wait till next event action for the current track. Every track step is ended with this even action.
(* For certain effects like Bxy seperate effect numbers (>15) can be used by the TMU compiler.

Instrument data ("*_tmu_ins.asm"):

+62       instrument pointers (31*2 byte pointer)
+??       intrument data

Instrument data

Instrument data in compiled TMU files is different from the normal TMU file format. The format for compiled data is optimized to save space and/or easier/faster processing.

[HEADER]
 01 - Waveform                        ; related waveform (0..31)
 00 - Length                          ; length of the marco (0..63)
 02 - Restart                         ; restart position (loop) 
[/HEADER]
[ROW] 0..<Length-1>                
+00- [  N | Nd | Nd |  T | Ed | Td | Vd | Vd ]
+01- [ Vv | Vv | Vv | Vv | Vv | Vv | Vv | Vv ] Signed Volume value*
+02- [ Nv | Nv | Nv | Nv | Nv | Nv | Nv | Nv ] Signed Noise value*
+03- [ Tv | Tv | Tv | Tv | Tv | Tv | Tv | Tv ] Signed Tone value*
+04- [ Tv | Tv | Tv | Tv | Tv | Tv | Tv | Tv ]        ""      
[/ROW]

*) These values are optional. They are only present if there is a change in these values.

Nd -> $00 = no noise value, $10 = base noise, $11 = relative noise
Vd -> $00 = no volume value, $10$01 = base volume, $11 = relative volume
Td -> $0 = no tone value, $1 = relative tone

Ed -> Instrument macro end. The next line contains a jump address to jump to to restart/loop.

Waveform data ("*_tmu_wav.asm"):

+1024     waveforms (32*32 byte data blocks)



Track steps
Track steps are processes in 'sequential' order by all tracks. Each track has a delay timer which is set by the 'Delay' event action. Once a delay timer reaches zero a new 'track step' is processed. Each track step contains 1 or more even actions. Every Track step is ended with a 'Delay' event action.<s>