問題タブ [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 - 動的に作成された dom 要素と、渡せないように見える変数を使用してソフトウェア シンセを作成する
これがJSfiddleです。http://jsfiddle.net/ZttnJ/5/
問題は、別のスコープにアクセスできるスコープ内の変数が必要なだけですが、変数をより高いスコープに配置すると、要素の動的作成が中断されることです。これは、動的に作成された dom 要素で再発する問題のようですプロトタイプなどでコードをコンストラクターに再作成せずにこれを解決する定型的な方法があるかどうか、私は非常に興味があります。わかりやすくするためにコードにコメントを付けました。コメントは1つだけです。
javascript - WebAudioAPIを使用してOscillatorNodesでコードを演奏する
OscillatorNodesを使用してコードを演奏したいと思います。
しかし、このアプローチは混乱のように聞こえます(これがそのように聞こえます)。コード内のノートごとに新しいAudioContextを作成しようとすると、問題なく聞こえます(次のようになります)。
しかし、私はあなたが1つのAudioContextしか持っていないことになっていることを読みました。私は何が間違っているのですか?
javascript - キーアップ/キーダウンで再生する一連のオシレーターを動的に作成する
問題はこれです: 次の例では、http://jsfiddle.net/GmgGY/2/
オレンジ色のボタンをクリックすると、新しい div が作成されます。この div をクリックすると、オシレータが再生されます。キーボードのキーを押す (keydown) と、それも再生されます。その後、キーボードの文字が持ち上げられる (キーアップ) と、再生が停止します。これは良いことであり、私が望むものです。
ただし、オレンジ色のボタンを複数回クリックして、複数のシンセを作成すると。キーボードのキーを押すと、すべてのキーが再生されますが (これは私が望んでいることです)、最後に作成されたものだけが keyup イベントに応答するようです。 .
これを修正する方法がわかりません。
動的に作成された各 div には一意の ID がありますが、それらすべてに共通のクラスもあります。クラス(synth.class)を選択し、キーアップでユニバーサルoscillator.disconnect()を起動する方法があるのではないかと思いました???
私が考えているもう1つのことは、私の問題には、これを引き起こしているDOMの問題を補うある種の反復スレッドが必要かもしれないということです(これまでのプログラミングだけではないと仮定して)。しかし、よくわかりません。
Javascript コードは以下のとおりです。可能な限り最小限に抑えようとしましたが、これよりも小さくしてクリアにする方法がわかりませんでした。html 要素と css 要素は省略しましたが、JSfiddle の例ではそのまま残しました。
javascript - createPanner(); を使用して非常に基本的な左右均等パワー パンを作成する方法。
私は Web オーディオ API 仕様を見ています。パン ノードは 3 つの値を使用して、サウンドの 3D スペクトルを作成します。基本的な 2D の「同等のパワー」パナーを作成するために、プログラマーはこれをスケーリングするために定型プログラミングを行う必要があるのでしょうか...それとも、考えすぎてもっと簡単な方法があるのでしょうか。
編集
web-audio-api - WebAudioAPIサンプリングレート
リアルタイムオーディオコンテキストのサンプリングレート(オブジェクトsampleRate
の属性)を指定することは可能ですか?AudioContext
私が読んだものではsampleRate
、オブジェクトのforを指定することは可能ですOfflineAudioContext
(コンストラクターは3つの引数を取り、最後の引数はサンプルレートです)が、リアルタイムAudioContext
は引数を取りません。
おそらくそれはブラウザ自体によって定義されているので、私は不可能だと思いますが、おそらく方法はありますか?
audio-recording - AudioContext からサウンドを録音する (Web Audio API)
に送信されている音声データを録音する方法はありwebkitAudioContext.destination
ますか?
ノードがそこに送信しているデータはブラウザによって再生されているため、そのデータを (.wav) ファイルに保存する方法が必要です。
javascript - 単一チャンネルでオシレーションを再生する
1 つのチャンネルだけでオシレーター サウンドを再生しようとしましたが、うまく動作しませんでした。
ノードを使用しpanner
てサウンドの位置を設定しようとしましたが、両方のチャンネルでまだ再生されますが、遠くのチャンネルではそれほど大きくありません.
私の最近の試みでは、チャンネルの統合を使用しようとしましたが、両方のチャンネルで引き続き再生されます。
単一のチャンネルでのみ再生するオシレーターをどのように作成しますか?
html - Safari 6.0.2 が onaudioprocess を呼び出さない
私は以前、Web Audio API でJavaScriptAudioNodeを使用して、Chrome と Safari 6.0 の両方でオーディオの合成とミキシングに成功しました。ただし、最新バージョンの Safari は、ソース バッファを埋めるためにonaudioprocessを呼び出さないため、動作していないように見えます。
これは、 onaudioprocessへの呼び出しごとに無音のみを再生し、テキストをドキュメント本文に追加する簡単な例です。
上記の例は、Chrome では期待どおりに機能しますが、デスクトップ Safari では機能しません。Safari の iOS バージョンも動作しませんが、そもそも動作しませんでした。
context.createJavaScriptNodeを呼び出すと、タイプJavaScriptAudioNodeの適切なオブジェクトが返され、それを宛先ノードに接続しても例外はスローされません。context.activeSourceCountはゼロのままですが、これは Chrome にも当てはまります。明らかにタイプAudioBufferSourceNodeのアクティブなノードのみをカウントするためです。context.currentTimeも期待どおりに増加します。
ここで何か間違ったことをしているのですか、それとも実際のバグなのか、Safari に欠けている機能なのですか? Apple のドキュメントには、JavaScriptAudioNode (または新しい名前のScriptProcessorNode ) についての言及はありませんが、Safari 6 の最初のリリースの前には機能していました。上記の例が注意を払う必要があるため、ユーザー入力に対する iOS Safari の要件は役に立たないようです。その。
簡単な例はここにあり、より複雑な例は、同じ動作を示す私のProtracker モジュール プレーヤーです。
javascript - WebオーディオAPI:オーディオグラフを検査する方法は?
WebAudioApi仕様は次のように述べています。
[...]AudioContextインターフェイス。AudioNode間の接続を表すオーディオ信号グラフが含まれています。
+/-30ノードが接続されたノードを持つプロジェクトがあります。
グラフの設定が正しいかどうかを確認するためのテストを作成しようとしています。したがって、結果のグラフを調べる必要があります。
しかし、私は最終的なグラフにアクセス/検査することも、それを行う方法についての情報を見つけることもできませんでした。
javascript - Web Audio API -- 周波数変調のサウンドが Chrome / Safari で異なる
私は、Web Audio API シンセ用のブラウザー ベースのパッチ インターフェイスに取り組んでいます。周波数変調 (オシレーターを別のオシレーターの周波数にフックする) は、Chrome で期待どおりに機能します。周波数が 30Hz 揺れる 300Hz の正弦波のような SF サウンドのはずです。
Safari (および Mobile Safari) では、低音がゴロゴロ鳴るように聞こえます。FM があるように聞こえますが、適切な基本周波数ではありません。これは、将来のバージョンで解決される単なるブラウザーの癖ですか? 現在、回避策はありますか?
ビジュアル/インタラクティブ バージョンは次のとおりです:
http://forresto.github.com/dataflow-webaudio/
そして、効果を実証するための最小限のコードを含むフィドルバージョン:
http://jsfiddle.net/FVaWL/28/