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 20 21 |
tresult PLUGIN_API MyVSTProcessor::process(ProcessData& data) { // ~~中略~~ // ホストアプリ(DAWなど)の再生位置を保存する変数 double projectTime = 0.0; // data.processContext->stateは「ホストアプリ(DAWなど)がどんな状態なのか?」 // 「ホストアプリ(DAWなど)から何の情報が取得できるか?」を指定するフラグとなっている。 // data.processContext->kProjectTimeMusicValidのフラグが立っている場合、 // ホストアプリ(DAWなど)から現在の再生位置を取得できる if (data.processContext->state & data.processContext->kProjectTimeMusicValid) { // ホストアプリ(DAWなど)の再生位置を取得。(単位は4分音符) // 1小節目 1拍目を0.0として1拍(4分音符)ごとに+1.0となる。 // (4/4拍子で2小節目 1拍目なら4.0、3小節目 1拍目なら8.0となる。) projectTime = data.processContext->projectTimeMusic; } // ~~中略~~ } |
ホストアプリ(DAWなど)が再生中かどうかを取得する方法はこちらです
また、上記以外にもVST3.6についての情報があります。下記をご参照ください。
また、質問やご指摘はコメント欄や掲示板、Twitterでいただけばとおもいます。
■掲示板
■Twitterアカウント:@vstcpp URL:https://twitter.com/vstcpp