PhaserX - ZX Spectrum 1-bit music engine
by utz 09'2016, 1tracker version by Shiru 04'2022


PhaserX is an experimental 2-channel beeper engine for the ZX Spectrum.
It uses a new type of effect called "duty modulation". As the name
suggests, this effect modulates the duty cycle setting over time.
Its operating speed is synced to the affected tone generator, so despite
the similarities with the tone generation in engines like Earth Shaker,
it does not affect pitch.

Each of the two tone channels has a different set of effects.

Channel 1 produces a simple square wave. In addition to the aforementioned
duty modulation, it features a SID-like duty cycle sweep effect, and can
generate pseudo-white noise instead of square waves. SID and noise modes
can be used simultaneously, giving another kind of noise sounds.

Channel 2 uses two oscillators to produce Phaser-style sound. Each of
the  oscillators can have it's own duty modulation settings. This allows
for very complex timbres. Oscillator frequencies can of course be
configured  independantly, and can run at different phases. The channel
mixer supports XOR (Phaser1 standard), OR, and AND mixing methods. When
using the OR method, the oscillators can be decoupled and used as two
independant channels, Squeeker style.



The columns are:

Sp T1 dDMx T2AdDM-x-T2BdDMP D
.. ....... ...... . ....... .
   |     | |              | |
   +-ch1-+ +-ch2a----ch2b-+ +drum
   
Sp    : Speed, 1..99
T1,T2A,T2B : Note, C-0..B-9
d     : Detune, 1..9
D     : Duty cycle, 1..8 (8 by default)
M     : Duty modulation, 1..9 (only works on T1 in the 'SID' mode)
x     : Special modes:
        T1: 1=normal, 2=SID, 3=noise, 4=SID+noies
		T2: mixing type, 1=XOR, 2=OR, 3=AND
P     : Phase offset, 1..9
D     : Click drum, 1=kick, 2=hat