My problem is that although the .asoundrc device I have set up works fine, XBMC (despite being set to that device) ignores the mappings and just does its own thing regardless (based somewhat on the number of channels I set it to), and I'm unsure why this isn't working. It's sending the channels to entirely different speakers than it does when I run test files through aplay. Here's what XBMC is doing for me based on channel settings (to reiterate, it's doing this regardless of if I set it to one of my custom remapped devices or not).
3.1: FL to FL, FR to FR, C to FL, LFE to FR
4.0: FL to FL, FR to FR, C to RL, LFE to RR, RL to FL&FR, RR to FL&FR
4.1: FL to FL, FR to FR, C to RL, LFE to RR, RL to FL&FR, RR missing
5.0: FL to FL, FR to FR, C to RL, LFE to RR, RL missing, RR to FL&FR
5.1: FL to FL, FR to FR, C to RL, LFE to RR, RL missing, RR missing
And yeah, I've tried plugging the cables into different outputs; they're in the only two that actually output anything in XBMC.
Is there a way to get XBMC to ignore the channels setting and instead respect my .asoundrc mappings? Alternatively, is there a way to change the mappings beyond merely the choice of 5.1, 4.0, etc? (which I'm sure is a great system for people who just want to change a setting or two and be done with it, but seems to be more hindering than helping me, alas).
I'm running all this on a minimal Ubuntu 10.04.1 installation, by the way (loading Eden/11.0 installed from the PPA directly as my default X11 session). The soundcard being used is an old SoundBlaster Live! 5.1, as this computer is from 1999, heh (don't worry, it plays Blu-Ray rips just fine, other than this annoyance with the sound).
P.S. the .asoundrc config that worked back in the days of Camelot went basically as such:
# downmixing to 4 channels
ttable.0.0 1 # front left speaker
ttable.1.1 1 # front right speaker
ttable.2.2 1 # rear left speaker
ttable.3.3 1 # rear right speaker
ttable.4.0 0.6 # center to left mapping
ttable.4.1 0.6 # center to right mapping
ttable.5.0 0.25 # LFE (base) to left mapping
ttable.5.1 0.25 # LFE to right mapping
ttable.5.2 0.1 # LFE (base) to rear left mapping
ttable.5.3 0.1 # LFE to rear right mapping