Freq shift and pitch shift

Hi!

Has anybody come with work arounds to create frequency and/or pitch shifting of incoming audio signals on the SSP? (And I know they are quite different beasts, I’m not lumping them togeter… Just love both! :slight_smile: )

Thanks!
Girilal

I guess this is related to your other post (it’d be better to not cross post, so we can answer in one place…)

so, I replied there, about the pitch tracking ability, but it should be noted that pitch tracking and shifting are two different things.
e.g. if you consider doubling the speed of a sample, that will pitch shift it, and the algorithm needs no understanding of the actual pitch.

basically pitch tracking is usually used to harmonise, whereas pitch shift is to , well, shift an incoming source… so its pretty important to be specific about what you are trying to achieve…two different use-cases, and very different solutions.

what Id assume you are asking here is about, time independent shifting
as for simple pitch shifting you just record and play back at different speed… which you can do with the GRA module (and also my LOOP module iirc)

for real time, and time independent shifting, the common approach is to use granular, so you can try to use the GRA module for this - Ive posted about this in the past.
(and I suspect, I may have talked about its limitations too)

its a bit fiddly to setup, as you can consider GRA is a low-level tool, that can be used for many purposes… so has a lot of parameters.
for sure a new dedicated module could be created , which essentially is the same, but do have less parameters, and so be easier to use.

thats modular for you… is it better to build using fundamental building blocks, or have out of the box modules? modular enthusiasts have different opinions on this, both are valid.

either way, I found messing with GRA to explore what granular can do, was a lot of fun… even if it didn’t give quite the results I wanted… often took me in interesting directions

In this case I am literally asking about classic time independent pitch shifting.
Totally respect what you are saying! Just thought a basic pitch-shifter would be a simple and great separate module. Trying to get GRA to do what I think of as pretty basic pitch shiting is not really working out…

But what about frequency shifting? I mean that has been done in the analogue domain… I would expect there are would be a straightforward way to implement this in the Digital?

why would frequency shifting be different? you can freely convert pitch <-> frequency.

doing things in the analog domain is not easier/nor harder than digital, its completely different. look at things like filters or even distortion…
(and analogue modelling is extremely cpu intensive, at any level of complexity)

as for using GRA, yeah, I remember looking at it and play with it, and can’t remember if it has some limitations in this area… but was a while ago so can’t remember the details.
but generally granular is the approach, look at things like Ableton, and you’ll see its the heart of thier approach - albeit it tailored.

you could look at doing something in RNBO that could be a bit more focused/specialised, my RNBO module makes that pretty straightforward… and you don’t need ‘fancy graphics’ to make it work.
the nice thing about RNBO is you can experiment with max on your desktop computer, using the tools at your disposal - then just send it over to SSP once its as you want it.
obviously you’ll have to be careful with resource usage, but granular is not too expensive generally.

note: there are other ways to do pitch shifting (digitally) but granular is, I think, the easiest way, and can get pretty good results.

yeah, here is the post I talked about using GRA

so from that, looks like I got it to work in principle , but found it noiser than I was hoping for, but I didn’t dig deeper (i.e. source code level) into why.

noise, can be caused by many things, but its often to do with the windowing/grain count/size of grains - since the basic principle is you need to overlap enough to cover the inevitable discontinuities (which create noise) .
however, given the above post and rough recollection, I’d say I’d have tried variations of these, but noticed limitations either in parameters available or noticed an implementation issue/limitation - that’d would have needed deep investigation.

A truly exhaustive reply, with everything I could possibly want to ask!
[what would the community and `Bert do without you?]

And I might try to bang my head a bit against the RNBO glass ceiling:-)

Thank you!

1 Like