Movatterモバイル変換


[0]ホーム

URL:


Jump to content
WikipediaThe Free Encyclopedia
Search

Windows legacy audio components

From Wikipedia, the free encyclopedia
Obsolete Microsoft Windows audio APIs
This article includes a list ofgeneral references, butit lacks sufficient correspondinginline citations. Please help toimprove this article byintroducing more precise citations.(September 2009) (Learn how and when to remove this message)

This article describes audio APIs and components inMicrosoft Windows which are now obsolete or deprecated.

Multimedia Extensions (MME)

[edit]

The MME API or the Windows Multimedia API (also known asWinMM) was the first universal and standardized Windows audio API. Wave sound events played in Windows (up toWindows XP) and MIDI I/O use MME. The devices listed in theMultimedia/Sounds and Audio control panel applet represent the MME API of thesound card driver.

The Multimedia Extensions (WaveIn/WaveOut interfaces) were released in autumn 1991 to supportsound cards, as well asCD-ROM drives, which were then becoming increasingly available. The Multimedia Extensions were released toOriginal Equipment Manufacturers (OEMs), mainly CD-ROM drive and sound card manufacturers, and added basicmultimedia support for audio input and output and aCD audio player application to Windows 3.0. The Multimedia Extensions' new features were not available in Windows 3.0 real mode, only in standard and 386 enhanced mode.Windows 3.1x would later incorporate many of its features. Microsoft developed theWindows Sound System sound card specification to complement these extensions.

In Windows 95/ME, MME lacks mixing multiple audio streams during playback and device sharing, so only one audio stream can be rendered at a time. But some sound card drivers can emulate more than one MME device (or support more than a single streaming client) so it could work with MME too. Starting from Windows 2000, MME supports playback device sharing (multi-client access) and can mix playback streams together. Starting from Windows XP, MME started to support recording device sharing.

In earlier Windows versions, MME supported up to two channels of recording, 16-bitaudio bit depth andsampling rates of up to 44100 samples per second with all the audio being mixed and sampled to 44100 samples per second.[citation needed] Starting from Windows 2000, MME supports up to 384000 samples per second, up to 8 channels, and up to 32 bits per sample.

Prior to Windows XP, the number of MME/WinMM device interfaces (waveIn, waveOut, midiIn, midiOut, mixer, and aux) is restricted to 10. This limit is raised from 10 to 32 in Windows XP.[1][2]

Device name length in MME is restricted to 31 characters so long device names may appear only partially.

Issues

[edit]

A fault in the MME WaveIn/WaveOut emulation was introduced in Windows Vista: if sample rate conversion is needed, audible noise is sometimes introduced, such as when playing audio in a web browser that uses these APIs. This is because the internal resampler, which is no longer configurable, defaults to a fast integer-basedlinear interpolation, which was the lowest-quality conversion mode that could be set in previous versions of Windows. The resampler can be set to a high-quality mode viaa hotfix for Windows 7 and Windows Server 2008 only.[3][4]

Audio Compression Manager

[edit]

Audio Compression Manager (ACM) is a Windowsmultimedia framework that manages audio codecs (compressor/decompressors).[5] ACM can also be considered an API specification. A codec must conform to the implicit ACM specification to work with Windows Multimedia. ACM files can be recognized by their filename extension.acm. ACM files also useRIFF-compatible filetypes such asWAV orAVI as a "wrapper" to store audio data encoded by any audio codec supported by ACM.

ACM is considered an outdated framework/API and Microsoft now encourages the use of at leastDirectShow. However, unlike ACM and the relatedVideo Compression Manager (VCM),DirectShow provides no means to encode files for end-users but requires developers to build end-to-end graphs for encoding content. ACM also does not supportVBR audio streams; therefore newer codecs likeMPEG-4AAC,Ogg Vorbis,FLAC etc. cannot be supported through ACM if using variable bitrates. Though many sources state the contrary, Ogg Vorbis does work well with the ACM, e.g. when embedded in a RIFF-compatible file (such as a WAV or AVI file as mentioned earlier), provided the Ogg Vorbis stream is encoded at a constant bitrate.

Windows comes with a number of ACM codecs pre-installed. For a list of these codecs, consultWAV file § Comparison of coding schemes.

ACM codecs are identified by a two-byte code (TwoCC) allocated by Microsoft.

DirectX Audio Libraries

[edit]

KMixer

[edit]
This section needs to beupdated. The reason given is: All the Windows versions mentioned here have been unsupported since at least 2010.. Please help update this article to reflect recent events or newly available information.(March 2025)

KMixer is theKernel Audio Mixer driver, a part ofWDM Audio inWindows 98 to Windows XP which handles the mixing of multiple sound buffers into an output.

The tasks performed by KMixer.sys:

  • Mixing multiplePCM audio streams
  • Format, bit-depth (also known as word-length) and sample-rate conversion
  • Speaker configuration and channel mapping

In Windows 98, Windows 2000 and Windows Me, the KMixer maximum sample rate is 100 kHz. In Windows XP SP1 and later, KMixer audio sampling rate supports a maximum of 200 kHz.[6][7][8]

Issues

[edit]

The KMixer was designed to aid the applications by relieving them from the need to perform the mixing of audio streams, especially on low-end sound cards that didn't support multiple sound streams. However, it introduced some significant problems.

First, thelatency of KMixer is around 30 ms[9] and it cannot be reduced, because this component sits just right above the port class audio driver, so every audio stream, including those issued byDirectSound (except in cases ofhardware mixing) and WinMM, come through the kernel mixer.[10] If the audio hardware supportshardware mixing (also known as hardware buffering or DirectSound hardware acceleration), DirectSound buffers directly to the rendering device.[11] Thus, if DirectSound streams usehardware mixing, KMixer is bypassed.[12]

