VST3.6におけるテンポの取得
VSTプラグインを作成する際、ホストアプリ(DAWなど)からテンポの情報を取得したい場合があります。
テンポ情報は音声処理クラスのprocess()関数の引数ProcessData& dataに保存されています。
実際に取得する方法は下記となります。なお、ホストアプリ(DAWなど)によっては、取得できない場合もあります。
(情報を取得できなかったホストアプリについてはコメント欄や掲示板、Twitterなどで教えていただけると助かります。)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
tresult PLUGIN_API MyVSTProcessor::process(ProcessData& data) { // ~~中略~~ // テンポを取得 double tempo = 120.0; // テンポを取得できなかったときのために初期化しておく // data.processContext->stateは「ホストアプリ(DAWなど)がどんな状態なのか?」 // 「ホストアプリ(DAWなど)から何の情報が取得できるか?」を指定するフラグとなっている。 // data.processContext->kTempoValidのフラグが立っている場合、 // テンポ情報が取得できる。 if (data.processContext->state & data.processContext->kTempoValid) { // テンポ情報を取得(BPMで取得できる。120BPMの場合、120.0となる) tempo = data.processContext->tempo; } // ~~中略~~ } |
上記以外にもVST3.6についての情報があります。下記をご参照ください。
また、質問やご指摘はコメント欄や掲示板、Twitterでいただけばとおもいます。
■掲示板
■Twitterアカウント:@vstcpp URL:https://twitter.com/vstcpp