Technical features new to Windows Vista: Difference between revisions

Content deleted Content added
Rescuing 50 sources and tagging 0 as dead.) #IABot (v2.0.8
Audio: rm copyvio
Line 30:
| url-status=live
}}</ref>
The new audio stack runs at user level, thus increasing stability. The Windows Vista audio engine is designed to run faster than the Windows XP audio engine, and has tighter requirements on audio buffer position accuracy. Also, the new [[Universal Audio Architecture]] (UAA) model has been introduced, replacing [[Windows Driver Model|WDM]] audio, which allows compliant audio hardware to automatically work under Windows without needing device drivers from the audio hardware vendor.
 
There are three major APIs in the Windows Vista audio architecture:
Line 42:
Applications communicate with the audio driver through ''Sessions'', and these ''Sessions'' are programmed through the ''Windows Audio Session API (WASAPI)''. In general, WASAPI operates in two modes. In ''exclusive mode'' (also called ''DMA mode''), unmixed audio streams are rendered directly to the audio adapter and no other application's audio will play and signal processing has no effect. Exclusive mode is useful for applications that demand the least amount of intermediate processing of the audio data or those that want to output compressed audio data such as [[Dolby Digital]], [[Digital Theatre Systems|DTS]] or [[Windows Media Audio|WMA Pro]] over [[S/PDIF]]. WASAPI exclusive mode is similar to [[kernel streaming]] in function, but no kernel mode programming is required. In ''shared mode'', audio streams are rendered by the application and optionally applied per-stream audio effects known as ''Local Effects (LFX)'' (such as per-session volume control). Then the streams are mixed by the global audio engine, where a set of ''global audio effects'' (GFX) may be applied. Finally, they're rendered on the audio device.
 
After passing through WASAPI, all host-based audio processing, including custom audio processing, can take place (sample rate conversion, mixing, effects). Host-based processing modules are referred to as ''Audio Processing Objects'', or ''APOs''. All these components operate in user mode. The, only portionthe ofaudio this architecture thatdriver runs in kernel mode is the audio driver (which contains the ''Port Class'' driver, the vendor ''Miniport'' driver and the vendor [[Hardware Abstraction Layer|HAL]]).
The higher-level APIs such as the Waveform-Audio Interface (waveXxx functions) and [[DirectSound]] use shared mode, which results in pre-mixed [[PCM]] audio that is sent to the driver in a single format (in terms of sample rate, bit depth and channel count). This format is configurable by the end user through Control Panel.
 
The Windows Kernel Mixer ([[KMixer]]) is completely gone. There is no direct path from DirectSound to the audio drivers; DirectSound and [[MultiMedia Extensions|MME]] are emulated as Session instances. Sincerather thethan wholebeing pointdirectly ofconnected DirectSoundto accelerationthe isaudio todriver. allowThis hardwaredoes tohave processthe unmixedeffect audioof content,preventing DirectSound cannotfrom bebeing hardware-accelerated in this audio model, and DirectSound3Dcompletely isremoves notsupport supportedfor atDirectSound3D all, which also breaksand [[Environmental Audio Extensions|EAX extensions]].,<ref name=creativeKB25937>{{Cite web |url=http://support.creative.com/kb/ShowArticle.aspx?sid=25937 |title=Creative Technology - Support - Audio in Windows Vista |access-date=2011-09-15 |archive-date=2011-09-03 |archive-url=https://web.archive.org/web/20110903062241/http://support.creative.com/kb/ShowArticle.aspx?sid=25937 |url-status=live }}</ref> however APIs such as [[Audio Stream Input/Output|ASIO]] and [[OpenAL]] are not affected.
After passing through WASAPI, all host-based audio processing, including custom audio processing, can take place (sample rate conversion, mixing, effects). Host-based processing modules are referred to as ''Audio Processing Objects'', or ''APOs''. All these components operate in user mode. The only portion of this architecture that runs in kernel mode is the audio driver (which contains the ''Port Class'' driver, the vendor ''Miniport'' driver and the vendor [[Hardware Abstraction Layer|HAL]]).
 
The Windows Kernel Mixer ([[KMixer]]) is completely gone. There is no direct path from DirectSound to the audio drivers; DirectSound and [[MultiMedia Extensions|MME]] are emulated as Session instances. Since the whole point of DirectSound acceleration is to allow hardware to process unmixed audio content, DirectSound cannot be accelerated in this audio model, and DirectSound3D is not supported at all, which also breaks [[Environmental Audio Extensions|EAX extensions]].<ref name=creativeKB25937>{{Cite web |url=http://support.creative.com/kb/ShowArticle.aspx?sid=25937 |title=Creative Technology - Support - Audio in Windows Vista |access-date=2011-09-15 |archive-date=2011-09-03 |archive-url=https://web.archive.org/web/20110903062241/http://support.creative.com/kb/ShowArticle.aspx?sid=25937 |url-status=live }}</ref> APIs such as [[Audio Stream Input/Output|ASIO]] and [[OpenAL]] are not affected.
 
===Audio performance===
Line 53 ⟶ 51:
Windows Vista also includes a new Multimedia Class Scheduler Service (MMCSS) that allows multimedia applications to register their time-critical processing to run at an elevated thread priority, thus ensuring prioritized access to CPU resources for time-sensitive DSP processing and mixing tasks.
 
For audio professionals, a new WaveRT port driver has been introduced that strives to achieve real-time performance by using the multimedia class scheduler and supports audio applications that reduce the latency of audio streams. Consequently,All user-mode applications can completely govern streamsthe ofexisting audio withoutAPIs anyhave codebeen executionre-plumbed in the kernel during runtime. WaveRT allows the user mode application directand accessemulated to theuse internalthese audioAPIs hardwareinternally, buffers and sample position counters (data in the memory that is mapped to theall audio hardwaregoes DMAthrough engine).these Itthree allows applications to poll the current position in the DMA memory window that the hardware is accessing. WaveRT also supports the notion of a hardware-generated clock notification event, similar to the ASIO APIAPIs, so that most applications need"just not poll for current position if they don't want towork".
 
All the existing audio APIs have been re-plumbed and emulated to use these APIs internally, all audio goes through these three APIs, so that most applications "just work".
 
====Issues====