audioIODeviceCallback vs ProcessBlock vs process(): Why?

Well said. Consider that JUCE is, what, 15 years old now?

Thing is, each of those signatures make sense when you understand the surrounding context and related back-end aspects. More importantly, even if the signatures could be unified, changing those really deep APIs in one foul swoop would be a massive headache - not only would be it be huge pain in the ass for Roli to get right, the users are going to have to fix any products of theirs based on the library.

Roli provides insights on some of the differences in a couple posts:

1 Like