Android and iOS audio subsystems are not, in any way, equivalent. Audio on iOS is a first-class service - whereas its more of a tack-on, in Android. This has changed over the years, true, as the Android devs attempt to build better multimedia experiences for the device manufacturers - but it still remains a fact that Android audio is sub-par compared with iOS and you should not expect the same quality on Android as you experience on iOS.
That said, without looking at any code, its very difficult to pinpoint your issue - what Android device are you using for testing, which version of Android, and so on? Are you using a device which the manufacturer has set up to do re-sampling? These are variables that can have a big impact on perceived Android performance.
Yes, these are standard consumer devices. It’s possible the manufacturer’s audio pipeline is performing resampling internally, which may contribute to the crackling.
Interesting. Well I’m afraid its not going to be too easy to help you debug this without code. Can you produce a version of your project that you can share, so folks can see whats going on?
For security reasons, I can’t share the project code, but when audio is played without DSP and resampling, it sounds clear on Android. This indicates the main issue is with DSP effects. I’ve already set the audio device buffer size up to 2048 and even hardcoded the sample rate to 48000 and 44100, but the result remains the same when testing with DSP and resampling. DSP is essential since it’s a core part of our project.
Well, alas, there is no indication that this is a bug in JUCE and may very well just be a bug in your DSP code. Until you can share that, there’s not much help that can be offered. I would suggest breakpoint-debugging your buffers and be sure they’re behaving as you expect them to in processBlock() ..