After many months of work, I finally have a prototype of my synthesiser up and running (written in C++). It's called Cascade and uses a variant of cellular automata to perform additive synthesis of dynamic, evolving tones.

Some of you may be familiar with the concept of cellular automata - a system of cells whose values change according to neighbourhood (the adjacent cells). The synth uses a 1D 256-state automaton, where at each time step the current 'generation' (a 1D array of 8-bit values) of cells is converted into a sound by interpreting each cell's value as the amplitude of a particular harmonic (there are 64). By experimenting with the rules, you can create some very interesting evolving sounds.

http://img528.imageshack.us/img528/337/screentv4.gif

As opposed to a rule table, the automaton is governed by a weighted average (top-bottom and middle-sides) system that basically controls which direction 'energy' is spread throughout the spectrum. For a 1D automaton, each prospective cell has 3 neighbours (top middle and bottom). For each cell, the neighbourhood is processed thus:

http://img515.imageshack.us/img515/9373/blockbj0.gif

Here are some examples (mp3 format), along with the corresponding spectrum:

http://download.yousendit.com/46F07B8C6B8C3582

http://img263.imageshack.us/img263/1724/e1dy3.gif

http://download.yousendit.com/1FEC27F8159B5C35

http://img263.imageshack.us/img263/1560/e2va0.gif

http://download.yousendit.com/5B69747D720C2409

http://img519.imageshack.us/img519/7358/e3zc2.gif

http://download.yousendit.com/D74A06611699A4BF

http://img514.imageshack.us/img514/495/e4nj7.gif

http://download.yousendit.com/D5171E460C507141

http://img257.imageshack.us/img257/6030/e5ok7.gif

http://download.yousendit.com/F34EEBAB419394D4

http://img257.imageshack.us/img257/3107/e6pc8.gif

Here's the EXE:

http://download.yousendit.com/A270AF76156C4A3F

Admittedly, due to the nature of the synth operation is not very intuitive but with experimentation you can get some nice sounds. It's got basic MIDI compatibility, too, and is 10-voice polyphonic. To define the starting state, click and drag the boxes on the left column to alter their values (or right click to invert them).

MIDI keyboard required.