It isn’t something I’ve every sat-down to think about, TBH.
The audio device driver model implemented in the Intermorphic Sounds System (something I originally designed / wrote for ultra-low latency back when it was the Intent Sound System, which was the audio stack for Tao Group’s Intent mobile OS) is pretty simple.
It is a strict pull-based model, where the system works with a pre-rendered number of audio blocks (minimum required for no audio break-up). The device callbacks are made to the iSS mixer engine, which in turns makes callbacks to the various app components (I’m sure this is basically how the Juce system must work!).
The current configuration for Wotja looks to be:
- block size 1024 sample frames
- 44100 Hz
- 10 audio blocks pre-rendered
Just checked, and I’ve stuck with those settings since at least 2012; hasn’t been any need to change them. There is might not be any need to pre-render so many blocks these days.
We changed from 22 kHz to 44 kHz audio rendering for Android back in 2015, which is roughly also when we changed the synth units in the iSS to all render in stereo for all platforms.
Latency is therefore fairly high, but as you know there are a huge range of devices we all have to cater for on Android
Happy to give more info if I can be of assistance, as always.