diff --git a/plugin/parameters.cpp b/plugin/parameters.cpp index bdc23ec..89160cf 100644 --- a/plugin/parameters.cpp +++ b/plugin/parameters.cpp @@ -60,7 +60,6 @@ void Peacock::initParameter(uint32_t index, Parameter& parameter) { enumValues[2].label = "4'"; parameter.enumValues.values = enumValues; } - break; case pLFODepth: @@ -289,6 +288,28 @@ void Peacock::initParameter(uint32_t index, Parameter& parameter) { parameter.ranges.def = 40.0f; parameter.midiCC = 26; break; + + case pChorus: + parameter.hints = kParameterIsAutomatable | kParameterIsInteger; + parameter.name = "Chorus"; + parameter.symbol = "ch_chorus"; + parameter.ranges.min = 0.0f; + parameter.ranges.max = 2.0f; + parameter.ranges.def = 1.0f; + parameter.midiCC = 93; + parameter.enumValues.count = 3; + parameter.enumValues.restrictedMode = true; + { + ParameterEnumerationValue* const enumValues = new ParameterEnumerationValue[3]; + enumValues[0].value = 0.0f; + enumValues[0].label = "Off'"; + enumValues[1].value = 1.0f; + enumValues[1].label = "Slow"; + enumValues[2].value = 2.0f; + enumValues[2].label = "Fast"; + parameter.enumValues.values = enumValues; + } + break; /* case pModWheel: parameter.hints = kParameterIsAutomatable | kParameterIsHidden; @@ -381,7 +402,6 @@ void Peacock::setParameterValue(uint32_t index, float value) { case pChorus: m->patchRam.switch1 &= 0x9f; - switch ((int)value) { case 0: m->patchRam.switch1 |= 0x60; // both off @@ -507,7 +527,7 @@ float Peacock::getParameterValue(uint32_t index) const { return m->patchRam.vca; break; case pChorus: - + switch (m->patchRam.switch1 & 0x60) { case 0x60: return 0; @@ -518,8 +538,6 @@ float Peacock::getParameterValue(uint32_t index) const { default: break; } - - } return 0; } diff --git a/plugin/ui.cpp b/plugin/ui.cpp index 53819f4..3017866 100644 --- a/plugin/ui.cpp +++ b/plugin/ui.cpp @@ -258,6 +258,7 @@ void DistrhoUIPeacock::parameterChanged(uint32_t index, float value) { sw1 &= 0xf8; // mask if (value > 2) value = 2; sw1 |= (1 << (int)value); + xBtn16ft->repaint(); // will repaint all the panel break; case pSqr: sw1 &= 0xf7;