Fraunhofer Logo

HTML5 AAC Audio Playback Tests - Windows 7 Audio Playback Methods

Fraunhofer Institute for Integrated Circuits

A Windows 7 Historical Problem

This page details a historical problem that existed with Internet Explorer and Chrome in Windows 7. To explain this problem, some background on audio playback in Windows needs to be understood. The primary methods or APIs to play audio in Windows 7 are:

Output Method
First Introduced
Basic Feature
waveOut Windows 3.0 Plays sound
DirectSound
Windows 95
Multiple sounds at same time
WASAPI
Windows Vista
Low Latency, Exclusive Mode

To use DirectSound, DirectX has to be installed on the PC. This is supplied with Win 7, but in XP days, a user had to sometimes install DirectX seperately (usually with an application he or she installed)

Perhaps for this reason, or the fact it was already working code, IE 9 and Chrome apparently chose to use waveOut to play audio.

The Problem - Poor Interpolation

Windows 7 applications that use the WaveOut API will have poor audio quality on playback if the sample rate of the content is not the same as the default sample rate of the output device. This is because the resampler for WaveOut was changed in Win7 to use linear interpolation, according to Microsoft.

HTML5 media playback is important for enabling multi-channel AAC content delivery to the consumer. This content may be at either 44.1 or 48 kHz sampling rates, so the problem is likely to occur for at least some of the content played, no matter whether the default rate is 44.1 or 48 kHz on the user's computer.

A "request only" Windows hotfix was issued for this problem, but consumers won't recognize the problem or be able to find the hotfix. To enable HTML5 media playback in IE 9, this hotfix should be in the normal Windows Update process. We reported this problem to Microsoft, but did not receive any news of a change in status. Current (as of 2017) Windows 7 systems appear to have had this issue patched through updates.

The problem is limited to Windows 7 and Vista, and has been fixed in Windows 8 and later versions.

Windows 7 Resampler Tests

These signals test the proper operation of the Windows 7 sound mixer resampler. The signals are 2-100 Hz linear sweeps. If the mixer does a poor job of resampling, you will hear a tone in the mid or high frequencies at whichever sample rate is not the native one selected for your output device in the operating system. If you do not have the hotfix or update installed for Windows 7, you will hear the tone when using IE 9 for playback.

OS Resampler Test - HE-AAC - 48 kHz

OS Resampler Test - AAC-LC - 48 kHz

OS Resampler Test - HE-AAC - 44.1 kHz

OS Resampler Test - AAC-LC - 44.1 kHz

Background Details

Hotfix: http://support.microsoft.com/kb/2653312

Fraunhofer is not the "discoverer" of this issue. It can be found on HydrogenAudio, for example: (https://hydrogenaud.io/index.php/topic,86676.0.html)

Note this is not a codec problem, you can hear this on a wav file. The Microsoft KB entry says Windows 7 uses linear interpolation for the WaveOut resampling.

The problem is detailed in this post: https://social.msdn.microsoft.com/Forums/windowsdesktop/en-US/725546ce-57bf-40d0-b7aa-47e51de9c3ae/artifacts-on-windows-7-due-to-sample-rate-conversion-slightly-ot?forum=windowspro-audiodevelopment

We have found the problem, which is a bug in waveOut on Vista and Windows 7.  Windows XP does not have this problem.

In Windows XP, the sample rate conversion quality in KMixer is controlled by the Sound control panel:

https://docs.microsoft.com/en-us/windows-hardware/drivers/audio/types-of-sample-rate-conversion

In Windows Vista KMixer was removed and the audio engine was moved up into user mode.  The sample rate conversion quality meter was removed from the Sound control panel.

Media Foundation, DirectShow, DirectSound, and waveOut each do sample rate conversion slightly differently.  There is a bug in the waveOut sample rate conversion which results in a lower-quality sample rate conversion than was done in XP.


Matthew van Eerde

Other Resampling Tests

20 Hz - 20 kHz sweep, 20 seconds, 48 kHz sampling rate, AOT = 5, explicit signalling, backwards compatible

Download File

20 Hz - 20 kHz sweep, 20 seconds, 48 kHz sampling rate, AOT = 2

Download File

Original Wave File

Download File