Additive Synth/Fourier Help
Im interested in building an additive synth using "poi" (the chains with a small weight on the end you see people swinging around themselves at festivals).
Th idea is to use accelerometers to detect the rotations and to convert that into data supplied to each individual sine wave oscillator. No problems so far with all of that.
I want to incorporate Fourier theory into this but am really struggling understanding it from books and achieving it in Max.
I get the idea (at a very basic level) that you can break a complicated signal into its parts and that these parts are represented by cosine and sine co-efficients. And that this works in reverse. BUt how do I go about this.
In essence what do I need to feed to what object in MSP in order to resynthesize a sound?
At the moment Im playing around with multiple cycle objects all with individual volume envelopes and variable frequency. Although this works to some extent it is a bit crude and Im having problems altering the phase of the oscillator via the phase arguement input.
As is said the idea is to use the outputted data from the accelerometers to generate information for each oscillator on an additive synthesiser. The idea is that I can then get the tone to evolve slowly over time as the person performs.
If anyone can offer any help, links, advice on where Im going completely wrong or anything it would be much appreciated.
here are few links, don’t know if it’ll help :
- the basics of fourier in this java applet on the web (you can select the sin/cosine view or amplitude/phase) :
- you should download the cnmat max package where there is lot’s of objects and lot’s of examples and tutorials about different kinds of additive synthesis: http://cnmat.berkeley.edu/downloads (sinusoids~, resonators~, etc..)
- i personally did some tries on additive synthesis :
http://cycling74.com/forums/topic.php?id=20980 (in this one, the attachment is gone(old forum), ask me if you want it)
if you want lot’s of oscillators, cycle~ is not so efficient you should use an object~ that have all the oscillators into it like the ones mentionned above, or oscbank~.