VST3.6勉強中 7 – VST3プラグインのパラメーター実装方法3

VST3プラグインのパラメーター実装方法3

前回はいろいろな値を表示すると文字列リストのパラメーターを実装しました。

しかし、「デジタルフィルタのカットオフ周波数」ようなパラメーターでは、パラメーターの値が大きくなるにつれて効き目が変わってくるものもあります。
例えば、デジタルフィルタのカットオフ周波数の場合、同じ1,000Hz分をカットオフ周波数を操作するにしても500Hz~1,500Hzと15,000Hz~16,000Hzではフィルタの影響が大きく異なります。(15,000Hz~16,000Hzはほとんど変化がないように感じます。)

20171103

このようなの場合、どの位置を動かしても同じような影響がでるパラメーターを実装したほうが使いやすくなります。
これはパラメーターの操作に対して指数的(非線形)に値が増加するパラメーターを実装すれば実現できます。

今回は「パラメーターの操作に対して、値が指数的(非線形)に値が増加するパラメーター」を実装する方法について記載したいと思います。

今回作成するプラグインは下記のとおりです。

  • ローパスフィルタをかける機能を持つエフェクター
  • パラメーターは2つ
  • 周波数(50.0~22000.0Hzの範囲のパラメーター)
  • Q値(0.5~10.0の範囲のパラメーター)
  • 入力バス、出力バスは1つで、共にステレオ(2ch)
  • VSTのイメージ
    20171103

    今回の内容は前回前々回の説明を参考にしています。パラメーターの追加方法などについては、前回の説明前々回の説明をご参照ください。
    なお、「バス」についての概念はこちらに記載したとおりです。

    指数的な変化をするパラメーター

    指数的な変化をするパラメーターを実装するためには、Parameterクラスを継承し自作のパラメータークラスを作成します。

    Parameterクラスを継承して自作のパラメーターを使用するには、下記手順を行います。 続きを読む

    Twitterはじめまてみました

    昔取得して放置していたアカウントがあったので更新再開を機にはじめてみました。
    書けること、書きたいことはいっぱいあるのですが、飽きやすい性格なので皆さんとつながってモチベーションを保てればと思います。

     Twitterアカウント:@vstcpp
     URL:https://twitter.com/vstcpp

    Twitterの使いかたがよくわかっていないので教えてくれる人がいると助かります。

    久しぶりの更新再開のお知らせ

    久しぶりにやる気が出てきましたので更新を再開する予定です。

    とりあえずVST3の勉強についての記事の完成に向けて頑張ります。
    生温かく見守っていただけると幸いです。

    パラメータ実装方法3 「フィルタのカットオフ周波数」等の線形でないパラメータを実装する方法を記載します。
    パラメータの保存方法 せっかく追加したパラメータを次回起動時も変更が反映されるようパラメーターを保存する方法を記載します。
    (サンプルコードのみであればここにあります。)
    MIDIメッセージの受取1 MIDIのNote On、Note Offメッセージを受け取る方法の記載します。
    MIDIメッセージの受取2 MIDIのControl Change、Pitch Bend等のメッセージを受け取る方法の記載します。

    なお、VST SDKの最新版は3.6.7のようですが、ここでは引き続きVST SDK 3.6.0をベースに記載いたします。
    「最新版では出来なかった」などご指摘があればいただけると幸いです。

    VST3.6勉強中 6 – VST3プラグインのパラメーター実装方法2

    VST3プラグインのパラメーター実装方法2

    前回はパラメーターを実装しましたが、0.0~1.0の範囲の値しか表示できませんでした。
    実際にVSTプラグインを作成する際には、0~1の間だけでなくいろいろな値を表示する場合があると思います。

    今回は任意の範囲を表示するパラメーターと文字列リストを表示するパラメーターを実装したいと思います。

    今回作成するプラグインは下記のとおりです。

    • ボリュームコントロール、トレモロ、パンニングの機能を持つエフェクター
    • パラメーターは3つ
    • ボリュームコントロール(0.0~1.0の範囲のパラメーター)
    • トレモロスピード(0.5~30.0Hzの範囲のパラメーター)
    • トレモロタイプ(ボリュームコントロール・トレモロ・パンニングの文字列リストパラメーター)
  • 入力バス、出力バスは1つで、共にステレオ(2ch)
  • 20150929

    今回の内容は前回の説明をもとにしていますので、パラメーターの追加方法等については、前回の説明をご参照ください。
    「バス」についての概念はこちらに記載したとおりです。

    任意の範囲を表示するパラメーター

    任意の範囲(例えば0.5Hz~30Hz 等)を表示するためには、RangeParameterクラスを使用します。

    続きを読む

    簡単なデジタルフィルタの実装の更新

    簡単なデジタルフィルタの実装を更新しました。

    Q値等についての説明が不足していましたので、各デジタルフィルタのパラメータ説明を若干修正いたしました。
    また、各デジタルフィルタの周波数特性グラフも追加いたしました。

    ※更新したページ → 簡単なデジタルフィルタの実装

    ご参考になればと思います。

    VST SDKダウンロード方法の更新

    コメントでいただいた情報なのですが、いつの間にやらVST SDKは会員登録なしでダウンロードできるようになったようです。
    これに合わせ、VST SDKのダウンロードの説明ページを更新いたしました。

      Steinberg公式サイト 3rd Party Developerページ

      ※VST SDKのダウンロード(更新したページ) → VST SDKをダウンロードする

    また、MicroSoft社の開発環境である、Visual StudioもExpress以外に無償で使用できる新しいエディションができたようです。
    Visual Studio 2013 Express自体はまだダウンロードできるようですが、今後廃止されるようですので、「開発環境のインストール方法」もそのうち修正したいと思います。

      Microsoft Visual Studioページ

    現時点ですでにVisual Studio 2013 Expressのダウンロードリンクのページが変わっているようです。

      Microsoft Visual Studio Expressのダウンロードページ