Header:
Type/Size Description
-------------------------------------------------------------------------
4 "Buzz"
dword number of sections
12*31 up to 31 section dir entries
=========================================================================
Section dir entry:
Type/Size Description
-------------------------------------------------------------------------
4 four-char name of section
dword offset from begin of file
dword size in bytes
=========================================================================
Section 'MACH' - machines
v1.2 note: machines with MIF_CONTROL_MACHINE flag should be the last machines in this section
Type/Size Description
-------------------------------------------------------------------------
word number of machines
(first machine - always master)
asciiz name
byte type (0 = master, 1 = generator, 2 = effect)
asciiz name of DLL if type is 1 or 2
float X coordinate in machines view [-1..1]
float Y coordinate in machines view [-1..1]
dword size of machine specific data
x data
word number of attributes
(first attribute)
asciiz key
dword value
(second attribute)
...
x state of global parameters
word number of tracks
x state of track parameters for each track
(second machine)
...
=========================================================================
Section 'CONN' - machine connections
Type/Size Description
-------------------------------------------------------------------------
word number of connections
(first connection)
word index of source machine
word index of destination machine
word amp
word pan
(second connection)
...
=========================================================================
Section 'PATT' - patterns for each machine
Type/Size Description
-------------------------------------------------------------------------
(first machine)
word number of patterns
word number of tracks
(first pattern)
asciiz name
word length of pattern in number of ticks (rows)
x pattern data
(second pattern)
...
(second machine)
...
=========================================================================
Section 'SEQU' - pattern sequences
Type/Size Description
-------------------------------------------------------------------------
dword end of song
dword begin of loop
dword end of loop
word number of sequences
(first sequence)
word index of machine
dword number of events
byte bytes per event pos
byte bytes per event (2 if there are more than 112 patterns)
x event list (pos, event, pos, event, pos, event...). events:
00 = mute, 01 = break, 02 = thru
0x10 = first pattern, 0x11 = second pattern, etc.
msb=1 indicates loop
(second sequence)
...
=========================================================================
Section 'WAVT' - wavetable
Type/Size Description
-------------------------------------------------------------------------
word number of waves
(first wave)
word index
asciiz full file name, e.g. "c:\waves\blah.wav"
asciiz name
float volume
byte flags:
bit 0: loop
bit 1: don't save
bit 2: floating point memory format
bit 3: stereo (since 1.2)
bit 4: bidirectional loop (since 1.2)
bit 7: envelopes follow (since alpha 14)
if flag bit 7 --------->
word number of envelopes
(first envelope)
word Attack time
word Decay time
word Sustain level
word Release time
byte ADSR Subdivide
byte ADSR Flags: 0-1 = attack mode, 2-3 = release mode, 4 = linear decay, 5 = sustain
word number of points (can be zero) (bit 15 set = envelope disabled)
(first point)
word x
word y
byte flags: bit 0 = sustain
(second point)
...
(second envelope)
...
<----------- end of if flag bit 7
byte number of levels
(first level)
dword number of samples
dword loop begin
dword loop end
dword samples per second
byte root note
(second level)
...
(second wave)
...
=========================================================================
Section 'CWAV' or 'WAVE' - wave data, check for 'CWAV' first then for 'WAVE'
Type/Size Description
-------------------------------------------------------------------------
word number of waves
(first wave)
word index of wave
byte format:
0 - raw 16bit, intel byteorder
1 - proprietary compressed format (v1.2 uses this one by default)
format 0:
dword number of bytes in all levels
(data for first level)
..
(data for second level)
...
(second wave)
...
=========================================================================
Section 'BLAH' - song info
Type/Size Description
-------------------------------------------------------------------------
dword number of characters
x raw ascii text (no zero at end)
=========================================================================
Section 'PARA' - parameter information for machines
- added in v1.2. This section is not required for loading the song if user
has right versions of all machines installed. otherwise the information
here can be used to convert pattern data to the new format.
Type/Size Description
-------------------------------------------------------------------------
dword number of machines
(first machine)
asciiz name
asciiz type (for example "Jeskola Tracker")
dword number of global parameters
dword number of track parameters
(first parameter - all global first followed track-parameters)
see CMachineParameter in MachineInterface.h for more information
all fields except "Description" are saved
byte type
asciiz name
int minvalue
int maxvalue
int novalue
int flags
int defvalue
(second parameter)
...
(second machine)
...
=========================================================================
Section 'PDLG' - parameter dialog placements on screen
- added in v1.2
byte flags:
bit 1: dialogs visible
list of positions followed by terminating zero byte:
asciiz name of machine
WINDOWPLACEMENT win32 window placement structure (see win32 documentation)
=========================================================================
Section 'MIDI' - midi controller bindings
- added in v1.2
list of bindings followed by terminating zero byte:
asciiz name of machine
byte parameter group
byte parameter track
byte parameter number
byte midi channel
byte midi controller number
=========================================================================
Section 'BVER' - buzz version information
- added in v1.2
asciiz buzz version, date and time of build
=========================================================================