VST SDKの各バージョンのリンク

VST SDKの各バージョンのリンク

VST SDKの各バージョンのリンク(URL)になります。古いバージョンはいつ消されるかわかりませんのでご了承ください。
(あえてクリックでアクセスできないようにしています。必要な場合、ブラウザなどにURLを張り付けてアクセスしてください。)

■VST SDK 3.7.10
https://download.steinberg.net/sdk_downloads/vst-sdk_3.7.10_build-14_2024-01-18.zip

■VST SDK 3.7.9
https://download.steinberg.net/sdk_downloads/vst-sdk_3.7.9_build-61_2023-10-09.zip

■VST SDK 3.7.8
https://download.steinberg.net/sdk_downloads/vst-sdk_3.7.8_build-34_2023-05-15.zip

■VST SDK 3.7.7
https://download.steinberg.net/sdk_downloads/vst-sdk_3.7.7_build-19_2022-12-12.zip

■VST SDK 3.7.6
https://download.steinberg.net/sdk_downloads/vst-sdk_3.7.6_build-18_2022-09-05.zip

■VST SDK 3.7.5
https://download.steinberg.net/sdk_downloads/vst-sdk_3.7.5_build-44_2022-05-19.zip

■VST SDK 3.7.4
https://download.steinberg.net/sdk_downloads/vst-sdk_3.7.4_build-25_2021-12-16.zip

■VST SDK 3.7.3
https://download.steinberg.net/sdk_downloads/vst-sdk_3.7.3_build-20_2021-08-10.zip

■VST SDK 3.7.2
https://download.steinberg.net/sdk_downloads/vst-sdk_3.7.2_build-28_2021-03-30.zip

■VST SDK 3.7.1
https://download.steinberg.net/sdk_downloads/vst-sdk_3.7.1_build-50_2020-11-17.zip

■VST SDK 3.7.0
https://download.steinberg.net/sdk_downloads/vst-sdk_3.7.0_build-115_2020-07-30.zip

■VST SDK 3.6.14
https://download.steinberg.net/sdk_downloads/vst-sdk_3.6.14_build-24_2019-11-29.zip

■VST SDK 3.6.13
https://download.steinberg.net/sdk_downloads/vstsdk3613_08_04_2019_build_81.zip

■VST SDK 3.6.12
https://download.steinberg.net/sdk_downloads/vstsdk3612_03_12_2018_build_67.zip

■VST SDK 3.6.11
https://download.steinberg.net/sdk_downloads/vstsdk3611_22_10_2018_build_34.zip

下記はすでにサイトからは削除されているようですが、記載しておきます。

■VST SDK 3.6.10
https://download.steinberg.net/sdk_downloads/vstsdk3610_11_06_2018_build_37.zip

■VST SDK 3.6.9
https://download.steinberg.net/sdk_downloads/vstsdk369_01_03_2018_build_132.zip

■VST SDK 3.6.8
https://download.steinberg.net/sdk_downloads/vstsdk368_08_11_2017_build_121.zip

■VST SDK 3.6.7
https://download.steinberg.net/sdk_downloads/vstsdk367_03_03_2017_build_352.zip

■VST SDK 3.6.6
https://download.steinberg.net/sdk_downloads/vstsdk366_27_06_2016_build_61.zip

■VST SDK 3.6.5
https://download.steinberg.net/sdk_downloads/vstsdk365_12_11_2015_build_67.zip

■VST SDK 3.6.0
https://download.steinberg.net/sdk_downloads/vstsdk360_22_11_2013_build_100.zip

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

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

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

VST3プラグイン開発09 – MIDIメッセージの受取1

VST3プラグインでMIDIメッセージを受信する方法1

前回まででパラメーターの実装や保存など、ひととおりのパラメーターについての説明はさせていただいたと考えております。

【参考】

パラメーター実装方法1 はじめてのVST3プラグインに基本となるパラメーターを実装する方法を記載します。
パラメーター実装方法2 パラメーター実装方法1で実装したパラメーターは「0.0~1.0」しか表示できないので、
それ以外(例えば「10~100」や文字列のリストなど)を表示するパラメーターを実装する方法を記載します。
パラメーター実装方法3 パラメータークラスを継承して自作のパラメータークラスを作成します。
「フィルタのカットオフ周波数」等で利用するスライダーの位置と出力の関係が線形でないパラメーターを実装する方法を記載します。
パラメーターの保存方法 パラメーター実装方法1~3で追加したパラメーターはホスト(DAWなど)を終了すると初期化されてしまいます。
終了時に保存し、次回起動時にデータが読み込まれるようパラメーターを保存・読込する方法を記載します。

ですので、今回はMIDIのノートオン/ノートオフメッセージを受信する方法を記載したいと思います。

今回作成するプラグインはVST3プラグインのパラメーター実装方法で作成したプラグインをベースにします。
(コントロールの実装以外に余計なコードが少ないためです。)

  • パラメーターはなし(ただしパラメーター操作クラスは定義します。)
  • MIDIのノートオン/ノートオフメッセージに応じて音を鳴らすモノフィックシンセサイザー
  • 音色はサイン波のみ。(エンベロープジェネレータ等の機能もなし)
  • 入力バス、出力バスは1つで、共にステレオ(2ch)

今回ベースとなるプラグインの説明はこちらに記載しています。

このVST3プラグインのサンプルソースファイルはこちらからダウンロードできます→vst3dev_20210403
ZIPファイルの中の「vst3dev06_MIDIメッセージを受信する方法1」フォルダが今回のサンプルソースファイルになります。

コンパイル・ビルドの方法は簡単にこちらでご説明しております。ご参考までに。→サンプルソースファイルのビルド方法

音声処理クラスの定義

