如何解决JUCE VST开发-在音频压缩器上更新滑块中的附件时出现问题
我正在尝试开发一种用户友好的压缩机。一开始我有很多疑问,最终我基于代码中GNU下的两个项目。
我正在根据压缩程度更新inc / dec按钮上的一些插件参数值,并将该inc / dec值(从1更改为5)直接作用于压缩机以更改该值。
我正在“参数更改”功能中实现音频压缩机的设置,如下所示:
void SimpleCompressorAudioProcessor::parameterChanged(const String& parameterID,float newValue)
{
if (parameterID == "threshold")
{
compressor.setThreshold(newValue);
characteristicChanged = true;
}
else if (parameterID == "knee")
{
compressor.setKnee(newValue);
characteristicChanged = true;
}
else if (parameterID == "attack") {
compressor.setAttackTime(newValue / 1000);
characteristicChanged = true;
}
else if (parameterID == "release") {
compressor.setReleaseTime(newValue / 1000);
characteristicChanged = true;
}
else if (parameterID == "ratio")
{
if (newValue > 15.9f)
compressor.setRatio(std::numeric_limits<float>::infinity());
else
compressor.setRatio(newValue);
characteristicChanged = true;
}
else if (parameterID == "makeUp")
{
compressor.setMakeUpGain(newValue);
characteristicChanged = true;
}
else if (parameterID == "bypass")
{
characteristicChanged = true;
}
else if (parameterID == "hpf")
{
//hpf = (bool)newValue;
characteristicChanged = true;
}
else if (parameterID == "expMode") {
characteristicChanged = true;
}
else if (parameterID == "compDegree") {
compressor.setKnee(0.5);
compressor.setThreshold(-20);
compressor.setRatio(3.0);
switch (((int)*parameters.getRawParameterValue("compDegree")))
{
case 1:
compressor.setAttackTime(6 / 1000);
compressor.setReleaseTime(2 / 1000);
compressor.setMakeUpGain(1);
break;
case 2:
compressor.setAttackTime(5 / 1000);
compressor.setReleaseTime(3 / 1000);
compressor.setMakeUpGain(2);
break;
case 3:
compressor.setAttackTime(4 / 1000);
compressor.setReleaseTime(4 / 1000);
compressor.setMakeUpGain(3);
break;
case 4:
compressor.setAttackTime(3 / 1000);
compressor.setReleaseTime(5 / 1000);
compressor.setMakeUpGain(4);
break;
case 5:
compressor.setAttackTime(2 / 1000);
compressor.setReleaseTime(6 / 1000);
compressor.setMakeUpGain(5);
break;
default:
break;
}
parameters.state.sendPropertyChangeMessage("attack");
parameters.state.sendPropertyChangeMessage("release");
parameters.state.sendPropertyChangeMessage("makeUp");
characteristicChanged = true;
updateHostdisplay();
}
else
jassertfalse;
}
我很惊讶,所以我没有办法用SliderAttachments文本框使用我设置的值更新其值。
如果有人可以提供帮助并提出一些样式或最佳实践编码,我会很高兴,因为目前该项目已停止。
我已将其上传到github @ https://github.com/ealcober/SimpleCompressor-master_incDec_bypass_hpf_Oct.git
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。