diff --git a/src/engine/playback.cpp b/src/engine/playback.cpp index 9555c5507..ac1c555b9 100644 --- a/src/engine/playback.cpp +++ b/src/engine/playback.cpp @@ -1173,8 +1173,8 @@ void DivEngine::nextBuf(float** in, float** out, int inChans, int outChans, unsi if (sPreview.sample>=0 && sPreview.sample<(int)song.sample.size()) { DivSample* s=song.sample[sPreview.sample]; - const bool pBeginVaild=sPreview.pBegin>=0 && sPreview.pBeginsamples; - const bool pEndVaild=sPreview.pEnd>=0 && sPreview.pEndsamples; + const bool pBeginVaild=sPreview.pBegin>=0 && sPreview.pBegin<(int)s->samples; + const bool pEndVaild=sPreview.pEnd>=0 && sPreview.pEnd<(int)s->samples; const int loopStart=pBeginVaild?sPreview.pBegin:s->loopStart; const int loopEnd=pEndVaild?sPreview.pEnd:(int)s->loopEnd; for (size_t i=0; iisLoopable() && sPreview.posloopEnd) && ((int)sPreview.pos)isLoopable() && ((int)sPreview.pos)loopMode) { case DIV_SAMPLE_LOOPMODE_FORWARD: sPreview.dir=false; @@ -1212,7 +1212,7 @@ void DivEngine::nextBuf(float** in, float** out, int inChans, int outChans, unsi } } } else { - if ((s->isLoopable() && (int)sPreview.pos>=s->loopStart) && ((int)sPreview.pos)>=loopEnd) { + if (s->isLoopable() && ((int)sPreview.pos)>=loopEnd) { switch (s->loopMode) { case DIV_SAMPLE_LOOPMODE_FORWARD: sPreview.dir=false;