C++でVST作り

C++でVST作り

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

【主なコンテンツ】

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

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

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

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

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

SoundFontプレイヤー Utsbox SF2 Playerを更新しました

自作VSTであるSoundFontプレイヤー – Utsbox SF2 Playerを更新いたしました。

SoundFontプレイヤー – Utsbox SF2 Player

SoundFontファイルの構成において、isngチャンクとINAMチャンクが欠損していても無視するよう修正をしております。

【参考】
isngチャンクとINAMチャンクはSoundFontの仕様上 必須となる項目なのですが、サウンドブラスター用の情報であるため、VSTでは使用する意味のないチャンクになります。
Utsbox SF2 Playerはこれらのチャンクがない場合、仕様に従いファイル構成エラーとしていたのですが、上記の通りVSTでは使用する意味のないチャンクのため、無視するよう仕様変更いたしました。

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

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

Githubでサンプルを公開してみました。

自分自身の勉強も兼ねてGithubでサンプルを公開してみました。
簡単ではありますが、コマンドを使わずにVisual Studio 2019でのビルド方法も記載しています。

https://github.com/Utsubo-Kazura/vst3sample

ソースコードについては本Webサイトに記載している内容とほぼ同じになります。

また、VST3.6についての情報は下記にもございます。

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

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

VST SDK 3.6.13が公開されました

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

参考→sdk.steinberg.net

変更点は下記のようです。(公式サイトとマニュアルからの翻訳ですが英語は自信がないです。)

  • インターフェイスの修正
    • プラグインのカテゴリとしてkInstrumentPianoが追加
  • CMake
    • Visual Studio 2019に対応
    • CMakeファイルについていくつかの修正を実施。
  • サンプルの追加・修正
    • HostChecker Plug-inサンプルでいくつかのチェック項目を追加
    • editorhostサンプルでいくつかのデバッグ出力を追加。
  • VST 3 Plug-in Test Hostの修正
    • IPlugInterfaceSupport・MPEをサポート
    • 同じプラグインのエディタを2つ開くことが可能に
  • その他の修正・改善の実施
    • AAX Wrapperのプリセット読み込み時にバイパス状態が上書きされる不具合を修正

VST3.6についての情報は下記にもございます。

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

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

VST内部での文字コードについて

VST内部での文字コードについて

VST SDKでは音声処理クラスパラメータ操作クラスVST GUIクラスでは扱っている文字コードが異なります。

音声処理クラスパラメータ操作クラスなどはUTF-16を使用しています。
(VST SDKドキュメントにあるSDK Helper Classesに関連するクラスがUTF-16を使います。)

一方でVST GUIクラスなどはUTF-8を使用しています。
(VST SDKドキュメントにあるVSTGUI 4に関連するクラスがUTF-8を使います。)

もっと見る

VST SDK 3.6.12が公開されました

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

参考→sdk.steinberg.net

変更点は下記のようです。(公式サイトとマニュアルからの翻訳ですが英語は自信がないです。)

  • VST GUI
    • スプラッシュスクリーンがクラッシュする不具合を修正。
    • Win32におけるVST GUIツールでの編集の不具合を修正。
    • その他 クリーンアップを実施。
  • インターフェイスの修正
    • イベントタイプにLegacyMIDICCOutEventを追加。プラグイン内で生成したMIDI CCを出力できるように。
    • IMidiLearnインターフェイスを追加。カスタムMIDI Learn機能を実装するために、操作中のMIDI CCを取得でいるように
    • IPlugInterfaceSupportインターフェイスを追加。ホストがプラグインにサポートされているかや使用中かどうかを取得でいるように
    • IVst3WrapperMPESupportインターフェイスを追加。MEP(MIDI Polyphonic Expression)を設定するためのWrapper
  • サンプルの追加・修正
    • LegacyMIDICCOutEvent用のサンプルを追加。
    • NoteExpressionSynthサンプルにIMidiLearnとIVst3WrapperMPESupportの機能を追加。
  • 修正・改善の実施
    • CMakeファイルについていくつかの修正を実施。
    • CMakeファイルでWIN_PDBをWIN_PDB32とWIN_PDB64に分離。
    • Audio Unit v3 (AUv3) Wrapperを更新。MEPを簡単に利用できるように。(macOS/iOSにサインインするための証明書が必要なことに注意)
    • Audio Unit v3 (AUv3) Wrapperのフォルダを再構成。
    • AAX Wrapperのオートメーションの不具合を修正
    • ST2 Wrapperのエディタの2重解放の不具合を修正
    • イベント用のヘルパークラス・関数を新たに追加(steventshelper.h)

VST3.6についての情報は下記にもございます。

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

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