Reversed stereo using 3.5mm jack

Hi,

i am enjoing my Vero 4K for a month now. Yesterday there was a scene in a tv show, where the left and right channels were very distinct a i noticed they were reversed.

Then i checked using a youtube video https://www.youtube.com/watch?v=6WKspXZfmEE to discover its true.

Tested with two pairs of headphones (3 pin and 4 pin) and with stereo speakers (3 pin). They all work great on my PC and phone.

Also the channels are ok using the HDMI cable - watching the same video produces right output on TV and reversed output on 3.5 mm jack.

As i am only using headphones, now i notice this everywhere.

I didnt notice this until yesterdays update, but maybe it was there all along.

Is there a software setting i can change?

Can you help?

Thank you.

Logs: http://paste.osmc.tv/gukexiyica

No. Unless you want to write a bespoke alsa conf file. There were some changes in the latest release but I don’t think they had to do with channel allocation. I noticed the same with the previous release.

The pin-out of the 3.5mm jack socket is a little unusual and, for example, differs from the RPi layout.

You can find the details here.

Thanks for the info. I was looking on more information about how the pins work. In every pin-out i found the left channel is connected to first pin (tip), so i dont understand how it is possible the audio is reversed.

According to this post: Multichannel audio incorrectly mapped - #26 by sam_nazarko the June update changed some audio settings. Maybe it reversed the stereo channels too?

Plus in this quote, it’s specified that the jack is good for headphones/speakers. It’s not true right now, as everyone who puts their headphones in will get reversed audio. So i call this a bug. Maybe it can be fixed in some future release?

Right now, i am just wearing the headphones reversed, so there is no hurry. Would be nice if this will be fixed some time.

Thanks

I was going to suggest that! Actually, after the last update, my channels were briefly the right way round but then I managed to switch them back while poking in alsamixer. Now it’s stuck that way. Trying to get to the bottom of this as I don’t own a digital receiver.

For now, you can run this:

echo l|r > /sys/class/amaudio/audio_channels_mask
echo c  > /sys/class/amaudio/audio_channels_mask

I’m working on a more practical resolution in the interim.

Sam

Thank you for getting into this.

When i ran the first command, i got this response:
-bash: /sys/class/amaudio/audio_channels_mask: Permission denied

I am logged in as “osmc” user. I also tried prepending "sudo " in front of the command.

Run sudo -s before running the above commands.

Thank you, now it works perfectly :slight_smile:

Add it to /etc/rc.local before exit 0 and it will work on every reboot.

Sam

Hi, added this into my rc.local file few days ago. First reboot after that was just now (installed september update).

Audio is still reversed. Content of file is bellow.

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

echo "l|r" > /sys/class/amaudio/audio_channels_mask
echo c > /sys/class/amaudio/audio_channels_mask

exit 0

Do I need to change/add something?

Thank you.

Does it work if you run the commands manually after bootup?

It’s possible there needs to be a small delay when running this

Cheers

Sam

Try just echo l > /sys/class/amaudio/audio_channels_mask in the first line.

Yes, it works flawlessly. Do i need to put the “sudo -s” in there as well?

sudo should not be needed in rc.local, but is needed if you are running the echo commands as user osmc and not as root.

Tried a few things, here is the report (everything with “sudo -s”):
– added “sleep 30” before the commands => didn’t work
– checked execute permissions on rc.local => all ok
– executed /etc/rc.local directly from console => didn’t work
– tried to run both commands directly from console => didn’t work (weird)
– ran only the “echo c > …” again => working
– tried to put only the “echo l|r > …” command to rc.local end exexuted it => sound was coming from both speakers at the same time

Final solution, which works after restart:

echo “l|r” > /sys/class/amaudio/audio_channels_mask
echo c > /sys/class/amaudio/audio_channels_mask
echo c > /sys/class/amaudio/audio_channels_mask

Try in rc.local:

/bin/echo “l|r” | /usr/bin/tee /sys/class/amaudio/audio_channels_mask
/bin/echo c | /usr/bin/tee /sys/class/amaudio/audio_channels_mask
/bin/echo c | /usr/bin/tee /sys/class/amaudio/audio_channels_mask

This works as well. Thanks.

Hi, just wanted to let you know that after the last update the stereo was reversed again.

I thought maybe the update reseted the rc.local file to default state - after checking, the content was still there.

I removed it and now the stereo is working as it should.

Looks like you fixed it for everyone :slight_smile:

Just hoping it’s not a bug and wont be reverted in future update.

Thanks.

It’s mentioned in the release notes
https://osmc.tv/2018/03/osmcs-march-update-is-here-with-pi-3-b-support/