#!/bin/sh # This is meant to control four alsa mixer at once. The mixer, which my SB # Live! uses for Surround Sound. By pressing either "+" or "-" the Volume is # raised by the value of $Delta. "q" or ^C will get you out. # alsasurround is inspired by Markus Wernigs alsavolume # (http://lugbe.ch/lostfound/contrib/bitsnpieces/mwe/alsavolume.txt) and # some code is borrowed from him. # This is of course Free Software :-) Delta=5 # We need to do that so the front speakers can be equally controlled thru "Wave". amixer set Master 31 >& /dev/null amixer set PCM 24 >& /dev/null sync () { Center=`amixer get "Wave Center" | grep Mono: | sed -e s/".*Playback "//g | sed -e s/" \[.*"//g | head -n 1` } # All mixer are synchronised with the "Wave Center" Mixer. sync amixer set "Wave Surround" $Center >& /dev/null amixer set "Wave LFE" $Center >& /dev/null amixer set "Wave" $Center >& /dev/null while true do echo -n "Volume? (+/-) " read -n 1 stroke echo -n " " case $stroke in +) sync amixer set "Wave Center" `expr $Center + $Delta` >& /dev/null amixer set "Wave" `expr $Center + $Delta` >& /dev/null amixer set "Wave LFE" `expr $Center + $Delta` >& /dev/null amixer set "Wave Surround" `expr $Center + $Delta` >& /dev/null echo $Center ;; -) sync amixer set "Wave Center" `expr $Center - $Delta` >& /dev/null amixer set "Wave" `expr $Center - $Delta` >& /dev/null amixer set "Wave LFE" `expr $Center - $Delta` >& /dev/null amixer set "Wave Surround" `expr $Center - $Delta` >& /dev/null echo $Center ;; q) echo exit 0 ;; *) echo "Current Volume: "$Center ;; esac done