Skip to content

Commit

Permalink
update to v2.6.5
Browse files Browse the repository at this point in the history
  • Loading branch information
sickozell committed Jan 28, 2024
1 parent b60d422 commit ca122a5
Show file tree
Hide file tree
Showing 8 changed files with 124 additions and 37 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# SickoCV v2.6.4
# SickoCV v2.6.5
VCV Rack plugin modules

![SickoCV modules 2 6 4](https://github.com/sickozell/SickoCV/assets/80784296/7c6a6fbb-0e2c-4349-902c-6a8946ffbd91)
Expand Down
6 changes: 5 additions & 1 deletion changelog.md
Original file line number Diff line number Diff line change
@@ -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.
Expand Down
6 changes: 3 additions & 3 deletions extra/crossCompiler.md
Original file line number Diff line number Diff line change
@@ -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
Expand Down
2 changes: 1 addition & 1 deletion plugin.json
Original file line number Diff line number Diff line change
@@ -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",
Expand Down
30 changes: 29 additions & 1 deletion src/SickoLooper1.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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;
Expand All @@ -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;

Expand Down Expand Up @@ -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;
Expand All @@ -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;
}
}
}

Expand Down
31 changes: 29 additions & 2 deletions src/SickoLooper1Exp.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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;
Expand All @@ -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;

Expand Down Expand Up @@ -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;
Expand All @@ -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;
}
}
}

Expand Down
54 changes: 36 additions & 18 deletions src/SickoSampler.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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];

Expand Down Expand Up @@ -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) {
Expand Down Expand Up @@ -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) {
Expand Down Expand Up @@ -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) {
Expand Down Expand Up @@ -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) {
Expand Down Expand Up @@ -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) {
Expand Down Expand Up @@ -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) {
Expand Down Expand Up @@ -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) {
Expand Down Expand Up @@ -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) {
Expand Down
Loading

0 comments on commit ca122a5

Please sign in to comment.