問題タブ [web-audio-api]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
1266 参照

javascript - Chrome で Web Audio API Delay の音が歪む

JavaScript で Web Audio API を使用しています。

オシレータを作成し、それをボリューム (gainNode) に接続し、宛先に接続します。

Ok。良い。

ディレイエフェクトが欲しいので、オシレーターとボリュームの間に挟みます。

まあ、それはうまくいきません。遅延が聞こえるだけです。とはいえ、きれいです。

わかりましたので、OSC をディレイからボリュームに接続し、OSC をボリュームに接続してから、ボリュームを宛先に接続します。

今は歪んでいるようです。

宛先への接続が 2 つあるように、宛先への osc を使用して、ボリュームから宛先への遅延を osc で試みました。それも歪んでいる。

それはクロムにあります。

少し試してみたところ、iOS6 で正しく動作するようです。サファリはわかりません。

http://cloudmusiccompany.appspot.com/watch.jspにアクセスし、赤をクリックして描画してみてください。それは通常の正弦波です。ここで白をクリックして描画します。これは遅延と同じであり、クロム(Ubuntu)では歪んでいます。Safarについては知りません。

もちろん、javascript であるため、リンクで完全なソースを見ることができます。

関連ソース:

0 投票する
3 に答える
3325 参照

javascript - Web オーディオ オシレータが音符を 1 回しか再生しないのはなぜですか?

Web Audio オシレーター ( noteOn) を使用してトーンを正常に作成し、そのnoteOff関数を呼び出すと、その後の の呼び出しnoteOnでトーンが再生されません。新しい音符を演奏するには、新しいオシレータを作成する必要があるようです。どうしてこれなの?

0 投票する
1 に答える
449 参照

html5-audio - Web Audio API を使用して 2 つのサウンドを 2 つの Div に割り当て、javascript のクリック イベントを介してそれぞれを個別に再生する

以下の URL にリンクされているコードを探していましたが、どこにもアクセスできませんでした。ページ全体ではなく、小さな div にイベント ハンドラーを再割り当てすることしかできませんでした。これを調整して複数のサウンドをロードする方法がわかりません。

http://www.f1lt3r.com/w3caudio/web-audio-api/basic-examples/low-latency-playback-user-input.html

以下のコード例では、div をクリックしてもサウンドをトリガーできませんでした。ただし、このコードの方が見栄えがするので、学習目的でこれを変更したいと思います。

オシレーターの作成方法と、フィルター/ゲインおよびその他のノードの接続方法を理解しています。ここまでは、API を使用する際の私の基準です。XMLHttpRequest プロセスとバッファーの作成を組み合わせると、混乱を招きます。バッファーとは何か、XMLHttprequest とは何かを理解していますが、何らかの理由で、再生のためにオーディオ ファイルをロードするプロセスが明確に思えません。HTML-5 のロック チュートリアルも読もうとしましたが、微調整できる作業 C&P コードがなければ、正しい軌道に乗っているかどうかはわかりません。ところで、抽象化されたライブラリを使用したくありません。APIを一から学びたい。ありがとう

0 投票する
1 に答える
5722 参照

html5-audio - とにかく、WebオーディオとHTML5オーディオの違いは何ですか?

オーディオについて質問したところ、これはWebオーディオではなくhtml5-audioに関する質問だと言われています。

だから私は違いは何ですか?

0 投票する
2 に答える
980 参照

html - Audio API: 音楽の再開と視覚化に失敗しました。html5-audio にバグはありますか?

ボタンがあります。クリックするたびに音楽が再生されます。2 回目にクリックすると、音楽が再開します。音楽も視覚化したい。

