Awesome Matt, if you can share your source I would love to see it. What you are doing sounds interesting. For my app I'd like to have two classes of data. For arguments sake these are "normal" and "alert". Normal audio (mp3, wav, application data) needs to be routed to the currently selected output. Alert audio, which would include system sounds, tactile feedback and the like, would need to be routed to a different source (and possibly also the default output source as well). Initially I was looking at some sort of stream tagging mechanism using something like the class filed in ALSA, but this is clunky and I cannot guarantee that all audio will pass through alsa (for example the gstreamer pulse plugin looks interesting for certain apps). At the moment I'm trying to prototype this on a regular x86 desktop system, later I'll move it to an embedded system, once I've figured out a means to implement it. It think the issue I have can be described as follows: based on my current understanding I would need to track every stream to determine where to route it. I'd like to cluster my normal and alert streams together and route them all en-masse to a sink. Thanks!! Nick On May 2, 2008, at 10:37 AM, Matt Patterson wrote: > I do agree that coding for pulse can be a steep learning curve, > which is why I opted to build all my solutions by simply connecting > to the text mode control socket and sending commands/parsing text > output. I have built what is essentially a multiplex audio switch > allowing any of x number input sources to play out of any x number > of output sinks, all controlled via a python or php app.