複数コントロールの同期

VST GUIにおける複数コントロールの同期

VST GUIを作成するうえで、下記のように「つまみ(ノブ)を操作すると同時にスライダーも動く」のように複数のコントロールで連携や同期をとりたい場合があります。今回はその実装方法を説明いたします。

なお、VST GUIの基本的な作成方法として下記をご理解いただいている前提で進めさせていただきます。

また、こちらのTipsで紹介している各コントロールを作成する関数も使用しています。

今回のサンプルではつまみ(ノブ)コントロールと縦型スライダーを同時に動かします。

まず、VST GUIクラスのopen()関数内で各コントロールを作成します。(参考:「つまみ(ノブ)の実装」「縦型スライダーの実装」)
コントロール作成時に作成したコントロールのポインタをあらかじめ定義したメンバー変数に保存しておきます。メンバー変数はあらかじめ定義しておきます。

【guieditor.h】

【guieditor.cpp】

つづいてコントロールを操作したときに呼び出されるvalueChanged()関数で同期するための処理を追記します。

どのコントロールが操作されたかを確認し、それが同期させたいコントロールの場合に値を同期させます。
(今回の場合、つまみ(ノブ)コントロールか縦型スライダーの場合)

取得した値をそれぞれのコントロールに設定します。
設定後は画像を更新するためそれぞれのコントロールのsetDirty()関数を呼び出します。

以上で複数コントロールの同期ができます。

上記以外にもVST3.6についての情報があります。下記をご参照ください。

また、質問やご指摘はコメント欄や掲示板Twitterでいただけばとおもいます。

掲示板
■Twitterアカウント:@vstcpp   URL:https://twitter.com/vstcpp


コメントを残す