# [PD] For sample players based on [line~], [vline~], or [phasor~], how can we be sure all samples are being played?

Miller Puckette msp at ucsd.edu
Mon May 16 19:01:16 CEST 2016

```I think what's confusing is that vline~ (if given the messages:
0
1 1.451247

makes a segment from 0 to 1 lasting exactly 64 samples (assuming a
sample rate of 44100 so that 1.451247 msec is 64 samples).

It does this, but the endpoints of the segment are places at the end
of the previous block and at the end of the next block, corresponding
to logical times -1 and +63 samples relative to the timing of the message.
(assuming the labeling proopsed here:

http://msp.ucsd.edu/techniques/latest/book-html/node42.html

.)

So vline~'s output achieves a delay of -1 sample.

On the other hand, if we label the audio samples differently with
respect to the control period, we get a different delay.  The precise
way the two time stamps line up is arbitrary, up to + or - (blocksize) samples;
i.e., one could have labeled the samples of the block as the bottom half
of the figure, 4...7 instad of 0...3 - or indeed, anything in between.
Under these assumptions, the delay of the output can be understood to
range from -1 to (blocksize-1) samples.

My decision in vline~ was to reduce the output delay to the smallest
achievable amount.  Why?  Well, because...  why any greated, and
equally arbitrary, delay?

cheers
Miller

On Sun, May 15, 2016 at 02:36:08PM +0200, Thomas Grill wrote:
> > That is a consequence of a given time interval > 0.
> >
> > If the given time interval is zero, it should start with 0.
>
> Erratum: i meant to write that the output should start with 1.
>

```