ZX-10 - ZX Spectrum beeper music engine
Original Z80 code by Jan Deak, 1989
Modifications, 1tracker engine by Shiru (shiru@mail.ru)


The engine was originally written by Jan Deak in 1989, for Bytepack 
Bratislava. He previosuly made the famous music editor ZX-7 that had 8 
channels, but pretty huge data output. The new engine had just a half of 
the channels, but compact code and data to make it more suitable to be 
used in games. 

1tracker version has a number of modifications to make it more 
compatible with tracker interface, expand the frequency range a little 
bit (from 26 to 30 semitones), and allow restarting the music. 

The engine has four channels of tone. No detune, no drums, no loop 
support. 

Note range is E-1 to A-3. Notes are continuous, use the rest note to 
stop a note. 

There are two columns per channel. One is note, other is 'volume' decay, 
from 1 to 3. Lower value gives bold, louder sound, while higher value 
gives thin sound. The decay value should be used with a note, it will be 
applied to all the subsequent notes. 

Last note in the song will play one to eight rows depending from its row 
number due to the internal pattern-based structure. To make it sound as 
long as needed use a rest note.


The columns are:

T1 S T2 S T3 S T4 S
.... .... .... ....
|  | |  | |  | |  |
+ch1 +ch2 +ch3 +ch4

T1,T2,T3,T4 : Tone channels
 Tn : Note, E-1..A-3
  S : Decay, 1..3
