[PD] understanding block latency

Christof Ressi christof.ressi at gmx.at
Fri Jan 11 21:23:28 CET 2019


actually it's quite simple: if both subpatch and parent patch have the same block size there's obviously no latency involved, only if the subpatch blocksize is larger than the parent blocksize you start to get latency, so you have to look at the *difference* in block size.

the reason is that a reblocked subpatch has to wait for (subpatch blocksize - parent blocksize) samples until it has enough samples to process its first block. before that it will output zeroes.


Gesendet: Freitag, 11. Januar 2019 um 17:47 Uhr
Von: "Alexandre Torres Porres" <porres at gmail.com>
An: Pd-List <pd-list at lists.iem.at>
Betreff: [PD] understanding block latency

Hi, I'm attempting to figure out how a different block size in a subpatch promotes latency. The parent is actually fixed at a block of 64 as it would be reasonable, and then I'm trying bigger block sizes inside a subpatch.
 
What I can detect is that the delay is always blocksize - 64. So yeah, a block of 64 or smaller promote no latency, but it increases to 64 samples for a 128 block, 192 for 256 block and so on... But I don't understand why as my intuition was that the latency should be the whole block of audio, and not that minus 64! Plus, I also find something weird about how it works... keep reading.
 
As the test signal, I have a sample count that starts counting from 1. When it receives a bang, the count gets reset to 1 and restarts. With that, I can print the input/output plus the subpatch block and check them out.
 
See the attached test file. It has a block of 128 inside the subpatch. When it is loaded, the subpatch waits 64 samples filled with zeros before it receives the sample count signal. You can click on the bang and redo the test and you may find that the subpatch can behave in the same way, where the first half of samples have not restarted the count yet OR you may have been lucky enough to sync them up and find that the subpatch's block actually starts counting from 1 as well!!!
 
Weird thing is that, even so, the output gets still delayed somehow.
 
I'm not sure if I can make myself clear or that you follow me, but the bottom line is that I'm still quite confused on how different block sizes behave in Pd! 
 
Where can I read more about this, has someone done similar tests and have figured this out completely?
 
Thanks _______________________________________________ Pd-list at lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list





More information about the Pd-list mailing list