pitch shifter in Max?

    Jan 25 2011 | 7:56 pm
    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

    • Jan 25 2011 | 8:43 pm
      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.
    • Jan 25 2011 | 8:48 pm
      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,
    • Jan 25 2011 | 11:18 pm
      easy answer: i work offline :)
    • Jan 26 2011 | 12:19 am
      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
    • Jan 26 2011 | 9:30 am
      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
    • Jan 31 2011 | 12:44 am
      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)
    • Jan 31 2011 | 2:48 am
      Oh wow. All is clear now.
      Sorry. Should be a little more stoic before falling back on the forums!
    • Jan 31 2011 | 10:22 am
      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.
    • Mar 10 2011 | 10:01 pm
      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).
    • Apr 29 2011 | 5:12 am
      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.