C++でVST作り内検索 / 「トップページold」で検索した結果

検索 :
  • トップページ
    C++でVST作り このページについて Visucal C++ Express EditionとVST SDK 2.4を利用してVSTを作るための情報をメモしております。 @WIKIを利用しておりますが個人のホームページです。(編集権限の公開や共同管理はしておりません) VSTの作り方、エフェクターのアルゴリズム・サンプルコード等を記載する予定です。 のんびり更新するつもりですが、質問・要望等があればできるだけそちらを記載してみます。 また、よく飽きるので要望や応援をいただけるとうれしいです。 質問・要望等があれば下記へお願いします。(ほぼ毎日見ております。) 掲示板 VST Tips 項目 No. 概要 VSTの設計 No.1 VSTを作成するに当たって事前に設計しておくとよいことの一覧(メモ) VC++ プロジェクトの準備 No.1 VC++でV...
  • VST Tips Menu
    VSTエフェクタ作成例 Tips VST Tipsトップページ(準備中) Effector Tipsトップページ その他 リンク 管理者へのメール テストページ ここを編集
  • Effector Tips Menu
    VSTエフェクタ作成例 Tips VST Tipsトップページ Effector Tipsトップページ その他 リンク 管理者へのメール テストページ ここを編集
  • Effector Tips Chorus Menu
    VSTエフェクタ作成例 Tips VST Tipsトップページ(準備中) Effector Tipsトップページ 同一カテゴリのTips その他 リンク 管理者へのメール テストページ ここを編集
  • VST Tips Design Menu
    VSTエフェクタ作成例 Tips VST Tipsトップページ(準備中) Effector Tipsトップページ 同一カテゴリのTips VST作成にあたって その他 リンク 管理者へのメール テストページ ここを編集
  • Effector Tips Delay Menu
    VSTエフェクタ作成例 Tips VST Tipsトップページ(準備中) Effector Tipsトップページ 同一カテゴリのTips ディレイとは ディレイ用のバッファ(リングバッファ)について リングバッファの実装例 VSTディレイ作成 フィードバックの追加 その他 リンク 管理者へのメール テストページ ここを編集
  • VST Tips Preparation Menu
    VSTエフェクタ作成例 Tips VST Tipsトップページ(準備中) Effector Tipsトップページ 同一カテゴリのTips プロジェクトの作成 プロジェクトへのVST SDKファイル追加 vstplug.defの作成 プロジェクトの設定 コンパイル時の注意 その他 リンク 管理者へのメール テストページ ここを編集
  • sample
    サンプルコード 説明はそのうち書く予定。要望をいただければやる気が出るかも。 種類 エフェクター サンプルコード 説明 空間系 ディレイ ダウンロード リングバッファを使ったディレイ コーラス/フランジャー ダウンロード リングバッファを使ったコーラス モジュレーション系 トレモロ ダウンロード 「VST(エフェクター)作成例」で作成したトレモロ TIPS等のサンプル サンプルコード ダウンロード 説明 サンプルコード ダウンロード VST(エフェクター)作成例で作成したVST サンプルコード ダウンロード トップページ 最小構成のVST」で作成したVST サンプルコード ダウンロード トップページ MIDIメッセージ処理」で作成したVST サンプルコード ダウンロード トップページ 簡単な音源(VSTi)の作成」で作成...
  • vst synth98
    VST Tips(準備中) EnvelopeGeneratorの実装例(作成中) なお、本サンプル利用を使用したことによって生じたすべての障害・損害・不具合等に関しては、一切の責任を負いません。各自の責任においてご使用ください。 サンプルコード全体 ソースコードのダウンロード→ ここをクリック (dllファイルも同梱しております。dllファイルのウィルスチェックはしておりませんのでdllファイル利用の前には必ずチェックをお願いいたします。) VST Tipsトップページへ(準備中) 同一カテゴリのTips 項目 No. 概要
  • メニュー
    外部掲示板(質問・要望等あればどうぞ) 掲示板 エフェクター、シンセ共通VST作成TIPS VST Tips一覧VST用VC++ 2008プロジェクト作成方法 最小構成のVST作成方法 MIDIメッセージ処理 MIDIメッセージ処理2(作成中) 簡単な音源の作成(作成中) 初めてのVST(エフェクター)作り Visual C++のインストール インストール手順概要 インストーラのダウンロード インストーラ起動、インストール Visual C++起動、製品登録 VST SDK ...
  • vst midi02
    トップページ VSTクラスの初期化 ここでは前項で定義したMyMidiSampleVSTの初期化を行う。 VSTとしての最低限の初期化を行うとともに以下2つのMIDIに関するメンバー変数を初期化する。 midimsgnum  … 受け取ったMIDIメッセージの数。0に初期化しておく midimsgbuf[ ] … 受け取ったMIDIメッセージを保管するバッファ。バッファすべてを0に初期化しておく サンプルコード サンプルコードは以下のとおり。 MyMidiSampleVST MyMidiSampleVST (audioMasterCallback audioMaster) AudioEffectX (audioMaster, MY_VST_PRESET_NUM, MY_VST_PARAMETER_NUM){//VST...
  • vst preparation04
    トップページ プロジェクトの設定 コンパイル時のコード生成方法の設定と前項で作成した定義ファイル(.def)を読み込む設定を行う。 コンパイル時のコード生成方法が間違っていると、ホストプログラム(Cubase、Sonar等)が正しくDLLファイルを読み込めない。 また、定義ファイルの読み込み設定が間違っていると、コンパイル時にエラーとなり、DLLファイルが生成できない。 プロジェクトのプロパティを開く メニューから「プロジェクト」→「プロジェクト名のプロパティ」を選択する。 構成の変更 開いたプロジェクトプロパティのダイアログの左側から「構成プロパティ」を選択する。 ダイアログ左上にある「構成」がアクティブになるのでで「Release」を選択する。 文字コードの設定 プロジェクトプロパティダイアログの左側から「構成プロパ...
  • vst midi01
    トップページ MIDIメッセージを処理するVSTについて ここでは最小構成のVSTで作成したVSTを基にMIDIメッセージにあわせて動作するVSTを作成する。 作成するVSTはロードされると常にノイズを発生させる(音量注意)。このノイズのボリュームをMIDI CC7でコントロールできるVSTを作成する。 最小構成のVSTのソースコード全体はここにある。 MIDIメッセージを処理するに当たって最小構成のVSTに以下の追加を行う。 受け取ったMIDIメッセージを確保するための変数の追加 ホストアプリケーション(Cubase,Sonar等)からのMIDIメッセージを上記変数に保存するprocessEvents()関数の追加 processReplacing()関数内に受け取ったMIDIメッセージを処理するコードの追加 なお、ここに記載している内容についてはMIDIメッセ...
  • vst design01
    VST Tips(準備中) VSTを作るにあたって VSTを作るにあたって、いくつかの事項を決めておくとよい。 VST基本情報の決定 エフェクターを設計する前に以下の項目を決めておくとよい。 項目 説明 例 作者(ベンダー)名 作成した人や会社の名前半角英数63文字以内   VSTバージョン 作成するVSTのバージョン(32ビット整数で表せるように) 1.0.0 (32ビット整数で100にする)120100401 等 VSTの製品名 VSTの製品名半角英数63文字以内 DelayDistortion 等 VSTの名前 VSTの名前。半角英数31文字以内 (VSTの製品名と何が違うのかは不明。文字数に問題がなければVSTの製品名と同じでよい。) 入力の数 エフェクターの入力の数 モノラルの場合…1ステレオの場合…2 出力の数 エフェクターの出力の数 モノラルの場合…1ステ...
  • vst midi05
    トップページ MIDIメッセージ処理 MIDIメッセージにあわせて動作するVSTのサンプルである。 下記VSTはSynthとしてロードされ、常にノイズを発生させる。実行時は音量に注意してほしい。 ノイズのボリュームをMIDI CC7でコントロールできる。 サンプルコード全体 ソースコードのダウンロード→ここをクリック // ============================================================================================// インクルードファイル// ============================================================================================#include stdlib.h #include...
  • vst midi04
    トップページ MIDIメッセージをprocessReplacing()関数中で処理する方法 前項でprocessEvents()関数によってホストアプリケーションから受け取ったMIDIメッセージをprocessReplacing()関数で処理する方法を記載する。 サンプルコード サンプルコードではロードするとノイズを生成、出力するVSTとなっている。 MIDIのコントロールチェンジメッセージ 7番(ボリュームコントロール)によって出力されるノイズのボリュームを調整している。 void MyMidiSampleVST processReplacing (float** inputs, float** outputs, VstInt32 sampleFrames){//入力、出力は2次元配列で渡される。//入力は-1.0f~1.0fの間で渡される...
  • vst preparation05
    VST Tips(準備中) コンパイル時の注意 ここではコンパイル・ビルドを実施してVST(DLLファイル)を生成する際の注意事項について記載する。 コンパイル、ビルド時の構成について コンパイル、ビルド時の警告について コンパイル、ビルドの構成の注意 コンパイル、ビルド時の構成を「Release」に設定する。 (「Debug」でも問題ないが、デバッグに必要な処理が追加される。作成したVSTを公開する場合は「Release」にするほうがよい。また、前項(準備中)はコンパイル、ビルド構成が「Release」であることが前提となっている。) コンパイル、ビルド時の構成を設定する方法はメニュー「ツール」下あたりにある「Debug」のリストボックスから「Release」を選択する。 コンパイル、ビルド時の警告 コンパイル、ビルドの結果は画面下側にある出...
  • vst gui93
    トップページ VST GUIの作成 VST GUIのウィンドウが開かれるだけのサンプルにテキストラベルを追加したもの。 追加内容としては以下のとおり。 テキストラベルクラスCTextLabelクラス)へのポインターをGUIクラスの変数として定義 GUIクラスのopen()関数にテキストラベルを作成するコードの追加 なお作成したVSTは以下のとおり。(DLLファイルを利用するときはウィルスチェックをかけてください) ダウンロード サンプルコード全体 【MyGuiVst2.cpp】 #define _CRT_SECURE_NO_DEPRECATE 1 #include stdio.h #include stdlib.h #include string.h #include math.h #include windows.h  ...
  • vst midi08
    トップページ MIDIメッセージ処理(改良版) MIDIメッセージにあわせて動作するVSTのサンプルの改良版である。 下記VSTはSynthとしてロードされ、常にノイズを発生させる。実行時は音量に注意してほしい。 ノイズのボリュームをMIDI CC7でコントロールできる。 サンプルコード全体 【CMidiMsg.h】 #pragma once#include string.h #include "audioeffectx.h" // ============================================================================================// MIDI処理用の定義// =============================================...
  • vst gui94
    トップページ VST GUIの作成 一定間隔でGUIの描画更新するサンプル。 テキストラベルを表示するサンプルをもとにしている。 テキストラベルを表示するサンプルからの追加内容としては以下のとおり。 idle()関数(100ミリ秒ごとに呼び出される関数)をオーバーライド idle()関数の中にカウンタを用意し、呼び出されることにカウントアップし描画する。 なお作成したVSTは以下のとおり。(DLLファイルを利用するときはウィルスチェックをかけてください) ダウンロード サンプルコード全体 【MyGuiVst5.cpp】 #define _CRT_SECURE_NO_DEPRECATE 1 #include stdio.h #include stdlib.h #include string.h #include math.h...
  • vst midi06
    トップページ MIDIメッセージを処理するVSTについて2 MIDIメッセージ処理 No1~No5で作成したVSTのMIDI処理については、どんなVSTでもほぼ共通の処理となる。 コードを再利用しやすいように、ここではシステムエクスクルーシブを除くMIDIメッセージに関する処理をクラスとしてひとまとめにする。 MIDIメッセージを処理するクラスは自作VSTクラスで下記のように継承できるように作成する。 class MyMidiSampleVST2 public AudioEffectX , public CMidiMsg // CMidiMsgが今回作成するクラス{: // 以下省略:}; ここで作成するVSTサンプルのソースコード全体はここにある。 MIDIメッセージ処理用クラス定義 MIDIメッセージ処理用クラスは以下のように定...
  • vst midi07
    トップページ CMidiMsgクラスの実装 ここでは前項で定義したCMidiMsgクラスについて説明する。 CMidiMsgクラスの実装 CMidiMsgクラスではコンストラクタでclearMidiMsg()関数を呼び出し初期化している。 clearMidiMsg()関数はメンバー変数に初期値を代入している。終了処理はないため、デストラクタでは何もしていない。 CMidiMsg CMidiMsg(void){clearMidiMsg();}  CMidiMsg ~CMidiMsg(void){} void CMidiMsg clearMidiMsg(){// メンバー変数を初期化するcur=0;num=0;memset&...
  • リンク
    リンク VST開発 Daichi Laboratory Synth1作者様のページ。シンセプログラミングやVSTiシンセのサンプルソースがある g200kg Music Software Volvox、KnobMan、SkinMan等の作者様のページ。KnobMan、SkinManはVSTのGUIを作るうえで欠かせないツール。 オリジナルVST製作奮闘記 (2007年末より更新停止?) Sam s Hard Soft DIY (C++BuilderでのVST Plugin作成法。更新停止?) VST開発 - Myun2Wiki (更新停止?) aikeの日記 (時々VST関連の話題がある) CommentOut? (時々VST関連の話題がある) エフェクタアルゴリズム、仕組み等 シンセサイザーの仕組み アナログシンセサイザー WIKI 文系...
  • vst gui90
    VST Tips(準備中) VST GUIの作成 VST GUIのウィンドウが開かれるだけのサンプルです。 プロジェクトの作成時は以下のソースファイルもプロジェクトに加える必要がある。 (プロジェクトへの追加方法は「VC++ プロジェクトの準備 No.2」参照) vstcontrols.cpp vstgui.cpp aeffguieditor.cpp (vstsdk2.4\vstgui.sf\vstgui 配下に保存されている。) つまみを追加したサンプルはここ つまみをスライダーに変更したサンプルはここ サンプルコード全体 #define _CRT_SECURE_NO_DEPRECATE 1 #include stdio.h #include stdlib.h #include string.h #include math.h #i...
  • vst minimum04
    VST Tips(準備中) 最小構成のVST 最小構成のVSTのサンプルである。 エフェクターとしてロード可能で、入力をそのまま出力する。 サンプルコード全体 ソースコードのダウンロード→ここをクリック // ============================================================================================// インクルードファイル// ============================================================================================#include "audioeffectx.h" // ==========================================...
  • vst midi03
    トップページ MIDIメッセージをホストアプリケーションから受け取る関数 MIDIメッセージをホストアプリケーションから受け取るにはprocessEvents()関数を利用する。 processEvents()関数 VstInt32 processEvents (VstEvents* events) 戻り値と引数については以下のとおりである。 戻り値(型) 説明 VstInt32 戻り値についてはホストアプリケーションで無視される。ただし、念のため1を返すようにするとよい。 引数 説明 VstEvents* events イベントを保持しているVstEvents型変数(後述)へのポインタ processEvents()関数はMIDIメッセージだけを受け取る関数ではなく、VSTに関するホストアプリケーションからのイベントをすべて受け取る関数となってい...
  • vst gui92
    VST Tips(準備中) VST GUIの作成 つまみだけのVST GUIのつまみをスライダーに変更したもの スライダークラス(CSliderクラス)へのポインターをGUIクラスの変数として定義 GUIクラスのopen()関数にスライダーを作成するコードの追加 なお今回スライダー用の画像と作成したVSTは以下のとおり。(DLLファイルを利用するときはウィルスチェックをかけてください) ダウンロード サンプルコード全体 【resource.rc】 #include windows.h #include commctrl.h #include richedit.h #include "resource.h" BITMAP_SLIDER_BACK BITMAP ".\\slider_back...
  • vst gui91
    VST Tips(準備中) VST GUIの作成 VST GUIのウィンドウが開かれるだけのサンプルにつまみを2つ追加したもの。 追加内容としては以下のとおり。 つまみクラス(Cknobクラス)へのポインターをGUIクラスの変数として定義 GUIクラスにsetParameter()関数を追加 GUIクラスのopen()関数につまみを作成するコードの追加 GUIクラスのvalueChanged()関数に操作されたつまみを特定しsetParameter()関数へ引き渡す処理の追加 GUIクラスのsetParameter()関数につまみの更新処理を追加 リソースファイルを追加する必要がある。リソースファイルの追加方法はCPPファイルを追加する方法と同じ。 なお今回つまみ用いた画像と作成したVSTは以下のとおり。(DLLファイルを利用するときはウィルスチェックをかけてくださ...
  • VST SDK02
    Steinberg VST Audio Plug-Ins SDK 2.4のインストール方法(2010年4月14日) Steinberg 開発者アカウントの作成 Steinberg 開発者ページへ移動 下記URLへアクセスする。 URL http //www.steinberg.net/en/company/3rd_party_developer.html ページ下部にある「VST Audio Plug-Ins SDK(Version 2.3 and 2.4)」の横の画像をクリックする。(画像はもともとリンク切れ) 開発者ページへ移動する。 画面左メニューから「Create 3rd Party Developer Account」をクリックする。 開発者アカウントの作成1 開いたページ中央の「Country   Prease choose」...
  • VST SDK 2.4のインストール
    Steinberg VST Audio Plug-Ins SDK 2.4のインストール方法(2010年4月14日) 手順概要 Steinberg 開発者アカウントの作成 Steinberg VST Audio Plug-Ins SDK 2.4のダウンロード 手順詳細 Steinberg 開発者アカウントの作成 Steinberg 開発者ページへ移動 下記URLへアクセスする。 URL http //www.steinberg.net/en/company/3rd_party_developer.html ページ下部にある「VST Audio Plug-Ins SDK(Version 2.3 and 2.4)」の横の画像をクリックする。(画像はリンク切れ) 開発者ページへ移動する。 画面左メニューから「Create 3rd Party Developer ...
  • vst synth99
    VST Tips(準備中) 簡単な音源(VSTi)の作成(暫定版) (2011/4/14更新) 【注意】 本サンプルはSynthesizerの基本的な処理を追いやすくするために書かれたコードです。以下の点が大きなバグとして残っておりますのでご注意ください。(小さなバグも多数あります) ノートOFF時に振幅が急激に変化するため、不快なノイズが入ります。(基本的には問題ないと思いますが大きな音量の場合、耳やスピーカーを痛める可能性があります。) なお、本サンプル利用を使用したことによって生じたすべての障害・損害・不具合等に関しては、一切の責任を負いません。各自の責任においてご使用ください。 サンプルコード全体 ソースコードのダウンロード→ ここをクリック (dllファイルも同梱しております。dllファイルのウィルスチェックはしておりませんのでdllフ...
  • Visual C++のインストール
    Microsoft Visual C++ Express Editionのインストール方法(2010年4月14日) 手順概要 インストーラのダウンロード インストーラ起動、インストール Visual C++起動、製品登録 手順詳細 インストーラのダウンロード Microsoft Visual Studioのホームページへ移動 下記URLへアクセスする。 URL:http //www.microsoft.com/japan/msdn/vstudio/express/ ページ中央あたりにあるVisual C++の「Webインストール(ダウンロード)」をクリックする インストーラのダウンロード インストーラを任意のフォルダに保存する インストーラの起動 保存したインストーラを実行する 実行後しばらく待つと、セット...
  • vst synth01
    VST Tips(準備中) 簡単な音源(VSTi)のについて ここではMIDIメッセージ処理(作成中)で作成したVSTを元に簡単な音源(VSTi)を作成する。 作成するに当たって、まずは音源の基本モデルとなるシンセサイザーの構成について記載する。 次に作成する音源(VSTi)について記載する。 なお、ここに記載している内容はシンセサイザーの用語(オシレーター、フィルター等)と三角関数についてある程度の知識があることを前提としている。 また、ここで作成するVSTiサンプルのソースコードはここにある シンセサイザーの構成 シンセサイザーの構成というと下記の図のようなシンセサイザーの音作りに関する部位がよくピックアップされる 実際にシンセサイザー(VSTi)を作成する際には上記のような音声信号に直接かかわる部位だけでなく、MIDIやオ...
  • VST SDK03
    Steinberg VST Audio Plug-Ins SDK 2.4のインストール方法(2010年4月14日) Steinberg VST Audio Plug-Ins SDK 2.4のダウンロード Steinberg 開発者ページへ移動 再度、下記URLへアクセスする。 URL http //www.steinberg.net/en/company/3rd_party_developer.html ページ左にある「SDK Download Portal」をクリックする。 Steinberg 開発者ページへログイン 登録したユーザとパスワードを入力し、「Login」をクリックする。 「You are now logged in as ユーザ名 」 と表示されるとログイン完了。 VST Audio Plug-Ins SDK(...
  • VC02
    Microsoft Visual C++ Express Editionのインストール方法(2010年4月14日) インストーラのダウンロード Microsoft Visual Studioのホームページへ移動 下記URLへアクセスする。 URL:http //www.microsoft.com/japan/msdn/vstudio/2008/product/express/ ページ中央あたりにあるVisual C++の「Webインストール(ダウンロード)」をクリックする インストーラのダウンロード インストーラを任意のフォルダに保存する 次へ 合計: - 今日: - 昨日: -
  • VC04
    Microsoft Visual C++ Express Editionのインストール方法(2010年4月14日) Visual C++起動、製品登録 Visual C++を起動 Microsoft Visual C++を起動する。 製品登録ダイアログを開く メニューから「ヘルプ」→「製品登録」を選択。 登録Webページへ移動 「今すぐ登録」を押し、登録Webページを開く。 Windows Live IDに登録しているのメールアドレス、パスワードを入力して「サインイン」を押す。 (Windows Live IDを持っていない場合は別途登録する。登録方法についてはここでは省略する。) 必要事項の入力 必要事項を入力し、「次へ」を押す。 登録キーのコピー 登録キーをコピーし製品登録ダイアログへ...
  • VST EFFECTOR SAMPLE12
    VST(エフェクター)作成例 VST情報の処理 VSTの情報をホストアプリケーション(Cubase,Sonar等)に通知するための関数を作成する。 作成者(ベンダー)情報の処理 ホストアプリケーションに作成者(ベンダー)の情報を知らせる。 引数のchar* textに作成者(ベンダー)の名前を保存し、trueを返す。(falseを返すとどういう動きをするかは不明) 引数のchar* textは64バイト。NULL文字で終端させる必要がある。 サンプルエフェクターではMY_VST_VENDOR(宣言部で定義済み。)を引数のchar* textに格納している。 bool MyTremoloVST getVendorString (char* text){//作者(ベンダー)名をtextに格納してtrueを返す。//kVstMaxVen...
  • VST EFFECTOR SAMPLE10
    VST(エフェクター)作成例 クラスの宣言 VSTはAudioEffectXクラスを継承して作る (AudioEffectXクラスは「vstsdk2.4\public.sdk\source\vst2.x\audioeffectx.h」で定義されている) サンプルエフェクターでは次のように定義している。 class MyTremoloVST public AudioEffectX{protected float fTime;float fTremoloSpeed; //トレモロの周期float fTremoloDepth; //トレモロの振幅 public MyTremoloVST (audioMasterCallback audioMaster);~MyTremoloVST (); //作者(ベンダー)名...
  • VST EFFECTOR SAMPLE16
    VST(エフェクター)作成例 参考資料 サンプルコード全体 ソースコードのダウンロード→ここをクリック // ============================================================================================// インクルードファイル// ============================================================================================#include stdio.h #include stdlib.h #include string.h #include math.h #include windows.h  #include "audioeffectx.h" ...
  • vst synth02
    VST Tips(準備中) 簡単な音源(VSTi)の仕様 ここで作成する音源(VSTi)は前項で説明したシンセサイザーの構成から大幅に機能を削減した簡易なものとする。 今回作成する音源(VSTi)の仕様は下記のとおりである。 機能 対応内容 最大同時発音数 8 波形 正弦波のみ フィルタ、エンベロープジェネレータ、LFO なし 操作可能なパラメーター なし その他 ピッチベンド、モジュレーションホイール未対応 また今回作成する音源は下記の構成をとっている。 簡単な音源(VSTi)で処理すべき内容の概要 今回の音源(VSTi)で処理すべき内容の概要については以下のとおりである。 項目 処理内容 MIDIメッセージを受け取る Midiメッセージを受け取り、processReplacing()関数内で処理できるようにする。 MIDIメッセー...
  • VST EFFECTOR OUTLINE03
    VST(エフェクター)作り概要 プロジェクトの準備 プロジェクト作成 新規プロジェクトを作る際はDLLを選択する VST SDKのCPPファイルの追加 vstsdk2.4\public.sdk\source\vst2.xの配下にあるファイルは必ずプロジェクトに含める audioeffect.cpp audioeffectx.cpp vstplugmain.cpp 「vstplug.def」ファイルの作成 以下の内容のファイルを作り、ファイル名・拡張子を「vstplug.def」と名前をつけて「.sln」ファイルと同じフォルダに配置する必要がある (ファイル名は任意でよいが説明のため「vstplug.def」とする。) EXPORTS VSTPluginMain main=VSTPluginMain プロジェクトの設定 以下のプロジェクト設...
  • 環境設定
    VSTをコンパイルする上での注意事項 プロジェクト作成時の注意 新規プロジェクトを作る際はDLLを選択する 追加すべきファイル vstsdk2.4\public.sdk\source\vst2.xの配下にあるファイルは必ずプロジェクトに含める audioeffect.cpp audioeffectx.cpp vstplugmain.cpp 以下の内容のファイルを作り、拡張子を「vstplug.def」と名前をつけて「.sln」ファイルと同じフォルダに配置する必要がある (ファイル名は「vstplug.def」でなくてもよいがとりあえずこのようにする) EXPORTS VSTPluginMain main=VSTPluginMain プロジェクトの設定 以下のプロジェクト設定を行う必要がある。 メニューから「プロジェクト」→「xxxの...
  • VST EFFECTOR SAMPLE02
    VST(エフェクター)作成例 エフェクターの設計 サンプルエフェクターを作成するにあたり、基本情報やパラメーター情報を決定しておく。 今回作成するサンプルエフェクターについては以下の情報を持つものとする。 VST基本情報 項目 サンプルエフェクターに設定する値 備考 作者(ベンダー)名 test vendor   VSTバージョン 1   VSTの製品名 Sample Tremolo VST   VSTの名前 Tremolo   入力の数 2   出力の数 2   ユニークID SMPL VSTを公開しないので適当な値を入力している。公開する場合は以下で登録を行う。http //ygrabit.steinberg.de/~ygrabit/public_html/index.html プリセットの数 1   パラメータの数 2   パラメーター情報 No. パラメータ...
  • VST EFFECTOR OUTLINE04
    VST(エフェクター)作り概要 コーディング audioeffectx.hのインクルード VSTを作るうえで必要なヘッダーファイル「audioeffectx.h」をインクルードする。 AudioEffectXクラスの継承 VSTを作成する場合、AudioEffectXクラスを継承して作る (AudioEffectXクラスは「vstsdk2.4\public.sdk\source\vst2.x\audioeffectx.h」で定義されている) AudioEffectXクラスから必ずオーバーライドしなければならない関数は以下のとおり 関数名 戻り値 引数 概要 getVendorString bool型 char* text ホストアプリケーションに作者(ベンダー)名を教えるための関数作者(ベンダー)名をtextに格納する。作者(ベンダー)名の格納に成功するとtr...
  • VST EFFECTOR SAMPLE09
    VST(エフェクター)作成例 宣言部 インクルードファイル 必要なヘッダファイルをインクルードする。 VSTを作成する場合は「audioeffectx.h」を必ずインクルードする。 また、以下のファイルについてはよく利用するのでインクルードしておくとよい。 math.h sin(),cos()やlog()等の音声処理で必要な関数が多い。ほぼインクルード必須。 string.h memset()、memcpy()等のバッファを処理する関数は音声処理で頻繁に利用する windows.h WindowsのAPIを利用するために必要。 // ============================================================================================// インクルードファイル// ===========...
  • vst synth05
    VST Tips(準備中) MySynthSampleVSTクラスの実装 ここでは音源に必要なクラスの定義で定義したMySynthSampleVSTクラスについて説明する。 MySynthSampleVSTの初期化 MySynthSampleVSTの初期化では初期化ルールに従い初期化を行っている。 MySynthSampleVST MySynthSampleVST (audioMasterCallback audioMaster) AudioEffectX (audioMaster, MY_VST_PRESET_NUM, MY_VST_PARAMETER_NUM){//VSTの初期化を行う。 //以下の関数を呼び出して入力数、出力数等の情報を設定する。//必ず呼び出さなければならない。setNumInputs ...
  • VST EFFECTOR SAMPLE13
    VST(エフェクター)作成例 VSTパラメーターの処理 ホストアプリケーション(Cubase,Sonar等)がVSTのパラメーターを変更、表示するための関数を作成する。 パラメーターの値の設定 ホストアプリケーション(Cubase,Sonar等)が作成したVSTにパラメータを設定するための関数。 引数のVstInt32 indexはパラメーターの番号。float valueは与えられたパラメーター。 float valueは0.0~1.0の範囲で与えられるため、作成するVSTで利用する範囲に変換する必要がある。 サンプルエフェクターでは以下のように処理している。 index 変更する変数 変更内容 TREMOLO_SPEED(=1 宣言部で定義済み。) fTremoloSpeed トレモロのスピードを変更。0.0~1.0の範囲で与えられたvalueを1秒~3...
  • VST EFFECTOR SAMPLE14
    VST(エフェクター)作成例 音声処理 音声の処理 入力音声信号を加工して出力する関数を作成する。 processReplacing関数について 入力音声信号の加工と出力はprocessReplacing関数で行われる。 processReplacing関数の引数は3つあり、以下のようになっている。 引数 説明 float** inputs 入力音声信号のバッファ。2次元配列で渡される。1次元目の大きさはVSTの初期化時にsetNumInputsで指定したサイズ。2次元目の大きさは後述のsampleFramesとなる。書き込まれている音声信号は-1.0~+1.0の範囲 float** outputs 出力音声信号のバッファ。2次元配列で渡される。1次元目の大きさはVSTの初期化時にsetNumOutputsで指定したサイズ。2次元目の大きさは後述のsampleFram...
  • VST EFFECTOR SAMPLE11
    VST(エフェクター)作成例 VSTの初期化 createEffectInstanceの記述 ホストアプリケーション(Cubase、Sonar等)が今回作成するVST(クラスの宣言でAudioEffectXを継承したクラス)のインスタンスを作成ために必要な関数。 なぜこのような関数が必要かの詳細は説明できるほどの知識がないため省略する。(どうもDLLファイルはC++のクラスをエクスポートできないらしい。苦肉の策としてこのような関数がある模様。) とりあえず、今回作成するVSTのインスタンスをnewで生成してreturnで返すとよい。 // ============================================================================================// このVSTのを生成するための関数// ===...
  • 管理者の開発環境
    開発環境について ここでメモしているプログラムは以下の環境で作られています。 他の環境では動作しないことがありますのでご了承ください。 (動作しなかった場合は教えていただけるとバグ改修しやすいのでありがたいです。) また、プログラムを作成している人間(管理人)は素人です。 (IT業界の人間ですが、プログラマではありません。) ハードウェア CPU Intel Pneium 4 3.00Hz メモリ 2.5GB Audio IF Edirol UA-20 MIDI キーボード KORG K25 ソフトウェア OS Windows XP Home Edition SP3 開発 Visual C++ 2008 Express Edition 動作確認 VstHostSynthEdit 合計: - 今日: - 昨日: -
  • @wiki全体から「トップページold」で調べる

更新順にページ一覧表示 | 作成順にページ一覧表示 | ページ名順にページ一覧表示 | wiki内検索