問題タブ [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.
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 であるため、リンクで完全なソースを見ることができます。
関連ソース:
javascript - Web オーディオ オシレータが音符を 1 回しか再生しないのはなぜですか?
Web Audio オシレーター ( noteOn
) を使用してトーンを正常に作成し、そのnoteOff
関数を呼び出すと、その後の の呼び出しnoteOn
でトーンが再生されません。新しい音符を演奏するには、新しいオシレータを作成する必要があるようです。どうしてこれなの?
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を一から学びたい。ありがとう
html5-audio - とにかく、WebオーディオとHTML5オーディオの違いは何ですか?
オーディオについて質問したところ、これはWebオーディオではなくhtml5-audioに関する質問だと言われています。
だから私は違いは何ですか?
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では実行されます)
ソースを次のように変更すると:
何も表示されません。
それで、それを視覚化しながらエラーなしで、何度も再開できるようにする方法はありますか?
javascript - 生成された音を再生する
オーディオを (私の場合は からgetUserMedia
) キャプチャして再生したいと考えています。次のように、一連の AudioBuffers を配列にプッシュできます。
recorded
しかし、配列内のバッファを再生するにはどうすればよいでしょうか?
これらを 1 つのバッファにマージして再生する方法はcreateBufferSource
?
まったく別のアプローチ?
raphael - raphael.js のクリック イベントを使用して Web オーディオ API のバッファリングされたオーディオ ファイルを起動する
ラファエル サークルがあり、関数を起動するマウス イベントを追加したいと考えています。この関数は PlayAudioFile() と呼ばれ、Raphael.js コード ブロックからはアクセスできません。以下のコードを変更してスコープを利用可能にする方法がわかりません。
javascript - Web オーディオ: Karplus ストロング ストリング シンセシス
編集:コードとプレーヤー(Github上)を少し整理して、頻度を設定しやすくしました
Karplus Strong 弦合成アルゴリズムを使用して弦を合成しようとしていますが、弦を正しくチューニングできません。誰にもアイデアはありますか?
上記のリンクのように、コードは Github にあります: https://github.com/achalddave/Audio-API-Frequency-Generator (関連するビットは にありますstrings.js
)。
Wiki には次の図があります。
基本的に、私はノイズを生成し、それが出力され、同時に遅延フィルターに送られます。遅延フィルタはローパス フィルタに接続され、出力と混合されます。ウィキペディアによると、遅延は N サンプルである必要があります。ここで、N はサンプリング周波数を基本周波数で割ったものです ( N = f_s/f_0
)。
私のコードからの抜粋:
ノイズの生成 ( bufferSize
2048 ですが、それほど重要ではありません)
遅延ノードを作成する
f_s/f_0
サンプル分遅延する必要があります。ただし、遅延ノードは遅延を秒単位で取るため、それを 1 秒あたりのサンプル数で割る必要があり(f_s/f_0) / f_s
ます1/f_0
。
ローパス フィルターを作成します (私が知る限り、周波数カットオフは周波数に影響を与えるべきではなく、文字列が自然に聞こえるかどうかの問題です):
ノイズを出力と遅延ノードに接続します (destination = context.destination
と は前に定義されています)。
遅延をローパス フィルターに接続します。
ローパスを出力に接続し、遅延に戻します*:
誰にもアイデアはありますか?問題が自分のコードなのか、アルゴリズムの解釈なのか、API の理解なのか、(可能性は低いですが) API 自体の問題なのか、わかりません。
*Github では、実際にはローパスと出力の間に Gain Node がありますが、実際には出力に大きな違いはありません。
javascript - Webaudio API ScriptProcessorNode 信号の出力方法
ScriptProcessorNode インターフェイスでオーディオを処理したいのですが、出力バッファを書き込めません。
getChannelData からデータを取得しますが、それらを出力バッファに送信するにはどうすればよいですか?
前もって感謝します。
javascript - Web Audio API イベントは別のスレッドで実行されますか?
私は特にScriptProcessorNodeのonaudioprocessに興味があります(最近までJavaScriptNodeと呼ばれていました)。これは、オーディオ処理のために定期的に呼び出されるイベント リスナーです。別のスレッドで実行されますか?
データを循環バッファーにフィードし、このコールバックの外で処理して、CPU を占有しないようにしたいと考えています。非同期処理にWebワーカーを使用できますが、私の知る限り、スレッドが異なる場合はリングバッファーの別の実装が必要です。
これをテストする方法はありますか?