sine waves from FFT analysis

    Feb 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?

    • Feb 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?
    • Feb 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.
    • Feb 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)
    • Feb 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 you know, they're kind of rough around the edges :)
    • Feb 12 2010 | 11:12 am
      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.
    • Feb 12 2010 | 3:40 pm
      apparently miller puckettes fiddle~ gives me exactly the sinusoidal components i need!!
      thanks for the help.
    • Feb 15 2010 | 6:44 pm
      The iana~ object is what you want:
      Too bad it's not free.
    • Feb 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.