[
板情報
|
カテゴリランキング
]
したらばTOP
■掲示板に戻る■
全部
1-100
最新50
|
1-
101-
201-
この機能を使うにはJavaScriptを有効にしてください
|
C++でVST作りの指摘・質問
1
:
管理人
:2010/12/10(金) 18:06:52
「C++でVST作り」内の誤記やサンプルコードのバグ、指摘・質問等がございましたらこちらへお願いいたします。
C++でVST作り→
http://www39.atwiki.jp/vst_prog/
157
:
管理人★
:2018/02/13(火) 21:57:22
ちなみに…
タイマーの使い方はVSTGUIEditorクラスのnotify関数をオーバライドして使います。
下記のような方法で実装すればオートメーションに伴ってGUIが更新されるはずです。
(動作確認したわけではないので、動かなかったら教えてください。)
なお、インデントは全角スペースになっているのでご注意ください。
①VST GUIクラス(VSTGUIEditorを継承したクラス)でコントロール用の変数を定義
(ここではつまみ(ノブ)コントロールとしています。)
【例】
CKnob* knob1;
②notify関数をオーバーライド
【例】
public:
CMessageResult notify(CBaseObject *sender, const char *message);
③open関数でコントロールを作成した際にポインタを保存しておく
【例】
bool PLUGIN_API MyVSTGUIEditor::open(void* parent, const PlatformType& platformType)
{
// GUIウィンドウが開かれたときに、UIを作成する
〜〜 中略 〜〜
// つまみ(ノブ)コントロールを作成( createKnob関数は
http://vstcpp.wpblog.jp/?p=1550
参照)
knob1 = (CKnob*)createKnob(1, 20, 20);
〜〜 中略 〜〜
}
④notify関数でタイマーイベントを受け取り、コントロールを更新
(コントロールの更新はsetDirty関数を使います。)
【例】
CMessageResult MyVSTGUIEditor::notify(CBaseObject *sender, const char *message)
{
if (message == CVSTGUITimer::kMsgTimer)
{
if (knob1 != nullptr)
{
knob1 ->setDirty(); // 表示を更新
}
}
return VSTGUIEditor::notify(sender, message);
}
158
:
管理人★
:2018/02/13(火) 22:15:27
すいません…。
「④notify関数でタイマーイベントを受け取り、コントロールを更新」で
パラメーターの値を取得する必要がありそうです。
CMessageResult MyVSTGUIEditor::notify(CBaseObject *sender, const char *message)
{
if (message == CVSTGUITimer::kMsgTimer)
{
if (knob1 != nullptr)
{
// 現在の値をパラメーター操作クラスから取得し反映する
ParamID tag = 1;
ParamValue value = controller->getParamNormalized(tag);
knob1->setValueNormalized(value);
knob1->setDirty(); // 表示を更新
}
}
return VSTGUIEditor::notify(sender, message);
}
新着レスの表示
名前:
E-mail
(省略可)
:
※書き込む際の注意事項は
こちら
※画像アップローダーは
こちら
(画像を表示できるのは「画像リンクのサムネイル表示」がオンの掲示板に限ります)
スマートフォン版
掲示板管理者へ連絡
無料レンタル掲示板