[
板情報
|
カテゴリランキング
]
したらばTOP
■掲示板に戻る■
全部
1-100
最新50
|
1-
101-
201-
この機能を使うにはJavaScriptを有効にしてください
|
C++でVST作りの指摘・質問
164
:
管理人★
:2018/02/16(金) 22:09:16
SNRERさん
ご確認ありがとうございます。少し整理のために、私の理解している動作を記載させていただきます。
まず、オートメーションや再生バーを動かした時、DAWからは状態とGUIを反映するため下記が行われる
A)音声処理クラス(AudioEffectを継承したクラス)へは
process関数の引数ProcessData& dataに値を設定し反映する。
音声処理クラスは渡された値で内部状態を更新する。
B)パラメータ操作クラス(EditControllerを継承したクラス)へは
setParamNormalized関数を呼び出して変更を通知・反映する。(値を更新する)
パラメータ操作クラスはsetParamNormalized関数のtagで指定された
パラメータの値を更新する。
上記とは別にVST GUIクラス(VSTGUIEditoを継承したクラス)はタイマーを使って
0.1秒ごと(デフォルト時)にnotifyを呼び出している。
C)notifyでは、パラメータ操作クラスから現在の値をgetParamNormalized関数で取得し、
コントロール(ノブなど)の値を更新している。
値更新後はsetDirty関数で画面UIの更新をDAWに通知し、DAWに再描画させる。(0.1秒ごと)
VST GUIクラスのEditController* controllerはパラメータ操作クラスへのポインタなので
B)のタイミングで値は更新されている。
C)は0.1秒ごとに呼び出されるので、どこかのタイミングでコントロールは更新される
再生バーを動かした時でも0.1秒以内には更新される。
以上が私の理解している動作になります。
いま、A)とC)は呼び出されていることが確認できており、B)が確認できていない状況で
間違いないでしょうか?
B)が呼び出されない可能性はDAWの実装に原因があるように思えます。
(ただ、サンプルVSTで動いているのが気になります…)
再生バーを動かしたときにB)が確認できるか?(DAWからsetParamNormalized関数が呼ばれているか?)
を確認してもらえますでしょうか?
また、呼び出されていても反映されていない状況もあるかと思います。
たとえばParameterクラスを継承して自作Parameterクラスを作っていて、そのクラスの実装が
間違っている場合などです。
自作Parameterクラス等は作っていないでしょうか?
最後にバインディングの件ですが、VST SDK 3.6.8からサンプルのVST GUIが
Inline UI Editor(VST3Editorクラス)を使うようになったようです。
このInline UI Editorはコード書かなくても、マウスでUIを作れる方法のようです
バインディングというのは、
「マウスでコントロール(ノブなど)を作っても自動で割り当てしてくれる」
という意味だと私は理解しています。
長文失礼しました。以上よろしくお願いします。
新着レスの表示
名前:
E-mail
(省略可)
:
※書き込む際の注意事項は
こちら
※画像アップローダーは
こちら
(画像を表示できるのは「画像リンクのサムネイル表示」がオンの掲示板に限ります)
スマートフォン版
掲示板管理者へ連絡
無料レンタル掲示板