seems like the most efficient way would be to insert a pitch shifter after the granulation, and control the shift with automation (like reading through an array with values for each grain).
for the granulation a method I tried once was to have a bunch of delay loops of the same length. they each took an audio signal in, and a control in(at audio rate). if the control signal was 1, they recorded the incoming signal and stopped feeding back (to clear the delwrite~), if the control signal was 0, they had full feedback so looped forever.
to break up the audio between them have a square wave with the timbre compressed so that the '1' section is 1/16 the period (or at least the length of each delay line). now if you hook it up to each grain's control inlet and put it out of phase for each (0, 1/16, 2/16, 3/16....) then chunks of the signal will be written into each delwrite~ until it writes again. then all you need is a method to listen to each delay line.
it's not as flexible as creating each grain~ object because you have to
setup the square wave, but I tried a smaller version (4) and it worked.
The patch is long gone but I'm pretty sure this is how it worked.
-brendan
david golightly wrote:
related question: which would be faster: writing an incoming signal to an array in real time (tabwrite~) or using a delay line (delwrite~) of the same length (ca. 4000 ms)? (i'm trying to implement a delay-line granulator that can pitch-shift in realtime using grains w/dur <= 200 ms, & trying to do it the least expensive way possible...)
thanks, david
From: zmoelnig@iem.at To: Phillip Stearns mindphone_divided@yahoo.com CC: pd-list@iem.at Subject: Re: [PD] Wave Shaping Date: Sat, 05 Feb 2005 14:00:03 +0100 (CET)
Zitiere Phillip Stearns mindphone_divided@yahoo.com:
Thanks for the tip! So is general rule to avoid realtime expr~
objects
if at all possible in the future?
i would have thought though some months ago, but matiu and tim taught me better.
[expr~] is a very useful and fast object (it is not slower than writing the maths in pd) (to know this would have saved me a _lot_ of patching in the past)
mfg.asd.r IOhannes
PD-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://iem.at/cgi-bin/mailman/listinfo/pd-list
PD-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://iem.at/cgi-bin/mailman/listinfo/pd-list