
** Generator **

by Hoffman / Focus Design ^ Elude ^ Unstable Label

for the Revision 2015 Old School Music Compo

for any Amiga with one meg chip ram!

** Built using **

ProTracker 2.3D
The Player 6.1
Cinter synth by Blueberry / Loonies
Focusillator synth by Hoffman & Booster / Focus Design
SEQ2SMP by Hoffman / Focus Design
Devpac
Shrinkler cruncher by Blueberry / Loonies

** Exe versions **

hoffman_generator_lowmem 
- for machines with only 1 meg of ram, this one kills off the OS and doesn't exit

hoffman_generator_highmem
- for machines with more ram, returns to the OS on left mouse click

** What does what? **

Cinter is a tiny FM based synth written by Blueberry.  This is mainly used for the
bass sounds, some FX and odd synth noises.  Thankfully Blueberry produced a newer
version of this synth after I started this project which now includes some 
distortion parameters. This meant that the bass sounds in the second half ended
up rather dirty :)

Focusillator is a basic multi oscillator synth by me. Each oscillator can have a 
different waveform and pitch. It also contains two filters created by Booster 
(although the track only uses the low pass filter) and envelops for amp and
fitlers.  This chunk of code is responsible for all the chord samples.  

SEQ2SMP is a 4 channel drum loop generator by me. It is used for creating the large
drum loops from small pattern sequences in the code. All the samples are mixed at
the same frequency for speed and to ensure the best sound quality. (i'm actually
pretty chuffed with how quick it is :).

There is also a phase effect routine which uses interpolation for really smooth
phasing, a sample reverser, an up sampler, a basic 8-bit delta decompressor and some 
other small bits and pieces to fit stuff together.

** How does it work? **

For the most part, code had to be put together to generate the samples. The exception
to this is Cinter which has a VST Plugin so the sounds can be designed and exported
to samples without touching the code. Those samples are then loaded into ProTracker
so the tune can actually get written. The final piece of the puzzle is to then convert
the module into P61 but discarding all the sample data. As P61 init's a procedure is
called and the samples begin to be generated and the sample pointers in P61 start being
replaced. As there is only a 30 second pre-calc time the first init only generates
the samples needed for the first handful of patterns. Once that is done, the music
interupt kicks off while the rest of the samples are generated during playback. During
testing I found that leaving the OS running on a stanard 68000 meant the samples didn't 
generate in time before they were played so the OS and DMA are disabled to ensure
as much CPU time as possible. Thankfully it was just enough :)

** I want pointless stats? **

There is a total of 25,500 bytes of actual sample data. This is pretty much all drums
apart from one effect sample, everything else is generated by code. The original module,
although its not optimised, rolls in at 840,484 bytes.

** I want the module! **

OK, I've included it in the archive but please DONT play it using XMPlay as it simply
can't handle the hackery used in this one. Use UADE, ProTracker on Amiga or the amazing
ProTracker 2.3D port by 8-Bit Bubsy here ---> http://16-bits.org/pt.php
As always..  PLAY IT IN MONO WITH NO INTERPOLATION!!!

** Where are the greetz? **

Blueberry: Thanks for letting me use his Cinter synth. It's a proper little montser.
Also thanks for creating shrinkler which allowed me to get a handful of extra
drum samples in :)

Booster: Thanks to Booster for creating the two filters, real handy ;)

Bonefish: Cheers for the help with my fixed point calc on the 68000, seems like thats
going to be very handy in the future.

Knoeki: Big ups for testing this on your A600!.

Greetz to Optima, Corial, Malmix, Cheesy, Teo, Chaser, KBI, Kiero, Substrate, Ubik, Esau,
Aceman, Subi, Syphus, RC55, Gasman, Smash, Delafire, Bex, T$, Sunspire, Spot, Qwan, Goto80, 
Akira, Booger, *DEADGUY*, Wasp, Sixx, Skope, Made, Gaspode, m0d, Silverlance, Puppeh,
Megmeg, Tunk, Doz, Gargaj, Mog, Puryx, Dwarf, NE7, DVS, Amiga Junglism, Stingray, Galahad,
PMC, lug00ber, Pixtur, Franky, Truck, Gloom, Ferris, Ziphoid, Parsec, Smilodon, Saga Musix
all of the Poo-Brain posse and everyone else I forgot.

Massive shout to SaVannaH!

** I wanna get in touch **

ianhoffmanuk@gmail.com

