Phaser2 - ZX Spectrum beeper music engine
by Shiru 03'11
1tracker version by Shiru 07'15



Two channel engine with two channel of phasing synth with 58 
customizeable instruments and 8 customizeable synthesized drums. 

The phasing synth of each channel consist two square tone generators, 
both change output state, producing more complex waveform. The tone 
synth controlled by four parameters, all of them affect the second 
generator only. 'Semitone' defines frequency offset relative to the 
first (0=the same, 1=one semitone higher, etc). 'Detune' introduces 
difference between the generators, producing phasing effect. 'Phase' 
allows to set phase on start of the generator, which only occurs if 
'phase reset' used (at start of the song, or using Reset column of the 
first channel). Don't forget to reset the phase with every change of the 
instrument, otherwise you'll get combination of settings of the previous 
and new instruments, which will produce unexpected sound. There is also 
mixing mode of the two generators. Phaser1 used XOR only. 

Drum synthesizer provides a set of parameters to fully customize sound. 
There is sound duration, tone starting frequency, tone slide speed (up 
or down), noise frequency. To disable tone or noise set its frequency to 
zero. 

Although the engine does not support the volume, you can imitate PWM 
volumes on the first tone channel, using Multiple=0 Detune=0 Phase<128. 
Lower value for Phase makes the volume lower, and also affects to the 
timbre, making it thinner. 

1tracker version has some fixes, removes patterns system, and brings 
back per-row speed support. 


The columns are:

Sp T1 RIn T2 RIn D
.. ...... ...... .
   |    | |    |
   +-ch1+ +-ch2+

Sp : Speed, 1..99

T1,T2 : Tone channels
 Tn : Note, C-1..B-5
  R : Phase reset (use with a new note, 1 to reset)
 In : Instrument, 1..58
 
 D : Drum, 1..8
