VST GUI中的向后突发值

时间:2013-02-28 21:10:51

标签: user-interface plugins vst

要解决的新问题。

在我的setParameter()中,我用来将值设置为“实际值”。 我用value * (max - min) + min格式化它们 例如:value of 1.0 == 20000Hzvalue of 0.0 == -30dB

现在我遇到了问题,VSTGUI似乎只接受0-1的值。 有没有比在setParameter()中重写所有代码更好的解决方案?

像sprintf()之类的东西可能吗?

编辑:我正在使用CAnimKnob类。

2 个答案:

答案 0 :(得分:0)

aardvark的评论是正确的,反向选项就是你想要的。在过去与vstgui合作过后,我可以验证这是否有效。

我只想补充一点,如果您使用这样的频率算法,对用户来说将非常困难。您应该使用对数刻度,以便更容易选择更高的频率。否则,当您接近20kHz时,旋钮的单个步骤将导致几百赫兹的差异。

答案 1 :(得分:0)

感谢您的建议。如果我知道如何使用VSTGUI的反向运算符,那就是我先做的。 VSTGUI CAnimKnob仅接受从0.0到1.0的浮点值。线性或对数无关紧要。为了更好地理解一些代码片段:

我将这个过程函数称为:

case kFreq1: fFreq1 = value * (fFreqMax - fFreqMin) + fFreqMin;break;
case kGain1: fGain1 = value * (fGainMax - fGainMin) + fGainMin;break;
case kQ1 : fQ1 = value * (fQMax - fQMin) + fQMin;break;

这是因为我的滤波器代码的频率值为20 - 20000,增益的值为-30到30。

VSTGUI中的旋钮仅提供0到1之间的值,并且仅获得0到1之间的值。

所以主要问题是:在代码中从float values 0-1带回20 - 20000的位置?