[Ardour-Users] HDSPloader and RME HDSP9652
Paul Davis
paul at linuxaudiosystems.com
Fri May 23 18:47:23 PDT 2014
On Fri, May 23, 2014 at 9:38 PM, Benjamin Scherrer <benjamin at wagnerbrutal.de
> wrote:
> Hi,
>
> apart from the hdsploader, does anyone know why the issue "need to start
> the hdspmixer once to hear something" hasn't been addressed? Safety
> reasons sound fine, but there could be a simple "on" switch in the
> config, couldn't there? I haven't seen (heared) this behavior with
> another card.
>
ALSA has a rule that all devices are silenced at boot.
It is up to user space to restore any existing configuration.
The ALSA tools used by most distros to do this restoration don't work
properly in the case of a matrix mixer (which the HDSP series has).
So instead, the user gets to run hdspmixer. It CAN be done with ALSA tools,
but not with alsactl store/restore. I have shell scripts like the one below
that I sometimes use to restore particular settings, which I include here
to just to show proof of concept.
---------
#!/bin/bash
AMIXER="amixer -q"
CARD="-c 1"
if [ x$1 = xon ] ; then
gain=32768
verb="route"
else
gain=0
verb="mute"
fi
shift;
#input_source : 0-25 (physical channels),
# 26-51 (software playback)
#output_source : 0-25 (physical channels),
# 26-27 (line out)
case $1 in
play)
for chn in $(seq 26 51);do
$AMIXER $CARD cset numid=5 $chn,$(($chn-26)),$gain
done
;;
thru)
for input in $(seq 0 25);do
for output in $(seq 0 25); do
if [ $input != $output ]; then
$AMIXER $CARD cset numid=5 $input,$output,$gain
fi
done
done
;;
thru12)
$AMIXER $CARD cset numid=5 0,0,$gain
$AMIXER $CARD cset numid=5 1,1,$gain
;;
mon)
for chn in $(seq 26 51);do
if [ $(($chn % 2)) -eq 0 ] ; then
$AMIXER $CARD cset numid=5 $chn,26,$gain
else
$AMIXER $CARD cset numid=5 $chn,27,$gain
fi
done
;;
all)
for input in $(seq 0 51); do
for output in $(seq 0 27); do
echo -n "."
if [ $gain = 0 -o $input != $output ]; then
$AMIXER $CARD cset numid=5 $input,$output,$gain
fi
done
echo
done
;;
off)
for input in $(seq 0 51); do
for output in $(seq 0 27); do
echo -n "."
if [ $gain = 0 -o $input != $output ]; then
$AMIXER $CARD cset numid=5 $input,$output,$gain
fi
done
echo
done
;;
esac
------------------------
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ardour.org/pipermail/ardour-users-ardour.org/attachments/20140523/999bda0f/attachment.htm>
More information about the Ardour-Users
mailing list