[alsa-devel] sending a sequencer event to a delayed queue
Henning Thielemann
alsa at henning-thielemann.de
Sat Mar 10 19:20:30 CET 2012
Unfortunately the ALSA doc does not say, what happens if I send an event
to a queue that is not running. I expected that the event is being
delivered once the queue is started. But it seems that instead the event
is dropped. What is the reason for that behaviour?
What I want to do is the following: I have a program that computes a
sequence of events in real-time. Since computation of an event requires
varying amount of time, I want to add a latency in order to get a
correctly timed output. To this end I set up two queues: One queue
triggers computation of events via Echo messages and the other queue
delivers the computed events. I want to use the same time stamps for both
queues and just start the queues with a delay between them.
Why is it not possible to use one queue and add latency manually to the
timestamps? Because the user of the program shall be able to halt the
computation. Thus the computation must be halted first and the delivery of
events must be halted later. I cannot achieve this with one queue and a
queue_stop command.
Now the problem is: When my program starts it computes the first event
and sends it to the second (delayed) queue. But since this queue is
started only after a delay, it is not yet running and thus my event is not
delayed, but lost. :-( How to solve that problem? Is there a proposed way
to manage latency in ALSA sequencing?
Regards,
Henning
More information about the Alsa-devel
mailing list