だから私はhtml5オーディオから始めます( http://jsfiddle.net/karenpeng/PAW7r/の完全なコード):

しかし、複数回クリックすると、console.log エラー:

次に、 Web Audio APIを使用するように変更し、ソースを次のように変更します。

エラーはなくなりました。

そして、それを視覚化する必要があります。しかし皮肉なことに、これはhtml5 audioでしか機能しません!

( http://jsfiddle.net/karenpeng/FvgQF/の完全なコード、jsfiddle cuzでは機能しません。処理.jsスクリプトを適切に記述する方法がわかりませんが、私のPCでは実行されます)

ソースを次のように変更すると:

何も表示されません。

それで、それを視覚化しながらエラーなしで、何度も再開できるようにする方法はありますか?

0 投票する
2 に答える
1037 参照

javascript - 生成された音を再生する

オーディオを (私の場合は からgetUserMedia) キャプチャして再生したいと考えています。次のように、一連の AudioBuffers を配列にプッシュできます。

recordedしかし、配列内のバッファを再生するにはどうすればよいでしょうか?

これらを 1 つのバッファにマージして再生する方法はcreateBufferSource?

まったく別のアプローチ?

0 投票する
1 に答える
263 参照

raphael - raphael.js のクリック イベントを使用して Web オーディオ API のバッファリングされたオーディオ ファイルを起動する

ラファエル サークルがあり、関数を起動するマウス イベントを追加したいと考えています。この関数は PlayAudioFile() と呼ばれ、Raphael.js コード ブロックからはアクセスできません。以下のコードを変更してスコープを利用可能にする方法がわかりません。

0 投票する
1 に答える
2090 参照

javascript - Web オーディオ: Karplus ストロング ストリング シンセシス

編集:コードとプレーヤー(Github上)を少し整理して、頻度を設定しやすくしました

Karplus Strong 弦合成アルゴリズムを使用して弦を合成しようとしていますが、弦を正しくチューニングできません。誰にもアイデアはありますか?

上記のリンクのように、コードは Github にあります: https://github.com/achalddave/Audio-API-Frequency-Generator (関連するビットは にありますstrings.js)。

Wiki には次の図があります。

Karplus Strong String 合成図

基本的に、私はノイズを生成し、それが出力され、同時に遅延フィルターに送られます。遅延フィルタはローパス フィルタに接続され、出力と混合されます。ウィキペディアによると、遅延は N サンプルである必要があります。ここで、N はサンプリング周波数を基本周波数で割ったものです ( N = f_s/f_0)。

私のコードからの抜粋:

ノイズの生成 ( bufferSize2048 ですが、それほど重要ではありません)

遅延ノードを作成する

f_s/f_0サンプル分遅延する必要があります。ただし、遅延ノードは遅延を秒単位で取るため、それを 1 秒あたりのサンプル数で割る必要があり(f_s/f_0) / f_sます1/f_0

ローパス フィルターを作成します (私が知る限り、周波数カットオフは周波数に影響を与えるべきではなく、文字列が自然に聞こえるかどうかの問題です):

ノイズを出力と遅延ノードに接続します (destination = context.destinationと は前に定義されています)。

遅延をローパス フィルターに接続します。

ローパスを出力に接続し、遅延に戻します*:

誰にもアイデアはありますか?問題が自分のコードなのか、アルゴリズムの解釈なのか、API の理解なのか、(可能性は低いですが) API 自体の問題なのか、わかりません。


*Github では、実際にはローパスと出力の間に Gain Node がありますが、実際には出力に大きな違いはありません。

0 投票する
1 に答える
2444 参照

javascript - Webaudio API ScriptProcessorNode 信号の出力方法

ScriptProcessorNode インターフェイスでオーディオを処理したいのですが、出力バッファを書き込めません。

getChannelData からデータを取得しますが、それらを出力バッファに送信するにはどうすればよいですか?

前もって感謝します。

0 投票する
2 に答える
3052 参照

javascript - Web Audio API イベントは別のスレッドで実行されますか?

私は特にScriptProcessorNodeonaudioprocessに興味があります(最近までJavaScriptNodeと呼ばれていました)。これは、オーディオ処理のために定期的に呼び出されるイベント リスナーです。別のスレッドで実行されますか?

データを循環バッファーにフィードし、このコールバックの外で処理して、CPU を占有しないようにしたいと考えています。非同期処理にWebワーカーを使用できますが、私の知る限り、スレッドが異なる場合はリングバッファーの別の実装が必要です。

これをテストする方法はありますか?