Takashi Iwai tiwai@suse.de writes:
At Mon, 30 Aug 2010 11:18:01 +0200, Thor Kristoffersen wrote:
On Mon, Aug 30, 2010 at 11:07 AM, Takashi Iwai tiwai@suse.de wrote:
On Mon, Aug 30, 2010 at 10:46 AM, Takashi Iwai tiwai@suse.de wrote:
>> I'm having issues with an X-Fi Titanium and ALSA. The problem is that >> it appears to be impossible to capture without unmuting the channel I'm >> capturing from. > > What do you mean exactly "unmuting the channel I'm capturing from"? > If you mean to turn on/off "XXX Capture Switch", then it's a feature, > no bug.
No, I mean that capture is possible only when mute=off and capture=on.
Which mute? Please be more specific.
The signal I'm trying to capture is coming in through the SPDIF-i channel, so I'm talking about the mute and capture flags on that channel. However, I also tried the analog input (line), and the problem is exactly the same on that channel.
Well, this is still unclear (what actually do you mean "channel") but let me guess:
the recording from either mic or line-in doesn't work unless you unmute via "Front Playback Switch" mixer element.
Correct?
Not really. I use gnome-alsamixer, and there is a mixer element called "SPDIF-i" that has a slider, a "Mute" switch, and a "Capture" switch. I connect a digital source to the SPDIF input on the card, and then I try to record it with arecord from device hw:0,0. The only way I'm able to record sound is by setting the Mute switch (of the SPDIF-i mixer element) to off and the Capture switch to on.
There is no mixer switch names "SPDIF-i". It's cut in alsamixer's display.
I'm not sure I understand what you mean. There is definitely a mixer element called "S/PDIF-in". It is present in gnome-alsamixer, alsamixer, and amixer (though in gnome-alsamixer the text says "S/PDIF-i"). This is what the element looks like in the amixer output:
Simple mixer control 'S/PDIF-in',0 Capabilities: pvolume cvolume pswitch pswitch-joined cswitch cswitch-joined penum Playback channels: Front Left - Front Right Capture channels: Front Left - Front Right Limits: Playback 0 - 256 Capture 0 - 256 Front Left: Playback 256 [100%] [0.00dB] [off] Capture 256 [100%] [0.00dB] [on] Front Right: Playback 256 [100%] [0.00dB] [off] Capture 256 [100%] [0.00dB] [on]
To check more exactly, make a diff of amixer outputs between working and non-working states.
Ok, here's a transcript of the test that reproduces the issue. First I send in a digital stream on the S/PDIF input on the sound card. Then I set the "S/PDIF-in" mixer control to volume=100%, mute=on, capture=on. Then I issue the following commands.
[calvin:~]amixer > capture-not-working.txt [calvin:~]arecord -D hw:0,0 -c 2 -f S16_LE -r 96000 -d 5 sndtest1.wav Recording WAVE 'sndtest1.wav' : Signed 16 bit Little Endian, Rate 96000 Hz, Stereo [calvin:~]aplay -D hw:0,0 sndtest1.wav Playing WAVE 'sndtest1.wav' : Signed 16 bit Little Endian, Rate 96000 Hz, Stereo
No sound is played. Now I change the "S/PDIF-in" mixer control to mute=off. Then I issue the following commands.
[calvin:~]amixer > capture-working.txt [calvin:~]arecord -D hw:0,0 -c 2 -f S16_LE -r 96000 -d 5 sndtest1.wav Recording WAVE 'sndtest1.wav' : Signed 16 bit Little Endian, Rate 96000 Hz, Stereo [calvin:~]aplay -D hw:0,0 sndtest1.wav Playing WAVE 'sndtest1.wav' : Signed 16 bit Little Endian, Rate 96000 Hz, Stereo
Sound plays just fine. This is the diff between the non-working and working states:
[calvin:~]diff -u capture-not-working.txt capture-working.txt --- capture-not-working.txt 2010-08-30 19:01:02.344319762 +0200 +++ capture-working.txt 2010-08-30 19:01:46.964945361 +0200 @@ -59,8 +59,8 @@ Playback channels: Front Left - Front Right Capture channels: Front Left - Front Right Limits: Playback 0 - 256 Capture 0 - 256 - Front Left: Playback 256 [100%] [0.00dB] [off] Capture 256 [100%] [0.00dB] [on] - Front Right: Playback 256 [100%] [0.00dB] [off] Capture 256 [100%] [0.00dB] [on] + Front Left: Playback 256 [100%] [0.00dB] [on] Capture 256 [100%] [0.00dB] [on] + Front Right: Playback 256 [100%] [0.00dB] [on] Capture 256 [100%] [0.00dB] [on] Simple mixer control 'S/PDIF-out',0 Capabilities: pvolume pswitch pswitch-joined penum Playback channels: Front Left - Front Right
Please let me know if there are any other tests you want me to perform.
Thor