hi all
i've got a problem, that i don't know how to solve (which is common, when writing to the list ;-). i'd like to measure the delay time between an original signal (could be a dirac or some kind of pling [with a defined frequency]) and the same, but delayed signal, e.g the signal after [delwrite~]/[delread~]. how can this be achieved? since the output should be a time-value in the 'message-domain', i won't come around to convert audio to messages. in order to make the grid of the meaurements smaller than 1.45msec, i tried to reblock the subpatch containing [env~]. my problem is, that it seems that i cannot measure more often than all 1.45msec. also when i measure the time between each 'bang' outputted by [bang~], the smallest value i can get is 1.45msec, even if i have a [block~ {x<64}] in the same subpatch. why is this?
while writing this, i had the idea of converting audio-blocks to lists of floats using [pack~] from zexy. with this approach i don't have to reblock at all, since i can detect the peak in the 'message-domain' without losing the info, when exactly the peak happened. anyway, my question about [bang~] in a subpatch reblocked to a value<64 stays actual.
ciao roman
Telefonate ohne weitere Kosten vom PC zum PC: http://messenger.yahoo.de
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?
roman
Telefonate ohne weitere Kosten vom PC zum PC: http://messenger.yahoo.de
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