VST SDK 3.7.3が公開されました

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

少し前になりますが、VST SDK 3.7.3が公開されたようです。

参考→sdk.steinberg.net

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

  • フォルダ名の変更
    • ZIP内のVST SDKのフォルダ名を変更。例:VST3_SDK => vst3sdk
  • インターフェイス・フラグ等の修正
    • IPlugViewContentScaleSupportのドキュメントを更新。
    • IComponentHandler::restartComponent用に新しいフラグ「kKeyswitchChanged」を追加
      キースイッチの変更をホスト側に通知します。
    • Steinberg::Vst::FunctionNameTypeに新しい定義を「kPanPosCenterX」などを追加。
  • VST GUIの変更
    • バージョンを4.10.1に変更。
    • いくつかの修正を実施。
  • ライセンスの変更
    • ライセンスがバージョン2.2.1に変更。(すでに2.0に署名している場合は再度署名する必要はない。)
  • CMAKEの修正
    • Windows ARM64において間違いのあったリンクパスを修正。
    • MacでもWindowsやLinuxと同じエラーように取得するため「-Werror=return-type」を追加
    • fetchcontentをVST SDKで使用する場合、変数vst3sdk_SOURCE_DIRが未定義となる問題を修正。
    • プロジェクトジェネレータを利用してプロジェクトを作成したとき、シンボルの可視属性が誤っていた問題を修正
  • チュートリアル
    • 新たに高度な機能に関するチュートリアルを追加
  • プラグインラッパー
    • AAXラッパー
      • initModule()とDeInitModule()のリファクタリングを実施
      • 読み取り専用パラメーターが使用されている場合のGetParameterIndex()のインデックスが正しくない不具合を修正
    • VST2ラッパー
      • initModule()とDeInitModule()のリファクタリングを実施
      • initModule()とDeInitModule()を何度も呼び出す不具合を修正
    • AUv3ラッパー
      • macOS11でAUv3をサポート。
      • AUv3Wrapperコードの簡素化を実施。
      • macOS11でLogicとGarageBandがエディターを表示しない問題を修正
  • サンプルの追加・修正
    • 下記の新しいVST3プラグインサンプルを追加。
      • AGainSampleAccurate…サンプル単位で正確なパラメータ変更処理を行うサンプル。
    • HostCheckerプラグインでチェックできる項目を追加。
      • 同じIDを持つ複数キューのIParameterChangesのチェックを追加
      • 同じ位置にある複数ポイントのIParameterChangesのチェックを追加
      • restartComponent(kKeyswitchChanged)・restartComponent(kNoteExpressionChanged)・restartComponent(kParamValuesChanged)のチェックを追加
    • Pannerサンプルにivstparameterfunctionnameの機能を追加
    • 引数なしでeditorHostを起動したときの問題を修正。
    • 利用可能なVST3プラグインがない場合、VST3Inspectorがクラッシュする問題を修正。
    • mdaプラグインの警告を修正。
    • gcc11でのビルドを修正。
  • ヘルパークラスの修正
    • 下記のユーティリティファイルを追加
      • audiobuffers.h
      • processdataslicer.h
      • rttransfer.h
      • sampleaccurate.h
      • tests.cpp、tests.h

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

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

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

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.についての内容を説明します。
なお、前回までで説明した内容については、説明を省略させていただきます。

もっと見る