Monkey Island 1 - high frequency tone problem

Ask for help with ScummVM problems

Moderator: ScummVM Team

User avatar
knakos
ScummVM Porter
Posts: 424
Joined: Wed Nov 02, 2005 2:35 pm
Location: Athens, Greece

Post by knakos »

I can only speculate on what happens in this case:

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.
eriktorbjorn wrote: Apparently, one of the Summer of Code projects may possibly improve on the current resampling algorithm.
Indeed!
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.

Kostas

User avatar
raina
Posts: 234
Joined: Thu Jan 12, 2006 12:31 pm
Location: Oulu, Finland
Contact:

Post by raina »

knakos wrote: 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).
I don't know if there's a need to establish a list of such sound cards/chips or if it already exists but here's a start:
  • SoundBlaster Live! cards
  • SoundBlaster Audigy cards (not Audigy 2)

Post Reply