On Thu, May 19, 2005 at 05:25:37PM +0200, Florian Schmidt wrote:
...
The keypress cannot be scheduled for period N+1 (with constant delay) as
the process_n() (which prepared the buffer that will be audible during
period N+1) is already done. It can be put into the buffer by
process_n+1(). This buffer will be audible after Irq N+2
This breaks afaics the rule of _reliably_ constant
delay. OTOH i don't
qute grok it. Care to roll it out?
You shouldn't check for events int jack_process(), but in a separate
thread, linked to jack_process() using a lock-free circular buffer for
the [event+timestamp] data.
To get really accurate timing in all cases, this thread should even have
higher priority than the one created by jackd (*), otherwise all events that
occur while a jack_process() is running will be delayed until the end
of all processing for the current cycle.
(*) but lower than jackd's master thread. This is currently not possible
since the difference in priorities is just 1.
--
FA