C++でVST作り

C++でVST作り

本サイトではこのサイトではVST/VSTiプラグイン(エフェクター、ソフトシンセ)を作成するための情報をメモしております。

【ご連絡】
このたび、VSTプラグイン開発の本を執筆させていただきました。
工学社様より2020年6月25日発売となっております。なお、誤記などについては工学社様の書籍サポートページにてご案内しております。

内容としてはC++を使って初めてVST開発をする方にむけたものとなっております。
本サイト「はじめてのVST3プラグイン作り」をベースに加筆し、応用的な部分を少し抑えた内容となっています。

 工学社様サイト → https://www.kohgakusha.co.jp/books/detail/978-4-7775-2108-1

 書籍で使用するVST SDK 3.6.14はこちらからダウンロードできます。 → VST SDK 3.6.14

【主なコンテンツ】

自作アプリ 自作VSTプラグイン 自作VSTプラグインを公開しております。
プログラミング情報 VST3プラグイン作り VSTプラグインを作成するための手順を記載しています。
簡単なデジタルフィルタ 極力高度な数学(Z変換、伝達関数 等)を使わずに簡単にデジタルフィルタを設計・実装できる方法を紹介しております。
エフェクター実装例 ディストーションやコーラス等のエフェクターの実装例を紹介しております。
SoundFontファイルの読み込み SoundFontファイルの読み込みと組み立てについて説明しております。
現在作成中です。

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

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

■Youtubeチャンネル:うつぼかずら URL:https://www.youtube.com/channel/UCDl-jNREvFXbLvmDbn-6dag

■本サイトは旧サイト(https://www39.atwiki.jp/vst_prog/)の編集パスワード紛失により移転したサイトとなります。

Wavファイルのフォーマットと読込

はじめに

ここでは音声ファイルであるWAVファイル(.wav)のフォーマットの説明と簡単な読込サンプルについて解説しています。
WAVファイルについては、「wav フォーマット」などで検索するとすでに他のサイトでも解説されていますので、簡単に説明します。

WAVファイルのフォーマット

WAVファイルはRIFFファイル形式をとっています。
RIFFファイル形式では、そのファイルに必要なデータをチャンクと呼ばれるブロックに分けて保存し、チャンクにFourCCと呼ばれる4Byteの識別子(ID)を付けて管理するファイル形式です。

RIFFファイルについては下記に簡単に記載しております。必要に応じてご参照ください。

今回作成するWAVファイルの読み込み関数のサンプルはこちらからダウンロードできます。 → WAVファイル読み込みサンプル

WAVファイルのチャンク

WAVファイルのチャンクと階層構造は下記となっています。各チャンクの詳細は後述します。
2つの必須チャンクがあります。

もっと見る

VST GUIにおけるドラッグアンドドロップの対応

VST GUIにおけるドラッグアンドドロップの対応

VST GUIにおいてファイルなどをドラッグアンドドロップで受け取る方法を説明します。

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

もっと見る

自作VSTプラグインのダウンロードリンク更新

自作VSTプラグインにある各自作VSTプラグインのダウンロードリンクの不具合を修正しました。
ダウンロードできないなどの不具合がまだ残っているようでしたらご連絡いただければと思います。

※更新したページ
 SoundFontプレイヤー – Utsbox SF2 Player
 グリッチエフェクト – Utsbox Glitch
 ギター奏法生成MIDIエフェクト – Utsbox MIDI Tool1
 ギターストローク生成MIDIエフェクト – Utsbox MIDI Tool2
 .wavファイル プレイヤー – .WAV Player
 テンポ同期フィルターエフェクター – Tempo Sync Filter

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

VST3プラグイン作りの情報はこちらにもございます → はじめてのVST3プラグイン作り

ご指摘やご質問などがございましたら、コメント欄か掲示板Twitterでご連絡いただければと思います。

VST3ホスト開発04 – 音声処理クラスでの音声処理準備

音声処理クラスでの音声処理準備

前回はVST3ホストでVST3プラグインから音声処理クラスを取得する方法について記載いたしました。
今回は取得した音声処理クラスで音声処理の準備を行うプログラムの説明を実施します。

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

  • VST3プラグインを読み込む
  • VST3プラグインから音声処理クラスを作成する
  • 音声処理クラスの情報(入出力数など)を取得する(new)
  • 音声処理クラスで音声処理の準備を行う(new)

実際に音声処理を行う一歩手前までとなります。

このVST3プラグインのサンプルソースファイルはこちらからダウンロードできます→ VST3ホスト サンプルコード
ZIPファイルの中の「vst3host03_音声処理クラスでの音声処理準備」フォルダが今回のサンプルソースファイルになります。

なお、Visual Studioのプロジェクトは「コンソールアプリケーション」で作成しております。
プロジェクト設定などは「Visual Studioのプロジェクト設定」もご参照ください。

今回の説明内容

本ページでは、前回説明したVST3プラグインの利用の流れ(下記)のうち、4.についての内容を説明します。
なお、前回までで説明した内容については、説明を省略させていただきます。

もっと見る

「VST3ホスト開発03 – 音声処理クラスの作成と初期化」の更新

VST3ホスト開発03 – 音声処理クラスの作成と初期化」を更新しました。
PluginContextを作成・セットアップする手順を追加しています。

※更新したページ
 VST3ホスト開発03 – 音声処理クラスの作成と初期化

VST3プラグイン作りの情報はこちらにもございます → はじめてのVST3プラグイン作り

ご指摘やご質問などがございましたら、コメント欄か掲示板Twitterでご連絡いただければと思います。