feat: add soft clipping mode
This commit is contained in:
parent
556519a750
commit
e7ff4fcc18
5 changed files with 45 additions and 13 deletions
|
|
@ -11,6 +11,7 @@ class SquidgeDistortion : public Plugin {
|
|||
public:
|
||||
enum Parameters {
|
||||
kParamGain,
|
||||
kParamClipMode,
|
||||
kParameterCount // must be last
|
||||
};
|
||||
SquidgeDistortion() : Plugin(kParameterCount, 0, 0), gain_(2.0f) {}
|
||||
|
|
@ -26,7 +27,6 @@ protected:
|
|||
int64_t getUniqueId() const override { return d_cconst('S', 'Q', 'D', 'T'); }
|
||||
|
||||
void initParameter(uint32_t index, Parameter ¶meter) override {
|
||||
parameter.unit = "!";
|
||||
switch (index) {
|
||||
case kParamGain:
|
||||
parameter.name = "Gain";
|
||||
|
|
@ -35,7 +35,18 @@ protected:
|
|||
parameter.ranges.def = 2.0f;
|
||||
parameter.ranges.max = 10.0f;
|
||||
parameter.hints = kParameterIsAutomatable;
|
||||
|
||||
break;
|
||||
case kParamClipMode:
|
||||
parameter.name = "Clip Mode";
|
||||
parameter.symbol = "clipmode";
|
||||
parameter.ranges.min = 0.0f;
|
||||
parameter.ranges.def = 0.0f;
|
||||
parameter.ranges.max = Clipper::kClipperModeCount - 1;
|
||||
parameter.hints = kParameterIsAutomatable | kParameterIsInteger;
|
||||
parameter.enumValues.count = Clipper::kClipperModeCount;
|
||||
parameter.enumValues.restrictedMode = true;
|
||||
parameter.enumValues.values =
|
||||
new ParameterEnumerationValue[2]{{0.0f, "Soft"}, {1.0f, "Hard"}};
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
@ -44,6 +55,8 @@ protected:
|
|||
switch (index) {
|
||||
case kParamGain:
|
||||
return gain_.getGain();
|
||||
case kParamClipMode:
|
||||
return (float)clipper_.getMode();
|
||||
}
|
||||
return 0.0f;
|
||||
}
|
||||
|
|
@ -53,6 +66,9 @@ protected:
|
|||
case kParamGain:
|
||||
gain_.setGain(value);
|
||||
break;
|
||||
case kParamClipMode:
|
||||
clipper_.setMode((Clipper::ClipperMode)value);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue