2

私はこれを得るためにインターネット全体を検索してきましたが、無駄ではありません。

私は C++ で Steinberg の VST SDK を使用しています。エフェクト プラグインを開発していて、サウンド ファイルの長さ、つまりファイル内のフレーム数を知る必要があります。したがって、processReplaceing 関数からブロック サイズまたは (sampleFrames) がわかります。

void processReplacing (float **inputs, float **outputs, VstInt32 sampleFrames)

サウンド ファイル全体の合計フレーム数を取得する方法を知っている人はいますか?

事前に助けてくれてありがとう、

4

2 に答える 2

6

VST エフェクト プラグインの実装方法について誤解していると思います。

一般に、VST はリアルタイム オーディオ処理用に設定されておりsampleFrames、システムの処理レイテンシに関連する の値でレンダリング関数が繰り返し呼び出され、256 以下の領域になる可能性があります。

を実装するときはprocessReplacing()、処理の結果を が指すバッファに書き込みます。このバッファはoutputs、ホスト アプリケーションによって渡されsampleFrames、スペースが確保されていることが保証されています。

于 2013-01-04T17:18:27.133 に答える
2

これはエフェクトではありえないと思います。エフェクトではなく、シンセを作ることを考えたことはありますか? したがって、独自のサンプルを提供することができます..「processReplaceing」はホスト アプリケーションからサンプルを取得するだけで、それがすべて (ライブ エンドレス ミュージック、サンプルなど) になる可能性があります。おそらく、プラグインの設計を再考する必要があります。

于 2013-01-04T17:18:11.207 に答える