C++でVST作り

C++でVST作り

本サイトではこのサイトではVST/VSTiプラグイン(エフェクター、ソフトシンセ)を作成するための情報をメモしております。
旧サイトの編集パスワード紛失により移転いたしました。(更新は停止しておりますが、VST/VSTiプラグインの作成情報については、旧サイトにも多くあります。)

【主なコンテンツ】
はじめてのVST3.6.8プラグインの作り
VSTプラグインを作成するための手順を記載しています。(SDK 3.6.8版)
VST SDK 3.6.8の公開に伴い作成手順を更新いたしました。更新漏れや誤記等がありましたらご指摘を頂ければと思います。
 【旧バージョン】
  ・VST2.4 → はじめてのVSTプラグインの作り(更新停止)
  ・VST3.6.0→ はじめてのVST3.6プラグインの作り(更新停止)
デジタルフィルタ
極力高度な数学(Z変換、伝達関数 等)を使わずに簡単にデジタルフィルタを設計・実装できる方法を紹介しております。
エフェクター実装例
エフェクターの実装例を紹介しております。

【その他】
■各コンテンツや掲示板にコメントに要望やご意見、応援をいただけるとうれしいです。 →掲示板

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

横型スライダーコントロールのスタイルの変更

横型スライダーコントロールのスタイルの変更

横型スライダーの実装」で実装したスライダーはハンドルが右にある時に1.0、左にある時に0.0となります。
UIを作成する上で、逆の方向(ハンドルが左にある時に0.0、右にある時に1.0)にしたい場合があります。

このような場合は、CHorizontalSliderクラスのsetStyle()関数を使用します。setStyle()関数には下記のどちらかを引数として指定します。

引数 意味
kRight | kHorizontal スライダーハンドルが右にある時に1.0、左にある時に0.0となる (デフォルトはこちら)
kLeft | kHorizontal スライダーハンドルが左にある時に0.0、右にある時に1.0となる

続きを読む

横型スライダーの実装

VST GUIにおける横型スライダーコントロールの実装

VST GUIにおいて横型スライダーコントロールを実装する方法を説明いたします。
なお、VST GUIの基本的な作成方法として下記をご理解いただいている前提で進めさせていただきます。

横型スライダーコントロールは下記のようなコントロールです。横型スライダーの場合は上下にドラッグし、ドラッグしながら上下に動かすことで操作します。
横型スライダーは右にハンドルがある時に値が0.0、左にハンドルがある時に値が1.0になります。

似たようなコントロールで縦型スライダーコントロールもあります。

まず、横型スライダーコントロールを作成するにあたって、横型スライダーコントロール用の背景画像とハンドル画像を用意します。
ここでは下記の画像を使用しています。利用できる画像形式はPNGのみとなりますのでご注意ください。
続きを読む

縦型スライダーコントロールのスタイルの変更

縦型スライダーコントロールのスタイルの変更

縦型スライダーの実装」で実装したスライダーはハンドルが上にある時に1.0、下にある時に0.0となります。
UIを作成する上で、逆の方向(ハンドルが上にある時に0.0、下にある時に1.0)にしたい場合があります。

このような場合は、CVerticalSliderクラスのsetStyle()関数を使用します。setStyle()関数には下記のどちらかを引数として指定します。

引数 意味
kBottom | kVertical スライダーハンドルが上にある時に1.0、下にある時に0.0となる (デフォルトはこちら)
kTop | kVertical スライダーハンドルが上にある時に0.0、下にある時に1.0となる

続きを読む

縦型スライダーの実装

VST GUIにおける縦型スライダーコントロールの実装

VST GUIにおいて縦型スライダーコントロールを実装する方法を説明いたします。
なお、VST GUIの基本的な作成方法として下記をご理解いただいている前提で進めさせていただきます。

縦型スライダーコントロールは下記のようなコントロールです。縦型スライダーの場合は上下にドラッグし、ドラッグしながら上下に動かすことで操作します。
縦型スライダーは下にハンドルがある時に値が0.0、上にハンドルがある時に値が1.0になります。

似たようなコントロールで横型スライダーコントロールもあります。

まず、縦型スライダーコントロールを作成するにあたって、縦型スライダーコントロール用の背景画像とハンドル画像を用意します。
ここでは下記の画像を使用しています。利用できる画像形式はPNGのみとなりますのでご注意ください。
続きを読む

アニメーションつまみ(ノブ)の実装

VST GUIにおけるアニメーションつまみ(ノブ)コントロールの実装

VST GUIにおいてアニメーションつまみ(ノブ)コントロールを実装する方法を説明いたします。
なお、VST GUIの基本的な作成方法として下記をご理解いただいている前提で進めさせていただきます。

アニメーションつまみ(ノブ)コントロールは下記のようなコントロールで、ドラッグしながら周りを回すようにして操作します。
ハンドルが左下にある時の値が0.0で真上が0.5、右下にある時に1.0になります。

まず、アニメーションつまみ(ノブ)コントロールを作成するにあたって、アニメーションつまみ(ノブ)コントロール用の画像を用意します。
ここでは下記の画像を使用しています。利用できる画像形式はPNGのみとなりますのでご注意ください。
続きを読む

キックボタンの実装

VST GUIにおけるキックボタンコントロールの実装

VST GUIにおいてキックボタンコントロールを実装する方法を説明いたします。
なお、VST GUIの基本的な作成方法として下記をご理解いただいている前提で進めさせていただきます。

キックボタンコントロールは下記のようなコントロールで、クリックした瞬間だけOnになるコントロールです。
ボタンがOffの時に値は0.0となり、Onの時に1.0になります。

まず、キックボタンコントロールを作成するにあたって、キックボタンコントロール用の画像を用意します。
ここでは下記の画像を使用しています。なお、利用できる画像形式はPNGのみとなりますのでご注意ください。
続きを読む