XBMC and pulseaudio master volume (Ubuntu 11.10)
Saturday, October 15th, 2011If you use XBMC as standalone in Ubuntu(choose it in the login screen), volume control is limited to XBMC as a source in pulseaudio. If you login to Gnome/Unity/whatever, and forget to set sound level to 100% before you logout, XBMC sound volume will suffer from this.
Solution:
You can control sound volume in terminal with
1 | pactl set-sink-volume # n% |
.
# is a number of a so called sink, which is the same as an output device(analog, HDMI, SPDIF, etc). n% is percentage of volume. This will set sink 0 to 100% volume:
1 | pactl set-sink-volume 0 100% |
You need to find out which number your default output device is:
1 | pactl list sinks |
Should output something like this:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | Sink #0 State: RUNNING Name: alsa_output.pci-0000_00_1b.0.analog-stereo Description: Intern lyd Analog Stereo Driver: module-alsa-card.c Sample Specification: s16le 2ch 44100Hz Channel Map: front-left,front-right Owner Module: 4 Mute: no Volume: 0: 90% 1: 90% 0: -2,75 dB 1: -2,75 dB balance 0,00 Base Volume: 100% 0,00 dB ... |
Play some music and test(music should mute 1 second):
1 | pactl set-sink-volume 0 0%; sleep 1; pactl set-sink-volume 0 90% |
To get XBMC set volume to 100% before startup we create a new command called xbmc-standalone-max-volume. Do this as root:
1 2 | cp /usr/bin/xbmc-standalone /usr/bin/xbmc-standalone-max-volume nano /usr/bin/xbmc-standalone-max-volume |
In xbmc-standalone-max-volume find pulse start section and add three lines after it:
1 2 3 4 5 6 7 8 9 10 11 12 | PULSE_START="$(which start-pulseaudio-x11)" if [ -n "$PULSE_START" ]; then $PULSE_START else PULSE_SESSION="$(which pulse-session)" if [ -n "$PULSE_SESSION" ]; then XBMC="$PULSE_SESSION $XBMC" fi fi # set volume to 100% PACTL="$(which pactl)" $PACTL set-sink-volume 0 100% |
Now edit XBMC session:
1 | nano /usr/share/xsession/XBMC.desktop |
Change Exec and TryExec:
1 2 3 4 5 6 | [Desktop Entry] Name=XBMC Comment=This session will start XBMC Media Center Exec=xbmc-standalone-max-volume TryExec=xbmc-standalone-max-volume Type=Application |
You may also do the same with xbmc -> xbmc-max-volume, but when inside gnome you could simply use your keyboard and Alt-Tab, set volume up, and Alt-Tab back.