I recently got an external soundcard/DAC (Fiio E17) and am currently trying to properly configure it on my Ubuntu 12.04 installation. When plugging it in via USB, it's immediately recognized and shows up as a new device in the audio settings. Playback works mostly fine as well (except for some minor volume-related issues, which are beyond the scope of this question).
However, when trying to test the 24 bit/96 kHz playback by playing such an audio file with mplayer
, I encountered a small issue:
Opening audio decoder: [pcm] Uncompressed PCM audio decoder
AUDIO: 96000 Hz, 2 ch, s24le, 4608.0 kbit/100.00% (ratio: 576000->576000)
Selected audio codec: [pcm] afm: pcm (Uncompressed PCM)
==========================================================================
AO: [pulse] 96000Hz 2ch s16le (2 bytes per sample)
As can be seen from the output, even though the played file does contain 24 bit/96 kHz audio, it's resampled to 16 bit before playback. Playing the same file with aplay
shows the reason:
Playing WAVE 'sr003-02-2496.wav' : Signed 24 bit Little Endian in 3bytes, Rate 96000 Hz, Stereo
aplay: set_params:1081: Sample format non available
Available formats:
- U8
- S16_LE
- S16_BE
- S32_LE
- S32_BE
- FLOAT_LE
- FLOAT_BE
- MU_LAW
- A_LAW
However, /proc/asound/card1/stream0
confirms that the hardware does support 24 bit:
FiiO FiiO USB DAC-E17 at usb-0000:00:1a.0-1.1, full speed : USB Audio
Playback:
Status: Running
Interface = 3
Altset = 1
Packet Size = 388
Momentary freq = 44100 Hz (0x2c.199a)
Interface 3
Altset 1
Format: S16_LE
Channels: 2
Endpoint: 3 OUT (ADAPTIVE)
Rates: 32000, 44100, 48000, 96000
Interface 3
Altset 2
Format: S24_3LE
Channels: 2
Endpoint: 3 OUT (ADAPTIVE)
Rates: 32000, 44100, 48000, 96000
At this point I noticed that in the hardware tab of the sound settings, I can select two different profiles for the sound card: Digital Stereo (IEC958) and Analog Stereo. Switching between these two doesn't result in any changes though, as far as I can tell.
Specifying the ALSA device does help though (that is, aplay -Dhw:1,0 sr003-02-2496.wav
works just fine and plays the file without resampling). But since Pulseaudio only shows one Fiio device/sink in the sound settings, I'm not sure how I'd tell Pulseaudio to use ALSA device hw:1,0
. Adding load-module module-alsa-source device=hw:1,0
to /etc/pulse/default.pa
results in Pulseaudio aborting with module.c: Failed to load module "module-alsa-source" (argument: "device=hw:1,0"): initialization failed.
during startup.
So, that's the introduction, here's my actual questions:
- How do I figure out which ALSA device Pulseaudio actually uses when I select the Fiio E17 in the sound settings?
- How do I tell Pulseaudio to use ALSA device hw:1,0 when selecting the Fiio E17 in my sound settings?
Some more (hopefully helpful) debug information:
- The output of
aplay -L
- The output of
aplay -l
- The output of
pacmd list-sinks
- And finally, in case it's relevant, my .asoundrc
mplayer
andaplay
command lines?mplayer -ao alsa:device=hw=1.0 sr003-02-2496.wav
andaplay -Dhw:1,0 sr003-02-2496.wav
to use the correct device, if that's what you're asking.aplay sr003-02-2496.wav
andmplayer sr003-02-2496.wav
. And yes, I would like to use PulseAudio if possible.