From 463d7d2a776dbc1ed9d79e81c943fb4867a06488 Mon Sep 17 00:00:00 2001 From: Paul Walker Date: Tue, 30 Apr 2024 16:08:00 -0400 Subject: [PATCH] Finally the invert stage is done. --- scripts/import.pl | 73 +++++++++++++++-------- src/autogen_airwin/AQuickVoiceClip.cpp | 2 + src/autogen_airwin/Biquad.cpp | 2 + src/autogen_airwin/Biquad2.cpp | 2 + src/autogen_airwin/BiquadDouble.cpp | 2 + src/autogen_airwin/BiquadOneHalf.cpp | 2 + src/autogen_airwin/BiquadPlus.cpp | 2 + src/autogen_airwin/BiquadTriple.cpp | 2 + src/autogen_airwin/BitShiftGain.cpp | 2 + src/autogen_airwin/Compresaturator.cpp | 2 + src/autogen_airwin/Ensemble.cpp | 2 + src/autogen_airwin/Fracture.cpp | 2 + src/autogen_airwin/GlitchShifter.cpp | 2 + src/autogen_airwin/IronOxide5.cpp | 4 ++ src/autogen_airwin/IronOxideClassic.cpp | 2 + src/autogen_airwin/IronOxideClassic2.cpp | 2 + src/autogen_airwin/PitchNasty.cpp | 4 ++ src/autogen_airwin/Pockey2.cpp | 2 + src/autogen_airwin/TapeDelay.cpp | 2 + src/autogen_airwin/TapeFat.cpp | 2 + src/autogen_airwin/VoiceOfTheStarship.cpp | 2 + 21 files changed, 91 insertions(+), 26 deletions(-) diff --git a/scripts/import.pl b/scripts/import.pl index 50cf74f..0766445 100644 --- a/scripts/import.pl +++ b/scripts/import.pl @@ -191,22 +191,6 @@ $pttv .= " case kParam${param}: { auto b = string2float(text, value); if (b) { value = pow(std::max((value/$mul), 0.), (1.0/$exp)); } return b; break; }\n"; $ok = 1; } - elsif ($formatter =~ m/float2string\s*\(([^,]+),[^;]+;\s*$/) - { - my $arg = $1; - print " CUSTOM ARG :" . $f . "::" . $param . " >> " . $arg . "\n"; - print " INPUT : " . $formatter . "\n"; - - if ($arg =~ m/^\s*\(([${param}\*]+)([0-9.]+)\)\+([0-9.]+)/) - { - print " - GOT $1 $2 $3\n"; - } - else - { - print " - UNKNOWN\n" - } - $ok = 0; - } # db2string elsif ($formatter =~ m/dB2string\s*\(\s*${param}\s*,[^;]+;\s*$/) { @@ -230,16 +214,52 @@ $pttv .= " case kParam${param}: { auto b = string2float(text, value); if (b) { value = (value + 0.1) / ${scl}; } return b; break; }\n"; $ok = 1; } - else - { - print " INT BODY: " . $f . "::" . $param . " / " . $body . "\n"; - $ok = 0; - } } - else + elsif ($formatter =~ m/ceil\(\(A\*3.999\)/) + { + # those pesky biquads + $pttv .= " case kParam${param}: { auto b = string2float(text, value); if (b) { value = std::clamp(std::round(value) * 0.25 - 0.245, 0., 1.); } return b; break; }\n"; + $ok = 1; + } + + + if (!$ok) { - $printed = 1; - print " Skipping convert :" . $f . "::" . $param . " / " . $formatter . "\n"; + # sometimes you just give up you know? + my %specialCases; + + $specialCases{"IronOxide5::B"} = "pow(std::max((value - 1.5) / 148.5, 0.), 0.25)"; + $specialCases{"IronOxide5::C"} = "pow(std::max((value - 1.5) / 148.5, 0.), 0.25)"; + $specialCases{"IronOxideClassic::B"} = "pow(std::max((value - 1.5) / 148.5, 0.), 0.25)"; + $specialCases{"IronOxideClassic2::B"} = "pow(std::max((value - 1.5) / 148.5, 0.), 0.25)"; + $specialCases{"Pockey2::B"} = "(value - 4.0) / 12.0"; + $specialCases{"Compresaturator::C"} = "std::sqrt(std::max(value/5000.0,0.))"; + $specialCases{"AQuickVoiceClip::A"} = "std::cbrt((value - 30.)/2070.)"; + + my $intLike = sub { + my ($b, $o) = @_; + return "(std::round(value) + 0.1 - (${o}))/${b}" + }; + + $specialCases{"VoiceOfTheStarship::B"} = $intLike->(16.9, 0); + $specialCases{"Ensemble::A"} = $intLike->(46.0, 2.9); + $specialCases{"BitShiftGain::A"} = $intLike->(32, -16); + $specialCases{"Fracture::B"} = $intLike->(2.9999, 1); + $specialCases{"GlitchShifter::A"} = $intLike->(24.9999, -12); + $specialCases{"PitchNasty::A"} = $intLike->(24, -12); + $specialCases{"PitchNasty::C"} = $intLike->(72, -36); + $specialCases{"TapeDelay::F"} = $intLike->(29, 3); + $specialCases{"TapeFat::B"} = $intLike->(29, 3); + + + + my $key = $f . "::" . $param; + + if (exists $specialCases{$key}) + { + $pttv .= " case kParam${param}: { auto b = string2float(text, value); if (b) { value = std::clamp( $specialCases{$key}, 0., 1. ); } return b; break; }\n"; + $ok = 1; + } } if ($ok) @@ -249,14 +269,15 @@ elsif ($isSwitch) { # supress this warning + # print " UNINVERTED SWTCH : " . $f . "::" . $param . "\n"; } elsif ($formatter =~ m/int2string/) { - print " INT UNDONE: " . $f . "::" . $param . " / " . $formatter . "\n"; + print " UNINVERTED INT : " . $f . "::" . $param . " / " . $formatter . "\n"; } else { - print " UNINVERTED: " . $f . "::" . $param . " / " . $formatter . "\n"; + print " UNINVERTED FLT : " . $f . "::" . $param . " / " . $formatter . "\n"; } $pdt =~ s/^.*?case kParam(\S+):(.*?)break;//s; diff --git a/src/autogen_airwin/AQuickVoiceClip.cpp b/src/autogen_airwin/AQuickVoiceClip.cpp index 2240567..8e22f7a 100644 --- a/src/autogen_airwin/AQuickVoiceClip.cpp +++ b/src/autogen_airwin/AQuickVoiceClip.cpp @@ -143,12 +143,14 @@ bool AQuickVoiceClip::getVendorString(char* text) { } bool AQuickVoiceClip::parameterTextToValue(VstInt32 index, const char *text, float &value) { switch(index) { + case kParamA: { auto b = string2float(text, value); if (b) { value = std::clamp( std::cbrt((value - 30.)/2070.), 0., 1. ); } return b; break; } } return false; } bool AQuickVoiceClip::canConvertParameterTextToValue(VstInt32 index) { switch(index) { + case kParamA: return true; } return false; diff --git a/src/autogen_airwin/Biquad.cpp b/src/autogen_airwin/Biquad.cpp index c92e2c0..f2f2685 100644 --- a/src/autogen_airwin/Biquad.cpp +++ b/src/autogen_airwin/Biquad.cpp @@ -118,6 +118,7 @@ bool Biquad::getVendorString(char* text) { } bool Biquad::parameterTextToValue(VstInt32 index, const char *text, float &value) { switch(index) { + case kParamA: { auto b = string2float(text, value); if (b) { value = std::clamp(std::round(value) * 0.25 - 0.245, 0., 1.); } return b; break; } case kParamB: { auto b = string2float(text, value); if (b) { value = std::cbrt((value - 0.0001) / (0.9999)); } return b; break; } case kParamC: { auto b = string2float(text, value); if (b) { value = std::cbrt((value - 0.01) / (29.99)); } return b; break; } case kParamD: { auto b = string2float(text, value); if (b) { value = (value + 1.0) / (2.0); } return b; break; } @@ -127,6 +128,7 @@ bool Biquad::parameterTextToValue(VstInt32 index, const char *text, float &value } bool Biquad::canConvertParameterTextToValue(VstInt32 index) { switch(index) { + case kParamA: return true; case kParamB: return true; case kParamC: return true; case kParamD: return true; diff --git a/src/autogen_airwin/Biquad2.cpp b/src/autogen_airwin/Biquad2.cpp index 3101063..a62261a 100644 --- a/src/autogen_airwin/Biquad2.cpp +++ b/src/autogen_airwin/Biquad2.cpp @@ -136,6 +136,7 @@ bool Biquad2::getVendorString(char* text) { } bool Biquad2::parameterTextToValue(VstInt32 index, const char *text, float &value) { switch(index) { + case kParamA: { auto b = string2float(text, value); if (b) { value = std::clamp(std::round(value) * 0.25 - 0.245, 0., 1.); } return b; break; } case kParamB: { auto b = string2float(text, value); if (b) { value = sqrt(std::max((value - 0.0001) / (0.9999), 0.)); } return b; break; } case kParamC: { auto b = string2float(text, value); if (b) { value = sqrt(std::max((value - 0.01) / (49.99), 0.)); } return b; break; } case kParamD: { auto b = string2float(text, value); return b; break; } @@ -146,6 +147,7 @@ bool Biquad2::parameterTextToValue(VstInt32 index, const char *text, float &valu } bool Biquad2::canConvertParameterTextToValue(VstInt32 index) { switch(index) { + case kParamA: return true; case kParamB: return true; case kParamC: return true; case kParamD: return true; diff --git a/src/autogen_airwin/BiquadDouble.cpp b/src/autogen_airwin/BiquadDouble.cpp index 3c729ca..0b85ace 100644 --- a/src/autogen_airwin/BiquadDouble.cpp +++ b/src/autogen_airwin/BiquadDouble.cpp @@ -118,6 +118,7 @@ bool BiquadDouble::getVendorString(char* text) { } bool BiquadDouble::parameterTextToValue(VstInt32 index, const char *text, float &value) { switch(index) { + case kParamA: { auto b = string2float(text, value); if (b) { value = std::clamp(std::round(value) * 0.25 - 0.245, 0., 1.); } return b; break; } case kParamB: { auto b = string2float(text, value); if (b) { value = std::cbrt((value - 0.0001) / (0.9999)); } return b; break; } case kParamC: { auto b = string2float(text, value); if (b) { value = std::cbrt((value - 0.01) / (29.99)); } return b; break; } case kParamD: { auto b = string2float(text, value); if (b) { value = (value + 1.0) / (2.0); } return b; break; } @@ -127,6 +128,7 @@ bool BiquadDouble::parameterTextToValue(VstInt32 index, const char *text, float } bool BiquadDouble::canConvertParameterTextToValue(VstInt32 index) { switch(index) { + case kParamA: return true; case kParamB: return true; case kParamC: return true; case kParamD: return true; diff --git a/src/autogen_airwin/BiquadOneHalf.cpp b/src/autogen_airwin/BiquadOneHalf.cpp index 9f53bcf..549fcaf 100644 --- a/src/autogen_airwin/BiquadOneHalf.cpp +++ b/src/autogen_airwin/BiquadOneHalf.cpp @@ -119,6 +119,7 @@ bool BiquadOneHalf::getVendorString(char* text) { } bool BiquadOneHalf::parameterTextToValue(VstInt32 index, const char *text, float &value) { switch(index) { + case kParamA: { auto b = string2float(text, value); if (b) { value = std::clamp(std::round(value) * 0.25 - 0.245, 0., 1.); } return b; break; } case kParamB: { auto b = string2float(text, value); if (b) { value = std::cbrt((value - 0.0001) / (0.9999)); } return b; break; } case kParamC: { auto b = string2float(text, value); if (b) { value = std::cbrt((value - 0.01) / (29.99)); } return b; break; } case kParamD: { auto b = string2float(text, value); if (b) { value = (value + 1.0) / (2.0); } return b; break; } @@ -128,6 +129,7 @@ bool BiquadOneHalf::parameterTextToValue(VstInt32 index, const char *text, float } bool BiquadOneHalf::canConvertParameterTextToValue(VstInt32 index) { switch(index) { + case kParamA: return true; case kParamB: return true; case kParamC: return true; case kParamD: return true; diff --git a/src/autogen_airwin/BiquadPlus.cpp b/src/autogen_airwin/BiquadPlus.cpp index 837840d..2fa0d76 100644 --- a/src/autogen_airwin/BiquadPlus.cpp +++ b/src/autogen_airwin/BiquadPlus.cpp @@ -118,6 +118,7 @@ bool BiquadPlus::getVendorString(char* text) { } bool BiquadPlus::parameterTextToValue(VstInt32 index, const char *text, float &value) { switch(index) { + case kParamA: { auto b = string2float(text, value); if (b) { value = std::clamp(std::round(value) * 0.25 - 0.245, 0., 1.); } return b; break; } case kParamB: { auto b = string2float(text, value); if (b) { value = std::cbrt((value - 0.0001) / (0.9999)); } return b; break; } case kParamC: { auto b = string2float(text, value); if (b) { value = std::cbrt((value - 0.01) / (29.99)); } return b; break; } case kParamD: { auto b = string2float(text, value); if (b) { value = (value + 1.0) / (2.0); } return b; break; } @@ -127,6 +128,7 @@ bool BiquadPlus::parameterTextToValue(VstInt32 index, const char *text, float &v } bool BiquadPlus::canConvertParameterTextToValue(VstInt32 index) { switch(index) { + case kParamA: return true; case kParamB: return true; case kParamC: return true; case kParamD: return true; diff --git a/src/autogen_airwin/BiquadTriple.cpp b/src/autogen_airwin/BiquadTriple.cpp index aa5bb6d..765f968 100644 --- a/src/autogen_airwin/BiquadTriple.cpp +++ b/src/autogen_airwin/BiquadTriple.cpp @@ -118,6 +118,7 @@ bool BiquadTriple::getVendorString(char* text) { } bool BiquadTriple::parameterTextToValue(VstInt32 index, const char *text, float &value) { switch(index) { + case kParamA: { auto b = string2float(text, value); if (b) { value = std::clamp(std::round(value) * 0.25 - 0.245, 0., 1.); } return b; break; } case kParamB: { auto b = string2float(text, value); if (b) { value = std::cbrt((value - 0.0001) / (0.9999)); } return b; break; } case kParamC: { auto b = string2float(text, value); if (b) { value = std::cbrt((value - 0.01) / (29.99)); } return b; break; } case kParamD: { auto b = string2float(text, value); if (b) { value = (value + 1.0) / (2.0); } return b; break; } @@ -127,6 +128,7 @@ bool BiquadTriple::parameterTextToValue(VstInt32 index, const char *text, float } bool BiquadTriple::canConvertParameterTextToValue(VstInt32 index) { switch(index) { + case kParamA: return true; case kParamB: return true; case kParamC: return true; case kParamD: return true; diff --git a/src/autogen_airwin/BitShiftGain.cpp b/src/autogen_airwin/BitShiftGain.cpp index 4f1fce1..0b48770 100644 --- a/src/autogen_airwin/BitShiftGain.cpp +++ b/src/autogen_airwin/BitShiftGain.cpp @@ -97,12 +97,14 @@ bool BitShiftGain::getVendorString(char* text) { } bool BitShiftGain::parameterTextToValue(VstInt32 index, const char *text, float &value) { switch(index) { + case kParamA: { auto b = string2float(text, value); if (b) { value = std::clamp( (std::round(value) + 0.1 - (-16))/32, 0., 1. ); } return b; break; } } return false; } bool BitShiftGain::canConvertParameterTextToValue(VstInt32 index) { switch(index) { + case kParamA: return true; } return false; diff --git a/src/autogen_airwin/Compresaturator.cpp b/src/autogen_airwin/Compresaturator.cpp index 7a63801..d7760e2 100644 --- a/src/autogen_airwin/Compresaturator.cpp +++ b/src/autogen_airwin/Compresaturator.cpp @@ -133,6 +133,7 @@ bool Compresaturator::parameterTextToValue(VstInt32 index, const char *text, flo switch(index) { case kParamA: { auto b = string2float(text, value); if (b) { value = (value + 12.0) / (24.0); } return b; break; } case kParamB: { auto b = string2float(text, value); if (b) { value = value / (100); } return b; break; } + case kParamC: { auto b = string2float(text, value); if (b) { value = std::clamp( std::sqrt(std::max(value/5000.0,0.)), 0., 1. ); } return b; break; } case kParamD: { auto b = string2float(text, value); return b; break; } case kParamE: { auto b = string2float(text, value); return b; break; } @@ -143,6 +144,7 @@ bool Compresaturator::canConvertParameterTextToValue(VstInt32 index) { switch(index) { case kParamA: return true; case kParamB: return true; + case kParamC: return true; case kParamD: return true; case kParamE: return true; diff --git a/src/autogen_airwin/Ensemble.cpp b/src/autogen_airwin/Ensemble.cpp index 1a4ab3c..2c64bf8 100644 --- a/src/autogen_airwin/Ensemble.cpp +++ b/src/autogen_airwin/Ensemble.cpp @@ -130,6 +130,7 @@ bool Ensemble::getVendorString(char* text) { } bool Ensemble::parameterTextToValue(VstInt32 index, const char *text, float &value) { switch(index) { + case kParamA: { auto b = string2float(text, value); if (b) { value = std::clamp( (std::round(value) + 0.1 - (2.9))/46, 0., 1. ); } return b; break; } case kParamB: { auto b = string2float(text, value); return b; break; } case kParamC: { auto b = string2float(text, value); return b; break; } case kParamD: { auto b = string2float(text, value); return b; break; } @@ -139,6 +140,7 @@ bool Ensemble::parameterTextToValue(VstInt32 index, const char *text, float &val } bool Ensemble::canConvertParameterTextToValue(VstInt32 index) { switch(index) { + case kParamA: return true; case kParamB: return true; case kParamC: return true; case kParamD: return true; diff --git a/src/autogen_airwin/Fracture.cpp b/src/autogen_airwin/Fracture.cpp index cbd9328..72b5461 100644 --- a/src/autogen_airwin/Fracture.cpp +++ b/src/autogen_airwin/Fracture.cpp @@ -118,6 +118,7 @@ bool Fracture::getVendorString(char* text) { bool Fracture::parameterTextToValue(VstInt32 index, const char *text, float &value) { switch(index) { case kParamA: { auto b = string2float(text, value); if (b) { value = value / (4); } return b; break; } + case kParamB: { auto b = string2float(text, value); if (b) { value = std::clamp( (std::round(value) + 0.1 - (1))/2.9999, 0., 1. ); } return b; break; } case kParamC: { auto b = string2dBNorm(text, value); return b; break; } case kParamD: { auto b = string2float(text, value); return b; break; } @@ -127,6 +128,7 @@ bool Fracture::parameterTextToValue(VstInt32 index, const char *text, float &val bool Fracture::canConvertParameterTextToValue(VstInt32 index) { switch(index) { case kParamA: return true; + case kParamB: return true; case kParamC: return true; case kParamD: return true; diff --git a/src/autogen_airwin/GlitchShifter.cpp b/src/autogen_airwin/GlitchShifter.cpp index f061b62..3f67188 100644 --- a/src/autogen_airwin/GlitchShifter.cpp +++ b/src/autogen_airwin/GlitchShifter.cpp @@ -159,6 +159,7 @@ bool GlitchShifter::getVendorString(char* text) { } bool GlitchShifter::parameterTextToValue(VstInt32 index, const char *text, float &value) { switch(index) { + case kParamA: { auto b = string2float(text, value); if (b) { value = std::clamp( (std::round(value) + 0.1 - (-12))/24.9999, 0., 1. ); } return b; break; } case kParamB: { auto b = string2float(text, value); if (b) { value = (value + 1.0) / (2.0); } return b; break; } case kParamC: { auto b = string2float(text, value); return b; break; } case kParamD: { auto b = string2float(text, value); return b; break; } @@ -169,6 +170,7 @@ bool GlitchShifter::parameterTextToValue(VstInt32 index, const char *text, float } bool GlitchShifter::canConvertParameterTextToValue(VstInt32 index) { switch(index) { + case kParamA: return true; case kParamB: return true; case kParamC: return true; case kParamD: return true; diff --git a/src/autogen_airwin/IronOxide5.cpp b/src/autogen_airwin/IronOxide5.cpp index e56164b..8109d05 100644 --- a/src/autogen_airwin/IronOxide5.cpp +++ b/src/autogen_airwin/IronOxide5.cpp @@ -162,6 +162,8 @@ bool IronOxide5::getVendorString(char* text) { bool IronOxide5::parameterTextToValue(VstInt32 index, const char *text, float &value) { switch(index) { case kParamA: { auto b = string2float(text, value); if (b) { value = (value + 18.0) / (36.0); } return b; break; } + case kParamB: { auto b = string2float(text, value); if (b) { value = std::clamp( pow(std::max((value - 1.5) / 148.5, 0.), 0.25), 0., 1. ); } return b; break; } + case kParamC: { auto b = string2float(text, value); if (b) { value = std::clamp( pow(std::max((value - 1.5) / 148.5, 0.), 0.25), 0., 1. ); } return b; break; } case kParamD: { auto b = string2float(text, value); return b; break; } case kParamE: { auto b = string2float(text, value); return b; break; } case kParamF: { auto b = string2float(text, value); if (b) { value = (value + 18.0) / (36.0); } return b; break; } @@ -173,6 +175,8 @@ bool IronOxide5::parameterTextToValue(VstInt32 index, const char *text, float &v bool IronOxide5::canConvertParameterTextToValue(VstInt32 index) { switch(index) { case kParamA: return true; + case kParamB: return true; + case kParamC: return true; case kParamD: return true; case kParamE: return true; case kParamF: return true; diff --git a/src/autogen_airwin/IronOxideClassic.cpp b/src/autogen_airwin/IronOxideClassic.cpp index 191a379..f02cf1d 100644 --- a/src/autogen_airwin/IronOxideClassic.cpp +++ b/src/autogen_airwin/IronOxideClassic.cpp @@ -120,6 +120,7 @@ bool IronOxideClassic::getVendorString(char* text) { bool IronOxideClassic::parameterTextToValue(VstInt32 index, const char *text, float &value) { switch(index) { case kParamA: { auto b = string2float(text, value); if (b) { value = (value + 18.0) / (36.0); } return b; break; } + case kParamB: { auto b = string2float(text, value); if (b) { value = std::clamp( pow(std::max((value - 1.5) / 148.5, 0.), 0.25), 0., 1. ); } return b; break; } case kParamC: { auto b = string2float(text, value); if (b) { value = (value + 18.0) / (36.0); } return b; break; } } @@ -128,6 +129,7 @@ bool IronOxideClassic::parameterTextToValue(VstInt32 index, const char *text, fl bool IronOxideClassic::canConvertParameterTextToValue(VstInt32 index) { switch(index) { case kParamA: return true; + case kParamB: return true; case kParamC: return true; } diff --git a/src/autogen_airwin/IronOxideClassic2.cpp b/src/autogen_airwin/IronOxideClassic2.cpp index d98c5b5..becb35f 100644 --- a/src/autogen_airwin/IronOxideClassic2.cpp +++ b/src/autogen_airwin/IronOxideClassic2.cpp @@ -123,6 +123,7 @@ bool IronOxideClassic2::getVendorString(char* text) { bool IronOxideClassic2::parameterTextToValue(VstInt32 index, const char *text, float &value) { switch(index) { case kParamA: { auto b = string2float(text, value); if (b) { value = (value + 18.0) / (36.0); } return b; break; } + case kParamB: { auto b = string2float(text, value); if (b) { value = std::clamp( pow(std::max((value - 1.5) / 148.5, 0.), 0.25), 0., 1. ); } return b; break; } case kParamC: { auto b = string2float(text, value); if (b) { value = (value + 18.0) / (36.0); } return b; break; } } @@ -131,6 +132,7 @@ bool IronOxideClassic2::parameterTextToValue(VstInt32 index, const char *text, f bool IronOxideClassic2::canConvertParameterTextToValue(VstInt32 index) { switch(index) { case kParamA: return true; + case kParamB: return true; case kParamC: return true; } diff --git a/src/autogen_airwin/PitchNasty.cpp b/src/autogen_airwin/PitchNasty.cpp index 54a7bfb..3dd422c 100644 --- a/src/autogen_airwin/PitchNasty.cpp +++ b/src/autogen_airwin/PitchNasty.cpp @@ -137,7 +137,9 @@ bool PitchNasty::getVendorString(char* text) { } bool PitchNasty::parameterTextToValue(VstInt32 index, const char *text, float &value) { switch(index) { + case kParamA: { auto b = string2float(text, value); if (b) { value = std::clamp( (std::round(value) + 0.1 - (-12))/24, 0., 1. ); } return b; break; } case kParamB: { auto b = string2float(text, value); if (b) { value = (value + 12.0) / (24.0); } return b; break; } + case kParamC: { auto b = string2float(text, value); if (b) { value = std::clamp( (std::round(value) + 0.1 - (-36))/72, 0., 1. ); } return b; break; } case kParamD: { auto b = string2float(text, value); return b; break; } case kParamE: { auto b = string2float(text, value); return b; break; } case kParamF: { auto b = string2float(text, value); return b; break; } @@ -147,7 +149,9 @@ bool PitchNasty::parameterTextToValue(VstInt32 index, const char *text, float &v } bool PitchNasty::canConvertParameterTextToValue(VstInt32 index) { switch(index) { + case kParamA: return true; case kParamB: return true; + case kParamC: return true; case kParamD: return true; case kParamE: return true; case kParamF: return true; diff --git a/src/autogen_airwin/Pockey2.cpp b/src/autogen_airwin/Pockey2.cpp index 661dbfc..eaba1ee 100644 --- a/src/autogen_airwin/Pockey2.cpp +++ b/src/autogen_airwin/Pockey2.cpp @@ -123,6 +123,7 @@ bool Pockey2::getVendorString(char* text) { bool Pockey2::parameterTextToValue(VstInt32 index, const char *text, float &value) { switch(index) { case kParamA: { auto b = string2float(text, value); return b; break; } + case kParamB: { auto b = string2float(text, value); if (b) { value = std::clamp( (value - 4.0) / 12.0, 0., 1. ); } return b; break; } case kParamC: { auto b = string2float(text, value); return b; break; } } @@ -131,6 +132,7 @@ bool Pockey2::parameterTextToValue(VstInt32 index, const char *text, float &valu bool Pockey2::canConvertParameterTextToValue(VstInt32 index) { switch(index) { case kParamA: return true; + case kParamB: return true; case kParamC: return true; } diff --git a/src/autogen_airwin/TapeDelay.cpp b/src/autogen_airwin/TapeDelay.cpp index 2396013..1ac2d94 100644 --- a/src/autogen_airwin/TapeDelay.cpp +++ b/src/autogen_airwin/TapeDelay.cpp @@ -142,6 +142,7 @@ bool TapeDelay::parameterTextToValue(VstInt32 index, const char *text, float &va case kParamC: { auto b = string2float(text, value); return b; break; } case kParamD: { auto b = string2float(text, value); return b; break; } case kParamE: { auto b = string2float(text, value); if (b) { value = (value + 1.0) / (2.0); } return b; break; } + case kParamF: { auto b = string2float(text, value); if (b) { value = std::clamp( (std::round(value) + 0.1 - (3))/29, 0., 1. ); } return b; break; } } return false; @@ -153,6 +154,7 @@ bool TapeDelay::canConvertParameterTextToValue(VstInt32 index) { case kParamC: return true; case kParamD: return true; case kParamE: return true; + case kParamF: return true; } return false; diff --git a/src/autogen_airwin/TapeFat.cpp b/src/autogen_airwin/TapeFat.cpp index 967a0db..ae40b11 100644 --- a/src/autogen_airwin/TapeFat.cpp +++ b/src/autogen_airwin/TapeFat.cpp @@ -110,6 +110,7 @@ bool TapeFat::getVendorString(char* text) { bool TapeFat::parameterTextToValue(VstInt32 index, const char *text, float &value) { switch(index) { case kParamA: { auto b = string2float(text, value); if (b) { value = (value + 1.0) / (2.0); } return b; break; } + case kParamB: { auto b = string2float(text, value); if (b) { value = std::clamp( (std::round(value) + 0.1 - (3))/29, 0., 1. ); } return b; break; } } return false; @@ -117,6 +118,7 @@ bool TapeFat::parameterTextToValue(VstInt32 index, const char *text, float &valu bool TapeFat::canConvertParameterTextToValue(VstInt32 index) { switch(index) { case kParamA: return true; + case kParamB: return true; } return false; diff --git a/src/autogen_airwin/VoiceOfTheStarship.cpp b/src/autogen_airwin/VoiceOfTheStarship.cpp index 5e41277..b1c670f 100644 --- a/src/autogen_airwin/VoiceOfTheStarship.cpp +++ b/src/autogen_airwin/VoiceOfTheStarship.cpp @@ -120,6 +120,7 @@ bool VoiceOfTheStarship::getVendorString(char* text) { bool VoiceOfTheStarship::parameterTextToValue(VstInt32 index, const char *text, float &value) { switch(index) { case kParamA: { auto b = string2float(text, value); return b; break; } + case kParamB: { auto b = string2float(text, value); if (b) { value = std::clamp( (std::round(value) + 0.1 - (0))/16.9, 0., 1. ); } return b; break; } } return false; @@ -127,6 +128,7 @@ bool VoiceOfTheStarship::parameterTextToValue(VstInt32 index, const char *text, bool VoiceOfTheStarship::canConvertParameterTextToValue(VstInt32 index) { switch(index) { case kParamA: return true; + case kParamB: return true; } return false;