Niedawno dostałem zewnętrzną kartę dźwiękową / DAC (Fiio E17) i obecnie próbuję poprawnie skonfigurować ją w mojej instalacji Ubuntu 12.04. Po podłączeniu go przez USB jest natychmiast rozpoznawane i pojawia się jako nowe urządzenie w ustawieniach audio. Odtwarzanie działa również w większości dobrze (z wyjątkiem niektórych drobnych problemów związanych z głośnością, które są poza zakresem tego pytania).
Jednak podczas próby przetestowania odtwarzania 24-bit / 96 kHz przez odtwarzanie takiego pliku audio mplayer
napotkałem mały problem:
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)
Jak widać z wyjścia, mimo że odtwarzany plik zawiera dźwięk 24 bity / 96 kHz, przed odtworzeniem jest ponownie próbkowany do 16 bitów. Odtwarzanie tego samego pliku z aplay
pokazuje przyczynę:
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
/proc/asound/card1/stream0
Potwierdza jednak, że sprzęt obsługuje 24 bity:
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
W tym momencie zauważyłem, że w zakładce sprzętowej ustawień dźwięku mogę wybrać dwa różne profile karty dźwiękowej: Digital Stereo (IEC958) i Analog Stereo. O ile wiem, przełączanie się między tymi dwoma nie powoduje żadnych zmian.
Określenie urządzenia ALSA jednak pomaga (to znaczy aplay -Dhw:1,0 sr003-02-2496.wav
działa dobrze i odtwarza plik bez ponownego próbkowania). Ale ponieważ Pulseaudio pokazuje tylko jedno urządzenie Fiio / zlew w ustawieniach dźwięku, nie jestem pewien, jak powiedziałbym Pulseaudio, aby korzystało z urządzenia ALSA hw:1,0
. Dodanie load-module module-alsa-source device=hw:1,0
do /etc/pulse/default.pa
wyników powoduje przerwanie Pulseaudio module.c: Failed to load module "module-alsa-source" (argument: "device=hw:1,0"): initialization failed.
podczas uruchamiania.
Oto wstęp, oto moje aktualne pytania :
- Jak dowiedzieć się, którego urządzenia ALSA używa Pulseaudio, kiedy wybieram Fiio E17 w ustawieniach dźwięku?
- Jak mam powiedzieć Pulseaudio, aby używało urządzenia ALSA hw: 1,0 przy wyborze Fiio E17 w ustawieniach dźwięku?
Kilka innych (mam nadzieję, że pomocnych) informacji do debugowania:
- Dane wyjściowe
aplay -L
- Dane wyjściowe
aplay -l
- Dane wyjściowe
pacmd list-sinks
- I na koniec, jeśli jest to istotne, mój .asoundrc
mplayer -ao alsa:device=hw=1.0 sr003-02-2496.wav
i aplay -Dhw:1,0 sr003-02-2496.wav
używam właściwego urządzenia, jeśli o to pytasz.
aplay sr003-02-2496.wav
i mplayer sr003-02-2496.wav
. I tak, chciałbym użyć PulseAudio, jeśli to możliwe.
mplayer
iaplay
?