Forums > MaxMSP

sine waves from FFT analysis

February 11, 2010 | 5:52 pm

hi board

could anyone direct me into the right direction with this;

i want to analyze the spectral components of a signal, and resynthesize it with a fft object – but be able to decide how many sinewave components are used to reconstruct the original signal!

something like reducing the "resolution" of the resynthesis. i’d like to hear a signal represented by 2 up to lets say 250 sine waves…

any ideas?


February 11, 2010 | 5:54 pm

ehm… maybe this is a little unclear…

what i want is a patch that can represent a signal in variable numbers of sinewaves.

how would a wookiee growl sound using only 3 sinewaves to resynthesize it? what would it sound like with 250 sinewave components?


February 11, 2010 | 7:17 pm

Have you seen the forbidden-planet patch in the examples folder? It sounds like you could do what you want with a few adjustments of that patch. It sounds like the same concept to me. If you want to re-synthesize with only 250 sine waves, then you need to decide which 250 to let pass, which is essentially equalization.


February 11, 2010 | 11:08 pm

cool, ill check that out!

this however woul not be equalization, because the possible sine waves would always be spread evenly over the spectrum. i don’t want to simply x out certain frequencies (bands)


February 12, 2010 | 1:02 am

[oscbank~] might also be worth checking into, if you’re OK with its frequency spread limitations. Otherwise you could use [bpatcher] or [poly~] with as many instances as you want, one cycle~ in each, and generate the frequencies and amplitudes from them. With the right scale factor *~ available to each, you can easily send a fundamental frequency and know that all your "partials" (of whatever scale factor you want) will relate to the original.

I think Wookies use some square waves too…as you know, they’re kind of rough around the edges :)


February 12, 2010 | 11:12 am

http://cnmat.berkeley.edu/downloads

http://www.klingbeil.com/spear/

this is sdif based but might help you get some ideas.
[sinusoids~] and [SDIF-buffer]+[SDIF-tuples] will do what you described,
given that you have analysis files first (.sdif) by Spear or something alike.


February 12, 2010 | 3:40 pm

apparently miller puckettes fiddle~ gives me exactly the sinusoidal components i need!!

thanks for the help.

-klive


February 15, 2010 | 6:44 pm

The iana~ object is what you want:

http://forumnet.ircam.fr/704.html?L=1

Too bad it’s not free.

mz


February 16, 2010 | 12:50 am

this is why the pure-data community often makes me a lot happier. it does not make sense to me that people actually sell externals for max.


Viewing 9 posts - 1 through 9 (of 9 total)