From 9351e497529befc15cbe28a77200c3c716629941 Mon Sep 17 00:00:00 2001 From: rekado Date: Mon, 29 Jul 2013 22:03:12 +0800 Subject: fix off-by-one error --- src/mdaPianoVoice.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/mdaPianoVoice.cpp b/src/mdaPianoVoice.cpp index 2b70c3e..08a3aa4 100644 --- a/src/mdaPianoVoice.cpp +++ b/src/mdaPianoVoice.cpp @@ -192,7 +192,9 @@ void mdaPianoVoice::render(uint32_t from, uint32_t to) { frac += delta; // integer-based linear interpolation pos += frac >> 16; frac &= 0xFFFF; // why AND it with all ones? - if(pos > end) pos -= loop; // jump back to loop sample + if (pos >= end) { + pos -= loop; // jump to loop point in sample + } #ifdef PIANO i = samples[sample_index].buffer[pos]; -- cgit v1.2.3