Yes you're right, using two arrays, writing and reading each one alternatively could be a solution i hadn't thought about. But that would mean that the samples i read from the (reading-)array would always be 'one array' later than real time(a delay corresponding to the size of the writing-array). Of course smaller arrays could be used (which i would prefer not to as i want to be able to access for example, fragments within the last 5 seconds), or as you suggested more smaller arrays.
I was rather thinking if it could be possible to make delread~ (or some other object or simple patch) behave like the circular queue as described in Curtis Roads (The computer music tutorial,p 433), with the posibility of several taps (reading-pointers) which reading position i could control with (one-)sample precision. This structure would allow to access samples from real time (in fact one sample later than real time) to the time corresponding to the total length of the queue.
----- Original Message ----- From: "Miller Puckette" mpuckett@man104-1.ucsd.edu To: "Gregorio Garc?a" ggkarman@airtel.net Cc: "pd-list" pd-list@iem.kug.ac.at Sent: Monday, August 27, 2001 7:54 PM Subject: Re: [pd] delread~
Hi, I don't think you need do do anything funny with block~. The easiest
way
to proceed might be to maintain a pair of samples and alternately sample each one while reading from the other. Alternatively, you can maintain
a
larger collection of samples from more or less recent input.
Yes, you do have to specify the size of the sample in advance, but that
doesn't
mean you have to use all of it. There are sampler patches in the "dsp examples" (under "pure documentation") which might help you
forward.
cheers Miller
On Sun, Aug 26, 2001 at 04:55:49PM +0200, Gregorio Garc?a wrote:
Hi list,
Im trying to buid a patch that processes live input. My wish is i
could
have
some kind of buffer where i could continuously write the input signal (something like a circular qeue?), and arbitrarily read fragments of
sound
within that buffer. I thought of delwrite~/ delread~ pairs to
implement
this, but i would like to be able to specify the position and total
length
of the audio fragments i want to read in samples (does this make
sense?). Is
the delay amount limited to block size (64 samples? = DSP cycle?)
multiples
(64samples, 128 samples, 194 samples, etc...)?
Could i use tabsend~/tabreceive~ for this purpose?. What is the usual
way of
using tabsend~/tabreceive~ ? (could you point out an example?). What
input
paramerters can tabreceive~ handle?
Is there a better way for doing this?
thnks