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

Claude Heiland-Allen claude at mathr.co.uk
Fri Mar 20 18:24:11 CET 2015


Hi Reed,

On 20/03/15 16:57, Reed Perkins wrote:
> Hello all,
>
> [line~], [vline~], and [phasor~] are used to generate line ramps in basic
> sample-playback patches. The output of these objects is usually multiplied
> by the total number of samples in a sound file (that has already been
> loaded into an array or table) and fed into the input of something like
> [tabread4~]. In other words, we use these line-ramp objects to traverse the
> indices of a table where a sample is loaded at a given speed.
>
> My questions are these:
>
> 1. Do these line-ramps generate enough numbers such that every sample in a
> table will be read?

no, they generate numbers at a fixed rate (the sample rate of the patch)

> 2. Does it matter if, say for example, [tabread4~] receives a decimal
> number for an index, like 333987.8, which can be caused by multiplying the
> output of [phasor~] (which goes from 0-1) by the total amount of samples
> (usually a much larger number).

if you read the table faster than 1:1 ratio, there is a risk of 
aliasing.  that's why I experimented with bandlimited wavetables:

http://mathr.co.uk/blog/2015-02-12_bandlimited_wavetables.html
http://code.mathr.co.uk/bandlimited

also the tabread4~ interpolation isn't so good, see the list archives 
for tabread4c~ discussion (there's also an implementation in the 
bandlimited repository).

the sound samples in my blog post could do with an update with the new 
oversampled and downfiltered example patch in the repository, which 
doesn't lose the high frequency content, while still eliminating aliasing.

> 3. Does the output of [line~] and [vline~] vary due to being asked to
> generate a ramp faster or slower? If I ask [line~] to go from 0-555987 in
> 3789 milliseconds, will the actual output be the same or different if I
> then ask [line~] to go from 0-9876545 in 40 milliseconds

i think vline~ could give even different output even for the exact same 
ramp "0, 1 1000" depending on the timing of the messages with respect to 
the sample rate (vline~ has subsample timing as i understand it)

>
> I realize this is totally theoretical, because in all honestly I wouldn't
> be able to hear a difference if samples are being skipped

you can hear aliasing quite easily - you turn up the pitch dial on your 
oscillator and hear some other frequencies sweep downwards (and out of tune)

>, but I want to
> know :)
>
> Thanks for your time.

hth,


Claude
-- 
http://mathr.co.uk




More information about the Pd-list mailing list