Home

Solve soundcard problems in Linux by using amixer. In particular: Get the Terratec Aureon 5.1 USB MKII fully working with Linux

Preface

I own the Terratec Aureon 5.1 USB MKII USB soundcard for quite some time. The Alsa project website states that it is/was one of the best supported soundcards in Linux.

To my great disappointment, after acquiring the card I was not able to capture from the line-in port, which was actually the reason why I had bought it. Laptops usually have no line-in ports, but that was what I needed, in order to use guitar effects with Rakarrack or Guitarix with less distorted signal and better signal to noise ratio. By default I use alsamixer on the command line to control soundcards, but the switch to select the input source for capture does not appear there. Also the switch to unmute line-in capture was not present. By default Alsa will capture from the microphone port, but neither the optical port or the line port can be selected alternatively. The integrated sound mixers in common desktop environments, KDE in my case, do not help, either. But amixer can.

The syntax of amixer is awful. Without copy and paste, typing the denomination of the switches, for example numid=13,iface=MIXER,name='Capture Source' is error prone and cumbersome. Here is a quick primer on what I had to do and how I did it. Clearly the amixer program is a last resort to get the job done.

How to do it

First, if you have more than one soundcard, find its number. I actually did that with alsamixer. Press F6 in alsamixer and you see the list of cards supported by Alsa.

In my case the Aureon USB is card #1, while the internal card is #0.

Now issue:

amixer -c Number-of-your-soundcard contents

For the Aureon 5.1 USB MKII the output looks like this, after making working settings for line-in recording:

numid=5,iface=MIXER,name='Master Playback Switch'
; type=BOOLEAN,access=rw------,values=1
: values=on
numid=6,iface=MIXER,name='Master Playback Volume'
; type=INTEGER,access=rw---R--,values=1,min=0,max=255,step=0
: values=225
| dBminmax-min=42949625.09dB,max=42949672.90dB
numid=3,iface=MIXER,name='Line Playback Switch'
; type=BOOLEAN,access=rw------,values=1
: values=on
numid=4,iface=MIXER,name='Line Playback Volume'
; type=INTEGER,access=rw---R--,values=2,min=0,max=255,step=0
: values=155,155
| dBminmax-min=0.00dB,max=47.81dB
numid=10,iface=MIXER,name='Line Capture Switch'
; type=BOOLEAN,access=rw------,values=1
: values=on
numid=11,iface=MIXER,name='Line Capture Volume'
; type=INTEGER,access=rw---R--,values=2,min=0,max=128,step=0
: values=74,72
| dBminmax-min=42949672.78dB,max=23.81dB
numid=9,iface=MIXER,name='Mic Capture'
; type=BOOLEAN,access=rw------,values=1
: values=off
numid=1,iface=MIXER,name='Mic Playback Switch'
; type=BOOLEAN,access=rw------,values=1
: values=off
numid=2,iface=MIXER,name='Mic Playback Volume'
; type=INTEGER,access=rw---R--,values=1,min=0,max=255,step=0
: values=84
| dBminmax-min=0.00dB,max=47.81dB
numid=7,iface=MIXER,name='Mic Capture Switch'
; type=BOOLEAN,access=rw------,values=1
: values=off
numid=8,iface=MIXER,name='Mic Capture Volume'
; type=INTEGER,access=rw---R--,values=1,min=0,max=128,step=0
: values=0
| dBminmax-min=42949672.78dB,max=23.81dB
numid=13,iface=MIXER,name='Capture Source'
; type=ENUMERATED,access=rw------,values=1,items=3
; Item #0 'Mic'
; Item #1 'Line'
; Item #2 'IEC958 In'
: values=1
numid=12,iface=MIXER,name='IEC958 In Capture Switch'
; type=BOOLEAN,access=rw------,values=1
: values=on

In my case I had to select line as the capture source, numid=13. By default the card comes up with the microphone port selected.

I did this by performing copy and paste from the output, and adding the parameter:

amixer -c 1 cset numid=13,iface=MIXER,name='Capture Source' 1

Second, I had to turn on the Line capture switch:

amixer -c 1 cset numid=10,iface=MIXER,name='Line Capture Switch' 1

Now I can control the Line-In capture volume interactively with alsamixer.

Every time you plug in the soundcard or wake up the laptop from suspend, these steps have to be repeated. For simplicity, I have put the two lines in a simple batch script. I named it aureon-line-capture.

#!/bin/sh
amixer -c 1 cset numid=13,iface=MIXER,name='Capture Source' 1
amixer -c 1 cset numid=10,iface=MIXER,name='Line Capture Switch' 1

Problem solved. Finally I can capture from line-in \o/
Phew!