I have found that several sound cards perform all processing at a fixed clock frequency (44.1k or 48k f.ex.). Then, if an application requests output at a frquency lower than that (ScummVM default case), the driver/card performs upsampling to reach the fixed rate. This upsampling operation may be of poor quality in order to achieve good real time performance which manifests as high frequency noise and/or spectrum aliasing (bear in mind that ScummVM's default internal upsampler is linear which generates some noise too). We have seen and measured this problem.
Indeed!eriktorbjorn wrote: Apparently, one of the Summer of Code projects may possibly improve on the current resampling algorithm.
Timothy is still working on it (past the end of GSoC). The aim is to provide a high fidelity mixing path for ScummVM. Currently, the HQ pipe includes proper upsampling using a Low Pass Filter (with its generation occuring at runtime) and a quantization noise decorrelator. The combination should enhance all upsampled channels. Under investigation is also the addition of a noise shaper for even better (lower) noise floor in the audible band.
This all means that the sound output of ScummVM is going to get much better (and slower in comparison with the linear upsampler ) as soon as we're done with it.