12

JavaScriptを勉強中の初心者です。私は、マイクロトーン周波数と惑星周波数に関連する私のサイトのインタラクティブなページで、さまざまなプロジェクトを念頭に置いています。オーディオ サンプルの.wavファイルをループで再生できるようにする必要がありますが、対応するピッチの変化に合わせてオーディオ サンプルをタイムストレッチします。

オーディオをmyAudio.playbackRate = 0.5;0.5 遅く再生しますが、ピッチは同じに保ちます。調べてみたらなんとなくわかりました。しかし、どうすればpreservesPitchfalse または true に設定できますか? そして、これは「Google Chrome」でのみ機能すると思うので、私が見つけた他のプログラムはここにあります:
https://github.com/janesconference/KievII/blob/master/dsp/pitchshift.js

動作していないようです。どのように変更すればよいかわかりません。Audio .wav ファイルの URL をプログラムのどこに貼り付ければよいですか? これに関連する他のヒントは大歓迎です。お時間とご協力いただきありがとうございます。

4

4 に答える 4

1

I tried myAudio.playbackRate = 0.5;私たちが話しているとあなたが言ったとき、いくつかの点はWeb Audio API

はいの場合は、サンプルの長さと同様にピッチが影響を受けることをもう一度聞いてください。

いいえの場合は、おそらくネイティブの html5 関数を使用しています。元の速度を維持してピッチを変更したい場合は、速度を変更した後、ある種の補間を適用します。オーディオをストレッチするために使用したのと同じ係数で線形補間を試してください。速度とピッチを変更する必要がある場合は、(元のサウンドで) 速度を変更せずに補間を適用するだけです。これは、Web オーディオ APIで実行できる別のサンプル レートでオーディオを再生することと同じです。

このコードpitchshift.jsは、Stephan Bernseeからのコードの移植ですjavascript(これにより、ピッチが変更され、速度が変更されないようになります)。この関数は、すべてのチャンク オーディオで呼び出す必要があるため、最初にオーディオ ファイルを短い int または形式でデコードする関数を実行する必要があります。浮く。

于 2014-08-06T12:27:23.583 に答える
0

ねえ、あなたの Web オーディオ API は、少なくとも正弦波で動作するようです。サンプルの使用方法はすぐにわかります

于 2014-09-02T07:00:07.367 に答える