[alsa-devel] Noise Problem with rate convert plugins

Andreas Rumpler andreas.rumpler at audivo.com
Wed Jul 11 17:41:21 CEST 2007


Hello,

I'm new to this list.I hope someone could help me with a problem 
concerning the samplerate converter plugins of the alsa driver.

Firstly some facts about my application.

- Envy24 (VT1270) pci audio chip on a custom mainboard
- playback of sounds/music with different sample rates from 8kHz to 
48kHz (sample rate of the files)
- the hardware (Envy24 chip) must always run with 44.1kHz or 48kHz 
(selectable by user), because the audio is outputed by a DAC and SPDIF 
and the SPDIF clock must not be changed according to the sample rate of 
the files.
- Kernel is 2.6.22 and alsa is 1.0.14

So I'm using the samplerate (libsample rate based) plugin from the 
alsa-plugin package. Generaly it works very good.

My problem is:
Every time a playback is started a short plop noise is heard. The noise 
is on analog and SPDIF output. If I don't use the samplerate converter 
the noise is not heard at all. So it comes definitely from the rate 
converter plugin, I think. Changing  the quality level of the plugin 
don't solve the problem. I've also switched to the new Speex rate 
converter plugin. With this plugin there is no noise at the start of 
playback. But here I have trouble with awful noise at some rate 
conversions (6kHz(source) -> 48kHz(output); 11.025kHz -> 44.1kHz; 
22.05kHz -> 44.1kHz). So it's even worse than using the libsamplerate 
plugin. Finaly I've tried the libavcodec plugin, which is the worst 
according to noise.

Could any comment this problem, please?

This is my asound.conf:
##############################################
# Playback over Line-Out and SPDIF simultaniously as default

pcm.!default {
 type plug
 slave.pcm {
  type multi
  slaves.a.pcm "plughw:0,0"
  slaves.a.channels 2
  slaves.b.pcm "hw:0,1"
  slaves.b.channels 2
         bindings.0.slave a
         bindings.0.channel 0
         bindings.1.slave a
         bindings.1.channel 1
         bindings.2.slave b
         bindings.2.channel 0
         bindings.3.slave b
         bindings.3.channel 1
 }
 ttable.0.0 1
 ttable.1.1 1
 ttable.0.2 1
 ttable.1.3 1
}

pcm_slave.s1 {
 pcm default
 rate 44100
}

pcm_slave.s2 {
 pcm default
 rate 48000
}

pcm.rate_convert_44100 {
    type rate
    slave s1
    converter samplerate
}

pcm.rate_convert_48000 {
    type rate
    slave s2
    converter samplerate
}
#####################################################


Regards
Andreas Rumpler



More information about the Alsa-devel mailing list