In earlier releases like the original release of Windows 98, KMixer tried to mix every data format that passed through it, even those it did not support. It caused various problems with media players that tried to passAC3-encodedsurround sound streams throughS/PDIF output of the sound card to an externalhome cinemareceiver. This was corrected withWindows Me and provided as a hotfix for Windows 98 Second Edition and Windows 2000 SP2.[13] Starting with Windows Me, the waveOut, DirectSound, and DirectShow APIs support non-PCM formats such as AC-3 or WMA over S/PDIF and non-PCM data goes directly to the class driver instead of going through KMixer.

A new kernel-mode API,Direct Kernel Streaming, was also introduced in Windows 98 in order to bypass the KMixer and avoid problems associated with it.

KMixer does not alter the sound in the majority of cases.[6] Also, there are many ways to bypass KMixer without the need of an extra plugin to access DirectSound,ASIO, Direct Kernel Streaming orWASAPI. In Windows XP, for example, the usage ofDirectSound (which Winamp uses by default) with a hardware mixer is a way to bypass KMixer.[9]

KMixer was removed inWindows Vista. It is replaced by the user-mode WASAPI (Windows Audio Session API) Audio Engine which is part of therevamped audio architecture. The Audio engine can operate inShared mode orExclusive mode. In shared mode, mixing still takes place. Pre-mixed PCM audio is sent to the driver in a single format (in terms of sample rate, bit depth and channel count) that is configurable from the Sounds control panel. WASAPIExclusive mode bypasses the mixer, as does using third-party audio APIs likeOpenAL orASIO, which still have direct access to the hardware.[14]

Kernel Streaming

[edit]

Kernel Streaming or Direct Kernel streaming (Direct KS) is a technique that supportskernel-mode processing of streamed data. It enables efficient real-time streaming for multimedia devices such assound cards andTV tuner cards. Kernel streaming allows adevice driver to createDirectShow-like filters and pins inkernel mode, providing access to hardware, lowerlatency communication and still be used within a DirectShowfilter graph.

Kernel streaming was introduced in Windows 98. When the sound card uses a custom driver for use with the system supplied port class driverPortCls.sys or implements a mini-driver for use with the streaming class driver, applications can bypass the KMixer completely and use the kernel streaming interfaces instead to directly interact with audio driver and reduce latency. Windows 98 includes the first kernel streaming driver, Stream.sys. In Windows XP, Microsoft introduced another improved kernel streaming class driver, AVStream.

Music players such asJRiver Media Center, JPLAY,foobar2000, Audirvana Studio andWinamp supportkernel streaming. Compared to the regular "WaveOut method" inMicrosoft Windows, kernel streaming requires lessCPU time. This comes at the expense of bypassing theKMixer and Windows volume control. Kernel streaming also does not allow device sharing unless kernel-mode audio driver supports multiple clients.

Prior to Windows Vista, Kernel Streaming offered only a single client-to-drivercommunication protocol with buffer chain, as used in MME. Starting from Vista, new Real-Time Audio (RT Audio, not to be confused with the RTAudio codec) protocol is introduced, based on a singlecircular buffer. RT Audio protocol is implemented byWaveRT port driver in portcls.sys. In Vista and later versions, Audio Subsystem supports both protocols so it can interact with both legacy and new audio drivers. But most audio applications that use KS support only a single protocol (legacy in most cases) so they can communicate only with a single type of audio drivers.

See also

[edit]

References

[edit]
  1. ^Windows audio driver API basics
  2. ^Windows 2000 Device Interface Limits
  3. ^"Policy for Sample Rate Conversion of Audio Streams (Windows Drivers)".Dev Center - Hardware. Microsoft. Retrieved2012-01-17.
  4. ^"Artifacts on Windows 7 due to sample rate conversion".Windows Desktop Development Forums discussion thread. Retrieved2012-01-17.
  5. ^"Audio Compression Manager".Microsoft. May 30, 2018.
  6. ^ab"Policy for Mixing Audio Streams and Setting the Output Sample Rate". MSDN. Archived fromthe original on 2012-10-21. Retrieved2025-11-18.
  7. ^"Kmixer". Archived fromthe original on 2013-08-14. Retrieved2025-11-18.
  8. ^"What is "bitperfect", and what do I have to do for bitperfect playback?".Archived from the original on 2016-09-16. Retrieved2025-11-18.
  9. ^ab"KMixer Latency". MSDN. Retrieved2010-11-23.
  10. ^CakeWalk - Windows Pro Audio Roundtable
  11. ^DirectSound Driver Models
  12. ^Overview of DirectSound Hardware Acceleration
  13. ^Non-PCM Wave Formats and WDM Audio Drivers
  14. ^"Winamp OpenAL Output Plug-in". Retrieved2010-11-23.

External links

[edit]

Broken links

[edit]
Management
tools
Apps
Shell
Services
File systems
Server
Architecture
Security
Compatibility
API
Games
Discontinued
Games
Apps
Others
Spun off to
Microsoft Store
Graphics and UI
Audio
Multimedia
Web
Data access
Networking
Communication
Administration and
management
Component model
Libraries
Device drivers
Security
.NET
Software factories
IPC
Accessibility
Text and multilingual
support
Retrieved from "https://en.wikipedia.org/w/index.php?title=Windows_legacy_audio_components&oldid=1322946330"
Categories:
Hidden categories:

[8]ページ先頭

©2009-2025 Movatter.jp