Hi list,
Excuse me for this little technical OT :)
The problem is about processing audio stream in real time, but let me put it in the context od PD in order to fix the ideas.
When you want to write a PD external that process audio stream, the scenario is: 1- PD passes chunked audio stream to the inlet of the external and read an audio chunk from the outlet of that external. Each input and output chunk is of fixed length of, say, Nc samples. Each chunk is a NON-overlapped adjacent chunk of the audiostream to be processed.
2- The external, read this chunk and trigger the processing method that process the input chunk and return the processed output chunk.
Now, if my processing routine requires overlapped (with an overlap of o%) chunks and a chunk length Nf that, in general, is Nf >= Nb. At this point, id the programmer of the external that is in charge of manage the data structure and the overlapping scheme.
My question is: There is a standard way, a "design pattern", to manage this kind of processing? In the past I've written my own routines that manages a the simple case of real time processing in the case of Nf = Nb, and with an overlap of 50%. It is clear that, in general, this kind of process introduce a delay of one frame (Nb) or more.
If I know Nb, Nf and o% (or equivalent hop-size h). There is a standard way to design my internal processing routine? By standard way I mean a common mode of operation that is formally correct and optimized (it is clear that, potentially, there are tons of methods to do this).
Thank you, and excuse me again for this OT