Low Latency Sound Effect support
Needed to create pro level sequencers, synths and music creation related apps!
In the first Windows 10 release in 2015, we added support for low-latency audio. It took the form of driver updates, API changes, and a brand new UWP API.
First, we worked with hardware manufacturers to ensure that the drivers and firmware for modern i5 and above PCs and the Windows 10 generation (950) phones, have smaller buffers and are more optimized for low-latency audio. Current Surfaces and the Lumia 950 phones are some examples of devices with those capabilities.
Second, we updated the WASAPI API to make it easy to request low latency and have better control over latency characteristics without going into exclusive mode.
Third, we added the AudioGraph API to enable UWP apps on Windows 10 devices to be able to generate audio at runtime, easily play back samples, and also create and use effects all as part of an app. There are pre-built effects as well as the right APIs for you to use to build your own.
As a bit of a bonus, we also have a new MIDI API in Windows 10. It’s multi-client if all apps with the port open are using the new API. Additionally, with the release this summer, you can also use Bluetooth MIDI peripherals (like pedals, keyboards, etc.) with it.
If you have a pro audio app in progress, and have questions, please feel free to contact me at pete dot brown at microsoft dot com. This is a place where there’s lots of room for innovation on the platform.
This kind of thing is crucial to get right, since if the OS does not support it, there is no way to get around it through 3rd-party software. If Microsoft wants "modern" apps to actually *be* modern and to be viable, they need to not shut out whole classes of applications.
We're getting ever-closer to the Windows 10 release. It'd be really great to have this feature make it in by general availability, particularly if universal apps are expected to be sort of a big deal for Win10.
So... let's fix whatever causes issues with WASAPI exclusive mode in "modern" apps maybe? Or let us know if it's in Microsoft's work item queue?
Windows 10 seems like a good place to introduce real-time audio to 'modern' apps. *nudge nudge* Right?
2015 and not much movement on this. Not having low latency audio reflects on the internals of the rest of the platform. If this can't be done right, what else isn't done right? Windows Store, Windows Phone and the Windows Runtime will once again be in last place as a result of this neglect. Who needs a kick in the behind here? Upper management? Middle management? Or the big bosses? Joe Belfiore isn't getting the job done!!
Low latency audio in all Windows would be nice and extremely useful to all musicians. I would very much to have low latency audio in C# on Windows Phone. Please Microsoft, make it happen.
3 years old and still relevant. <10ms roundtrip (microphone to speaker) would be very nice to have.
I don't expect professional level (<5ms for guitar, etc. <1ms for drums), and professionals probably aren't the target audience anyway, but the latency available right now just isn't useable for real-time DSP.
VOIP apps could benefit from better audio latency as well.
*should be easier for Microsoft (at least with future 'Nokia' devices!).
Enable better audio latency via exclusive-mode streams - using WASAPI w/ Multimedia Class Scheduler Service (MMCSS) API or equivalent; target <5ms latency for best result (allowing real-time audio apps).
Windows Phone is particularly deficient compared to other platforms in the area of real-time audio. With greater control over hardware than Google, one would think that accomplishing this should not be easier for Microsoft. Microsoft can easily bring future audio performance on par with Apple if it wanted to, and it should if it wants a piece of the audiophile user base.
WP has the potential of being the most sophisticated mobile OS (with the experience and expertise of Microsoft)! Without proper real time audio, there is a large range of possible and attractive applications unavailable to this OS, while other mobile OS have that capability.
Have you looked into Windows Media Foundation?
Antoine Cloutier commented
Ironically, WP7 had better latency figures than WP8. With WP8, the XNA audio APIs have apparently been shoved further up the audio stack: WP7 apps perform much worse on WP8 in this regard. (Of course, XNA being shelved/killed, this kind of performance degradation was to be expected.)
On Windows Phone 8, WASAPI is the bottommost API one can use to capture and render audio. On the Windows desktop, you can achieve very low latency figures (< 5ms) with this API (in exclusive mode). On Windows Phone however, the best latency figure you can get is around 70ms (from code execution to render) or 140ms (from capture to render). This is really bad for real-time audio. Below 20ms, the brain perceives delayed audio as some kind of reflection of the original impulse (akin to reverberation). Above 20ms, the delayed audio is perceived as a distinct echo, which is totally inappropriate when playing an instrument. The lack of low-latency audio in the platform is a major roadblock in the creation of a serious musical app.
Until Microsoft prioritizes this, iOS will keep enjoying all the nice audio and music creation apps (and Android too, they're catching up fast). And WP will only get the lamer ones. If we're lucky. WinRT/WinPRT people, take action please!
I'd be happy to further discuss this with Microsoft. I have apps that I'd like to bring to the platform.