[PD] smallest possible value of a delay-time

Roman Haefeli reduzierer at yahoo.de
Fri May 14 02:09:09 CEST 2004


this discussion went up when we talked about the karplus-strong-sythesis. so
it is not about getting this short delay in realtime. it is about a sythesis
that tries to simulate string and other percussive instruments. the problem
is, that the frequency of the sythesized sound is dependent from a
delay-time (frequency=1/delaytime). if the quantization of the delaytime is
1 sample, you can't play any frequency you want with this sythesis (for
example: you want freq of 5000. how many samples long is the delay: 44100 /
5000 = 8.82 samples delaytime > 8.82 truncated> 9. freq with 9 samples delay
= 44100 / 9 = 4900 >>> you get an error size of 100Hz or 2%) .

with your idea, it's maybe possible to play any frequency with
karplus-strong-sythesis.

thanks


----- Original Message -----
From: "pix" <pix at test.at>
To: "Roman Haefeli" <reduzierer at yahoo.de>
Cc: <pd-ot at iem.kug.ac.at>
Sent: Friday, May 14, 2004 12:59 AM
Subject: Re: [PD] smallest possible value of a delay-time


> hmm, quickly thinking about it (and moving the discussion to the [OT]
> list)...
>
> since you can't actually generate output out of sample boundaries, even
> though you might be able to interpolate and find out a delay value less
> than one sample, you will only be about to output it during the next
> sample. but latency is always going to be much more than one sample
> anyhow, so i guess i can assume you don't care about this.
>
> the other thing is that you only have two samples to play with, the
> current sample and the last sample. so the best you can do is linearly
> interpolate, which doesn't sound so great. (well you theoretically have
> access to all of the previous samples, but normally to do interpolation
> you need points symetrically before and after the point you want to
> interpolate).
>
> if C is the current sample and L is the previous sample, you could
> linearly interpolate between them with something like C*t+L*(1-t). where
> t is between 0,1 and is the fractional number of samples you want to
> delay. you can get L in pd using the zexy "z" object.
>
> if you are less concerned about realtime, you could keep a buffer of the
> last few input samples and do better interpolation. your final output
> will be delayed, but the relative delay between your input signal and
> your interpolated delay will be less than one sample.
>
> btw, i'm no academic, don't go using this as gospel to shout down your
> teacher. but feel free to use it as inspiration ;)
>
> pix.
>
> On Fri, May 14, 2004 at 12:35:17AM +0200, Roman Haefeli wrote:
> > hi
> >
> > i had a discussion with a teacher today. the topic was the smallest
> > delay-time possible. in his opinion one sample is the atom of signal and
> > cannot be divided anymore. in my opinion it should be possible to get
> > shorter delays than 1 samples with interpolation. my argument was: it
should
> > be possible to set the values of each sample so, that the resulting
signal
> > would be similar to a digitized analogue signal with a shorter than 1
sample
> > delay.
> >
> > Does anybody know a good explanation for this problem?
> >
> > i konw, this haven't got anything to do with pd. but i think you are the
> > right people to ask. by the way: if it is possible, how would a
realization
> > in pd look like?
> >
> > thank you for helpin me
> >
> > roman
> >
> >
> > _______________________________________________
> > PD-list mailing list
> > PD-list at iem.at
> > to manage your subscription (including un-subscription) see
> > http://iem.at/cgi-bin/mailman/listinfo/pd-list





More information about the Pd-list mailing list