Lyndon Sharp's ZX Spectrum beeper music engines
Original Z80 code by Lyndon Sharp, circa 1989-1991
Reverse-engineering, modifications, 1trackers engines by Shiru 2011-18
(shiru@mail.ru)


Lyndon Sharp did at least three editions of his engine, first based on 
the Music Box one, possibly using its editor to edit music, then a 
couple improved ones. The order of creation is (names are abstract): 


Lyndon Sharp 'MB - based on the famous Wham The Music Box routine, 
 sounds much the same, but with sample drums added, altough they has a 
 synthetic flavour. Only used in Super Dragon Slayer. The song data 
 format got changed in 1tracker version.

Lyndon Sharp '89 - sound of the tone channel is much changed, getting
 some PWM-like modulation. Widely used, mostly in Code Masters games.
 1tracker reverse engineered version comes from a free game Zanthrax,
 with minor modifications.

Lyndon Sharp '91 - improved version with better sound and much cleaner
 drum samples. Likely only used in Bubble Dizzy. 

 
All versions of the engine provides two channels of tone without volume 
or timbre control. There is a drum channel with six drum sounds (four in 
'91 version), it is mixed with the tone channels, so the tone is never 
interrupted. There is always small gap between the rows, like in Music 
Box and Music Studio engines. 

Notes aren't continuous, they only play for a row. To make a longer note
just repeat it as much as needed. 'MB version features per-note detune.


The columns are:

T1   T2   D ('89,'91)
T1 d T2 d D ('MB)
.... .... .
|  | |  |
+ch1 +ch2

T1,T2 : Tone channels
 Tn : Note, range is different for each version
       'MB  D-1..B-7
	   '89  B-1..G-5
	   '91  A-1..D-5

 D : Drum, 1..6



A quote from utz, 2017 in a discussion on the Super Dragon engine and 
history of this engine family: 

Contacted Lyndon Sharp about this, and he's confirmed that he wrote that 
engine (and he most likely did the music conversion as well), based on 
WHAM. According to him, Codemasters wanted to avoid using WHAM because 
of license issues, so he sent them this one. It was only used once, as 
Codemasters still thought it too similar. So eventually Lyndon 
transformed it into what we now know as the LSengine'89. 
