Mono ogg files on a different sample rate play through wrong channels with ChannelVolume
When playing a mono ogg file that is a different sample rate than your output device's through ChannelVolume the audio switches between the left and right channels. (I think it has to do with compression because it usually happens on the beat of a song)
I've narrowed the issue down to SampleRateConverter's Iterator.next() function, but I don't know much about converting sample rate so I'm lost as to where the problem actually is.
This issue could be related to the lower level decoding library lewton, but since the ogg plays perfectly fine when the sample rates match, I think it's related to SampleRateConverter in rodio.
I found this issue when using Windows 10 with my output sample rate set to 48000 in the sound settings. I was trying to play a 44100 Hz sound through the SpatialSink, which in turn uses ChannelVolume.
Here's a minimal repro-repo: https://github.com/SpiralP/rust-rodio-samplerate-bug
Thanks!
I fixed some issues like this in #249 which might help but I suspect this is a different issue with the same root cause of generated samples not respecting the number of channels. I suspect Rodio could benefit from switching to using the "sample" crate's Frame trait to avoid this issue at the type level.