On Wednesday 14 August 2002 15.23, you wrote: > >> sync. this is a natural consequence to using a "push" model ("i'm > >> the client, and i'll work when and for as long as i choose") as > >> opposed to a "pull" model ("hey client: do this much work right > >> now"). > > > >How does the pull model work with block-based algorithms that cannot > >provide any output until it has read a block on the input, and thus > >inherently has a lower bound on delay? > > the client has to use an intermediate buffer, and fills it with > silence to start with. its process() callback fetches data from that > buffer. the non-JACK part of the client fills the buffer. use of a > lock-free ringbuffer is encouraged. > > this is precisely the design that has been mentioned in connection > with adding latency. its the same design that all VST/TDM/DirectX/MAS > etc. FFT-based plugins use, to the best of my knowledge.
Ok, I do that already, but only for clocked devices (that is sound cards), since I thought for transfers to files or between applications these first null samples would be seen as junk and should rather not be there... but I suppose it is the price one has to pay. /Anders Torger