diff --git a/src/gui/sampleEdit.cpp b/src/gui/sampleEdit.cpp index 9a6000820..9987d0a81 100644 --- a/src/gui/sampleEdit.cpp +++ b/src/gui/sampleEdit.cpp @@ -1340,8 +1340,8 @@ void FurnaceGUI::drawSampleEdit() { for (int i=0; idata8[crossFadeInput])*f1+((double)sample->data8[crossFadeOutput])*f2); - sample->data8[crossFadeOutput]=out; + double out=((double)sample->data8[crossFadeInput])*f1+((double)sample->data8[crossFadeOutput])*f2; + sample->data8[crossFadeOutput]=(signed char)CLAMP(out,-128,127); crossFadeInput++; crossFadeOutput++; } @@ -1351,8 +1351,8 @@ void FurnaceGUI::drawSampleEdit() { for (int i=0; idata16[crossFadeInput])*f1+((double)sample->data16[crossFadeOutput])*f2); - sample->data16[crossFadeOutput]=out; + double out=((double)sample->data16[crossFadeInput])*f1+((double)sample->data16[crossFadeOutput])*f2; + sample->data16[crossFadeOutput]=(short)CLAMP(out,-32768,32767); crossFadeInput++; crossFadeOutput++; }