Luigi Castelli
220b Final Project
SINE-CELLS Cellula Automata synthesizer
Idea and origin
Setting up a machine with enough "knowledge" to produce
some musically usable sounds has always been a challenging task.
I am trying to use a basically simple idea (harmonics of a certain pitch)
and develop it by adding parameters which the user can change and by doing
so is able to meaningfully alter the behaviour of the CA algorithm.
The outcome is a CA synthesizer which is capable to generate perpetually
moving timbres by itself as much as interact with the user and give to him
just enough control to produce musically usable sounds.
What it does
Sine-Cells consists of a user selectable number of sinewave oscillators
and a CA algorithm to control them. The CA causes the frequency of each oscillator
to move towards a harmonic of the frequency of its neighbor. This results
in complex timbres that are tuned to pure harmonics.
Parameters
As stated above the user can change parameters of the CA algorithm to explore
soundscapes and new possibilities.
Here is a list of them:
Harmonic Limit
Sets the number of harmonics for the cellula automata to use.
For example if this is set to 4, each oscillator frequency will move to
the nearest of the first five harmonics of its neighbor. If a cell's neighbor
is at 440 Hz, this means the cell will move toward 440 Hz, 880 Hz, 1760
Hz, 3520 Hz, or 7040 Hz, whichever is closest.
Base Frequency
Sets the frequency from which the CA algorithm starts to generate harmonics.
Panning Range
In addition to this every other generation of CA is being randomly panned
across the stereo field. The panning range is user adjustable so that the
overall stereo spread can be controlled.
Conclusion and future developments
A lot is still to be explored, but the thing that most of all is important
to me is to find new ways to interact with it.
The possibility of using MIDI controllers to interact with the CA should
be explored.
The final goal that I have in mind is to be able to make a real time implementation
of the CA algorithm so that it could be used for live performance
CLM Code
sine-cells.ins
play-cells.lisp
CLM code