Pytha - ZX Spectrum beeper music engine
by utz 06'2017
1tracker version by Shiru 06'2017


Pytha is a two-channel music routine. It is the first beeper engine to
synthesize triangle waves without the use of wavetables.

Features:

- Waveforms: triangle, saw, rectangle with arbitrary duty cycle, noise
- LFO-powered modulation effects
- 3 customizable click drums (interrupting)
- 16-bit frequency resolution, 8-bit speed resolution

Both tone channels has uniform capabilities.

There is an LFO-controlled modulator that runs at a fixed rate, which 
does some weird sweep/resonant filter fx. With the LFO turned off, the 
modulator can also be used to set the duty cycle for the pulse waveform. 
All the base waveforms can be turned into noise as well. And of course, 
there's the usual click drums, with variable starting pitch and slide 
speed for the kick, and variable volume for noise. 


The columns are:

Sp T1 d WNLoff T2 d WNLoff DprmKp
.. .... ...... .... ...... ......
   |         | |         | |    |
   +---ch1---+ +---ch2---+ +drum+
   
Sp    : Speed, 1..99

T1,T2 : Tone channels
      Tn : Note, C-0..B-7
	   d : Detune, 1..9
	   W : Waveform, 1 triangle, 2 square, 3 saw
	   N : Noise mode, 1 to enable. Different notes will produce
	       various metallic and noisy sounds
	   L : LFO flag, 1 to enable
	 off : Waveform offset, controls duty cycle for square,
	       otherwise affects sound timbre for other waveforms

DKpNv : Drum channel
      D : Drum, 1 kick, 2 high hat, 3 low hat.
     Kp : Initial kick pitch, 1..99 (lowest to highest)
     Nv : Hat volume, 1..99 (lowest to loudest)
