Re: [linux-audio-user] Python & ALSA --- documentation

From: Rob Fell <robin.fell2@email-addr-hidden>
Date: Fri Aug 05 2005 - 13:28:53 EEST

>> Peter Brinkmann wrote:
>> Also, what sort of functionality would you like to implement by polling
>> Python Queues in the MIDI thread?
>
> I planned to consume events from the GUI thread periodically - this
> would allow the MIDI thread to operate unhindered by the GUI if there's
> a lot of work to do.

> The problem may be that I don't know the right idioms for doing this in
> Python yet, but I haven't found anything worthy of study yet.

Here's how I would solve this problem, using an ALSA idiom of sorts.
ALSA sequencer events are more general than MIDI events, and you can
use them to communicate with your MIDI thread. In particular, when
new data is available in your queue, you can alert the MIDI thread to
the new data by sending it an echo event. The file midiplayer.py in
the PySeq distribution uses echo events in this fashion, so that you
can glean the basic idea from it.

There are a few ways to extend this basic idea. For instance, if you
have several queues, then you can tag your echo events according to
which queue currently has data. You could also add an intermediate
thread that just waits for new data in a queue and fires off an echo
message to the MIDI thread when needed. Like this, your top-level
GUI code wouldn't have to be ALSA-aware.

Would this work for you?
Received on Fri Aug 5 16:15:06 2005

This archive was generated by hypermail 2.1.8 : Fri Aug 05 2005 - 16:15:06 EEST