pitch shifter in Max?

Kasper's icon

hi

what do you use when you need quite a lot of pitch shifters?? I usually used gizmo~ but for a piece i am working on, i need some 15 or 20 and that's 15 or 20 FFTs), and even for a new computer it begins to be quite a lot. I had CPU kliks - so of course i did things mute~ etc, and it is going better, but i was just wondering what people use when they need quite a lot of pitch shifters - is there another object, a VST plug-in, something?

many thanks

kasper

Jean-Francois Charles's icon

15 or 20 gizmo doesn't mean 15 or 20 FFTs if you are pitch-shifting a unique source. If you want to pitch shift a single signal, use 20 gizmos inside a unique [pfft~]. If you need 20 outputs, it's fine, but you already save on the inputs (FFT). If a kind of mix in pfft world is possible, then use just a few outputs, you'll save on inverse-FFT as well.

If you need to pitch shift 4 sources, each with 5 gizmos, you can also use a pfft~ with 4 inputs.

Roald Baudoux's icon

Hi Kasper,

You might have a look at granular- or delay-based solutions.

FTM might help also but it could lead you to rewrite much of your patcher.

Best regards,

Roald

Roman Thilenius's icon

easy answer: i work offline :)

hans w. koch's icon

in addition to jean-francois answer i have used very heavy-duty fft processing inside a poly~ which, with the help of a simple message, can spawn a thread to the second processor of a dual-core mac. so a patch maxing out at over 100% got down to somewhere around 40%.
its in the (not so new anymore) poly help-file.

good luck shifting
hans

Kasper's icon

hi all

thanks for the answers

@ J-F Charles : I did not knew (or rather thought about it) that you can include several gizmos in one pfft. Will have a look at it. However when doing similar things, in the past, with "brickwall" banpass filters I saw no difference (cpu-wise) in having 2 or more band passes in one pffft or one pfft by band. might be different with gizmo..

@ roman - offline? you mean non-real-time? difficult for a real-time piece!!! :-)

@Kochhw - yes, totally forgot about the possibility, with poly~ to spread the work on the 2 halves of a dual core processor - even if this thing, in max, is still very unclear to me (what is done on which processore etc)

many thanks

kasper

Spenakis's icon

Hello hello.

New to max and doing something similar.

I'm having trouble finding an object called 'gadget'. Does anyone use this object/know where to get it?

And can anyone say what it's relationship with gizmo is? (vague vague vague I know)

Thanks

Spenakis's icon

Oh wow. All is clear now.

Sorry. Should be a little more stoic before falling back on the forums!

Jean-Francois Charles's icon

Hi Kasper,
With [pfft~], you will save processing power by saving on the number of inputs/outputs of the pfft~, i.e., the number of signals that you have to apply the FFT and IFFT algorithm to. Otherwise, I don't think you would gain anything. Can't try right now, though.
J-F

Lasse Munk's icon

I don't get the diffrence between using poly~ and pfft~ ? Is it more computational efficient to use pfft~ for the poly function when using fft~ i.e. using the gizmo thingy (sorry i don't know much about fft and the whole physics/maths around it).

Orkester's icon

I searched offline gizmo, and offline shift, and this seemed to be the most relevant thread. I'd like to populate a series of buffers for a mellotron style sampler, based off a single audiofile/buffer pitch shifted into the different ranges necessary. It needn't occur in real time, but I'd like to be able to do it on the fly while other DSP is occurring. What object(s) would I use for this task? I know defer makes something a low priority, but that doesn't quite seem to fit.

Thanks.