まずは今回作成するVSTはモノフィックシンセサイザーとして動作するため、音声処理クラスにて必要な変数等を下記の通り定義しております。
もっと見る

VST SDK 3.6.8が公開されました

VST SDK 3.6.8が公開されました

VST SDK 3.6.8が公開されました。

参考→sdk.steinberg.net

変更点は下記のようです。(英語は自信がないです。)

  • 一部のライセンスが変更
  • C++11が必須に。WindowsではVisual Studio 2015以降が必須
  • Linuxのサポートがβ版に
  • いくつかのインターフェイスとフラグが追加
  • VST3ホストのサンプル追加
  • AUv3とAAXラッパーが追加

VST SDK 3.6.7の基本ライブラリ作成方法

VST SDK 3.6.7の基本ライブラリ作成方法変更について

VST SDK の最新版(3.6.7)が発表されております。
Linux対応に伴い、基本ライブラリの作成方法が変更されております。

具体的には、今までプロジェクトファイルが同梱されておりましたが、今後はCMAKEを使用してVisual Studioプロジェクトを作成する必要があります。

Visual Studioプロジェクトと基本ライブラリの作成方法

CMAKEによるVisual Studioプロジェクトと基本ライブラリの作成方法は下記になります。

  1. CMAKEを公式サイトからダウンロードし、インストールする
  2. VST SDK 3.6.7を任意のフォルダに解凍する
  3. 解凍したフォルダの「VST_SDK\VST3_SDK」配下に「build」フォルダを新規作成
  4. cmakeを起動し、下記の通り設定
    • where is the sorce code
        →「VST_SDK\VST3_SDK」を指定
    • where to build the binaries
        →「VST_SDK\VST3_SDK/build」を指定
  5. .cmake下側の「Configure」ボタンを押し、下記を設定し「Finish」ボタンを押す
    • Specify the generator for this project
        →「Visual Studio 14 2015 Win64」を指定
        (他はそのまま)
  6. cmakeの設定が自動始まり、中央部分に情報(赤字)が表示される
    →「Configure」ボタンの下側のログにエラーがないことを確認する
  7. 「Generate」ボタンを押し、Visual Studioのプロジェクトを作成する
    →「VST_SDK\VST3_SDK/build」配下に「ALL_BUILD.vcxproj」が作成されていることを確認する
  8. 「ALL_BUILD.vcxproj」を開き、Visual Studioでビルドを行う
    →「VST_SDK\VST3_SDK/build/lib」配下にライブラリ「base.lib」が作成される

なお、Visual Studio 2017ではエラーが出たという報告も確認しております。
詳細が分かりましたら、追記していこうと考えています。

その他変更点

VST SDK 3.6.7では下記の変更点もありますので、ご注意ください。
・64bitのみの対応
・文字はマルチバイト文字セットではなくユニコード文字セットを使う
・プロジェクトのプロパティでマルチスレッド(/MT、/MTd)ではなくマルチスレッドDLL(/MD、/MDd)を使用する必要がある
・「VST3_SDK\pluginterfaces\base\funknown.cpp」をプロジェクトに追加する

VST3プラグイン開発08 – VST3プラグインのパラメーター内容の保存方法

VST3プラグインのパラメーターを保存する方法

前回まででいろいろなパラメーターを実装しました。

【参考】

パラメーター実装方法 パラメーター自体を実装する方法
パラメーター実装方法2 0.5~30.0の範囲や文字列リスト等のパラメーターを実装する方法。
パラメーター実装方法3 「フィルタのカットオフ周波数」等の線形でないパラメーターを実装する方法を記載

しかし、VSTを終了し再度起動してもパラメーターがデフォルト値に戻ってしまっていたかと思います。
それはVST3ではパラメーター内容を保存する処理を自分で記載しなければならないためです。
今回は作成したパラメーターの値を保存する方法について記載したいと思います。

今回作成するプラグインはVST3プラグインのパラメーター実装方法で作成したプラグインをベースにします。
(コントロールの実装以外に余計なコードが少ないためです。)

  • パラメーターは1つ(ボリュームコントロール)
  • 入力のボリュームをパラメーターにより調整して出力する
  • 入力バス、出力バスは1つで、共にステレオ(2ch)

今回の内容はいままでのパラメーターの実装方法をベースにしています。上記の参考についても必要に応じてご参照ください。
なお、「バス」についての概念はこちらに記載したとおりです。

このVST3プラグインのサンプルソースファイルはこちらからダウンロードできます→vst3dev_20210403
ZIPファイルの中の「vst3dev05_パラメーターを保存する方法」フォルダが今回のサンプルソースファイルになります。

コンパイル・ビルドの方法は簡単にこちらでご説明しております。ご参考までに。→サンプルソースファイルのビルド方法

パラメーターを保存・読込するための関数

パラメーターを保存・読込するためには、音声処理クラスとパラメーター操作クラスで必要な関数をオーバーライドします。 もっと見る

VST3プラグイン開発07 – 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

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

    このVST3プラグインのサンプルソースファイルはこちらからダウンロードできます→vst3dev_20210403
    ZIPファイルの中の「vst3dev04_パラメーター実装方法3」フォルダが今回のサンプルソースファイルになります。

    コンパイル・ビルドの方法は簡単にこちらでご説明しております。ご参考までに。→サンプルソースファイルのビルド方法

    また、今回ローパスフィルタをかけるにあたって、自作のフィルタクラス(CMyFilter)を使用しています。
    フィルタクラスについては「簡単なデジタルフィルタの実装」と「簡単なデジタルフィルタのサンプルコード」にて説明しております。

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

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

    Parameterクラスを継承して自作のパラメーターを使用するには、下記手順を行います。 もっと見る