0

これがばかげた質問のように聞こえる場合はお詫びします。私は VST 開発に比較的慣れていません。JUCE フレームワークを使用してプラグインを構築しようとしています。現在、正弦波の .wav ファイルでテストしようとしています。Audacity で .wav ファイルを開くと、44100Hz で 32 ビット浮動小数点数であることがわかります。この同じファイルを matlab にロードすると、最初の 3 つのサンプルは 0.00、0.0443、0.0884 のようになります... しかし、同じファイルを Ableton と Reaper に入れ、コードをステップ実行しようとすると、最初の 3 つのサンプルが見つかります。同じファイルは 0.00000000、0.00012068315、0.00048156900 です... VS でメモリをピークして 32 ビット浮動小数点ビューで見ると、これが表示されます。サンプル値がこれほど小さいのはなぜですか?

私の問題は、アルゴリズムが機能するために、音声が Matlab と同じサンプル値を持つ必要があることです。明らかに、私が制御できない変換が発生しています。誰でもこの問題に光を当てることができますか?それを修正するにはどうすればよいですか? おそらくスケーリングの問題のようです。Ableton は 32 ビット モードで実行されており、VST は 32 ビットとしてコンパイルされています。

それが助けになるなら、私はより多くのサンプルを提供することもできます.

ありがとう

4

2 に答える 2

1

問題は、Ableton と Reaper が 32 ビット オーディオを 16 ビット オーディオに変換していたためです。sine.wav を Ableton にロードして 16 ビットでエクスポートすることで、これを確認できました。次に、ファイルを Matlab にロードし、上記のような小さなサンプルを取得しました。私の次の問題は、VST 内で 16 ビット オーディオを 32 ビット オーディオに変換する方法を見つけることです。

于 2016-06-28T23:46:53.727 に答える
0

あなたが説明しているように見えるのは非常に低い振幅であるため、値はほとんどありません(サンプル値をdBに変換して確認できます)。通常、オーディオ信号の範囲は -1 から +1 で、極値はデジタル世界で可能な最大音量 (別名 0dB) を表します。

16 ビットと 32 ビットの間のジレンマは、あなたの問題とは何の関係もないと思います。

于 2016-06-29T04:16:28.653 に答える