Microsoft Windows Audio Sample Rate Converter Performance
Windows XP / 7 / 8
Windows Versions 5.1 / 6.1 / 6.2

Sweep Files - DC-Nyquist 44.1kHz/48kHz
Play/Record through Windows MME Wave I/O API

Measurements were made using Virtual Audio Cable 4.10, eliminating any potential hardware driver issues.
Windows Media Player was used to play the sweep files.
A Lynx Studio Record Application was used to Record the files through the Windows Audio Kernel using the Windows MME Wave I/O APIs.
Sweep Files were generated using Katsura AudioTest for Mac, as we are unaware of any Windows software with this level of accuracy. (Maybe we'll write one someday.)

4 Sample Rates are indicated on each sweep title.

  1. Test File Play Sample Rate
  2. Windows Play Sample Rate
  3. Windows Record Sample Rate
  4. Record App Sample Rate

 

CONCLUSION
There is a gross problem with the Windows 7 RECORD Sample Rate Converter. This problem actually dates back to Windows Vista, and is also a problem with Windows Server 2008. This problem causes spectral contamination of the audio reducing performance to that approximating 8-bit audio. When using a record or encoder capture application that uses the Windows MME Wave I/O API's, as most Windows audio applications do, and the requested audio sample rate does not match the Windows audio device sample rate, Windows invokes sample rate conversion, and the captured audio data is subject to this poor performance. This poor performance is not acceptable, especially for professional audio applications.

Windows Vista was released with this problem back in 2006, November. It has finally been addressed in Windows 8 Pre-Release. We have contacted Microsoft about this problem numerous times as MSDN Developers, requesting a Hotfix and a release schedule to be included in a Hotfix and Service Pack for Windows 7 and Server 2008 R2.

After supplying Microsoft with all the necessary technical and business case details on this issue, on 2011/12/08, we have finally received a Microsoft Hotfix Test Build for the Windows 7/Server 2008 R2 SRC problem.

The official Mocrisoft Hotfix for the Sample Rate Converter problem is available here:
http://support.microsoft.com/kb/2653312

Users of Microsoft Windows for live audio recording or encoding are urged to apply this Hotfix to improve the sample rate converter performance. This Hotfix will NOT be pushed as a Windows Update. It will more than likely be part of Windows 7/Server 2008 R2 SP-2.

The performance results are excellent and plotted below. Scroll to the right for all plots. They are best viewed in dim light with a good display to observe the low level components, or lack thereof now...

We would like to thank the the following fine folks at Microsoft for help in getting this resolved:
Matthew van Eerde
David Bristol
Frank Oliver
Mahatab Ur Rashid
Lisa Wilkin
and anyone else that helped.

The professional audio and broadcast community is eternally grateful.
Thank you Microsoft!

 

Copyright ©2011 Modulation Index, LLC Greg Ogonowski
All Rights Reserved.


WINDOWS XP

 


xp_sweep-lin_44-44-44-44
No Sample Rate Conversion


WINDOWS 7

 


w7_sweep-lin_44-44-44-44
No Sample Rate Conversion


 


WINDOWS 7 with SRC Hotfix

 


w7-hotfix_sweep-lin_44-44-44-44
No Sample Rate Conversion


WINDOWS 8 Pre-Release

 


w8_sweep-lin_44-44-44-44
No Sample Rate Conversion

 


xp_sweep-lin_44-44-44-48
Record Sample Rate Conversion



w7_sweep-lin_44-44-44-48
Record Sample Rate Conversion - Excessive spectral contamination


 


w7-hotfix_sweep-lin_44-44-44-48
Record Sample Rate Conversion



w8_sweep-lin_44-44-44-48
Record Sample Rate Conversion



xp_sweep-lin_44-48-48-44
Play and Record Sample Rate Conversion



w7_sweep-lin_44-48-48-44
Play and Record Sample Rate Conversion - Excessive spectral contamination


 


w7-hotfix_sweep-lin_44-48-48-44
Play and Record Sample Rate Conversion

 


w8_sweep-lin_44-48-48-44
Play and Record Sample Rate Conversion

 


xp_sweep-lin_44-48-48-48
Play Sample Rate Conversion



w7_sweep-lin_44-48-48-48
Play Sample Rate Conversion


 



w7-hotfix_sweep-lin_44-48-48-48
Play Sample Rate Conversion

 


w8_sweep-lin_44-48-48-48
Play Sample Rate Conversion

 


xp_sweep-lin_48-44-44-44
Play Sample Rate Conversion



w7_sweep-lin_48-44-44-44
Play Sample Rate Conversion


 



w7-hotfix_sweep-lin_48-44-44-44
Play Sample Rate Conversion

 


w8_sweep-lin_48-44-44-44
Play Sample Rate Conversion

 


xp_sweep-lin_48-44-44-48
Play and Record Sample Rate Conversion



w7_sweep-lin_48-44-44-48
Play and Record Sample Rate Conversion - Excessive spectral contamination



w7_sweep-lin_48-44-44-48
Play and Record Sample Rate Conversion - Excessive spectral contamination



w7-hotfix_sweep-lin_48-44-44-48
Play and Record Sample Rate Conversion

 


w8_sweep-lin_48-44-44-48
Play and Record Sample Rate Conversion

 


xp_sweep-lin_48-48-48-44
Record Sample Rate Conversion



w7_sweep-lin_48-48-48-44
Record Sample Rate Conversion - Excessive spectral contamination



w7_sweep-lin_48-48-48-44
Record Sample Rate Conversion - Excessive spectral contamination



w7-hotfix_sweep-lin_48-48-48-44
Record Sample Rate Conversion

 


w8_sweep-lin_48-48-48-44
Record Sample Rate Conversion

 


xp_sweep-lin_48-48-48-48
No Sample Rate Conversion



w7_sweep-lin_48-48-48-48
No Sample Rate Conversion


 



w7-hotfix_sweep-lin_48-48-48-48
No Sample Rate Conversion

 


w8_sweep-lin_48-48-48-48
No Sample Rate Conversion