### fft limitations in msp: what!!??

Hello,

I’ve been trying to workout a way to make a spectral warper (as in

GRM tools) in max. I came across this thread today and it seems that

a pure msp-based patch that manipulates frequency content of

individual fft bins is not possible.

http://www.synthesisters.com/hypermail/max-msp/Dec06/56003.html

Is csound~, FTM or some other externals the only way here? Is fft

still so limited in max 5 (I am just in the process of purchasing max

5), or is there some magical way to transform magnitude/phase fft

data to amplitude/frequency in max?

I know that for instance Bidule and Csound work on this basis, where

the user has access to amplitude and frequency of fft signals. It is

particularly good in csound where you can put the data in tables and

then easily manipulate each frequency index separately before it is

automatically converted to the correct format for ifft resynthesis.

Any pointers are more than welcome. I have been postponing learning

fft processing with pure msp for quite some time and now I’m very

surprised at how limited it seems. Please give me hope!!!

Many Thanks

Peiman

On 8 juil. 08, at 15:05, peiman khosravi wrote:

> Any pointers are more than welcome. I have been postponing learning

> fft processing with pure msp for quite some time and now I’m very

> surprised at how limited it seems. Please give me hope!!!

with [cartopol~] you get the energy and amplitude for each frequency

bin. What else do you need?

ej

On Jul 8, 2008, at 9:05 AM, peiman khosravi wrote:

> Is csound~, FTM or some other externals the only way here? Is fft

> still so limited in max 5 (I am just in the process of purchasing

> max 5), or is there some magical way to transform magnitude/phase

> fft data to amplitude/frequency in max

John Gibson has written a set of interesting spectral manipulators

for RTcmix, they work well in rtcmix~:

CONVOLVE1 — FFT convolution

PVOC — phase vocoder

SPECTACLE — FFT-based delay

SPECTACLE2 — FFT-based delay (more real-time control)

SPECTEQ — FFT-based EQ

SPECTEQ2 — FFT-based EQ (more real-time control)

TVSPECTACLE — FFT-based delay with time-varying properties

VOCODE — phase vocoder

VOCODE2 — phase vocoder

VOCODESYNTH — phase vocoder w/ oscillator-bank resynthesis

brad

Thanks for your reply. I am looking for a way to manipulate the

frequency data of each bin (e.g. scale) individually using a table.

So like the fft filter that comes with the max examples but instead

of messing with the amplitude I want to play around with the

frequency data. I understand (that’s not to say I know how to do it

yet!) that one could mess around with bin indexes but that’s not the

same as being able to manipulate frequency data (not as intuitive).

Also this only allows integer bin-shifts. I need a table-driven

gizmo~-like operation that operates on each individual bin.

So in short I’m looking to have access to amplitude and frequency as

opposed to energy and amplitude or phase and magnitude. This would be

much more intuitive to work with. Apologies if I’m sounding like a

newbie! Please feel free to enlighten me, I’m very new to fft

operations in msp.

Thanks very much

Peiman

On 8 Jul 2008, at 14:12, Emmanuel Jourdan wrote:

> On 8 juil. 08, at 15:05, peiman khosravi wrote:

>

>> Any pointers are more than welcome. I have been postponing

>> learning fft processing with pure msp for quite some time and now

>> I’m very surprised at how limited it seems. Please give me hope!!!

>

> with [cartopol~] you get the energy and amplitude for each

> frequency bin. What else do you need?

>

> ej

>

Thanks,

Sounds great. I’ll have a go today :-)

Best

Peiman

On 8 Jul 2008, at 14:37, Brad Garton wrote:

> On Jul 8, 2008, at 9:05 AM, peiman khosravi wrote:

>

>> Is csound~, FTM or some other externals the only way here? Is fft

>> still so limited in max 5 (I am just in the process of purchasing

>> max 5), or is there some magical way to transform magnitude/phase

>> fft data to amplitude/frequency in max

>

> John Gibson has written a set of interesting spectral manipulators

> for RTcmix, they work well in rtcmix~:

>

> CONVOLVE1 — FFT convolution

> PVOC — phase vocoder

> SPECTACLE — FFT-based delay

> SPECTACLE2 — FFT-based delay (more real-time control)

> SPECTEQ — FFT-based EQ

> SPECTEQ2 — FFT-based EQ (more real-time control)

> TVSPECTACLE — FFT-based delay with time-varying properties

> VOCODE — phase vocoder

> VOCODE2 — phase vocoder

> VOCODESYNTH — phase vocoder w/ oscillator-bank resynthesis

>

> brad

> http://music.columbia.edu/~brad

>

Hey Brad, is there any word on when RTcmix will be real-time?

> Thanks for your reply. I am looking for a way to manipulate the

> frequency data of each bin (e.g. scale) individually using a table.

I find a jitter matrix very convenient to manipulate amplitude/phase

difference information. I would encourage to you use a jitter matrix instead

of a table.

I posted several examples on my share page. They are based on the

amplitude/phase difference information. Example 4-explore-the-sonogram shows

conversion to frequency information.

http://www.cycling74.com/twiki/bin/view/Share/Jean-francoisCharles

J-F.