[PD] Sample-accurate sequencing techniques
Mathieu Bouchard
matju at artengine.ca
Tue Feb 8 17:06:41 CET 2011
On Tue, 8 Feb 2011, Frank Barknecht wrote:
> This is actually an essential point: Where should people care? Simplified a
> little bit: The message realm of Pd is not quantized to block boundaries. It is
> a continuum, which is neither quantized nor sampled/discrete.
That's a little bit way too much simplified. When indexing into "big"
tables, the float32 format is quite often a lot too quantised, which is
why pd 0.42 introduced a new feature for making the index relative to
another index. This has also been added to ZG.
Those big tables aren't particularly big, relatively speaking, because
people often want tables that are that big.
> The problem with sample-accuracy in Pd occurs at the border between control
> streams and audio signals.
It also happens within the audio signal realm, as even when you control
everything with signals, you can't go below a one-block delay in
[delread~], and thus you have to lower blocksize or change strategies
completely, when you need to make events tighter than that.
I mean, suppose that I sequence a click through a recursive delay line,
for Karplus-Strong synthesis... How accurately-timed the
recursively-processed clicks can be ?
> Personally I think, it wasn't fully true in 2006 either. (I was on the
> review board for LAC2006, where the paper was presented, so Eric and I
> already discussed the issue a bit.) I'm not sure where the
> representation of events incurs glitches the audio scheduler,
It's just the possibility of making a lot of message-stuff happen between
two block computations... Pretty much anything involving GEM pixes or GF
grids of comparable size will take a lot of time in the CPU in the main
thread. (For PDP, it may depend on whether threading is enabled). It's not
specific to video, and it can happen for large matrices in iemmatrix,
large networks in pmpd/msd, and large grids in GF that happen not to
contain images. It's just a matter of duration of computation.
Basically, it's a feature : Pd allows to use the spare time between the
audio blocks to do whatever you want. Thus it allows you to go over the
time limit between blocks and this causes dropouts.
But yes, it would be a good idea to allow threading of the audio... in a
way possibly similar to what MAX does, but I don't really know what MAX
does with that. Maybe it's already being done (I don't know what can be
done with the -schedlib option).
_______________________________________________________________________
| Mathieu Bouchard ---- tél: +1.514.383.3801 ---- Villeray, Montréal, QC
More information about the Pd-list
mailing list