[alsa-devel] How to define card specific pcm devices?

Tanu Kaskinen tanu.kaskinen at digia.com
Fri Aug 17 16:50:40 CEST 2012


If card specific pcm definitions are not possible, would it be
acceptable to have a generic "front_left:CARD" or "first_channel:CARD"
pcm, which would transform "front:CARD" or "hw:CARD" into a mono device?

-- Tanu

On Fri, 2012-08-10 at 14:25 +0300, Tanu Kaskinen wrote:
> Hi,
> I'm writing UCM configuration for RX-51 (Nokia N900), and I have a
> problem: "hw:RX51" can't be opened in mono mode, but there's only one
> integrated mono microphone, and its audio is routed to the left input
> channel. Applications will get only silence in the right channel when
> they use "hw:RX51".
> The best solution that I have come up is to define a pcm that converts
> "hw:RX51" into a mono device. The problem is that I don't know how
> exactly to do that. I guess the route plugin can be used for that:
> pcm.rx51_mono_from_left {
>         type route
>         slave.pcm hw:RX51
>         slave.channels 2
>         ttable.0.0 1
> }
> I tried putting that definition in /usr/share/alsa/cards/RX-51.conf (and
> also RX51.conf, since it's not entirely clear to me when the dash should
> be omitted). I have this in the UCM configuration:
> Value {
>         CapturePCM "rx51_mono_from_left"
>         CaptureChannels "1"
> }
> This is printed to the PulseAudio log:
> (alsa-lib)pcm.c: Unknown PCM rx51_mono_from_left
> So the rx51_mono_from_left definition is not loaded. I'm not terribly
> surprised: I guess the card configuration files are loaded only when
> necessary, and when PulseAudio tries to open "rx51_mono_from_left",
> alsa-lib can't really know that it's somehow related to the RX-51 card.
> How should I solve this?

More information about the Alsa-devel mailing list