SteroPannerNode handled mono files correctly, but apparently panning is not the same as balance.
Eventually I found a work around [here](https://github.com/WebAudio/web-audio-api/issues/975#issue-177242377). The idea is to use a dummy GainNode before the channel splitter to handle the up-mixing before the split is applied.
Tested a mono file as well as left/right balance on Chrome, Firefox, and Safari on Mac desktop.