VST3ホスト開発01 – VST3ホストの開発環境と設定

はじめに

「VST3ホスト開発」では、数回に分けてVST3ホストアプリケーション(VST3プラグインを読み込めるアプリケーション。以下 VST3ホスト)を作成する方法を記載いたします。
対象のVST SDKバージョンは3.7.1としています。

前提となる知識について

VST3プラグイン開発についてある程度ご理解いただいていることを前提としています。
VSTプラグインの作成方法が全く分からないという方は、一度 下記ページの「はじめてのVST3プラグイン作り」などをご確認いただくようお願いします。

  VST3プラグインの作り方

また、一部で音声の入出力やGUI(ウィンドウ)の表示など、プラットフォーム(「VST3ホスト開発」ではWindows)に依存する処理があります。
都度 概要については説明しますが、詳細については書籍やWebなどでご確認をお願いします。

作成方法の説明範囲について

「VST3ホスト開発」では特にVST3プラグインの読み込み方法とその扱い方を中心に説明しています。

VST3はVST-MAと呼ばれる規格に基づいて設計されていますが、この設計についてはほとんど説明いたしません。
VST SDKの内部の仕組みについても必要な範囲だけとなりますので、より理解を深めるためには下記のようなWebサイトやVST SDKマニュアルなどをご参照ください。

 VST3 ホストを作ろう ~目次~
 VST3ホストを作ろう!(公開用)
  ※ともに製作はhotwatermorningさんです。Twitter→https://twitter.com/hotwatermorning Webサイト→https://diatonic.jp/

また、VST3プラグインの読み込み方法とその扱い方を中心としているため、サンプルコードも極力 単純な処理だけを記載するようにしています。
サンプルをそのままアプリケーションとして利用するには不十分ですが、VST3プラグインをどう処理すればよいかがわかりやすいかと思います。

説明の方針について

基本的にVST3 SDKを使用した方法を説明いたします。
VST3 SDKにあるVST3ホスト用のクラスは、一部実装が不十分なところがあるようですが、その点については都度補足します。
そのうえで機能が不十分であれば、処理内容を確認の上、自分で実装いただくようお願いいたします。

VST3ホスト開発環境の準備

VST3ホストの開発環境の準備はVST3プラグインの準備と同じです。
下記のページを参考にしながら、「開発環境(Visual Studio)のインストール」「VST SDKのダウンロード」「VST SDK 3.6 基本ライブラリの作成」を実施してください。
もっと見る

ギターストローク生成MIDIエフェクト – Utsbox MIDI Tool2

概要

Utsbox MIDI Tool2はギターのコードストロークを生成するギター音色用のMIDIエフェクトVSTプラグインになります。

下記のリンクよりダウンロードできます。

  Download→UtsboxMIDITool2_v1.6_2

ダウンロードする前にUtsbox MIDI Tool2のより詳細な内容を知りたい場合は下記にマニュアルあります。

  マニュアル→UtsboxMIDITool2Manual_v1.6.pdf (English→UtsboxMIDITool2Manual_v1.6s_English.pdf)

最新のコード一覧ファイルやご協力者様により作成されたコード一覧ファイルは下記よりダウンロードできます。
(VST3プラグインファイルに同梱のコード一覧ファイルは随時 誤記などの軽微な修正を行うことがあります。)

  コード一覧ファイル→コード一覧ファイルについて

■参考動画(00:20 ストロークの生成、00:48 アルペジオの生成、01:21 カッティングの生成。動画はUtsbox MIDI Tool v1.0)

もっと見る

ギター奏法生成MIDIエフェクト – Utsbox MIDI Tool1

概要

Utsbox MIDI Tool1はマルチティンバー音源向けのギターMIDIエフェクトです。
MIDIノートを1~6chに分離するとともに、Utsbox MIDI Tool1に割り当てたキースイッチを入力することで、簡単にピッチベンドやハンマリング・プリングオフなどを行うことができます。

下記のリンクよりダウンロードできます。

  Download→UtsboxMIDITool1_v1.1

もっと見る

任意のフォントの利用

任意のフォントの利用

VST GUIにおいてテキストを表示させるコントロールのフォントを変更する方法を説明いたします。

なお、VST GUIの基本的な作成方法、テキストラベルコントロールの作成方法として下記をご理解いただいている前提で進めさせていただきます。

フォントを変更すると下記のようになります。

同様の手順でテキストエディットコンボボックスチェックボックス等のコントロールのフォントも変更可能です。

もっと見る

VST GUIにおけるコンテキストメニューの実装

VST GUIにおけるコンテキストメニューの実装

VST GUIにおいて右クリックでポップアップするコンテキストメニューを実装する方法を説明いたします。

なお、VST GUIの基本的な作成方法として下記をご理解いただいている前提で進めさせていただきます。

また、コンテキストメニューはCOptionMenuクラスを使用したり、valueChanged()関数でメニュー項目の選択処理などを行うため、「コンボボックスの実装」や「複数コントロールの同期」についても参考にしてください。

もっと見る

VST GUIにおける「ファイルを開く」ダイアログの実装

「ファイルを開く」ダイアログの実装

VSTでファイルを読み込む際に必要なファイル読み込み用の”「ファイルを開く」ダイアログ”の実装方法を説明いたします。

なお、VST GUIの基本的な作成方法として下記をご理解いただいている前提で進めさせていただきます。

また、こちらのTipsで紹介している各コントロールを作成する関数も使用しています。

もっと見る