C++でVST作り内検索 / 「VST EFFECTOR SAMPLE11」で検索した結果

検索 :
  • VST EFFECTOR SAMPLE11
    VST(エフェクター)作成例 VSTの初期化 createEffectInstanceの記述 ホストアプリケーション(Cubase、Sonar等)が今回作成するVST(クラスの宣言でAudioEffectXを継承したクラス)のインスタンスを作成ために必要な関数。 なぜこのような関数が必要かの詳細は説明できるほどの知識がないため省略する。(どうもDLLファイルはC++のクラスをエクスポートできないらしい。苦肉の策としてこのような関数がある模様。) とりあえず、今回作成するVSTのインスタンスをnewで生成してreturnで返すとよい。 // ============================================================================================// このVSTのを生成するための関数// ===...
  • 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 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 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 SAMPLE09
    VST(エフェクター)作成例 宣言部 インクルードファイル 必要なヘッダファイルをインクルードする。 VSTを作成する場合は「audioeffectx.h」を必ずインクルードする。 また、以下のファイルについてはよく利用するのでインクルードしておくとよい。 math.h sin(),cos()やlog()等の音声処理で必要な関数が多い。ほぼインクルード必須。 string.h memset()、memcpy()等のバッファを処理する関数は音声処理で頻繁に利用する windows.h WindowsのAPIを利用するために必要。 // ============================================================================================// インクルードファイル// ===========...
  • VST EFFECTOR SAMPLE04
    VST(エフェクター)作成例 VST SDKのCPPファイルの追加 VSTエフェクターを作るうえで必要なVST SDKのCPPファイルをプロジェクトに追加する。 プロジェクトに必要なVST SDKのCPPファイルは以下のとおりである。 audioeffect.cpp audioeffectx.cpp vstplugmain.cpp 既存の項目の追加 画面右側のソリューションエクスプローラで「リソースファイル」を選択し、右クリックを押す。 開いたポップアップメニューで「追加」→「既存の項目」を選択する。 追加するファイルの選択 vstsdk2.4\public.sdk\source\vst2.xの配下にある以下3つのファイルを選択し、「追加」を押す。 audioeffect.cpp audioeffectx.cpp vstplugmain...
  • 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 SAMPLE15
    VST(エフェクター)作成例 コンパイル・ビルド コーディング完了後、コンパイル・ビルドを実施してVST(DLLファイル)を生成します。 コンパイル・ビルドの実施 Visual C++を起動し、メニューから「ビルド」→「プロジェクト名のビルド」を選択する。 ビルド結果の確認 画面下側にある出力ウィンドウでビルド結果を確認する。 以下の警告以外の警告やエラーが出ていなければ正常にコンパイルされている。 warning C4996 strncat This function or variable may be unsafe. Consider using strncat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See o...
  • VST EFFECTOR SAMPLE05
    VST(エフェクター)作成例 vstplug.defファイルの作成 DLLのエントリーポイントを記載した定義ファイル(.def)を作成する。 このファイルがない場合、コンパイルエラーとなり、DLLが生成できない。 vstplug.defファイルの作成 メモ帳を起動し、以下の内容を入力する。 EXPORTS VSTPluginMain main=VSTPluginMain 入力後、メモ帳のメニューから「ファイル」→「名前をつけて保存」を選択する。 作成したプロジェクトの「.sln」があるフォルダへ移動し、「vstplug.def」と名前をつけ「保存」を押す。 拡張子が「.def」となったファイルが作成されていれば完了。 次へ 合計: - 今日: - 昨日: -
  • VST EFFECTOR SAMPLE06
    VST(エフェクター)作成例 プロジェクトの設定 コンパイル時のコード生成方法の設定と先ほど作成した定義ファイル(.def)を読み込む設定を行う。 コンパイル時のコード生成方法が間違っていると、ホストプログラム(Cubase、Sonar等)が正しくDLLファイルを読み込めない。 また、定義ファイルの読み込み設定が間違っていると、コンパイル時にエラーとなり、DLLファイルが生成できない。 プロジェクトのプロパティを開く メニューから「プロジェクト」→「プロジェクト名のプロパティ」を選択する。 構成の変更 開いたプロジェクトプロパティのダイアログの左側から「構成プロパティ」を選択する。 ダイアログ左上にある「構成」がアクティブになるのでで「Release」を選択する。 コード生成の設定 プロジェクトプロパティダイアログの左側...
  • 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 synth05
    VST Tips(準備中) MySynthSampleVSTクラスの実装 ここでは音源に必要なクラスの定義で定義したMySynthSampleVSTクラスについて説明する。 MySynthSampleVSTの初期化 MySynthSampleVSTの初期化では初期化ルールに従い初期化を行っている。 MySynthSampleVST MySynthSampleVST (audioMasterCallback audioMaster) AudioEffectX (audioMaster, MY_VST_PRESET_NUM, MY_VST_PARAMETER_NUM){//VSTの初期化を行う。 //以下の関数を呼び出して入力数、出力数等の情報を設定する。//必ず呼び出さなければならない。setNumInputs ...
  • vst synth03
    VST Tips(準備中) 音源に必要なクラスの定義 ここでは前項を実装するため以下2つのクラスを定義している。 VSTiの基本となるMySynthSampleVSTクラス(AudioEffectXから継承するクラス) 波形を生成するCVoiceクラス VSTiのクラス定義 まず、VSTiの基本となるクラスを定義する。 クラスを定義する際はMIDIの処理ができるよう、AudioEffectXに加え、CMidiMsgも同時に継承する #define MAX_OSCILLATORS 8 // オシレータの数(最大発音数) class MySynthSampleVST public AudioEffectX , public CMidiMsg{protected CVoice cvoice[MAX_OSCILLATORS];pub...
  • 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 synth99
    VST Tips(準備中) 簡単な音源(VSTi)の作成(暫定版) (2011/4/14更新) 【注意】 本サンプルはSynthesizerの基本的な処理を追いやすくするために書かれたコードです。以下の点が大きなバグとして残っておりますのでご注意ください。(小さなバグも多数あります) ノートOFF時に振幅が急激に変化するため、不快なノイズが入ります。(基本的には問題ないと思いますが大きな音量の場合、耳やスピーカーを痛める可能性があります。) なお、本サンプル利用を使用したことによって生じたすべての障害・損害・不具合等に関しては、一切の責任を負いません。各自の責任においてご使用ください。 サンプルコード全体 ソースコードのダウンロード→ ここをクリック (dllファイルも同梱しております。dllファイルのウィルスチェックはしておりませんのでdllフ...
  • 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  ...
  • effector delay04
    Effector Tips VSTでのシンプルなディレイの作成 前回のリングバッファを用いてVSTでディレイを作成する。 作成するディレイは「ディレイとは」にあるディレイ(下図)とする なお、説明については要点のみ説明する。サンプルコード全体は以下よりダウンロードしてほしい。 ダウンロード ディレイのパラメーター 今回作成するディレイは以下のパラメーターを持つ 1. Delay Level 遅延した音の音量。0%~100%の間で指定する。 2. Delay Time 遅延させる時間。100ミリ秒~1000ミリ秒の間で指定する。 作成するクラスの定義 作成するクラスのメンバー変数として、リングバッファクラスのインスタンスを定義する。(左右のチャンネル分) また、パラメータ用の変数も定義する。 class MyDela...
  • vst minimum04
    VST Tips(準備中) 最小構成のVST 最小構成のVSTのサンプルである。 エフェクターとしてロード可能で、入力をそのまま出力する。 サンプルコード全体 ソースコードのダウンロード→ここをクリック // ============================================================================================// インクルードファイル// ============================================================================================#include "audioeffectx.h" // ==========================================...
  • 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 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 midi05
    ...ジにあわせて動作するVSTのサンプルである。 下記VSTはSynthとしてロードされ、常にノイズを発生させる。実行時は音量に注意してほしい。 ノイズのボリュームをMIDI CC7でコントロールできる。 サンプルコード全体 ソースコードのダウンロード→ここをクリック // ============================================================================================// インクルードファイル// ============================================================================================#include stdlib.h #include string.h #include "...
  • VST EFFECTOR SAMPLE03
    VST(エフェクター)作成例 プロジェクトの作成 サンプルエフェクターを作成するためプロジェクトを作成する。 Visual C++の起動 Visual C++を起動し、メニューから「ファイル」→「新規作成」→「プロジェクト」を選択する。 プロジェクト作成ウィザードが起動する。 プロジェクト種別、プロジェクト名の入力 開いたダイアログのテンプレートから「Win32 プロジェクト」を選択。 ダイアログ下側の「プロジェクト名」に今回作成するプロジェクトの名前を入力し、「OK」を押す。 プロジェクト種別の確認 現在のプロジェクト設定が「Windowsアプリケーション」となっていることを確認し、「次へ」を押す アプリケーションの設定 アプリケーションの種類で「DLL」を選択。追加オプションとして「空のプロジェクト...
  • VST EFFECTOR SAMPLE07
    VST(エフェクター)作成例 コンパイルの構成 コンパイル時の構成を「Release」に設定する。 (先ほど行ったプロジェクト設定は「Release」構成のコンパイル設定のため。 「Debug」構成のコンパイルに関する設定は省略する。) コンパイルの構成 メニュー「ツール」下あたりにある「Debug」のリストボックスから「Release」を選択する。 次へ 合計: - 今日: - 昨日: -
  • VST EFFECTOR SAMPLE08
    VST(エフェクター)作成例 cppファイルの作成 新しい項目の追加 画面右側のソリューションエクスプローラで「ソースファイル」を選択し、右クリックを押す。 開いたポップアップメニューで「追加」→「新しい項目」を選択する。 CPPファイルの作成 開いたダイアログのテンプレートから「C++ ファイル」を選択。 ダイアログ下側の「ファイル名」に作成するCPPファイルの名前を入力し、「追加」を押す。 次へ 合計: - 今日: - 昨日: -
  • VST EFFECTOR SAMPLE01
    VST(エフェクター)作成例 作成するサンプル サンプルエフェクターとしてトレモロを作成する。 仕様は以下の通りとする。 ステレオ入力、ステレオ出力 トレモロの波形はSIN波のみ。 トレモロのスピードを1Hz~30Hzの範囲で変更可能とする。デフォルトは4Hzとする。 トレモロの深さは振幅の倍率を0~1倍の間で変更可能とする。デフォルトは0.5倍とする。 プリセットプログラムはなし。 次へ 合計: - 今日: - 昨日: -
  • 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 minimum01
    VST Tips(準備中) 最小構成のVST ここでは最小構成のVSTを作成する方法について記載する。 最小構成のVSTを作成するには以下の2点を行えば、VSTとして読み込めるものが完成する。 AudioEffectXクラスを継承した自作クラスの作成 自分で作ったVSTクラスを呼び出すAudioEffect* createEffectInstance()関数の作成 なお、ここで作成するVSTサンプルのソースコード全体はここにある。 AudioEffectXクラスを継承した自作VST用クラスの作成 まず基本として、VSTはAudioEffectXクラスを継承して作らなければならない。 AudioEffectXクラスは「vstsdk2.4\public.sdk\source\vst2.x\audioeffectx.h」で定義されている。 AudioEf...
  • effector delay05
    ...id MyDelayVST processReplacing (float** inputs, float** outputs, VstInt32 sampleFrames) { float* inL = inputs[0]; //入力 左用 float* inR = inputs[1]; //入力 右用 float* outL = outputs[0]; //出力 左用 float* outR = outputs[1]; //出力 右用   while (sampleFrames 0) { //入力信号とリングバッファから読み出したデータをリングバッファへ RingBufL.SetValue( (*inL) + Ring...
  • vst minimum03
    VST Tips(準備中) 音声処理を行う関数 ここでは最初で定義したMyMinimumVSTの以下2つの関数のうち、残りの音声処理を行うprocessReplacing()関数について詳細を記載する。 コンストラクタ void processReplacing() processReplacing()関数 AudioEffectXクラスを継承して作った自作クラスは必ずprocessReplacing()関数を継承しなくてはならない。 processReplacing()関数 void processReplacing (float** inputs, float** outputs, VstInt32 sampleFrames); processReplacing()関数の引数については以下のようになっている。 引数 説明 float** inpu...
  • vst midi01
    トップページ MIDIメッセージを処理するVSTについて ここでは最小構成のVSTで作成したVSTを基にMIDIメッセージにあわせて動作するVSTを作成する。 作成するVSTはロードされると常にノイズを発生させる(音量注意)。このノイズのボリュームをMIDI CC7でコントロールできるVSTを作成する。 最小構成のVSTのソースコード全体はここにある。 MIDIメッセージを処理するに当たって最小構成のVSTに以下の追加を行う。 受け取ったMIDIメッセージを確保するための変数の追加 ホストアプリケーション(Cubase,Sonar等)からのMIDIメッセージを上記変数に保存するprocessEvents()関数の追加 processReplacing()関数内に受け取ったMIDIメッセージを処理するコードの追加 なお、ここに記載している内容についてはMIDIメッセ...
  • vst minimum02
    VST Tips(準備中) 自作VSTクラスの初期化ルール ここでは前項で定義したMyMinimumVSTの以下2つの関数のうち、コンストラクタについて詳細を記載する。 コンストラクタ void processReplacing() コンストラクタ AudioEffectXクラスを継承して作った自作クラスは必ずコンストラクタを持たなくてはならない。 自作したVSTクラスのコンストラクタでは最初に継承元(AudioEffectX)クラスのコンストラクタを呼び出す。 継承元コンストラクタは以下のとおり。 AudioEffectX(audioMasterCallback audioMaster, VstInt32 numPrograms, VstInt32 numParams) 継承元コンストラクタを呼び出した後はさらに以下の関数を呼び出さなければならない...
  • VST Tips Preparation Menu
    VSTエフェクタ作成例 Tips VST Tipsトップページ(準備中) Effector Tipsトップページ 同一カテゴリのTips プロジェクトの作成 プロジェクトへのVST SDKファイル追加 vstplug.defの作成 プロジェクトの設定 コンパイル時の注意 その他 リンク 管理者へのメール テストページ ここを編集
  • vst synth02
    VST Tips(準備中) 簡単な音源(VSTi)の仕様 ここで作成する音源(VSTi)は前項で説明したシンセサイザーの構成から大幅に機能を削減した簡易なものとする。 今回作成する音源(VSTi)の仕様は下記のとおりである。 機能 対応内容 最大同時発音数 8 波形 正弦波のみ フィルタ、エンベロープジェネレータ、LFO なし 操作可能なパラメーター なし その他 ピッチベンド、モジュレーションホイール未対応 また今回作成する音源は下記の構成をとっている。 簡単な音源(VSTi)で処理すべき内容の概要 今回の音源(VSTi)で処理すべき内容の概要については以下のとおりである。 項目 処理内容 MIDIメッセージを受け取る Midiメッセージを受け取り、processReplacing()関数内で処理できるようにする。 MIDIメッセー...
  • vst preparation02
    VST Tips(準備中) プロジェクトへのVST SDKファイル追加 VSTを作るうえで必要なVST SDKのCPPファイルをプロジェクトに追加する。 プロジェクトに必要なVST SDKのCPPファイルは以下のとおりである。 audioeffect.cpp audioeffectx.cpp vstplugmain.cpp 既存の項目の追加 画面右側のソリューションエクスプローラで「リソースファイル」を選択し、右クリックを押す。 開いたポップアップメニューで「追加」→「既存の項目」を選択する。 追加するファイルの選択 vstsdk2.4\public.sdk\source\vst2.xの配下にある以下3つのファイルを選択し、「追加」を押す。 audioeffect.cpp audioeffectx.cpp vstplugmain.cpp...
  • 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作成TIPS VST Tips一覧VST用VC++ 2008プロジェクト作成方法 最小構成のVST作成方法 MIDIメッセージ処理 MIDIメッセージ処理2(作成中) 簡単な音源の作成(作成中) 初めてのVST(エフェクター)作り Visual C++のインストール インストール手順概要 インストーラのダウンロード インストーラ起動、インストール Visual C++起動、製品登録 VST SDK 2.4のインストール ...
  • 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 midi08
    ...ジにあわせて動作するVSTのサンプルの改良版である。 下記VSTはSynthとしてロードされ、常にノイズを発生させる。実行時は音量に注意してほしい。 ノイズのボリュームをMIDI CC7でコントロールできる。 サンプルコード全体 【CMidiMsg.h】 #pragma once#include string.h #include "audioeffectx.h" // ============================================================================================// MIDI処理用の定義// ============================================================================...
  • vst midi04
    ...イズを生成、出力するVSTとなっている。 MIDIのコントロールチェンジメッセージ 7番(ボリュームコントロール)によって出力されるノイズのボリュームを調整している。 void MyMidiSampleVST processReplacing (float** inputs, float** outputs, VstInt32 sampleFrames){//入力、出力は2次元配列で渡される。//入力は-1.0f~1.0fの間で渡される。//出力は-1.0f~1.0fの間で書き込む必要がある。//sampleFramesが処理するバッファのサイズfloat* outL = outputs[0]; //出力 左用float* outR = outputs[1]; //出力 右用 // midieventlist...
  • vst synth04
    VST Tips(準備中) CVoiceクラスの実装 ここでは前項で定義したCVoiceクラスについて説明する。 CVoiceクラスの初期化 CVoiceクラスではコンストラクタで初期化するためにinit()関数を呼び出している init()関数はメンバー変数に初期値を代入している。 なお、終了処理はないため、デストラクタでは何もしていない。 CVoice CVoice(){// 初期化を実施init();} CVoice ~CVoice(){} void CVoice init(){// メンバ変数を初期化するelapsedFrames = 0.0;status = VOICE_STATE_OFF;noteNo = 0;s...
  • effector delay03
    ...実装 ディレイ04 VSTでのシンプルなディレイの作成 ディレイ05 シンプルなディレイへのフィードバックの追加
  • vst synth01
    VST Tips(準備中) 簡単な音源(VSTi)のについて ここではMIDIメッセージ処理(作成中)で作成したVSTを元に簡単な音源(VSTi)を作成する。 作成するに当たって、まずは音源の基本モデルとなるシンセサイザーの構成について記載する。 次に作成する音源(VSTi)について記載する。 なお、ここに記載している内容はシンセサイザーの用語(オシレーター、フィルター等)と三角関数についてある程度の知識があることを前提としている。 また、ここで作成するVSTiサンプルのソースコードはここにある シンセサイザーの構成 シンセサイザーの構成というと下記の図のようなシンセサイザーの音作りに関する部位がよくピックアップされる 実際にシンセサイザー(VSTi)を作成する際には上記のような音声信号に直接かかわる部位だけでなく、MIDIやオ...
  • vst midi03
    ...け取る関数ではなく、VSTに関するホストアプリケーションからのイベントをすべて受け取る関数となっている。 ただし、実装されているメッセージは現在(2010年11月)のところMIDIに関する以下の2つだけである。 MIDIメッセージ MIDI System Exclusiveメッセージ processEvents()関数との関係 ホストアプリケーションはprocessReplacing()関数を呼び出す前に必ず1度だけprocessEvents()関数呼び出し、イベントをVSTに通知する。 また、processEvents()関数で渡されるイベントは直後に呼び出すprocessReplacing()関数に関連するイベントのみとなっている。 ホストアプリケーション側の処理のイメージとしては以下のような感じである。 【ホストアプリケーションの動作】 ①proces...
  • vst midi07
    ...。 この関数はVSTから受け取ったMIDIメッセージをMIDIバッファへ保存するための関数で、processEvents()関数内で、下記のように呼び出されることを想定している。 VstInt32 MyMidiSample2VST processEvents (VstEvents* events){// MIDIバッファを初期化。clearMidiMsg(); int loops = (events- numEvents); // VSTイベントの回数だけループをまわす。for (int i = 0;i loops; i++){// 与えられたイベントがMIDIならばMIDIバッファに追加する。if ((events- events[i&#...
  • vst preparation05
    VST Tips(準備中) コンパイル時の注意 ここではコンパイル・ビルドを実施してVST(DLLファイル)を生成する際の注意事項について記載する。 コンパイル、ビルド時の構成について コンパイル、ビルド時の警告について コンパイル、ビルドの構成の注意 コンパイル、ビルド時の構成を「Release」に設定する。 (「Debug」でも問題ないが、デバッグに必要な処理が追加される。作成したVSTを公開する場合は「Release」にするほうがよい。また、前項(準備中)はコンパイル、ビルド構成が「Release」であることが前提となっている。) コンパイル、ビルド時の構成を設定する方法はメニュー「ツール」下あたりにある「Debug」のリストボックスから「Release」を選択する。 コンパイル、ビルド時の警告 コンパイル、ビルドの結果は画面下側にある出...
  • 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」...
  • @wiki全体から「VST EFFECTOR SAMPLE11」で調べる

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