Better audio APIs for musician apps/tools
If we could get better support in the XNA libraries for some of these audio functions, it would open up some cool opportunities to develop apps for musicians. Couple of things I do regularly with my band that I’d love to do with my phone (currently not possible with the API set on the phone):
1) Adjust pitch during playback for songs in my media library (example: single might use this to find a better key to perform a song). Today, I have to pull the songs into something like Reaper, change the key, export it back out, sync to phone. I’d love to just do this on the phone.
2) Adjust payback speed – lots of musicians will do this to study a complex part in a song to break it down and analyze what the original artist was doing (e.g. – think Neal Peart). For some reason, we decided not to implement playback speed support on WP7.
The only way I can do either today is to push off the data to the cloud and manipulate it…. which is way too slow to be practical. The phone is plenty capable if the APIs were exposed to do it.
For Windows 10, we created a new set of Audio APIs (and MIDI APIs) targeted towards musician and pro-audio-focused apps (although certainly not restricted to that use). The new AudioGraph API sits on top of WASAPI, and makes powerful and simple audio creation and editing scenarios possible from all UWP supported languages. You can build effects processors, synthesizers, custom players, and much more. We have built-in effects and an architecture that makes it simple to either load samples from disk, or provide audio buffer data yourself, all while using the lowest possible audio latency. Additionally, the architecture makes it simple to output the results to a file.
Build 2015 session:
Summer NAMM 2015 Keynote covering this and many other audio enhancements in Windows 10
Windows provides the features you mention as part of the Windows Media Foundation. You can access MF APIs natively on Windows Phone.
Just having access to a decoded PCM bitstream like frontier suggested or even the encoded data would help a lot.
What would be excellent here is if one could obtain the decoded audio bitstream from a song straight from the XNA mediaplayer class (or song and video classes). Also having the ability to push that bitstream easily to the speaker.
Then you could slow it down, speed it up, apply a filter or even stream it to another device.
I need this for an app idea I had.
I would add MIDI support to this list, unless I missed it somehow.
Just add XACT support, that lets game developers write cross platform code between windows, xbox, and wp7 without having to resort to the soundeffect API