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

Reply via email to