開発環境にVisual Studio 2013以前を使用する場合

開発環境にVisual Studio 2013以前を使用する場合

開発環境にVisual Studio 2013以前を使用したい場合、VST SDK 3.6.6を使えばよさそうです。

旧バージョンのSDKは下記のリンクにまとめております。

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

なお、基本ライブラリの作成手順はVST SDK 3.6.0と同じはずですので下記を参照していただければと思います。

 はじめてのVST3.6.0プラグインの作り → VST3作成の準備

【参考サイト様】
@jkjm_ken様 貴重な情報をいただきありがとうございました。
JKJM MEMO – Visual studioのバージョンとVST3.6の関係

何かありましたらコメント欄や掲示板Twitterにご質問をいただけばとおもいます。
また、出来たという報告もいただけるとありがたいです。

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

テンポの取得

VST3.6におけるテンポの取得

VSTプラグインを作成する際、ホストアプリ(DAWなど)からテンポの情報を取得したい場合があります。

テンポ情報は音声処理クラスのprocess()関数の引数ProcessData& dataに保存されています。

実際に取得する方法は下記となります。なお、ホストアプリ(DAWなど)によっては、取得できない場合もあります。
(情報を取得できなかったホストアプリについてはコメント欄や掲示板Twitterなどで教えていただけると助かります。)

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

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

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

VST3.6 ポリフォニックシンセサイザー サンプルコード

VST3.6 ポリフォニックシンセサイザー サンプルコード

Twitterで少し話題がありましたので補足と他の方の参考のまでに、ポリフォニックシンセサイザーのサンプルコードを公開いたします。
対象としてるVST SDKのバージョンは3.6.6のため、最新のものでは動かない可能性があります。

※現時点(2020年1月)で判明している不具合として下記があります。(サンプルコード自体の修正は手が空いてから実施しますので少々お待ちください。)

不具合内容 回避方法
一部のDAW(Sonar、VSTHost等)でエラー(例外)が発生する パラメータ操作クラスを実装する
ヘッダファイル「pluginfactoryvst3.h」が見つからない。 ヘッダファイルを「pluginfactoryvst3.h」から「pluginfactory.h」に修正する。

少し落ち着いてから解説する予定ですので、今回は解説はありません。

ソースファイルはこちらになります。 → 20171207_vst3

なお、VST3.6のプロジェクトの作成方法やVST3開発環境の準備方法は下記をご参照ください。

その他、VST3.6については下記をご参照ください。

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

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

VST3プラグイン開発02 – VST3プロジェクトの作成

VST3のプロジェクトの作成

前回は開発環境の準備方法を記載いたしました。

今回はVST SDKでVST3開発用のVisual Studioプロジェクトを作成方法について記載いたします。

なお、OSはWindows 10 64bitで、Visual Studio 2019 CommunityとVST SDK 3.7.1を使用することを前提としています。
また、VST基本ライブラリは作成済みであることを前提としております。

プロジェクトの作成

まずはVisual Studioのプロジェクト自体を作成します。

Visual Studioを起動し、「新しいプロジェクトの作成」を選びます。

もっと見る

VST3プラグイン開発01 – VST3開発環境の準備

VST3開発環境の準備

VST3を開発するにはいくつかのソフトウェアが必要になります。
このサイトではWindows 10 64bitでVisual Studio 2019 CommunityとVST SDK3.7.3を使用してVST3を開発する方法を説明いたします。

まずは、開発するための環境を準備する方法を記載いたします。下記のステップで環境の準備を行います。

  1. 開発環境のインストール
  2. VST SDKのダウンロード
  3. VST基本ライブラリの作成

開発環境のインストールやVST SDKダウンロードなどすでに終わっている項目については読み飛ばしていただいてもかまいません。

開発環境のインストール

VST/VSTiプラグインはC/C++で開発する必要があります。
もっと見る

VST3におけるサイレンス処理

VST3におけるサイレンス処理

process()関数の引数 dataの入力オーディオバスにはサイレンスフラグというものがあり、「音声入出力バッファの値がすべて0の場合、サイレンスフラグを立てる」という決まりがあるようです。

このサイレンスフラグは、「何も音声入力がない場合に無駄な処理を行わないことでコンピューター(CPU)の負荷を下げる」ためにあります。
(多分、このフラグがSteinberg Webサイトにある「VST3新機能」の「パフォーマンスの改善」にあたるものと思われます。)

音声出力にサイレンスフラグを立てるのは、VST3プラグインが複数 接続される可能性を想定しているためです。
自身の作成したVST3プラグインの音声出力は次のVST3プラグインの音声入力となるため、音声出力がすべて0の場合はサイレンスフラグを立てる必要があります。

サイレンスフラグの処理方法はVST3プラグインによって異なります。
「音声入力のサイレンスフラグが立っているようであれば、音声出力もすべて0にしサイレンスフラグを立てる」といった処理を行うVSTプラグインもあれば、シンセサイザーやリバーブ(残響)エフェクトなどのように「音声入力のサイレンスフラグが立っていても、少し前の音声入力やMIDI入力から音声出力を計算し続ける」ものもあります。

実装方法の一例として、「サイレンスフラグが立っている場合は、音声出力もすべて0にする」方法を下記に記載します。

まず音声処理クラスにサイレンス処理を行う関数を実装します。

その後、process()関数内の「入力・出力バッファのポインタをわかりやすい変数に格納」の後に上記関数を入れます。
(バイパスパラメーターと合わせて下記のように実装します。)

silenceFlagsはオーディオバスのSpeakerArrangementと同じであるため、「どのフラグが立っているか?」を判断することで特定のチャンネルだけをサイレンスにすることもできます。

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

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

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