Is the issue that BASS is pausing its output when the interruption notification with AVAudioSessionInterruptionWasSuspendedKey is received, and it shouldn't be?
Yes, that seems to be exactly the case.
If so, does calling BASS_Start in your own BASS_CONFIG_IOS_NOTIFY based interruption handler then fix the problem?
It doesn't seem to, no, and even if it did, we wouldn't be able to distinguish the "false" background interrupt from a real one, right? Because I think we'd only want to call BASS_Start during a fake one.
The timeline is:
1. Start app, init BASS, audio is paused, BASS is paused.
2. Put the app in the background
3. Try to resume playback from lock screen control center.
4. App starts up BASS and usually a fraction of a second of audio is heard, before...
5. BASS interrupt handler is called (falsely, because iOS is just like "hey, FYI i suspended you") and stops BASS. This is the main issue.
6. Even if I call BASS_Start here, it doesn't seem to make a difference (audio won't resume).
The BASS_CONFIG_IOS_NOTIFY option isn't really needed these days (since iOS 6), as apps are able to register for their own interruption notifications directly from iOS now, but you should use BASS_CONFIG_IOS_NOTIFY for the BASS_Start test above because it's guaranteed to be called after BASS has done its interruption handling.
I'm happy either way (BASS or our app handling it), but I think the issue is that with this bug, you can't disable BASS interrupt handling, right?
Let me know if you need more data or want me to try a build.