VST3プラグインのパラメーター実装方法3
前回はいろいろな値を表示すると文字列リストのパラメーターを実装しました。
しかし、「デジタルフィルタのカットオフ周波数」ようなパラメーターでは、パラメーターの値が大きくなるにつれて効き目が変わってくるものもあります。
例えば、デジタルフィルタのカットオフ周波数の場合、同じ1,000Hz分をカットオフ周波数を操作するにしても500Hz~1,500Hzと15,000Hz~16,000Hzではフィルタの影響が大きく異なります。(15,000Hz~16,000Hzはほとんど変化がないように感じます。)
このようなの場合、どの位置を動かしても同じような影響がでるパラメーターを実装したほうが使いやすくなります。
これはパラメーターの操作に対して指数的(非線形)に値が増加するパラメーターを実装すれば実現できます。
今回は「パラメーターの操作に対して、値が指数的(非線形)に値が増加するパラメーター」を実装する方法について記載したいと思います。
今回作成するプラグインは下記のとおりです。
- ローパスフィルタをかける機能を持つエフェクター
- パラメーターは2つ
- 周波数(50.0~22000.0Hzの範囲のパラメーター)
- Q値(0.5~10.0の範囲のパラメーター)
今回の内容は前回と前々回の説明を参考にしています。パラメーターの追加方法などについては、前回の説明と前々回の説明をご参照ください。
なお、「バス」についての概念はこちらに記載したとおりです。
このVST3プラグインのサンプルソースファイルはこちらからダウンロードできます→vst3dev_20210403
ZIPファイルの中の「vst3dev04_パラメーター実装方法3」フォルダが今回のサンプルソースファイルになります。
コンパイル・ビルドの方法は簡単にこちらでご説明しております。ご参考までに。→サンプルソースファイルのビルド方法
また、今回ローパスフィルタをかけるにあたって、自作のフィルタクラス(CMyFilter)を使用しています。
フィルタクラスについては「簡単なデジタルフィルタの実装」と「簡単なデジタルフィルタのサンプルコード」にて説明しております。
指数的な変化をするパラメーター
指数的な変化をするパラメーターを実装するためには、Parameterクラスを継承し自作のパラメータークラスを作成します。
Parameterクラスを継承して自作のパラメーターを使用するには、下記手順を行います。 もっと見る


