Bug 273651 - KMix does not support side channels in 7.1 speaker configuration with pulseaudio
Summary: KMix does not support side channels in 7.1 speaker configuration with pulseaudio
Status: CONFIRMED
Alias: None
Product: kmix
Classification: Applications
Component: Backend: Pulseaudio (show other bugs)
Version: unspecified
Platform: unspecified Linux
: NOR normal
Target Milestone: ---
Assignee: Colin Guthrie
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-05-19 16:57 UTC by Leonidas Arvanitis
Modified: 2021-03-10 00:16 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments
7.1 Soundcard, including Side Left and Side Right Support (33.37 KB, image/png)
2011-12-30 16:48 UTC, Christian Esken
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Leonidas Arvanitis 2011-05-19 16:57:56 UTC
Version:           unspecified (using KDE 4.6.3) 
OS:                Linux

KMix doesn't list (even after "splitting" the volume control) and won't control the volume of side channels in my 7.1 speaker setup.

Reproducible: Always

Steps to Reproduce:
Adjust the master volume (the only one available "SB Audigy Analog Surround 7.1") by mouse-scrolling on volume slider or keyboard shortcuts.

Actual Results:  
All channels but Side ones are adjusted as expected (confirmed in Pulse Audio Volume Control "pavucontrol" application).

Expected Results:  
All channels include Side ones should be affected.

My setup is:
-Kubuntu 11.04 amd64
-Kernel 2.6.38
-KDE 4.6.3 from ppa
-KMix 3.8
-SoundCard SB Audigy 2 ZS
-PulseAudio 0.9.22
Comment 1 Colin Guthrie 2011-05-19 17:10:07 UTC
Yup, this is a known limitation of kmix's representation of devices. It would need more work in kmix itself to support this (rather than just in the PA layer).

I suggest using e.g. pavucontrol to control things until this work is completed.

I would hope that the sliders can be labelled properly too when implementing this as it's a bit of a guessing game just now!
Comment 2 Christian Esken 2011-12-30 16:47:06 UTC
Not sure what is needed. KMix should supports the 9 different channels:

                  LEFT         = 0, RIGHT         = 1, CENTER = 2,
                  WOOFER       = 3,
                  SURROUNDLEFT = 4, SURROUNDRIGHT = 5,
                  REARSIDELEFT = 6, REARSIDERIGHT = 7,
                  REARCENTER   = 8,

The GUI shows the following, please also see the attached screen shot.

QString Volume::ChannelNameReadable[9] =
{
		"Left", "Right",
		"Center", "Subwoofer",
		"Surround Left", "Surround Right",
		"Side Left", "Side Right",
		"Rear Center"
};
Comment 3 Christian Esken 2011-12-30 16:48:17 UTC
Created attachment 67253 [details]
7.1 Soundcard, including Side Left and Side Right Support
Comment 4 Colin Guthrie 2012-01-03 11:28:02 UTC
Please attach the output from "pacmd ls".

Currently I do the following mappings in the PA backend:

                case PA_CHANNEL_POSITION_FRONT_LEFT_OF_CENTER:
                    dev.chanMask = (Volume::ChannelMask)( dev.chanMask | Volume::MREARSIDELEFT);
                    dev.chanIDs[i] = Volume::REARSIDELEFT;
                    break;
                case PA_CHANNEL_POSITION_FRONT_RIGHT_OF_CENTER:
                    dev.chanMask = (Volume::ChannelMask)( dev.chanMask | Volume::MREARSIDERIGHT);
                    dev.chanIDs[i] = Volume::REARSIDERIGHT;
                    break;


But this requires that the PA side has these positions... I suspect I've simply used PA_CHANNEL_POSITION_FRONT_LEFT_OF_CENTER where I should have used PA_CHANNEL_POSITION_SIDE_LEFT.

As channel maps are a bit of a pain (different OSs/companies call the same channel totally different things), the above explanation is most likely!

    PA_CHANNEL_POSITION_FRONT_LEFT_OF_CENTER,     /**< Apple, Dolby call this 'Left Center' */
    PA_CHANNEL_POSITION_FRONT_RIGHT_OF_CENTER,    /**< Apple, Dolby call this 'Right Center */

    PA_CHANNEL_POSITION_SIDE_LEFT,                /**< Apple calls this 'Left Surround Direct', Dolby calls this 'Surround Left' (!) */
    PA_CHANNEL_POSITION_SIDE_RIGHT,               /**< Apple calls this 'Right Surround Direct', Dolby calls this 'Surround Right' (!) */


But as I don't have 7.1 h/w here, I cannot check what is used. Your pacmd ls output will tell me what I need to know (although I'm pretty sure I've analysed it correctly).
Comment 5 Colin Guthrie 2012-01-03 11:30:29 UTC
PS, sorry for the incorrect assessment in comment 1
Comment 6 Colin Guthrie 2012-01-05 10:05:11 UTC
SVN commit 1271782 by cguthrie:

kmix: Fix channel mapping for 7.1 side channels in PulseAudio.


 M  +2 -2      mixer_pulse.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1271782
Comment 7 Colin Guthrie 2012-01-05 10:07:05 UTC
I think the above commit will fix this problem, and I'd very much like to cherry pick it to the 4.8 branch. So any feedback on whether or not it's correct would be most appreciated.
Comment 8 Justin Zobel 2021-03-10 00:16:20 UTC
Thank you for the bug report.

As this report hasn't seen any changes in 5 years or more, we ask if you can please confirm that the issue still persists.

If this bug is no longer persisting or relevant please change the status to resolved.