Sporo używam odtwarzaczy muzycznych (mpd, forked-daapd, shairport), na kilku urządzeniach, także we współpracy z audiofilskim sprzętem i przerobiłem ten problem.
Trzeszczenie nie ma jednej przyczyny ale różne, niektóre opisuje wiki ALSA:
http://alsa.opensrc.org/TroubleShooting … _distorted
W praktyce najczęściej pojawia się, gdy ALSA zmienia ( słusznie lub nie) próbkowanie materiału muzycznego, albo usiłuje go z czymś miksować. Brak zasobów sprzętu też ma na to wpływ. Co można zrobić, aby uzyskać audiofilski dźwięk?
Jeżeli mamy podpiętą jedną kartę muzyczną (a tak zazwyczaj jest w OpenWRT) najlepiej:
1/Na wszelki wypadek związać pierwszą kartę dźwiękową (odpowiada urządzeniu "hw:0,0") z nazwą "default". Czasami aplikacje mają głęboko w poważaniu pliki konfiguracyjne i odwołują się tak czy siak do "default".
2/związać odtwarzacz muzyczny z tym urządzeniem, bez żadnych mikserów (przy okazji karta muzyczna dostaje materiał "bit perfect").
3/Używać pliki muzyczne mniej obciążające sprzęt
Ad 1:
tworzymy plik /etc/asound.conf ( o ile go już niema) i w nim kod:
pcm.!default {
type hw
card 0
}
ctl.!default {
type hw
card 0
}
Ad 2:
W pliku /etc/mpd.conf sekcja ALSA ma postać z odkomentowaną linią "device" a zakomentowanymi "format" i "mixer":
audio_output {
type "alsa"
name "Moja Wspaniała Szafa Grająca"
device "hw:0,0" # optional
# format "44100:16:2" # optional
# mixer_device "default" # optional
# mixer_control "PCM" # optional
# mixer_index "0" # optional
}
Ad 3: Wykasować mp3 i inne wątpliwej jakości zdobycze oraz zaopatrzyć się w pliki muzyczne o wysokiej przepływności bitów w formacie bezstratnym - FLAC albo ALAC (Apple Lossless). MPD przy odtwarzaniu pliku AAC 256k obciąża procesor Iomega Iconnect w 20% a przy ALAC 4 %.
Jeżeli to nie pomaga - znaczy się karta dźwiękowa nie jest prawidłowo widziana przez ALSA i ta się wchrzania ze zmianą próbkowania. Tak to już jest w Linuksie, nie wszystko zawsze działa.
Wtedy pozostaje ustawienie na stałe próbkowania na 44100 (tyle mają pliki ripowane z CD) w pliku /etc/asoud.conf i używanie tylko takich plików.
defaults.pcm.dmix.rate 44100 # Force 44.1 KHz
defaults.pcm.dmix.format S16_LE # Force 16 bits
Trzeba również zakomentować linię "device" w /etc/mpd.conf a odkomentować linie mikserów.
Pozdrawiam.