=== CHAOSFX ===

-Introduction-

I consider Chaos by Julian Gollop to be one of the best game released for Spectrum
and the thing I really love about the game is how many special sound effects
it throws into game. 
"Gandalf <dzz> HORSE <dzz> 1 <dzz> ...  <CHZZZzzzzz> SPELL SUCCEEDS"

So when I bumped into Chaos diassembly, naturaly I peeked into code how is
the sound generated. I expected there will be dozen of special routines but
to my surprise, all effects are played by single routine.

-The routine-

Using a pseudocode, the sound generator works like this:

  flip beeper bit
  wait for some time given by "delay1" parameter
  flip beeper bit
  wait for some time given by "delay2" parameter
  flip beeper bit
  wait for some time given by "delay3" parameter
  flip beeper bit
  wait for some time given by "delay4" parameter

  repeat it as many times as is given by parameter "speed"

  then update each delay by its delta parameter
    delay1 = delay1 + delta1
    delay2 = delay2 + delta2
    delay3 = delay3 + delta3
    delay4 = delay4 + delta4

  then go back to flipping beeper bit and repeat everything as many times
  as given by parameter "repeat"

-ChaosFx-

When I understood how sound generator in Chaos works I wrote my own version. 
My code does same thing as original generator, except I wrote it from scratch.

And thats what you get. When you load ChaosFX, the routine is poked into high RAM and
example sound is played. Then program STOPs and it is your time to play.

LIST the program and you will see listing starts with ten POKE commands, followed by 
RANDOMIZE USR 65011:STOP.
Edit the parameters as you wish and press R (RUN), then ENTER to listen sound effect.

The process of finding correct parameters is quite daunting so I recommend you to start 
with examples given in REM statements at lines 6000,6010,6020 to get idea what
range of sounds the generator can produce.

-If you are like me-
...you will spend many happy hours by POKING. Because POKING is life style.

-Merry christmas to everybody-
And especially to everybody on Spectrum Computing forum. SC is such great place and 
the reason why it is so great is the amazing community around forum.
   

