render method
Implementation
void render(List<double> left, List<double> right) {
if (left.length != right.length) {
throw "The output buffers for the left and right must be the same length.";
}
var wrote = 0;
while (wrote < left.length) {
if (_blockWrote == synthesizer.blockSize) {
_processEvents();
_blockWrote = 0;
_currentTime += MidiFile.getTimeSpanFromSeconds(_speed * synthesizer.blockSize / synthesizer.sampleRate);
}
var srcRem = synthesizer.blockSize - _blockWrote;
var dstRem = left.length - wrote;
var rem = math.min(srcRem, dstRem);
synthesizer.render(left.slice(wrote, rem), right.slice(wrote, rem));
_blockWrote += rem;
wrote += rem;
}
}