Unfortunately the new API does not provide programmers with access to the actual audio data of songs in the iTunes library. It only gives you basic playback control, like the functionality present in the iPod app. Therefore we cannot mix iTunes library content into FMOD.
Also please be aware that iPhone 3.0 SDK is currently pre-release software and should not be discussed publicly as per the terms of the Apple iPhone SDK agreement.
Just to be sure I’ve understood the implications of this, does this mean that you can’t use FMOD/getSpectrum to create a music visualizer for the iPhone?
I.e. you can’t access your library playlist through FMOD and then run getSpectrum on whatever’s currently playing?
No, to do spectrum analysis of a song we need access to the raw sound data. When you use the new iPod playlist API you are telling the OS to play the sound not FMOD. There is no way to get that sound data into FMOD so we can’t play it (or do filtering / analysis).
Also to clarify your last point, there is no way in the API to get the data of "what’s playing currently", so we can’t hook that and give analysis of it.
If Apple change their decision on providing access to iTunes sound data, we will definitely provide the functionality you require, but at the moment we are bound by the limitations of the SDK.
Thanks for taking the time to clarify this, Mathew.
I suppose Apple’s decision to restrict read/write access to the iPod library makes sense from a DRM perspective. With full access, it wouldn’t take long for someone to make an application that could copy music from one iPhone/iPod Touch to another.
Conclusion: If a music visualizer will ever see the light of day on the iPhone, it will have to be an official Apple application with custom access rights.
Thanks for that pointer. It looks interesting, although it is "not guaranteed for real-time operation" so streaming might be a problem. Looks like pre-loading the audio data might work.
Are you considering adding support for this API to FMOD, so that we can use (for example) Channel::getWaveData() on the data?
Has anybody out there used this API yet, inside or outside of an FMOD-based app?
Thank you very much,
Please login first to submit.