[PD] accuracy of signal/message-objects

marius schebella marius.schebella at gmail.com
Tue May 8 19:31:57 CEST 2007

what happens in a block cycle?

first all dsp computation is done, then all new messaging is handled:

usually 64 samples of digital (audio) signal are blocked together.
so lets say you have a line~ object that received a message [0, 1 10( 
before the new block started. so that is executed beginning with the 
first sample of the block cycle. lets say the line~ is directly 
connected to an [dac~] object. so there is a buffer of 64 samples and 
the first of these samples is filled with 0. then (still dsp 
computations...) the next value of line is calculated, which will be 
dependend on the sample rate settings (let's say 44.1k) so 1 sample is 
1/44.1 ms, which will give the next rampvalue of 0.00227 (you will reach 
"1" after 441 samples).
in this way 64 samples are written to the buffer. 0, 0.00454, 0.00680...
during all these calculations no new messages are handled. [v messages 
have a slightly different behaviour here] finally (that is varying 
depending on the sound card driver and operating system you are using) 
this buffer goes to the soundcard.
THEN: after all that dsp stuff is done, the messaging process is turned 
on. interface events (even if they are received and saved during dsp 
computation) will only have effect for the beginning of the next block. 
the whole messaging process will set a lot of new values that will 
interact with the next dsp computations. for example our line object 
might receive new values...

does this all make sense?
smaller blocksizes give you the possibility to handle messages in even 
shorter time intervals, bigger blocksizes may help to declick for 
example when you write to arrays. [for some objects blocksize is even 
more important (fft~, tabsend~).]


Steffen wrote:

> I understand that decreasing the block size will possible requirer  
> more computation/logical time then there is real time enough to  
> complete. And therefore that the information in a block is available  
> to the program to process. Which also means that after that block has  
> been processes the information is not longer available. Is that true?  
> What is a block, what's in it, what properties does it have. Is a  
> block a sample or is a block made out of a number (being the block  
> size) of samples? And also Jamie's question: what does the 'v' stand  
> for?
> I suspect there is some digital music fundamentals that I'm lacking.
> Thanks for your patients, all of you.
> _______________________________________________
> PD-list at iem.at mailing list
> UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list

More information about the Pd-list mailing list