diff --git a/README.md b/README.md index 6276bbb..ab33096 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# SickoCV v2.6.4 +# SickoCV v2.6.5 VCV Rack plugin modules  diff --git a/changelog.md b/changelog.md index 96ce403..d06b58b 100644 --- a/changelog.md +++ b/changelog.md @@ -1,7 +1,11 @@ +### 2.6.5 (2024-01-28) +- sickoLooper1/sickoLooperX: fixed a bug when reverse overdubbing. +- sickoSampler/sickoSampler2: Allowed poly cable sources. + ### 2.6.4 (2024-01-27) - added sickoLooper1 and sickoLooperX modules. - sickoLooper3, sickoLooper5: added missing 'OVERDUB after REC' setting in preset storing. -Fixed a bug that doesn't restore 'Internal Clock Always ON' on startup. +fixed a bug that doesn't restore 'Internal Clock Always ON' on startup. ### 2.6.3 (2024-01-13) - sickoLooper: Allowed poly cable sources. diff --git a/extra/crossCompiler.md b/extra/crossCompiler.md index 29e2d44..4d4d487 100644 --- a/extra/crossCompiler.md +++ b/extra/crossCompiler.md @@ -1,11 +1,11 @@ -git tag v2.6.4-beta2 -m "create v2.6.4-beta2" +git tag v2.6.5-beta1 -m "create v2.6.5-beta1" git push origin --tags delete local tag -git tag -d v2.6.4-beta +git tag -d v2.6.5-beta delete remote -git push --delete origin v2.6.4-beta +git push --delete origin v2.6.5-beta ### How to build a VCVRack plugin with Github Action diff --git a/plugin.json b/plugin.json index 881c448..74aecc8 100644 --- a/plugin.json +++ b/plugin.json @@ -1,7 +1,7 @@ { "slug": "SickoCV", "name": "SickoCV", - "version": "2.6.4", + "version": "2.6.5", "license": "GPL-3.0-or-later", "brand": "Sickozell", "author": "Sickozell", diff --git a/src/SickoLooper1.cpp b/src/SickoLooper1.cpp index fba16af..5497002 100644 --- a/src/SickoLooper1.cpp +++ b/src/SickoLooper1.cpp @@ -3737,6 +3737,7 @@ struct SickoLooper1 : Module { trackBuffer[LEFT][samplePos] += inputValue[LEFT] * recFadeValue; trackBuffer[RIGHT][samplePos] += inputValue[RIGHT] * recFadeValue; + /* if (samplePos > 0) { trackBuffer[LEFT][samplePos-1] = (trackBuffer[LEFT][samplePos-2] + trackBuffer[LEFT][samplePos]) / 2; trackBuffer[RIGHT][samplePos-1] = (trackBuffer[RIGHT][samplePos-2] + trackBuffer[RIGHT][samplePos]) / 2; @@ -3746,6 +3747,20 @@ struct SickoLooper1 : Module { samplePos += sampleCoeff; else samplePos -= sampleCoeff; + */ + if (playingDirection == FORWARD) { + if (samplePos != 0) { + trackBuffer[LEFT][samplePos-1] = (trackBuffer[LEFT][samplePos-2] + trackBuffer[LEFT][samplePos]) / 2; + trackBuffer[RIGHT][samplePos-1] = (trackBuffer[RIGHT][samplePos-2] + trackBuffer[RIGHT][samplePos]) / 2; + } + samplePos += sampleCoeff; + } else { + if (samplePos != 0) { + trackBuffer[LEFT][samplePos+1] = (trackBuffer[LEFT][samplePos+2] + trackBuffer[LEFT][samplePos]) / 2; + trackBuffer[RIGHT][samplePos+1] = (trackBuffer[RIGHT][samplePos+2] + trackBuffer[RIGHT][samplePos]) / 2; + } + samplePos -= sampleCoeff; + } } break; @@ -3758,7 +3773,7 @@ struct SickoLooper1 : Module { if (xFadeValue < 0) { extraPlaying = false; } else { - if (extraPlayPos < trackBuffer[LEFT].size()) { + if (extraPlayPos >= 0 && extraPlayPos < trackBuffer[LEFT].size()) { currentOutput[LEFT] *= 1-xFadeValue; currentOutput[RIGHT] *= 1-xFadeValue; @@ -3871,6 +3886,7 @@ struct SickoLooper1 : Module { trackBuffer[RIGHT][extraRecPos] += inputValue[RIGHT] * recFadeValue; //} + /* if (samplePos > 0) { trackBuffer[LEFT][extraRecPos-1] = (trackBuffer[LEFT][extraRecPos-2] + trackBuffer[LEFT][extraRecPos]) / 2; trackBuffer[RIGHT][extraRecPos-1] = (trackBuffer[RIGHT][extraRecPos-2] + trackBuffer[RIGHT][extraRecPos]) / 2; @@ -3880,6 +3896,18 @@ struct SickoLooper1 : Module { extraRecPos += sampleCoeff; else extraRecPos -= sampleCoeff; + */ + if (extraRecDirection == FORWARD) { + if (samplePos > 0) { + trackBuffer[LEFT][extraRecPos-1] = (trackBuffer[LEFT][extraRecPos-2] + trackBuffer[LEFT][extraRecPos]) / 2; + trackBuffer[RIGHT][extraRecPos-1] = (trackBuffer[RIGHT][extraRecPos-2] + trackBuffer[RIGHT][extraRecPos]) / 2; + } + extraRecPos += sampleCoeff; + } else { + trackBuffer[LEFT][extraRecPos+1] = (trackBuffer[LEFT][extraRecPos+2] + trackBuffer[LEFT][extraRecPos]) / 2; + trackBuffer[RIGHT][extraRecPos+1] = (trackBuffer[RIGHT][extraRecPos+2] + trackBuffer[RIGHT][extraRecPos]) / 2; + extraRecPos -= sampleCoeff; + } } } diff --git a/src/SickoLooper1Exp.cpp b/src/SickoLooper1Exp.cpp index c642a62..337715d 100644 --- a/src/SickoLooper1Exp.cpp +++ b/src/SickoLooper1Exp.cpp @@ -2908,6 +2908,7 @@ struct SickoLooper1Exp : Module { trackBuffer[LEFT][samplePos] += inputValue[LEFT] * recFadeValue; trackBuffer[RIGHT][samplePos] += inputValue[RIGHT] * recFadeValue; + /* if (samplePos > 0) { trackBuffer[LEFT][samplePos-1] = (trackBuffer[LEFT][samplePos-2] + trackBuffer[LEFT][samplePos]) / 2; trackBuffer[RIGHT][samplePos-1] = (trackBuffer[RIGHT][samplePos-2] + trackBuffer[RIGHT][samplePos]) / 2; @@ -2917,6 +2918,20 @@ struct SickoLooper1Exp : Module { samplePos += sampleCoeff; else samplePos -= sampleCoeff; + */ + if (playingDirection == FORWARD) { + if (samplePos != 0) { + trackBuffer[LEFT][samplePos-1] = (trackBuffer[LEFT][samplePos-2] + trackBuffer[LEFT][samplePos]) / 2; + trackBuffer[RIGHT][samplePos-1] = (trackBuffer[RIGHT][samplePos-2] + trackBuffer[RIGHT][samplePos]) / 2; + } + samplePos += sampleCoeff; + } else { + if (samplePos != 0) { + trackBuffer[LEFT][samplePos+1] = (trackBuffer[LEFT][samplePos+2] + trackBuffer[LEFT][samplePos]) / 2; + trackBuffer[RIGHT][samplePos+1] = (trackBuffer[RIGHT][samplePos+2] + trackBuffer[RIGHT][samplePos]) / 2; + } + samplePos -= sampleCoeff; + } } break; @@ -2929,7 +2944,7 @@ struct SickoLooper1Exp : Module { if (xFadeValue < 0) { extraPlaying = false; } else { - if (extraPlayPos < trackBuffer[LEFT].size()) { + if (extraPlayPos >= 0 && extraPlayPos < trackBuffer[LEFT].size()) { currentOutput[LEFT] *= 1-xFadeValue; currentOutput[RIGHT] *= 1-xFadeValue; @@ -3040,7 +3055,7 @@ struct SickoLooper1Exp : Module { trackBuffer[LEFT][extraRecPos] += inputValue[LEFT] * recFadeValue; trackBuffer[RIGHT][extraRecPos] += inputValue[RIGHT] * recFadeValue; //} - + /* if (samplePos > 0) { trackBuffer[LEFT][extraRecPos-1] = (trackBuffer[LEFT][extraRecPos-2] + trackBuffer[LEFT][extraRecPos]) / 2; trackBuffer[RIGHT][extraRecPos-1] = (trackBuffer[RIGHT][extraRecPos-2] + trackBuffer[RIGHT][extraRecPos]) / 2; @@ -3050,6 +3065,18 @@ struct SickoLooper1Exp : Module { extraRecPos += sampleCoeff; else extraRecPos -= sampleCoeff; + */ + if (extraRecDirection == FORWARD) { + if (samplePos > 0) { + trackBuffer[LEFT][extraRecPos-1] = (trackBuffer[LEFT][extraRecPos-2] + trackBuffer[LEFT][extraRecPos]) / 2; + trackBuffer[RIGHT][extraRecPos-1] = (trackBuffer[RIGHT][extraRecPos-2] + trackBuffer[RIGHT][extraRecPos]) / 2; + } + extraRecPos += sampleCoeff; + } else { + trackBuffer[LEFT][extraRecPos+1] = (trackBuffer[LEFT][extraRecPos+2] + trackBuffer[LEFT][extraRecPos]) / 2; + trackBuffer[RIGHT][extraRecPos+1] = (trackBuffer[RIGHT][extraRecPos+2] + trackBuffer[RIGHT][extraRecPos]) / 2; + extraRecPos -= sampleCoeff; + } } } diff --git a/src/SickoSampler.cpp b/src/SickoSampler.cpp index 2d0c56b..1433840 100644 --- a/src/SickoSampler.cpp +++ b/src/SickoSampler.cpp @@ -3493,8 +3493,10 @@ struct SickoSampler : Module { recFadeValue = 1; } - currRecValue[LEFT] = inputs[IN_INPUT].getVoltage() * params[GAIN_PARAM].getValue() * recFadeValue; - currRecValue[RIGHT] = inputs[IN_INPUT+1].getVoltage() * params[GAIN_PARAM].getValue() * recFadeValue; + //currRecValue[LEFT] = inputs[IN_INPUT].getVoltage() * params[GAIN_PARAM].getValue() * recFadeValue; + //currRecValue[RIGHT] = inputs[IN_INPUT+1].getVoltage() * params[GAIN_PARAM].getValue() * recFadeValue; + currRecValue[LEFT] = inputs[IN_INPUT].getVoltageSum() * params[GAIN_PARAM].getValue() * recFadeValue; + currRecValue[RIGHT] = inputs[IN_INPUT+1].getVoltageSum() * params[GAIN_PARAM].getValue() * recFadeValue; prevRecValue[LEFT] = currRecValue[LEFT]; prevRecValue[RIGHT] = currRecValue[RIGHT]; @@ -4362,9 +4364,11 @@ struct SickoSampler : Module { if (monitorFade) { switch (polyOuts) { case MONOPHONIC: // monophonic CABLES - sumOutput += inputs[IN_INPUT].getVoltage() * params[GAIN_PARAM].getValue() * (1-monitorFadeValue) * masterLevel[0]; + //sumOutput += inputs[IN_INPUT].getVoltage() * params[GAIN_PARAM].getValue() * (1-monitorFadeValue) * masterLevel[0]; + sumOutput += inputs[IN_INPUT].getVoltageSum() * params[GAIN_PARAM].getValue() * (1-monitorFadeValue) * masterLevel[0]; if (channels == 2) - sumOutputR += inputs[IN_INPUT+1].getVoltage() * params[GAIN_PARAM].getValue() * (1-monitorFadeValue) * masterLevel[0]; + //sumOutputR += inputs[IN_INPUT+1].getVoltage() * params[GAIN_PARAM].getValue() * (1-monitorFadeValue) * masterLevel[0]; + sumOutputR += inputs[IN_INPUT+1].getVoltageSum() * params[GAIN_PARAM].getValue() * (1-monitorFadeValue) * masterLevel[0]; // *** HARD CLIP *** if (limiter) { @@ -4406,8 +4410,10 @@ struct SickoSampler : Module { break; case POLYPHONIC: - currentOutput = outputs[OUT_OUTPUT].getVoltage(recOutChan) + (inputs[IN_INPUT].getVoltage() * params[GAIN_PARAM].getValue() * (1-monitorFadeValue) * masterLevel[0]); - currentOutputR = outputs[OUT_OUTPUT+1].getVoltage(recOutChan) + (inputs[IN_INPUT+1].getVoltage() * params[GAIN_PARAM].getValue() * (1-monitorFadeValue) * masterLevel[0]); + //currentOutput = outputs[OUT_OUTPUT].getVoltage(recOutChan) + (inputs[IN_INPUT].getVoltage() * params[GAIN_PARAM].getValue() * (1-monitorFadeValue) * masterLevel[0]); + //currentOutputR = outputs[OUT_OUTPUT+1].getVoltage(recOutChan) + (inputs[IN_INPUT+1].getVoltage() * params[GAIN_PARAM].getValue() * (1-monitorFadeValue) * masterLevel[0]); + currentOutput = outputs[OUT_OUTPUT].getVoltage(recOutChan) + (inputs[IN_INPUT].getVoltageSum() * params[GAIN_PARAM].getValue() * (1-monitorFadeValue) * masterLevel[0]); + currentOutputR = outputs[OUT_OUTPUT+1].getVoltage(recOutChan) + (inputs[IN_INPUT+1].getVoltageSum() * params[GAIN_PARAM].getValue() * (1-monitorFadeValue) * masterLevel[0]); // *** HARD CLIP *** if (limiter) { @@ -4455,9 +4461,11 @@ struct SickoSampler : Module { if (recordingState == 1) { switch (polyOuts) { case MONOPHONIC: // monophonic CABLES - sumOutput += inputs[IN_INPUT].getVoltage() * params[GAIN_PARAM].getValue() * monitorFadeValue * masterLevel[0] * recFadeValue; + //sumOutput += inputs[IN_INPUT].getVoltage() * params[GAIN_PARAM].getValue() * monitorFadeValue * masterLevel[0] * recFadeValue; + sumOutput += inputs[IN_INPUT].getVoltageSum() * params[GAIN_PARAM].getValue() * monitorFadeValue * masterLevel[0] * recFadeValue; if (channels == 2) - sumOutputR += inputs[IN_INPUT+1].getVoltage() * params[GAIN_PARAM].getValue() * monitorFadeValue * masterLevel[0] * recFadeValue; + //sumOutputR += inputs[IN_INPUT+1].getVoltage() * params[GAIN_PARAM].getValue() * monitorFadeValue * masterLevel[0] * recFadeValue; + sumOutputR += inputs[IN_INPUT+1].getVoltageSum() * params[GAIN_PARAM].getValue() * monitorFadeValue * masterLevel[0] * recFadeValue; // *** HARD CLIP *** if (limiter) { @@ -4517,8 +4525,10 @@ struct SickoSampler : Module { break; case POLYPHONIC: - currentOutput = outputs[OUT_OUTPUT].getVoltage(recOutChan) + (inputs[IN_INPUT].getVoltage() * params[GAIN_PARAM].getValue() * monitorFadeValue * masterLevel[0] * recFadeValue); - currentOutputR = outputs[OUT_OUTPUT+1].getVoltage(recOutChan) + (inputs[IN_INPUT+1].getVoltage() * params[GAIN_PARAM].getValue() * monitorFadeValue * masterLevel[0] * recFadeValue); + //currentOutput = outputs[OUT_OUTPUT].getVoltage(recOutChan) + (inputs[IN_INPUT].getVoltage() * params[GAIN_PARAM].getValue() * monitorFadeValue * masterLevel[0] * recFadeValue); + //currentOutputR = outputs[OUT_OUTPUT+1].getVoltage(recOutChan) + (inputs[IN_INPUT+1].getVoltage() * params[GAIN_PARAM].getValue() * monitorFadeValue * masterLevel[0] * recFadeValue); + currentOutput = outputs[OUT_OUTPUT].getVoltage(recOutChan) + (inputs[IN_INPUT].getVoltageSum() * params[GAIN_PARAM].getValue() * monitorFadeValue * masterLevel[0] * recFadeValue); + currentOutputR = outputs[OUT_OUTPUT+1].getVoltage(recOutChan) + (inputs[IN_INPUT+1].getVoltageSum() * params[GAIN_PARAM].getValue() * monitorFadeValue * masterLevel[0] * recFadeValue); // *** HARD CLIP *** if (limiter) { @@ -4581,9 +4591,11 @@ struct SickoSampler : Module { } else if (monitorFade && params[RECFADE_PARAM].getValue() <= 0) { switch (polyOuts) { case MONOPHONIC: // monophonic CABLES - sumOutput += inputs[IN_INPUT].getVoltage() * params[GAIN_PARAM].getValue() * (1-monitorFadeValue) * masterLevel[0]; + //sumOutput += inputs[IN_INPUT].getVoltage() * params[GAIN_PARAM].getValue() * (1-monitorFadeValue) * masterLevel[0]; + sumOutput += inputs[IN_INPUT].getVoltageSum() * params[GAIN_PARAM].getValue() * (1-monitorFadeValue) * masterLevel[0]; if (channels == 2) - sumOutputR += inputs[IN_INPUT+1].getVoltage() * params[GAIN_PARAM].getValue() * (1-monitorFadeValue) * masterLevel[0]; + //sumOutputR += inputs[IN_INPUT+1].getVoltage() * params[GAIN_PARAM].getValue() * (1-monitorFadeValue) * masterLevel[0]; + sumOutputR += inputs[IN_INPUT+1].getVoltageSum() * params[GAIN_PARAM].getValue() * (1-monitorFadeValue) * masterLevel[0]; // *** HARD CLIP *** if (limiter) { @@ -4643,8 +4655,10 @@ struct SickoSampler : Module { break; case POLYPHONIC: - currentOutput = outputs[OUT_OUTPUT].getVoltage(recOutChan) + (inputs[IN_INPUT].getVoltage() * params[GAIN_PARAM].getValue() * (1-monitorFadeValue) * masterLevel[0]); - currentOutputR = outputs[OUT_OUTPUT+1].getVoltage(recOutChan) + (inputs[IN_INPUT+1].getVoltage() * params[GAIN_PARAM].getValue() * (1-monitorFadeValue) * masterLevel[0]); + //currentOutput = outputs[OUT_OUTPUT].getVoltage(recOutChan) + (inputs[IN_INPUT].getVoltage() * params[GAIN_PARAM].getValue() * (1-monitorFadeValue) * masterLevel[0]); + //currentOutputR = outputs[OUT_OUTPUT+1].getVoltage(recOutChan) + (inputs[IN_INPUT+1].getVoltage() * params[GAIN_PARAM].getValue() * (1-monitorFadeValue) * masterLevel[0]); + currentOutput = outputs[OUT_OUTPUT].getVoltage(recOutChan) + (inputs[IN_INPUT].getVoltageSum() * params[GAIN_PARAM].getValue() * (1-monitorFadeValue) * masterLevel[0]); + currentOutputR = outputs[OUT_OUTPUT+1].getVoltage(recOutChan) + (inputs[IN_INPUT+1].getVoltageSum() * params[GAIN_PARAM].getValue() * (1-monitorFadeValue) * masterLevel[0]); // *** HARD CLIP *** if (limiter) { @@ -4708,9 +4722,11 @@ struct SickoSampler : Module { case 2: // *** ALWAYS MONITORING *** switch (polyOuts) { case MONOPHONIC: // monophonic CABLES - sumOutput += inputs[IN_INPUT].getVoltage() * params[GAIN_PARAM].getValue() * monitorFadeValue * masterLevel[0]; + //sumOutput += inputs[IN_INPUT].getVoltage() * params[GAIN_PARAM].getValue() * monitorFadeValue * masterLevel[0]; + sumOutput += inputs[IN_INPUT].getVoltageSum() * params[GAIN_PARAM].getValue() * monitorFadeValue * masterLevel[0]; if (channels == 2) - sumOutputR += inputs[IN_INPUT+1].getVoltage() * params[GAIN_PARAM].getValue() * monitorFadeValue * masterLevel[0]; + //sumOutputR += inputs[IN_INPUT+1].getVoltage() * params[GAIN_PARAM].getValue() * monitorFadeValue * masterLevel[0]; + sumOutputR += inputs[IN_INPUT+1].getVoltageSum() * params[GAIN_PARAM].getValue() * monitorFadeValue * masterLevel[0]; // *** HARD CLIP *** if (limiter) { @@ -4770,8 +4786,10 @@ struct SickoSampler : Module { break; case POLYPHONIC: - currentOutput = outputs[OUT_OUTPUT].getVoltage(recOutChan) + (inputs[IN_INPUT].getVoltage() * params[GAIN_PARAM].getValue() * monitorFadeValue * masterLevel[0]); - currentOutputR = outputs[OUT_OUTPUT+1].getVoltage(recOutChan) + (inputs[IN_INPUT+1].getVoltage() * params[GAIN_PARAM].getValue() * monitorFadeValue * masterLevel[0]); + //currentOutput = outputs[OUT_OUTPUT].getVoltage(recOutChan) + (inputs[IN_INPUT].getVoltage() * params[GAIN_PARAM].getValue() * monitorFadeValue * masterLevel[0]); + //currentOutputR = outputs[OUT_OUTPUT+1].getVoltage(recOutChan) + (inputs[IN_INPUT+1].getVoltage() * params[GAIN_PARAM].getValue() * monitorFadeValue * masterLevel[0]); + currentOutput = outputs[OUT_OUTPUT].getVoltage(recOutChan) + (inputs[IN_INPUT].getVoltageSum() * params[GAIN_PARAM].getValue() * monitorFadeValue * masterLevel[0]); + currentOutputR = outputs[OUT_OUTPUT+1].getVoltage(recOutChan) + (inputs[IN_INPUT+1].getVoltageSum() * params[GAIN_PARAM].getValue() * monitorFadeValue * masterLevel[0]); // *** HARD CLIP *** if (limiter) { diff --git a/src/SickoSampler2.cpp b/src/SickoSampler2.cpp index 608637d..0a5ea27 100644 --- a/src/SickoSampler2.cpp +++ b/src/SickoSampler2.cpp @@ -2748,8 +2748,10 @@ struct SickoSampler2 : Module { recFadeValue = 1; } - currRecValue[LEFT] = inputs[IN_INPUT].getVoltage() * params[GAIN_PARAM].getValue() * recFadeValue; - currRecValue[RIGHT] = inputs[IN_INPUT+1].getVoltage() * params[GAIN_PARAM].getValue() * recFadeValue; + //currRecValue[LEFT] = inputs[IN_INPUT].getVoltage() * params[GAIN_PARAM].getValue() * recFadeValue; + //currRecValue[RIGHT] = inputs[IN_INPUT+1].getVoltage() * params[GAIN_PARAM].getValue() * recFadeValue; + currRecValue[LEFT] = inputs[IN_INPUT].getVoltageSum() * params[GAIN_PARAM].getValue() * recFadeValue; + currRecValue[RIGHT] = inputs[IN_INPUT+1].getVoltageSum() * params[GAIN_PARAM].getValue() * recFadeValue; prevRecValue[LEFT] = currRecValue[LEFT]; prevRecValue[RIGHT] = currRecValue[RIGHT]; @@ -2925,9 +2927,11 @@ struct SickoSampler2 : Module { if (monitorFade) { switch (polyOuts) { case MONOPHONIC: // monophonic CABLES - sumOutput += inputs[IN_INPUT].getVoltage() * params[GAIN_PARAM].getValue() * (1-monitorFadeValue) * masterLevel[0]; + //sumOutput += inputs[IN_INPUT].getVoltage() * params[GAIN_PARAM].getValue() * (1-monitorFadeValue) * masterLevel[0]; + sumOutput += inputs[IN_INPUT].getVoltageSum() * params[GAIN_PARAM].getValue() * (1-monitorFadeValue) * masterLevel[0]; if (channels == 2) - sumOutputR += inputs[IN_INPUT+1].getVoltage() * params[GAIN_PARAM].getValue() * (1-monitorFadeValue) * masterLevel[0]; + //sumOutputR += inputs[IN_INPUT+1].getVoltage() * params[GAIN_PARAM].getValue() * (1-monitorFadeValue) * masterLevel[0]; + sumOutputR += inputs[IN_INPUT+1].getVoltageSum() * params[GAIN_PARAM].getValue() * (1-monitorFadeValue) * masterLevel[0]; // *** HARD CLIP *** @@ -2957,8 +2961,10 @@ struct SickoSampler2 : Module { break; case POLYPHONIC: - currentOutput = outputs[OUT_OUTPUT].getVoltage(recOutChan) + (inputs[IN_INPUT].getVoltage() * params[GAIN_PARAM].getValue() * (1-monitorFadeValue) * masterLevel[0]); - currentOutputR = outputs[OUT_OUTPUT+1].getVoltage(recOutChan) + (inputs[IN_INPUT+1].getVoltage() * params[GAIN_PARAM].getValue() * (1-monitorFadeValue) * masterLevel[0]); + //currentOutput = outputs[OUT_OUTPUT].getVoltage(recOutChan) + (inputs[IN_INPUT].getVoltage() * params[GAIN_PARAM].getValue() * (1-monitorFadeValue) * masterLevel[0]); + //currentOutputR = outputs[OUT_OUTPUT+1].getVoltage(recOutChan) + (inputs[IN_INPUT+1].getVoltage() * params[GAIN_PARAM].getValue() * (1-monitorFadeValue) * masterLevel[0]); + currentOutput = outputs[OUT_OUTPUT].getVoltage(recOutChan) + (inputs[IN_INPUT].getVoltageSum() * params[GAIN_PARAM].getValue() * (1-monitorFadeValue) * masterLevel[0]); + currentOutputR = outputs[OUT_OUTPUT+1].getVoltage(recOutChan) + (inputs[IN_INPUT+1].getVoltageSum() * params[GAIN_PARAM].getValue() * (1-monitorFadeValue) * masterLevel[0]); // *** HARD CLIP *** @@ -2993,9 +2999,11 @@ struct SickoSampler2 : Module { case 1: // *** ALWAYS MONITORING *** switch (polyOuts) { case MONOPHONIC: // monophonic CABLES - sumOutput += inputs[IN_INPUT].getVoltage() * params[GAIN_PARAM].getValue() * monitorFadeValue * masterLevel[0]; + //sumOutput += inputs[IN_INPUT].getVoltage() * params[GAIN_PARAM].getValue() * monitorFadeValue * masterLevel[0]; + sumOutput += inputs[IN_INPUT].getVoltageSum() * params[GAIN_PARAM].getValue() * monitorFadeValue * masterLevel[0]; if (channels == 2) - sumOutputR += inputs[IN_INPUT+1].getVoltage() * params[GAIN_PARAM].getValue() * monitorFadeValue * masterLevel[0]; + //sumOutputR += inputs[IN_INPUT+1].getVoltage() * params[GAIN_PARAM].getValue() * monitorFadeValue * masterLevel[0]; + sumOutputR += inputs[IN_INPUT+1].getVoltageSum() * params[GAIN_PARAM].getValue() * monitorFadeValue * masterLevel[0]; // *** HARD CLIP *** if (sumOutput > 10) @@ -3024,8 +3032,10 @@ struct SickoSampler2 : Module { break; case POLYPHONIC: - currentOutput = outputs[OUT_OUTPUT].getVoltage(recOutChan) + (inputs[IN_INPUT].getVoltage() * params[GAIN_PARAM].getValue() * monitorFadeValue * masterLevel[0]); - currentOutputR = outputs[OUT_OUTPUT+1].getVoltage(recOutChan) + (inputs[IN_INPUT+1].getVoltage() * params[GAIN_PARAM].getValue() * monitorFadeValue * masterLevel[0]); + //currentOutput = outputs[OUT_OUTPUT].getVoltage(recOutChan) + (inputs[IN_INPUT].getVoltage() * params[GAIN_PARAM].getValue() * monitorFadeValue * masterLevel[0]); + //currentOutputR = outputs[OUT_OUTPUT+1].getVoltage(recOutChan) + (inputs[IN_INPUT+1].getVoltage() * params[GAIN_PARAM].getValue() * monitorFadeValue * masterLevel[0]); + currentOutput = outputs[OUT_OUTPUT].getVoltage(recOutChan) + (inputs[IN_INPUT].getVoltageSum() * params[GAIN_PARAM].getValue() * monitorFadeValue * masterLevel[0]); + currentOutputR = outputs[OUT_OUTPUT+1].getVoltage(recOutChan) + (inputs[IN_INPUT+1].getVoltageSum() * params[GAIN_PARAM].getValue() * monitorFadeValue * masterLevel[0]); // *** HARD CLIP *** if (currentOutput > 10)