[pulseaudio-discuss] New user with questions on multiple USB sound devices
tanuk at iki.fi
Tue Jan 29 09:19:04 PST 2008
On Tue, Jan 29, 2008 at 10:01:48AM -0600, Dewey Smolka wrote:
> On Jan 29, 2008 5:02 AM, Tanu Kaskinen <tanuk at iki.fi> wrote:
> > I tried to run jack on top of pulse, and it seems that it
> > doesn't work at all because the pulse device doesn't support
> > mmap access that jack needs. So we can forget about pulse -
> > all I can do now is suggest you to take a look on Jack
> > diplomat:
> > http://mw-turing.culture.hu-berlin.de/mwiki/index.php/Jack_diplomat
> I had a look at the link and it seems like this may be a possible
> solution, but I wasn't able to get to the source code. I may try that
> later if I can't figure out a better way.
To me Jack diplomat looks like the best way. It seems to
offer reasonable latency, which I'm not sure Pulse could do
even if you could make it work the way you wanted. If you
can't find the source anywhere in the net, I'm sure asking
about it on linux-audio-user at lists.linuxaudio.org will help.
> But I'm a little confused as to why this wouldn't be possible. Maybe I
> misunderstand how the pieces fit together, but it seems to me that it
> should work.
> Here's how I understand it: Pulse would sit on the bottom and address
> the hardware directly -- in this case call it usb0 (the Omega) and
> usb1 (the MX200). Usb0 would have 4 sources and 2 sinks while usb1
> would have 2 sources and 2 sinks. Pulse would combine these into a
> virtual device with 6 sources and 4 sinks that would be addressed as a
> single device by Alsa.
> Jack would then address the virtual device through Alsa. It seems to
> me that Jack wouldn't even need to be aware of Pulse, since it would
> be communicating only with Alsa, as it normally does.
The above is pretty much all correct, apart from using terms
"source" and "sink" in an unorthodox way.
> Is this how Pulse works? Or conversely, is it possible to make Pulse
> work like this?
The problem is, which I already tried to point out in the
previous mail, is that jack just plain doesn't work with the
alsa device that the pulse plugin creates. I don't know how
difficult it would be to add mmap support to the plugin.
> I also understand that there's no way to sync the clocks between the
> two devices but I don't think that's a significant problem. The two
> units would never be operating in parallel. The Omega would always be
> the primary audio interface, while the MX200 would only be a
> send/return loop.
If you want to use both cards in the same jack graph, you
will inevitably need to compensate the timing difference
with resampling. Both Jack diplomat and Pulseaudio are able
to do it, so it's not so big problem in this case.
More information about the pulseaudio-discuss