Content deleted Content added
Flod logic (talk | contribs) m Tag correct text as {{not a typo}} for automated spell checkers (including Wikipedia:Typo Team/moss) |
m →Issues: HTTP to HTTPS for SourceForge |
||
(8 intermediate revisions by 5 users not shown) | |||
Line 10:
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
Prior to Windows XP, the number of MME/WinMM device interfaces ({{Not a typo|waveIn}}, {{Not a typo|waveOut}}, midiIn, midiOut, mixer, and aux) is restricted to 10. This limit is raised from 10 to 32 in Windows XP.<ref>[http://www.staudio.de/kb/english/drivers/ Windows audio driver API basics]</ref><ref>[http://msdn.microsoft.com/en-us/library/ff538956(v=VS.85).aspx Windows 2000 Device Interface Limits]</ref>
Line 17:
===Issues===
A fault in the MME {{Not a typo|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-based [[linear interpolation]]
==Audio Compression Manager==
'''Audio Compression Manager (ACM)''' is a Windows [[multimedia framework]] that manages audio codecs (compressor/decompressors).<ref>{{cite web|title=Audio Compression Manager |url=https://docs.microsoft.com/en-us/windows/desktop/Multimedia/audio-compression-manager |publisher=[[Microsoft]] |date=May 30, 2018}}</ref> 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 <code>.acm</code>. ACM files also use [[Resource Interchange File Format|RIFF]]-compatible filetypes such as [[WAV]] or [[Audio Video Interleave|AVI]] 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 least [[DirectShow]]. However, unlike ACM and the related [[Video for Windows|Video 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 support [[Variable bitrate|VBR]] audio streams; therefore newer codecs like [[MPEG-4]] [[Advanced Audio Coding|AAC]], [[Vorbis|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, consult {{section link|WAV file|Comparison of coding schemes}}.
Line 31:
*[[DirectSound]]
*[[DirectMusic]]
==KMixer==
{{update|section|date=March 2025|reason=All the Windows versions mentioned here have been unsupported since at least 2010.}}
'''KMixer''' is the ''Kernel Audio Mixer'' driver, a part of [[Windows Driver Model|WDM]] Audio in [[Windows 98]] to Windows XP which handles the mixing of multiple sound buffers into an output.
Line 44:
| url=http://msdn.microsoft.com/en-us/library/ff537756.aspx
| title=Policy for Mixing Audio Streams and Setting the Output Sample Rate
| accessdate=2010-11-23 |url-status=dead
| publisher=MSDN
}}{{dead link|date=March 2025}}</ref><ref name="Benchamark_kmixer">{{cite web
| url=http://www.benchmarkmedia.com/wiki/index.php/Kmixer
| title=Windows Kmixer |url-status=usurped
| accessdate=2010-11-23
}}{{dead link|date=March 2025}}</ref><ref name="Bitperfect_Googlecode">{{cite web
| url=http://code.google.com/p/cmediadrivers/wiki/Bitperfect |url-status=dead
| title=What is "bitperfect", and what do I have to do for bitperfect playback?
| accessdate=2010-11-23
}}{{dead link|date=March 2025}}</ref>
===Issues===
Line 66:
}}</ref> and it cannot be reduced, because this component sits just right above the port class audio driver, so every audio stream, including those issued by [[DirectSound]] (except in cases of [[hardware mixing]]) and WinMM, come through the kernel mixer.<ref name=CakeWalkKS>[http://www.cakewalk.com/DevXchange/article.aspx?aid=114 CakeWalk - Windows Pro Audio Roundtable]</ref> If the audio hardware supports [[hardware mixing]] (also known as hardware buffering or DirectSound hardware acceleration), DirectSound buffers directly to the rendering device.<ref>[http://msdn.microsoft.com/en-us/library/windows/desktop/ee416769(v=vs.85).aspx DirectSound Driver Models]</ref> Thus, if DirectSound streams use [[hardware mixing]], KMixer is bypassed.<ref>[http://msdn.microsoft.com/en-us/library/windows/hardware/ff537603(v=vs.85).aspx Overview of DirectSound Hardware Acceleration]</ref>
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 pass [[Dolby
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.
Line 73:
KMixer was removed in [[Windows Vista]]. It is replaced by the user-mode WASAPI (Windows Audio Session API) Audio Engine which is part of the [[Technical features new to Windows Vista#Audio|revamped audio architecture]]. The Audio engine can operate in ''Shared mode'' or ''Exclusive 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. WASAPI ''Exclusive mode'' bypasses the mixer, as does using third-party audio APIs like [[OpenAL]] or [[Audio Stream Input/Output|ASIO]], which still have direct access to the hardware.<ref name="OpenAL_output">{{cite web
| url=
| title=Winamp OpenAL Output Plug-in
| accessdate=2010-11-23
Line 83:
Kernel streaming was introduced in Windows 98. When the sound card uses a custom driver for use with the system supplied port class driver ''PortCls.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 as [[JRiver Media Center]], JPLAY, [[foobar2000]], Audirvana Studio and [[Winamp]] support [[Kernel (
Prior to Windows Vista, Kernel Streaming offered only a single client-to-driver [[communication protocol]] with buffer chain, as used in MME. Starting from Vista, new Real-Time Audio ('''RT Audio''', not to be confused with the
==See also==
|