0

2つの垂直フェーダーを備えたVST2.4GUI(C ++)を実装しました。

コードでは、2つをリンクしているので、一方が他方にスケーリングされます。つまり、基本的に、fader2は常にfader1の半分の値であると言いたいのです。

fader1 = 1.0; 
fader2 = fader1 / 2; 

コードはかなり単純ですが、これがGUIに「フィードバック」されるように追加する必要がある機能は何ですか。フェーダー1のスライダーを動かすと、フェーダー2のスライダーも(比率で)移動し、表示変数も更新されますか?

'valueChanged'内のsetParameterAutomatedと同様に機能する必要があると思います

これを実装している理由は、2つのフェーダーをこの比率にリンクするスイッチがあるためです。したがって、オフの場合、各フェーダーを個別に設定できます。ただし、オンの場合、フェーダー1が移動し、フェーダー2も2:1の比率で移動します。

4

1 に答える 1

1

スライダーを動かすと、エディターのvalueChanged()メソッドが呼び出され、次に、エフェクトsetParameterAutomated()が呼び出されます。

setParameterAutomated()は、内部的にsetParameter()を呼び出します。このメソッドは仮想であるため、2番目のフェーダーに関連付けられているパラメーターの値を希望どおりに設定するようにオーバーライドする必要があります。AEffectX :: setParameter()も忘れずに呼び出してください。

次に、パラメーターの変更をUIに通知するためのメカニズムが作動し、2番目のフェーダーが適切に移動します。

この方法で行う必要があります。これにより、1番目のフェーダーが移動した理由(ユーザーがドラッグしたため、またはホストが自動化イベントを送信したため)に関係なく、2番目のフェーダーが移動します。

于 2011-05-27T01:54:54.543 に答える