6

So fat, I am setting up microphone settings :

$ amixer set 'Rear Mic' 90% mute cap $ amixer set 'Rear Mic Boost' 80% 

But, after some sys. update, my default recoding chanell changed to 'Front Mic' :

$ amixer sget 'Input Source' Simple mixer control 'Input Source',0 Capabilities: cenum Items: 'Front Mic' 'Rear Mic' 'Line' 'CD' 'Mix' Item0: 'Front Mic' 

How to change 'Input Source' to 'Read Mic' with amixer ? (Currently I do it manually with alsamixer or kmix - I would love to automatize it on startup).

3 Answers 3

7

I found solution here:

there I've found :

$ amixer -c0 cset iface=MIXER,name='Input Source',index=1 'Front Mic' # (Record from Front Mic) 

slightly modified according to my sound-card and setup (default sound-card, different items ordering) :

$ amixer cset name='Input Source',index=0 'Rear Mic' 
1

I have a System, where i have default mother-board sound card + WebCAM sound card + external USB sound card = Total 3 sound card.

Now i want to mute/unmute specific sound card out of 3, in that case i can do it using following method:

show me all the card in the system

$ aplay -l **** List of PLAYBACK Hardware Devices **** card 0: PCH [HDA Intel PCH], device 0: CA0132 Analog [CA0132 Analog] Subdevices: 1/1 Subdevice #0: subdevice #0 card 0: PCH [HDA Intel PCH], device 3: HDMI 0 [HDMI 0] Subdevices: 1/1 Subdevice #0: subdevice #0 card 1: NVidia [HDA NVidia], device 3: HDMI 0 [HDMI 0] Subdevices: 1/1 Subdevice #0: subdevice #0 card 2: U0x11110x2222 [USB Device 0x1111:0x2222], device 0: USB Audio [USB Audio] Subdevices: 0/1 Subdevice #0: subdevice #0 

so i want to use the card 2 which is a USB mic and speaker

$ amixer -c2 Simple mixer control 'Speaker',0 Capabilities: pvolume pswitch pswitch-joined penum Playback channels: Front Left - Front Right Limits: Playback 0 - 151 Mono: Front Left: Playback 44 [29%] [-20.13dB] [on] Front Right: Playback 44 [29%] [-20.13dB] [on] Simple mixer control 'Mic',0 Capabilities: pvolume pvolume-joined cvolume cvolume-joined pswitch pswitch-joined cswitch cswitch-joined penum Playback channels: Mono Capture channels: Mono Limits: Playback 0 - 32 Capture 0 - 16 Mono: Playback 32 [100%] [47.81dB] [on] Capture 16 [100%] [23.81dB] [on] Simple mixer control 'Auto Gain Control',0 Capabilities: pswitch pswitch-joined penum Playback channels: Mono Mono: Playback [on] 

Now, in this sound card i have 4 bars

1) Speaker 2) Mic 3) Mic (Capture) 4) Auto gain

My problem is if i simply do amixer sset Capture cap or toggle then it does not work

I have to use a way which can mute everything for microphone capture to 0% and when requires put it back to 70%, without this i did not had any choice left. Its ALSA fault, they should added something like pulseaudio pactl

# Now this does MUTE for device 2 $ amixer -c2 sset Mic 0dB Simple mixer control 'Mic',0 Capabilities: pvolume pvolume-joined cvolume cvolume-joined pswitch pswitch-joined cswitch cswitch-joined penum Playback channels: Mono Capture channels: Mono Limits: Playback 0 - 32 Capture 0 - 16 Mono: Playback 0 [0%] [0.00dB] [on] Capture 0 [0%] [0.00dB] [on] # Unmute for device 2 $ amixer -c2 sset Mic 70dB Simple mixer control 'Mic',0 Capabilities: pvolume pvolume-joined cvolume cvolume-joined pswitch pswitch-joined cswitch cswitch-joined penum Playback channels: Mono Capture channels: Mono Limits: Playback 0 - 32 Capture 0 - 16 Mono: Playback 32 [100%] [47.81dB] [on] Capture 16 [100%] [23.81dB] [on] 
0

You can use sset parameter. From man amixer:

 set or sset <SCONTROL> <PARAMETER> ... Sets the simple mixer control contents. The parameter can be the volume either as a percentage from 0% to 100% with % suffix, a dB gain with dB suffix (like -12.5dB), or an exact hardware value. The dB gain can be used only for the mixer elements with available dB information. When plus(+) or minus(-) letter is appended after volume value, the volume is incremented or decremented from the current value, respectively. The parameters cap, nocap, mute, unmute, toggle are used to change capture (recording) and muting for the group specified. The optional modifiers can be put as extra parameters to specify the stream direction or channels to apply. The modifiers playback and capture specify the stream, and the modifiers front, rear, center, woofer are used to spec‐ ify channels to be changed. A simple mixer control must be specified. Only one device can be controlled at a time. 

In your case should be as simple as (NOT TESTED)

$ amixer sset 'Input Source',0,'Rear Mic' 
2
  • It does not work $ amixer sset 'Input Source',0,'Rear Mic' returns : Specify what you want to set.... Commented Sep 30, 2011 at 6:54
  • 1
    A slight modification of Mr Shunz's proposed syntax works for me: $ amixer sset 'Input Source' 'Rear Mic' works for me. Commented Feb 19, 2013 at 14:50

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.