[pulseaudio-discuss] [PATCH] alsa-mixer: More output modes for SB Omni Surround 5.1 and cleanup
Tanu Kaskinen
tanuk at iki.fi
Sun May 20 11:09:48 UTC 2018
On Sat, 2018-05-19 at 21:31 +0300, Nazar Mokrynskyi wrote:
> 19.05.18 18:29, Tanu Kaskinen пише:
> > Thanks! I applied this to the "next" branch.
> >
> > If you feel like doing more polishing work, it would be nice if you
> > could add the surround21, surround40 and surround41 device definitions
> > for this card to alsa-lib in a way that doesn't move the LFE channel to
> > a wrong position, and then change this configuration to use the
> > appropriate alsa devices rather than using surround51.
>
> That would be a perfect solution, but I'm not a C developer and have
> no idea how to approach it.
You don't need to write C code, the alsa configuration system should
allow you to do this (the alsa configuration system is arguably even
more difficult than C, though). I had a look at
/usr/share/alsa/cards/USB-Audio.conf, and it already has a section for
defining surround40 on 6-channel hardware:
USB-Audio.pcm.surround40_six_channels {
@args [ CARD ]
@args.CARD { type string }
type route
ttable.0.0 1
ttable.1.1 1
ttable.2.4 1
ttable.3.5 1
slave {
pcm {
type hw
card $CARD
device 0
}
channels 6
}
}
Using "type route" and the ttable parameters can be used to choose what
channels of the surround40 device are mapped to which channels on the
hardware.
The surround40_six_channels definition is used if the sound card is
configured appropriately in the surround40_type section:
USB-Audio.pcm.surround40_type {
"AudioPhile" two_stereo_devices
"Audiophile USB (tm)" two_stereo_devices
"OmniStudio" two_stereo_devices
"Quattro" two_stereo_devices
"SB Audigy 2 NX" six_channels
"USB AudioSport Quattro (tm)" two_stereo_devices
}
The first string is obviously used for matching the hardware, but I
don't know what identifier that is and where to find it for your sound
card (I'd start from /proc/asound/cards).
> BTW, it would be nice to support more advanced syntax in profile file like this:
>
> > front-left,front-right,none,none,none,lfe
>
> This would allow to avoid moving LFE to wrong position too without code changes.
Yes, that would be nice. It can already be approximated:
front-left,front-right,aux1,aux2,aux3,lfe
will create a sink that has three aux channels that generally won't be
used. It doesn't look nice in UIs, though.
--
Tanu
https://liberapay.com/tanuk
https://www.patreon.com/tanuk
More information about the pulseaudio-discuss
mailing list