Ableton Link with Unity & Fmod

Someone released a plug-in for Ableton Link and Unity here:

“Ableton Link is a new technology that synchronises musical beat, tempo, and phase across multiple applications running on one or more devices.” Many apps have integrated the SDK from Music to VJ apps.

I created a simple project in Unity, the Link plug-in and FMOD (with rhythmic music loop events).

The Unity stand-alone & iOS builds work fine. I tested with 3 devices iPhone 4s, Ipad Air 2, and a Mac with the same DSP buffer settings in FMOD’s RuntimeManager. Peers are detected over the network and thanks to the Link session they share a common tempo and quantized beat grid. (bpm, beat, phase, quantum are key: Audio and visuals are perfectly in sync on the 3 devices.

But Audio is slightly out of sync with other Link enabled apps (because no dynamic calculations are made regarding the audio buffer). Also probably because the loops are started from Unity’s Update Function (when they should be controlled by the audio thread?).

So here is my (a little bit vague, sorry) main QUESTION: Can someone please tell me if I will get away with the FMOD Studio API or will I have to use the Low Level API extensively and dig deep to get this to work with other apps ?



At the moment FMOD’s DSP Buffer size needs to be set before the system is initialized and cannot be changed at runtime. You could apply different sizes depending on platform/device but these would need to manually.

Using non-streamed sound and loading sample data could also help to reduce any delay or desyncing, but I would think that it would also be effected by individual device used.

Once an event is started, even in Unity’s update, it should then be put on the FMOD audio thread and controlled from there.

As for the Studio v Low Level API, you can access both the API’s through the Unity Integration, although in C#.