>> 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.

--p

Reply via email to