Kozaluss Angeluss - GenC 1.3

GenC is wave terrain based generator.

Some parameters description:

- GLIDE describes the speed of sliding to next note.
- PGLIDE describes the speed of sliding to desired pitch.
- #-LFO-RoN - Decides whether LFO should reset phase on new note or not
- Radius Link - Decides whether Radius modulation should be equal to volume modulation (G-ADSR & G-LFO) or it's own modulators (R-ADSR & R-LFO)

Used units guide:

- ADSR time units - tick - Length of parts in ticks
- ADSR volume unit - % - Percent of maximum volume level
- G-LFO volume unit - % - Percent of maximum volume level multiplied with sound volume (for example G-LFO-V=0% => Volume doesn't oscilate, is equal to max, G-LFO-V=100% => volume oscilates between 0 and 2*max)
- R-LFO volume unit - % - Percent of maximum amplification of radius oscilator (for example R-LFO-V=0% => Volume doesn't oscilate, is equal to max, G-LFO-V=100% => volume oscilates between 0.5*max and 1.5*max)
- LFO frequency unit - CpT - Cycles per tick
- #Shift units - deg - Degrees, 0-360
- BRadius units - deg - Degrees, 0-180
- #Scale units - % - Percent of maximum equal to 360 degrees
- LFO-RP - deg - Reset phase (when RoN is on)

Attribute MIDI/pattern NOTE OFF ACTION tells machine what to do, if NoteOff event happened (either from Midi or from Pattern):

- 0. Does nothing. Just plays note as long, as ADSR is set to.
- 1. If Decay wasn't performing yet, jumps to Decay sequence.
- 2. If Sustain wasn't performed yet, jumps to Sustain sequence.
- 3. If Release wasn't performed yet, jumps to Release sequence.
- 4. Default. Just cuts the note with 'note off' command.

Wave types:

Simple
- Sine -
- Saw -
- Triangle -
- Square -
- Octagon -
- FastSine -
  This is approximation of sine, so it's not so smooth as normal sine, but is a little faster.

Here is a graph that shows what is what in machine's parameters:

Few notes:

- I've tried to rid of the eventual denormalisation issue with P4 cpus.
- GenC comes in two versions - with inertia (GenC) and without (GenC NI). Version without inertia is 1/3 faster, but the sound quality is worse.
- Since v.1.3. Glide is not reversed and is logarythmic, auto-volume-finder removed as it was causing highs to be louder than lows. Also wavetable was added, but unfortunately it doesn't seem to speed up calculations.
- Since machine relies only on my 'lazy' code, it is extremely slow! (On Athlon1700 one channel consumes 15-20% of CPU power). By 'lazy' code I mean that it is rather written to be easy to use and flexible, than to be ultra-fast. For example - all the parameters are classes in which I've implemented inertia, so every parameter is geometrically inertialised - it makes all changes very smooth.

Kozaluss Angeluss (also Kozaki Soft) at http://www.kozaluss.z.pl/