qaop - Quite Accurate Overdriven Player - ZX Spectrum 1-bit music engine
by utz 08'2015, 1tracker version by Shiru 04'2022


This engine features two channels of arbitrary 256-step waveform (sample)
playback, and some interrupting click drums. The waveforms can be drawn by
hand with the instrument editor, loaded from SMP files (raw binary), or
imported from WAV files.

Depending on the waveform, a base octave may differ greatly.

To make waveform drawing easier, a shorter waveform period can be set in
the instrument editor. It will be internally unrolled up to 256 samples.

Waveform levels can take any value from 0 (silent) to 6 (loudest).
However, the maximum combined volume level of both channels is 6, so if
you want to avoid overdrive/distortion, do not use sample volumes >3.
It's usually not a problem to use sample volumes up to 4, though.



The columns are:

Sp T1 dWF T2 dWF D
.. ...... ...... .
   |    | |    | |
   +-ch1+ +-ch2+ +drum
   
Sp    : Speed, 1..99
T1,T2 : Note, C-0..B-9
d     : Detune, 1..9
WF    : Waveform, 1..99
D     : Click drum, 1:kick, 2:snare, 3:hat