I think you should add a special case for mono here as well (e.g. for mono microphones and aux inputs that we support in 1.12.0). 

My intuition is that a loop that just does the mono conversion would be faster than the else block. I haven't measured it though but that seems like it would easily get vectorized.