Manual Grains: Pitch = Duration

Hitting the limits of my patching skills, I humbly beseech the minds greater than mine:

I’m playing with the Manual Grains unit and have my keyboard Pitch CV output linked to the V/oct parameter and it’s tracking great. I’m watching the animation of the grains being generated and noticing as I play lower notes the length of the grains get shorter and with higher notes the grains get longer. Make senses, it’s like changing the speed of a tape machine.

So what I’m trying to figure out is how to have a relationship between the pitch input and the duration length related so that as the pitch changes it changes the duration equally so that the grains are always being generated from the same region of the buffer. So, as pitch goes down the duration gets longer and as pitch does up the duration gets shorter.

I was kind of getting it to work with some combination of offsets and negative gains, but as i played higher and higher notes at some point duration would get pushed into negative durations and the grain would play backwards. There has to be some exponential relationship between the pitch and the duration that I can’t figure out.

Would appreciate any and all assistance.

I don’t have a full answer but maybe take a look at the V/oct to Seconds unit. I think it might help decode that exponential coming off of a pitch input? Not sure if it will work out, but that’s where I’d start.

1 Like

Yup, that did it. Took me a second to figure out how V/oct to Seconds works, but once I cracked that nut it came together.

For anyone referring to this later using the unit, I thought the unit didn’t work at first because when you first load it up it defaults to a very short time length, 30ms. So when I had my pitch input going in it looked like the was nothing coming out of the output. But I when I finally cranked up the the length to 1 second I could see that the pitch input would span the 1s length exponentially.

Very cool, I feel like I’ve never had this functionality with any other granular synth I’ve used in the past, pitch would always change the range the grains “travelled”. Tip of the hat to @odevices!


If you have time to drop a sound example or two here that would be great! :wink:


I am only too happy to oblige:

OK, so I recorded three notes into a buffer from my guitar: one high, one middle, one low note. You can see them in this screenshot:


So, the first section is me scrolling Manual Grains through the buffer at the same pitch that the sample was recorded at with a duration short enough that the grains were potentially one playing one of the three notes at a time. You can hear me move from the high note to mid to low, then I scroll back to the beginning so the “playback head” is sitting inside just the first note.

Then I kick in my sequencer to play a series of 11 octaves starting at two octaves below the original recorded pitch and then all the way up. This first pass has no pitch tracking and is the default setup of Manual Grains. You can hear by the 4th octave that the grain duration has extended far enough that the second note is being played back, then after that the whole buffer is being played back in the grains. Also, the last 2 or 3 octaves basically sound the same.

I then repeat the rising octave sequence again but with the pitch tracking duration as discussed above. You can hear at no point does the duration ever extend into the second note, the grains always stay in the high note of the guitar sequence. In that screenshot above, see how the grain animation are running the length of the first note? It basically stays there throughout the octave runnings, they just speed up in the one note.



Very cool!

1 Like