block~ equivalent?

pland's icon

Hello all,

I'm trying to make an object we wrote using the Flext C++ layer
behave well in Max/MSP.

The main problem is that this object wants a block size of 16384,
overlap of 8. However, I cannot see a way to tell a max window to
give me that kind of block size. In PD, I can use [block~ 16384 8 1].

Is there anything equivalent in max? I tried pfft~, but because all
the fft computations happen inside the object itself, it kinda went
recursive, I think.

Any advice?

Cheers,

David

Peter McCulloch's icon

With poly~ you can specify the vector size specific to the instance of
poly~ using vs 16384 as an argument to poly~.

Peter McCulloch

On Mar 13, 2007, at 11:46 AM, David Plans Casal wrote:

> Hello all,
>
> I'm trying to make an object we wrote using the Flext C++ layer behave
> well in Max/MSP.
>
> The main problem is that this object wants a block size of 16384,
> overlap of 8. However, I cannot see a way to tell a max window to give
> me that kind of block size. In PD, I can use [block~ 16384 8 1].
>
> Is there anything equivalent in max? I tried pfft~, but because all
> the fft computations happen inside the object itself, it kinda went
> recursive, I think.
>
> Any advice?
>
> Cheers,
>
> David
>
>
www.petermcculloch.com

hardcoder's icon

Hi Peter, all,
I just tried to change the vector size with the help of the poly~ object. It only works, as long as signal vector size

But I need the signal vector size to be higher than I/O vector size for my custom STFT.
Any ideas?

vichug's icon

is this a possiblity that you increase your global vector size according to your needs ? or that you use pfft~, which is apparently able to have larger vs than the default IO one ?

hardcoder's icon

I would like to have at least 1024 for vector size. Therefore, I had to increase sampling frequency. This is no option.

Using pfft~ is also no option, since it has no perfect reconstruction. At least this is what I measured. For noise, I get deviations of -90dB, when I compare the input noise time domain signal versus the STFT-ISTFT transformed signal with no processing inside (Of course, additionally I do delay compensation of 960 samples, when using a 1024 point fft).

vichug's icon

anyway... i would be grateful also, for the ability to use bigger vector in poly~ than Max's signal vs... that sounds really feasible, no ? for now, indeed, an error appears when dac is turned on :poly~: bad fixed vector size and/or sample-rate (16384 > 64)
so it doesn't work as Peter McCulloch seemed to be thinking it should 7 years ago, is that a deprecation ?

hardcoder's icon

jeah, your right, it should be no big deal.

I solved my pfft~ problem btw. I have to use pfft's full-spectrum-flag in order to get perfect reconstruction. There is a bug in pfft~ as described here:
https://cycling74.com/forums/bug-in-pfft

vichug's icon

hah... but my aim is different : i have a live fx patch, so need a very short io vs and sig vs for some effects, but would like to use a larger sig vs for more cpu expensive operations. There is no fft~ involved ; so i guess your solution won't help me ! thanks and grats anyway.