Ear Shaver EX - ZX Spectrum 1-bit music engine by Shiru (shiru@mail.ru) 
Engine and 1tracker version by Shiru 03'22,02'23
Public Domain 



Despite minor change in the title, this is a much expanded of the original
Ear Shaver engine. Still, it keeps the same exact base code, but adds a
lot more. It features a better resolution to the speed column, nine engine
types of the EarthShaker, Tritone, Phaser1, and Squeeker likes, plus two
more experimental ones (introducedc with 2023 update). The engines can be
smoothly switched every row. Much improved sampled drums support with
volume, pitch, and offset controls has been implemented as well. The
trade-offs to the original version are the increased row transition noise,
larger code and music data size.

The engines are:

1: EarthShaker-alike, works exactly as in the Ear Shaver, with W column
   used to control the phase precisely (helps to separate repeating notes
   and to get specific sound harmonics);
2: Tritone-alike, with two channels of uneven volume. The W column controls
   duty cycle here. T2 channel is louder than T1 channel;
3: The same as 2, but with equal volumes on both channels;
4: The same as 2, but T1 plays quiet periodic noise instead of tone, the
   color of the noise depends on the note played. T1 plays loud tone;
5: The same as 4, but noise played on T2 instead, making it louder than
   tone that is played on the T1 channel;
6: Phaser1-alike. It is a single channel mode, both channels providing
   frequencies for each of the oscillators. The W column controls phase,
   allowing to get the whole spectrum of Phaser1 sounds;
7: Squeeker-alike. Provides two channels with the Squeeker-specific timbre,
   both channels allow to use the W column to control duty cycle.
8: CrossPhase. First introduced in an update of the ESEX, another kind of a
   Phaser1-like modulation engine, but a bit different both from Phaser1 and
   EarthShaker. It is a single channel mode, much like engine 6.
9: ModPhase. Also first introduced as an update to the ESEX. Provides two
   channels with always-on PWM modulation and modulation alteration via W
   column. W=1 (default) always resets phase, while other values keep it
   free running. T2 channel is louder than T1 channel.



Version history:

09.04.23 - Data format optimized for size once again, in trade for the
           drum parameters to be limited to 127 unique combinations
03.02.23 - Data format changed again in order to allow speeds up to 99
02.02.23 - Data format optimized a bit to reduce size
10.01.23 - CrossPhase and ModPhase experimental sub engines added
30.03.22 - Original edition with 7 engines




The columns are:

Sp E T1 dW T2 dW DRvpo
.. . ..... ..... .....
     |   | |   | |   |
	 +ch1+ +ch2+ +drum
	 
Sp    : Speed, 1..99
E     : Engine type, 1..9
T1,T2 : Note, C-0..B-7. T-2 is louder than T-1 in the uneven volume engines
d     : Detune, 1..9
W     : 1..8 duty cycle or phase control
        when used as duty cycle, 1 is square wave, 8 is narrow thin sound.
		when used as phase control, no value keeps phase running.
DR    : Drum, 1..99
 v    : Drum volume, 1..4 (quiet to loud, 4 by default)
 p    : Drum pitch, 1..9 (lowest to normal, 9 by default)
 o    : Drum sample offset, 1..9 (no offset by default)