On Wed, 2007-02-14 at 12:58 +0100, Roman Haefeli wrote:
hi all
as i understand the object [bang~], it should output a 'bang' on each dsp-cycle. this seems to work with blocksizes >= 64, but apparently not with smaller blocksizes. i made the following patch to measure the time between the dsp-cycles:
[bang~] | [t b b] | | [timer] | [nbx ]
when i put this into a subpatch and set the blocksize to a value < 64 (e.g. 32, 16, 8 etc.) using the [block~] object, it still measures 1.333 (pd runs @ 48kHz currently).
why is this? is [timer] or [bang~] buggy? do i understand something wrong?
iirc, bang~ registers a timer callback. the problem is that the timer callbacks are only executed every dac block, which is 64 samples. so running bang~ in subpatch with less than 64 samples, bang~ sets the samer timer several times, but it's only executed once ... i came across the same bug some time ago ... fixing it while keeping the semantic is rather difficult since pd afaict doesn't provide the required infrastructure ... filing a bug report is probably a good idea, however i wouldn't rely on it to be fixed in a reasonable amount of time ...
tim
-- tim@klingt.org ICQ: 96771783 http://www.mokabar.tk
Every word is like an unnecessary stain on silence and nothingness Samuel Beckett