Rewrite player using the callback-based ScriptProcessorNode instead of multiple timestamp-scheduled AudioBufferSourceNode.
Let WebAudio API handle the sample rate and buffer size selection automatically.