Visual Studio 2019でVST基本ライブラリをコンパイルできない不具合の回避策

Visual Studio 2019でVST基本ライブラリをコンパイルできない不具合の回避策

最新(2019年11月時点)のVisual Studio 2019でVST SDK 3.6.13の基本ライブラリをコンパイルできないという不具合が出ています。

原因は「public.sdk/source/vst/hosting/module_win32.cpp」でMicrosoftが非推奨とした「experimental/filesystem」を使用しているためです。
これにより、下記のエラーが発生しコンパイルできない状態になっています。

このエラーを回避するにはプリプロセッサ「_SILENCE_EXPERIMENTAL_FILESYSTEM_DEPRECATION_WARNING」を定義する必要があります。

回避策1

一つ目の回避策は、「public.sdk/source/vst/hosting/module_win32.cpp」に直接定義する方法です。
もっと見る

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

VST SDK 3.6.11が公開されました

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

参考→sdk.steinberg.net

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

  • INoteExpressionPhysicalUIMappingインターフェイス
    • これにより、VST3プラグインのNote-Expressionと物理UIのマッピングをホストが取得可能に
  • VST GUI
    • VST GUIが4.7にバージョンアップ
    • Linuxで使用していたGUIライブラリをGTK+からXCBに変更
    • ドラッグ&ドロップの処理を再設計
    • 新しいイメージステッチャーツール
    • WindowsのGUI描画処理をGDI+からDirect2Dに変更
    • Windowsにおいて、ビットマップのドラッグ処理をサポート
    • Windows 7のスタンドアロンライブラリをサポート
  • 修正・改善の実施
    • VST 2.4のインターフェイスの利用不可に
    • CMakeで作成されるユーザプロジェクトを改善
    • VST2ラッパーを修正
    • AAXラッパーを修正
    • Parameterクラスのいくつかの関数をvirtualに
  • VST3用アイコンのバンドル
    • 新しくVST3用アイコンがバンドルされるように
    • アイコンはVST_SDK/VST3_SDK/doc/artworkフォルダに保存(VST_Logo_Steinberg.icoとVST_Logo_Steinberg.icns)

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

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

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

VST3.6開発00 – VSTとは?

VSTとは?

VSTとは音楽制作ソフトウェア上で動かすエフェクターやデジタル楽器などのソフトウェアの規格です。
1996年にStenberg(音楽制作ソフトウェア Cubaseを開発した会社)がこの規格を発表し、多くの音楽制作ソフトウェアに採用されました。

このソフトウェア規格に基づいて作成されたプログラムはVSTプラグインやVSTiプラグインといわれています。
VSTプラグインは主にエフェクターを、VSTiプラグインはデジタル楽器を示しますが、どちらも略してVSTプラグインやVSTと呼ばれることが多く、上記規格ともあわせて混同してしまうこともあります。

用語 概要
VST 音楽制作ソフトウェア上で動かすエフェクターやデジタル楽器などのソフトウェアの規格。
VSTプラグイン VSTの規格に基づいて作成されたプログラムで主にエフェクターとして動作するもの。(VSTeと呼ばれる場合もある。)
VSTiプラグイン VSTの規格に基づいて作成されたプログラムでデジタル楽器て動作するもの。

もっと見る

VST 3.6.10以降のファイル・フォルダ構成

VST 3.6.10以降のファイル・フォルダ構成

VST 3.6.10以降は専用アイコン(Windows)やスナップショットのサポートのために下記のファイル・フォルダ構成となります。(Windowsの場合)
VST 3.6.9以前の.vst3ファイル単体でプラグインフォルダにインストール(保存)する形式は非推奨となります。
(プラグインフォルダに.vst3ファイル単体で置いてもすぐに使えなくなるわけではないようです。)

例:VST3プラグインのファイル名が「MyVSTPlugin.vst3」の場合

プラグイン名のフォルダを作り、Contents配下に実際の.vst3ファイルやドキュメントを保存する形となります。(「Resources」フォルダは任意かもしれません。)

なお上記フォルダは下記のプラグインフォルダ配下にある前提です。

  • C:\Program Files\Common Files\VST3\Steinberg\

VST 3.6.10以降のファイル・フォルダ構成は以上ですが、VST3.6についての情報は下記にもございます。

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

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