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

Tanu Kaskinen tanu.kaskinen at digia.com
Fri Aug 10 13:25:03 CEST 2012


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