Help with gizmo~ and pitching whole of Max/msp audio output
I am hoping to be able to control the whole of my audio output so that it can be pitched depending on a value – I will already have many samples being played and altered in various ways.
I have used the gizmo help file to find out how to pitch things, and I have managed to pitch a sample (code found below). However, as I say above I wish to not just pitch a single sample but pitch the output of Max/msp so that the whole pitch of my patch will be decided by an incoming value (from arduino).
Also, although I am using the [pfft~ gizmo_loadme 4096 4] and [expr pow(2.,$f1/12)] I am not actually sure what they are doing. Can somebody please explain these to me?
Can the gizmo_loadme part be replaced with my own subpatch? If so I wish to do this so that I can gain more of an understanding of why how and why it is working.
----------begin_max5_patcher---------- 957.3oc0YtrbaBCEFds8SgFlrnsC0UW3Z20milLYjMxNzADLFQiiyD+rWIg4 RRv1XvljtADBY3We5W5bP94oSLlmrgkY.9I32fISdd5jI5pTULY+0SLhoaVD QyzMyfydLY9eLLKtkfsQnqdaLME3BANPH.BPvxFDFnus7m7cRYcKS3BNMlou yuVGRiJuSJUr3gP9p6WyVHJTE10eFzDfbI5SPW0ILbFDb29eDOONjGwDZ8YW WYRtnrVTi2bV3V8aFgkOohpKZo3oTVw6zv.bm5NuLcp5f4vPy51XAF2OZ3AU 8eerFF9GmEnOPVDyxxnqXuCFYLA3FTqDgLDh3n8EVElDuCQD7GHQxiY77JdH eZ6m1UozWACq9ACaskvp.In9XOHmILB4BCSISL0borqHXw66dFTn5dlpCTTc QbcQRcQq5h1UECpaaPcaCpaaPi15TWzstnWcQ+5hHXixnFka7BQjK5hAg7kI 6.KWsNImGz1z.jSuF4QPGs0m.mYKOgH5Sdm2XuWai8vCO1uLJgpG8iByzmqp nKE5GWmmKDI7VIm6w3ikWwRCVJvfgCYky2wg4T9pKpKIgyTOSPqKTh7FjCQF AUR.au9rRI9LMHZvXND.cn3HRweC5.QRP9CBP1ZKh73m1PIGv0DExY6ZMzJb P.QlAlDHDmiOm4LbLGAHYgq3JQcElTkFQe5nK8hQCASXr123YMFIksGSW5UP sOZ2T2yb8J6eeJV.ksMftnxz+W55pgMZtH4AVT58xFzRm0+zinDWcvTKacNU 1mx3GkrPMjbnNO7x4j+1NfTYszov9CZlNoH6AKTelo2pEFMy12F44dM7wGZZ 9xkhcfUgaiStWlpQPLSlOruCvpMGObP7BWXPPNv+K.lLyKoBZAC88iMZlxoc uVQ.2GFTkA4EODAaS5ZPZxieAO61aMuYI5GH7Wa0231OjYse6KzvBgbuXwJN EytvNFBzeP..q+P8OGdF86Vm7za1HLs9U0+ZBkkjudQ4ysBFf59P.KSDxohP YT1lsR80lnpV8PXP.S2fxn7wgAoIxumtZiAZcDq6pB1AUoiXznUWcUoRxpir ZLUEtCpxZj0DoKj5MJ+5qJqW4hOjpHiqpTYtdZVo9x4QkUvNMBhFYVo1hLmS xJ+ySUHeGctP1nhPa1UWMX850owVmQlhcZMeL7Cvwg5z7fyHRDhfK10L8FAf I6+eGZdkuew3s9afUWLN7UsmeiHeeazx1Uk+nFmu6ZZD8gP2NEkejUUmzz35 nr5hlFfhjW7xz+wHsrrs -----------end_max5_patcher-----------
the whole output of maxmsp is [dac~] / [ezdac~], nothing more.
of course you can replace gizmo_loadme by whatever you want, for example make a stereo version, check pfft~ help file
[expr pow(2.,$f1/12)] changes midi values into a ratio where 1 is original pitch, 2 is a octave higher etc
To pitch the output of a sample based (buffer playback, granulation, etc) synth, I would recommend to link a pitch function to the playing speed of each sample. Using gizmo~ (or any other global re-pitch approach) might have inconvenient side-effects on sound quality. In the case of gizmo~ itself, you add the inconvenience of FFT analysis re-synthesis latency.
Thanks for the replies.
Jean-Francois, I do not want to change the speed of my piece – I want to be able to control the pitch independently.
I will see if I can use the [dac~] with the pitch shifting patch I currently have (the one in my first post) however I do not think it can control the dac, and if I can and the effects are as bad as you say, Jean-Francois, I will look into linking all of my samples to the one pitch shifter.