Damage Tracker Version 3.03

This is an update to my simplistic, user non-friendly tracker designed
around the Turbo Grafx/PCE sound hardware. I made a change to the format
to allow 11-bits for the period (originally I only used 10 due to a
erroneous belief that the PSG only used 10). There is a utility (dt2dt3)
to convert from the old format to the new format.

Also, DT3 is now complied with FreeBASIC (so generating a WAV is not quite
as slow). Utilities are included to convert YM2612-based VGM files (but these
are still 16-bit programs compiled with QuickBASIC)

Check the source archive for Strange Game to find TG16 replayer routine.

Check the source archive for Mecha Taisen on Planet Oldschool PLUS to find
an MSX replayer routine (however, it used the old format)


Turbo Grafx sound general info

volume ranges from 0-31, the scale is logarythmic...
I have measured the base to be approximately 1.15 and have reflected this
in the .WAV file generator.

actual frequency = 3.58Mhz / ((period+1) * 32)
frame = 1/60th second

' music files are command based, here are the commands
'
' 0-29 = set a variable, the following byte is the value to write
'       variables are as follows:
'       0-4   main volume (ends attack, begins initial decay)
'       5-9   attack rate (value is divided by two and added to the actual
'                         volume every frame)
'       10-14 decay1 (value is divided by 64 and subtracted every frame)
'       15-19 decay2 (value is divided by 256 and subtracted every frame)
'       20-24 level volume (ends initial decay, begins secondary decay)
'       25-29 release rate (after key off, divided by 64 and subtracted)
' 32+x  stops reading music data until the next frame
'       x ranges from 0-31 and specifies additional frames to wait
' 64+x  key on / key off
'       bit 0 specifies the event (0=key off 1=key on)
'       bits 1-3 contain the number of the sound channel (0-4)
' 96+x  vibrato on/off
'       bits 0-2 contain the number of the sound channel (0-4)
'       bit 4 specifies vibrato on or off (set=on clear=off)
' 128+x sets the period of a sound channel
'       bits 0-2 contain the 3 highest bits of the period
'       bits 3-5 contain the number of the sound channel (0-4)
'       the following byte contains the 8 low bits of the period
' 192+x sets panning
'       bits 0-2 contain the number of the sound channel (0-4)
'       the following byte contains volume for left channel (bits 4-7)
'       and the volume for right channel (bits 0-3)
'       (note that generating a .WAV from the tracker uses only the top
'       three bits of each nibble while the PCE obviously uses all of them)
' 253   set loop point (marks the beginning of the loop)
' 254   loop (jumps to the beginning of the loop)
' 255 = jump, the following three bytes specify the bank, low byte, high byte


Using the tracker:

starting it with a filename ( dt3 until.dt3 ) will open the file
a nonexistant filename will open a new empty file

press F1 for key summary

Q quit
L load
PGUP/PGDN scroll command window up/down 10
N switch to notes window
S save as
P append command to end of file
W write .WAV file
A/Z scroll the notes window up/down
F/V increase/decrease the number of frames worth of data shown in one line in
    the notes window
I insert command
T set wave patterns for each channel
        (check source code to see waveform definitions)

D delete command(s)
  enter 'y' to delete one command
  enter 'b' to delete a block of commands

F2 summary

E extend by 1 second (adds 1 second worth of waits on the end)
M modify channel (for commands 0-29)
C copy commands
X modify value  
space bar - paste commands
O obliterate (forget the whole file)
^ combine 'wait' commands in order to reduce file size
R rip out channels/sections
J join channels from another file
B break into 5 files (one per channel)

Notes window F1 summary

N switch to command window
K insert a Key On
O insert a Key Off
C clear all key on/offs for that channel and frame
Q quit
A/Z scroll up/down
P set pitch

email: damage_x@hyakushiki.net
http://www.hyakushiki.net/
