2012-04-30 9 views
0

の範囲[0-250] 5秒の斜め音の[wsec]ファイルがあります。秒 - 高音]を選択します。私はこの.wavファイルからトーンを抽出し、それを再生してスピードコントロールと範囲[0 - 250]値のプログレスバー値と共にユーザーに警告します。プログレスバーの値に基づいて4秒の.wavファイルを使用してトーンを再生する方法C#

したがって、スピード値が0の場合、プログレスバーは空で、.wavのトーンは低いピッチ[0秒]になります。スピード値= 10の場合、プログレスバーの値は10、.wavからのトーンはピッチが少し上(例えば0.10秒)になるはずです。スピード値= 20の場合、プログレスバーの値は20で、WAVからのトーンはピッチが少し上(たとえば0.20秒)になるはずですが、スピード値= 250になるとプログレスバーの値は250になり、WAVからのトーンは最高になります[例:4秒]

私は、このようなトーンのメディア抽出には新しく、進行状況バー値に基づいてC#で再生します。プロセスを通して私を導いてください。

.wavファイルを.wavカッターを使用してバイト配列ストリームに変換しようとしました。しかし進行状況バーの値に基づいて継続的にプレイするように立っていませんでした。より良い実装ロジックを手伝ってください。事前

答えて

0

WAVファイルで

おかげで、各サンプルが時間内にその瞬間のために圧レベルの測定値であることを意味PCMオーディオを、含まれています。 44.1kHz(CDオーディオの標準サンプリングレート)でサンプリングされた1kHzで5秒の正弦波があり、その5秒から10秒の再生を伸ばしたいとします。サンプルを遅く再生してWAVファイルが長く続くようにするだけで、可聴ピッチを効果的に1オクターブ下げて500Hzまで下げ、サンプルレートを半減させて22.05kHzに下げます。この例を考え、WAVの周波数掃引について考えてみましょう。たとえどのくらい前に再生する必要があるか分かっていたとしても、掃引のピッチと長さを変更するだけです。これは本当にあなたがしたいことではありません。

ピッチを同じに保つよう依頼していますが、時間は異なります。これを行うには、PCMオーディオを時間領域から周波数領域に変換する必要があります。フーリエ変換(ソフトウェアでFFTとして実装されている)はこれを行います。これはMP3の仕組みとほぼ同じです。基本的には、ピークと谷で波形を測定するのではなく、さまざまな周波数帯のレベルを測定し、短時間(通常は約8ms)再生します。いずれにせよ、これはあなたがする必要があることに対しておそらく大きな煩わしさです。

プログレスバーが上がるにつれて、周波数掃引を簡単に生成することをお勧めします。単純な正弦波を生成し、プログレスバーが増加すると、生成する正弦波の周波数も増加します。ずっと簡単です。

関連する問題