[PD] Play/loop and pitch change

pix pix at test.at
Fri Aug 8 11:16:18 CEST 2003

more than likely it's your sample data.

try a sample that is completely silent. if the click goes away, it is
likely your data.

also, try filling your array using the "sinesum" message from
2.control.examples/15.arrays.pd if this doesn't click, it is definitely
your data.

note on the tabread4~ help page that tabread4~ requires guard points
(although it doesn't say that explicitly). valid reads are from 1 to
size-2. you are reading from 0 to (size-1) if you are just multiplying a

not thinking too hard about it (eg, i could easily be wrong), i think the
guard points situation is that the sample at 0 should be a copy of the
sample at size-2 and the sample at size-1 should be a copy of the sample
at 1.

i guess to build a table like this from a normal non-guard-pointed sample,
you could grow (suing a resize message) the given table by 2 samples, then
set the sample at newsize-2 to the sample at 0, and the sample at
newsize-1 to the sample at 1.

now if you index the table using (phasor*newsize-2)+1 you should get a
clean loop, but unfortunately the sample will be offset by one sample. you
could wither fix this in the indexing ( something like
((phasor*newsize-2)-1 mod (newsize-2))+1 ) or copy all of the samples over
by one when you are fixing the table.

making some things to do this guard point generation and indexing would be
a nice pair of abstractions to make available.

okay.. i think i just thought about that way too much.

you will be able to explain any huge errors in my reasoning, by knowing
that i didn't test any of this. i've never noticed clicking when just
using tabread4~ without doing all of this jiggery-pokery, as my samples
are normally kind of noisy... but i always new i was being lazy.

by the way, instead of using a modified phasor~ to do one-shot, you could
send a line~ object a "0, 1 <period>" message.


On Fri, 08 Aug 2003 10:05:17 +0200
Søren Bovbjerg <sb at cvmt.dk> wrote:

> Hi
> I am searching for a PD object (external/native) that can play samples 
> from an array in both loop and "single shot" mode while being able to 
> change playback speed.
> So far I have been using a phasor~ (modified to create 1 or unlimited 
> ramps) + tabread4~ but I am experiencing a very small click when the 
> sound loops. The click is only noticable when the sample is a pure 
> looping tone. The problem exists with both wav and aiff files so I don't
> thing it is a "header" problem.
> I have attached the sampler (without modified phasor~) I have been using
> so far. It should run on any newer PD version.
> Any ideas are welcome.
> Soeren


More information about the Pd-list mailing list