Hang on, no… That’s not how it’s supposed to be used. The channels array doesn’t contain pointers to the start of each channel, you’d need to take into account the startSample value which needs to be added to each one. Just returning a raw array like that would be very easy to use incorrectly.
Sorry, I’m not sure I understand what you’re asking for with the second bit… You’re suggesting that should be an AudioBlock method? Why not just use your own free function?
for the case you missed it, there is a process method already in AudioBlock
By the way, why does the process uses references, i think AudioBlock is more a copyByValue-Class.
The problem is that when it references, you can’t use the AudioBlock-Constructor in the parameters, Visual Studio warns because of non-standard conversion, because references have to be used with L-values.