問題タブ [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 - WebAudio API xhrリクエストのセクションを抽象化しようとすると、JavaScriptのコンストラクター関数にDOM要素を渡すことができません
私の問題はこれです。以下のaudioBoing関数に引数を追加してから、同じ引数をgetElementById文字列に配置すると、関数が機能しません。キャッチされていないタイプのエラー、nullのメソッド'AddEventListener'を呼び出せないというエラーが表示されます
以下の機能は正常に動作します。その下の関数を書き直して、自分がやろうとしていることを反映させました。最終的には、関数のかなりの部分を抽象化しようとしているので、引数をプラグインして実行するだけで、保存/起動するサウンドごとに毎回書き直す必要はありません。
書き直された非動作
javascript - WebAudioAPIを使用したオフライン/非リアルタイムレンダリング
問題
私は、ユーザーがオーディオサンプルをシーケンスし、オプションでWebAudioAPIを使用して作成した音楽パターンにエフェクトを適用できるWebアプリケーションに取り組んでいます。パターンはJSONデータとして保存されているので、サーバー側の各パターンのレンダリングされたオーディオを分析したいと思います。私が見る限り、これには2つの選択肢があります。
サーバー側で独自のレンダリングコードを実行し、ブラウザ内のレンダリングにできるだけ忠実にしようとします。ChromiumプロジェクトからWebAudioコードを取り出して変更することもできるかもしれませんが、これは潜在的に多くの作業のようです。
クライアント側でレンダリングを実行し、できればリアルタイムよりも高速にしてから、レンダリングされたオーディオをサーバーに送信します。パターンレンダリングに使用されるエンジンは1つしかないため、これは理想的(およびDRY)です。
考えられる解決策
この質問から、Chromiumリポジトリのこのコードサンプルにたどり着きました。これは、オフライン処理が可能であることを示しているようです。トリックはwebkitAudioContext
、いくつかの引数を使用してaを作成することのようです(通常、引数なしのコンストラクターが使用されます)。以下は、パラメータの意味についての私の推測です。
サンプルを少し調整し、Windows、Mac、LinuxのChrome23.0.1271.91でテストしました。 ライブの例と結果は次のとおりです(Dev Tools Javascript Consoleを開いて、何が起こっているかを確認してください)。
- Mac-動作します!!
- Windows- FAIL -SYNTAX_ERR:DOM例外12
- Linux- FAIL -SYNTAX_ERR:DOM例外12
上で説明したwebkitAudioContext
コンストラクターは、WindowsとLinuxで例外を引き起こします。
私の質問
オフラインレンダリングは私がやろうとしていることに最適ですが、どこにもドキュメントが見つからず、サポートは理想的とは言えません。誰かがこれについてもっと情報を持っていますか?WindowsやLinuxでこれがすぐにサポートされることを期待する必要がありますか、それともMacでサポートがすぐになくなることを期待する必要がありますか?
javascript - ボタン機能を使用して WebAudio API ノードの割り当てを切り替える際の問題
以下に、ユーザーが画像をクリックすると起動されるbuttonClickResultという関数があります。クリックのオン/オフで、 distortionSwitchという変数を 2 つの値の間で再割り当てしたいと思います。1 つはemptyCableと呼ばれ、もう 1 つは overdrive と呼ばれます。この変数は、bufferFunctionNameという関数内にあります。
この変数の割り当てを他の関数に渡す方法がよくわかりません。
要約すると、ユーザーがボタンをクリックしたときに、bufferFunctionName内の歪みスイッチ と呼ばれる変数は、 emptyCableと呼ばれる変数の割り当てとオーバードライブと呼ばれる変数の割り当てを切り替える必要があります。
ありがとうございました。
補遺 の下にコードを書くと、bufferFunctionNameは、本来あるべき方法でスコープされているにもかかわらず、歪曲スイッチにアクセスできません(私は思いますか?)
このように書くとうまくいきます
javascript - Web Audio API、イベント?
イベント リスナーを Web オーディオ API サウンドに追加することはできますか? サウンドが完了したときのイベントまたはトリガーを探していますが、何も見つかりません。これがどのように機能すると私が想像するかです:
javascript - Chrome パッケージ アプリ: getUserMedia() オーディオ入力のアクセス許可
私は Web アプリを Chrome パッケージ アプリに移植しており、Web Audio API を多用しています (これはうまく機能します)。通常、ステータス バーが表示され、ユーザーに許可を求めます。パッケージ化されたアプリでは、これは発生せず、エラー 1 (権限が拒否されました) がスローされます。パッケージ化されたアプリの設定でこれを経験した人はいますか、または追加する必要がある特定の権限があるかどうかを知っていますか?
ああ、私もいくつかの調査を行い、クロムでファイルされたいくつかのバグを見つけましたが、それらのいずれかがまだ実装されているかどうかはわかりません.
javascript - web-audio を使用したカスタム エコー ノードの作成
Webkit Audio API で遊んでいて、Echo エフェクトを作成して、DelayNode と GainNode をループで接続したことを達成しようとしています (一方の出力は他方の入力であり、その逆です)。 .
エフェクトは正常に動作しますが、プラグインして他の AudioNode オブジェクトに接続できる EchoNode オブジェクトを作成したいと考えています。
何かのようなもの:
他のすべてのAudioNodeの接続機能が機能するように、EchoNodeをAudioNodeから継承させる必要があると思いますが、JavascriptでWeb Audio APIを使用してそれを行う方法がわかりません。
誰かが私にヒントを与えることができますか、それを達成するためのより良い方法があると思うなら、私は大いに感謝します.
ありがとう
javascript - 複数のオーディオ バッファ ソースをマージする
html5 webaudio に関する質問: 複数の曲を結合することは可能ですか?
webaudio を使用して同時に再生されるさまざまなトラックがありますが、オーディオを処理する必要があるため、各トラックが独自のバッファーを持つのではなく、1 つのバッファー内にすべてのオーディオが必要です。
チャネル データを追加してマージしようとしましたが、常に「Uncaught RangeError: Index is out of range.」というメッセージが表示されます。
javascript - AudioBufferSourceNodeでピッチ保存を使用してタイムストレッチを実行するにはどうすればよいですか?
私は、JavaScriptのフェーズボコーダー、またはピッチが変化しないようにするために再生速度を変更するときにWebaudioで使用できるピッチシフト/タイムストレッチアルゴリズムのようなものを探しています。
編集:https ://github.com/also/soundtouch-jsを見つけまし たが、完全なソースファイルにアクセスする必要があるため、理想的ではありません。私は複数のトラック(それぞれが独自のゲインコントロールを備えている)を備えたシステムを開発しています。理想的には、ノードをマージしたり、複数のサウンドタッチシステムを作成したりする代わりに、すべてのノードを接続できるシステムが必要です。
javascript - オーディオ ファイルからデシベル レベルのようなものを取得し、その情報を json 配列に変換する方法はありますか?
デシベルレベルが高くなるにつれて要素を明るくするなど、ページアニメーションを調整するために情報を使用できるように
javascript - Web Audio API を使用した 3 バンド イコライザーの実装
標準の DJ ミキサーを模倣した 3 バンド EQ の実装を検討しています。
残念ながら、私はあまり運がありません。BiquadFilter ノードを作成し、それらをゲイン ノードに接続する必要があることはわかっています。残念ながら、私は望ましい結果に近づくことはできません。
私がこれまでに得た唯一の成功は、トラックの音量を制御するための gainNode だけです。
どんな援助でも大歓迎です。
ありがとう、スタン