Hello Clemens.
I tested the patch you sent me and it works perfectly.
I am now able to change the volume of capture!
I add a little more information:
Alsamixer in the playback section shows three volume controls:
- Master: Controls the playback volume of the 4 outputs at the same time.
- Line0: I thought this controlled the volume of the first pair of stereo playback, but does not. It seems that controls the playback level of the capture, the playback volume of what is being recorded. For me it is useless, but it exists. When recording with these controls at high volume, I listen a little feedback noise.
- Line1: same as line 0 but for the second stereo pair.
Alsamixer, in the capture section, only shows a control LINE. This controls the volume of the capture for all capture channels, which is what I needed. It controls the 4 channels at same time, you cannot adjust the capture volume individually for each channel.
I add amixer output:
mint mint # amixer -c 2
Simple mixer control 'Master',0
Capabilities: pvolume pswitch pswitch-joined
Playback channels: Front Left - Front Right
Limits: Playback 0 - 255
Mono:
Front Left: Playback 255 [100%] [0.99dB] [on]
Front Right: Playback 255 [100%] [0.99dB] [on]
Simple mixer control 'Line',0
Capabilities: pvolume cvolume pswitch pswitch-joined cswitch cswitch-joined
Playback channels: Front Left - Front Right
Capture channels: Front Left - Front Right
Limits: Playback 0 - 255 Capture 0 - 255
Front Left: Playback 255 [100%] [0.99dB] [off] Capture 221 [87%] [0.85dB] [on]
Front Right: Playback 255 [100%] [0.99dB] [off] Capture 221 [87%] [0.85dB] [on]
Simple mixer control 'Line',1
Capabilities: pvolume pswitch pswitch-joined
Playback channels: Front Left - Front Right
Limits: Playback 0 - 255
Mono:
Front Left: Playback 255 [100%] [0.99dB] [off]
Front Right: Playback 255 [100%] [0.99dB] [off]
mint mint # amixer -c 2 controls
numid=7,iface=MIXER,name='Master Playback Switch'
numid=8,iface=MIXER,name='Master Playback Volume'
numid=3,iface=MIXER,name='Line Playback Switch'
numid=5,iface=MIXER,name='Line Playback Switch',index=1
numid=4,iface=MIXER,name='Line Playback Volume'
numid=6,iface=MIXER,name='Line Playback Volume',index=1
numid=9,iface=MIXER,name='Line Capture Switch'
numid=10,iface=MIXER,name='Line Capture Volume'
numid=2,iface=PCM,name='Capture Channel Map'
numid=1,iface=PCM,name='Playback Channel Map'
You can include this patch in the Linux kernel, and thus no need to patch each kernel individually?
Finally, Clemens thanks for your help and your time, I really appreciate it.
I'm happy with my "new" sound card!
Greetings.
I tested the patch you sent me and it works perfectly.
I am now able to change the volume of capture!
I add a little more information:
Alsamixer in the playback section shows three volume controls:
- Master: Controls the playback volume of the 4 outputs at the same time.
- Line0: I thought this controlled the volume of the first pair of stereo playback, but does not. It seems that controls the playback level of the capture, the playback volume of what is being recorded. For me it is useless, but it exists. When recording with these controls at high volume, I listen a little feedback noise.
- Line1: same as line 0 but for the second stereo pair.
Alsamixer, in the capture section, only shows a control LINE. This controls the volume of the capture for all capture channels, which is what I needed. It controls the 4 channels at same time, you cannot adjust the capture volume individually for each channel.
I add amixer output:
mint mint # amixer -c 2
Simple mixer control 'Master',0
Capabilities: pvolume pswitch pswitch-joined
Playback channels: Front Left - Front Right
Limits: Playback 0 - 255
Mono:
Front Left: Playback 255 [100%] [0.99dB] [on]
Front Right: Playback 255 [100%] [0.99dB] [on]
Simple mixer control 'Line',0
Capabilities: pvolume cvolume pswitch pswitch-joined cswitch cswitch-joined
Playback channels: Front Left - Front Right
Capture channels: Front Left - Front Right
Limits: Playback 0 - 255 Capture 0 - 255
Front Left: Playback 255 [100%] [0.99dB] [off] Capture 221 [87%] [0.85dB] [on]
Front Right: Playback 255 [100%] [0.99dB] [off] Capture 221 [87%] [0.85dB] [on]
Simple mixer control 'Line',1
Capabilities: pvolume pswitch pswitch-joined
Playback channels: Front Left - Front Right
Limits: Playback 0 - 255
Mono:
Front Left: Playback 255 [100%] [0.99dB] [off]
Front Right: Playback 255 [100%] [0.99dB] [off]
mint mint # amixer -c 2 controls
numid=7,iface=MIXER,name='Master Playback Switch'
numid=8,iface=MIXER,name='Master Playback Volume'
numid=3,iface=MIXER,name='Line Playback Switch'
numid=5,iface=MIXER,name='Line Playback Switch',index=1
numid=4,iface=MIXER,name='Line Playback Volume'
numid=6,iface=MIXER,name='Line Playback Volume',index=1
numid=9,iface=MIXER,name='Line Capture Switch'
numid=10,iface=MIXER,name='Line Capture Volume'
numid=2,iface=PCM,name='Capture Channel Map'
numid=1,iface=PCM,name='Playback Channel Map'
You can include this patch in the Linux kernel, and thus no need to patch each kernel individually?
Finally, Clemens thanks for your help and your time, I really appreciate it.
I'm happy with my "new" sound card!
Greetings.
2015-05-22 4:37 GMT-03:00 Clemens Ladisch <cladisch@xxxxxxxxxxxxxx>:
nightmixes wrote:
> kernel: usb 3-2: [4] FU [Line Playback Switch] ch = 1, val = 0/1/1
> kernel: usb 3-2: [4] FU [Line Playback Volume] ch = 2, val = 0/255/1
> kernel: usb 3-2: [2] FU [Line Playback Switch] ch = 1, val = 0/1/1
> kernel: usb 3-2: [2] FU [Line Playback Volume] ch = 2, val = 0/255/1
> kernel: usb 3-2: [7] FU [Master Playback Switch] ch = 1, val = 0/1/1
> kernel: usb 3-2: [7] FU [Master Playback Volume] ch = 2, val = 0/255/1
> kernel: usb 3-2: MU 11 has no bmControls field
There's the culprit. Ignoring mixer unit 11 also ignores all other
units connected as sources.
Try moving the bmControls check until after the source units have
been parsed, as in the patch below.
Regards,
Clemens
--- a/sound/usb/mixer.c
+++ b/sound/usb/mixer.c
@@ -1582,18 +1582,15 @@ static int parse_audio_mixer_unit(struct
unitid);
return -EINVAL;
}
- /* no bmControls field (e.g. Maya44) -> ignore */
- if (desc->bLength <= 10 + input_pins) {
- usb_audio_dbg(state->chip, "MU %d has no bmControls field\n",
- unitid);
- return 0;
- }
num_ins = 0;
ich = 0;
for (pin = 0; pin < input_pins; pin++) {
err = parse_audio_unit(state, desc->baSourceID[pin]);
if (err < 0)
continue;
+ /* no bmControls field (e.g. Maya44) -> ignore */
+ if (desc->bLength <= 10 + input_pins)
+ continue;
err = check_input_term(state, desc->baSourceID[pin], &iterm);
if (err < 0)
------------------------------------------------------------------------------
_______________________________________________ Alsa-user mailing list Alsa-user@xxxxxxxxxxxxxxxxxxxxx https://lists.sourceforge.net/lists/listinfo/alsa-user