Thread: My Synth

  1. #1
    Registered User samGwilliam's Avatar
    Join Date
    Feb 2002
    Location
    Newport
    Posts
    382

    My Synth

    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.
    Last edited by samGwilliam; 05-28-2007 at 11:35 PM.

  2. #2
    Registered User Tonto's Avatar
    Join Date
    Jun 2005
    Location
    New York
    Posts
    1,465
    Oh gorsh I'ma gonna dig up that 'ol midi controller right now

  3. #3
    int x = *((int *) NULL); Cactus_Hugger's Avatar
    Join Date
    Jul 2003
    Location
    Banks of the River Styx
    Posts
    902
    Page faults immediately for me. (AMD-K6 ~450MHz, 192MB RAM, Win98) MIDI keyboard _required_ you say.... :-/ That's two stories down, and neither it nor the PC are move friendly...

    The example mp3 are impressive, however - wish I could make some.
    long time; /* know C? */
    Unprecedented performance: Nothing ever ran this slow before.
    Any sufficiently advanced bug is indistinguishable from a feature.
    Real Programmers confuse Halloween and Christmas, because dec 25 == oct 31.
    The best way to accelerate an IBM is at 9.8 m/s/s.
    recursion (re - cur' - zhun) n. 1. (see recursion)

  4. #4
    Registered User samGwilliam's Avatar
    Join Date
    Feb 2002
    Location
    Newport
    Posts
    382
    Quote Originally Posted by Cactus_Hugger View Post
    Page faults immediately for me. (AMD-K6 ~450MHz, 192MB RAM, Win98) MIDI keyboard _required_ you say.... :-/ That's two stories down, and neither it nor the PC are move friendly...

    The example mp3 are impressive, however - wish I could make some.
    I don't know what could be causing that - but this is the place to find out, eh? Maybe I should post some code for you all to dissect!

    It doesn't need a hugely fast computer though (it can run upto about 10% CPU when busy on my 2.6GHz) - as you can tell, I've managed to fix the efficiency problem I posted a few days ago.

    EDIT: Some of the images don't seem to be working so here's all of it in a zip:
    http://download.yousendit.com/5F858D6A5B071F41
    Last edited by samGwilliam; 05-29-2007 at 12:52 AM. Reason: zip file

  5. #5
    Registered User samGwilliam's Avatar
    Join Date
    Feb 2002
    Location
    Newport
    Posts
    382

Popular pages Recent additions subscribe to a feed