We are currently estimating how the JUCE framework behaves in order to develop a generic architecture file for Faust (http://faust.grame.fr). Starting from a Faust source code (a textural .dsp file), the Faust compiler produces a self-contained C++ file with the actual DSP computation, to be “connected” to the audio architecture and widget system.
Over the years we have developed architecture files (on iOS, Android, OS X, Windows, Linux…) using either multi-platform frameworks (like QT…) or specific one (Java + JNI Audio code on Android, CoreAudio + Objective C on iOS…etc…).
Using JUCE could be a better solution and we are currently doing some tests. Developing a basic architecture file with sliders and buttons, we were able to deploy an OS X, iOS and Android. Behaviors are more or less OK on OS X and iOS, but quite unsatisfactory on Android (on a Motorola XT1068 run-on OS 5.02) : latency between action on the screen (hitting a button, moving sliders…) and the resulting sound is awfully long (almost 1 second probably…), when our “native” version was much better in this area.
Is this a known behavior? What could be the reasons for this? What test should be done to better understand what happens?
Thanks in advance for any advice.