This looks so obvious I feel like I’m missing something… Toying around with clang20’s rtsan, I noticed that AudioProcessorPlayer::audioDeviceIOCallbackWithContextacquires a (real, blocking) lock. Obviously it is intended to be called on the audio thread. Is this really justified? Same thing goes for AudioProcessor::callbackLock btw. Sounds like a SpinLock job to me… what am I missing?