問題タブ [audiocontext]
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 - AnalyserNode で FFT 解像度を上げる
AnalyserNode を使用すると、少し混乱する可能性があると思います。現在、userAudio ストリームの「ライン入力」を AnalyserNode に接続しています。次に、 を使用して Uint8Array を埋めgetByteFrequencyData()
ます。
単一の 440Hz トーンを再生すると、アレイ内で最も強度の高い周波数は 468Hzまたは421Hz になります (どれだけ変化させるかによって異なります)。468 から 421Hz の間により多くの周波数を持つように、これらの周波数の周りの解像度を上げる方法はありますか?
440Hz トーンの fft データをプロットすると、468Hz と 421Hz に 2 つの強い周波数が見られます。468Hz と 421Hz のデータ ポイント (他のポイントの中でも) の強度が平均化されるように、FFT データを別の配列に平均化する方法はありますか? 周波数間のデータを補間するようなものだと思います...
JSFiddle: http://jsfiddle.net/puYw3/ (現在のコンピューターにはマイクがないため、これが実際に機能するかどうかはわかりません)。
javascript - Chrome で OfflineAudioContext の FFT 分析がまだ壊れていますか?
OfflineAudioContext と FFT アナライザーをスクリプト プロセッサを使用して Chrome で使用しようとしましたが、この人と同じ問題に直面しています: OfflineAudioContext FFT analysis with chrome
その SO の回答で、誰かがこのバグ レポートを指摘しました: https://bugs.webkit.org/show_bug.cgi?id=113274しかし、それは 1 年以上前のものです!
私の質問は次のとおりです。これがすぐに修正されるかどうか、他の場所でバグを報告する必要があるかどうかを誰かが知っていますか? そのバグ レポート (1 年前のもの) はまだ検討中ですか? それとも、誰かが回避策を知っているのでしょうか? 私のコードは、本質的にその SO リンクの jsfiddle と同じです。
これが chrome では機能しないのに、Firefox では機能するのは本当に悲しいことです。
javascript - AudioContext からマイク データを取得する方法
それで、 javascript を使用してサウンドを録音できることがわかりました。それはただ素晴らしいです!
自分で何かをするために新しいプロジェクトを即座に作成しました。しかし、サンプルスクリプトのソースコードを開いた途端、説明のコメントがまったくないことに気付きました。
私はグーグルを開始 し、録音をまったく認識しないAudioContext に関する長くて興味深い記事(remixinf サウンドについてのみ言及している) と、すべての情報を含むMDN 記事を見つけました。
また、そのことを処理する既存のフレームワークについても認識しています (どういうわけか、おそらく)。でも、サウンド レコーダーが欲しければダウンロードします。
コーディング部分に慣れていないだけでなく、全体がどのように機能するのかにも興味があります-特定の時間に集中力が得られますか? オシロスコープのように?または、サンプルのスペクトル分析を取得できますか?
間違いを避けるために、上記のAPIを使用して入力データを取得し、最終的に説明コメント付きのコードを提供する最も簡単で簡単な方法を誰か説明してもらえますか?
javascript - 録音中の音を再生しないようにする方法
私はフィードバックについて話しています.ユーザーからのストリームを開き、周波数分析(またはそれが何であれ)を読み取る単純なJavaScriptアプリケーションを作成すると、受信したすべてのデータがGoogle ChromeとOperaの両方でヘッドフォンに返されます. Firefox はほとんどの場合沈黙しており、ランダムに不安定なフィードバックで巨大な混乱を引き起こします。また、数秒後にストリームを閉じます。通常、Firefox ではまだ動作しません。
フィドルを作成しました。ブラウザがサポートしていない場合は、コンソールにエラーが表示されると思います。
コードの重要な部分は、ユーザーがマイク アクセスの要求を受け入れたときに呼び出される関数です。
ゼロゲインのアイデアは私のものではありません。単純なサウンドレコーダーのデモから盗みました。しかし、彼らにとってうまくいくことは、私にはうまくいきません。私のように、デモはFirefoxでも問題ありません。
javascript - javascript readAsArrayBuffer が空の配列バッファを返す
FileReader readAsArrayBuffer プロパティを使用してローカル ファイルを読み込もうとしています。読み取りが成功し、「onload」コールバックで、reader.result に Array Buffer オブジェクトが表示されます。しかし、Array Buffer は空です。長さは設定されますが、データは設定されません。このデータを取得するにはどうすればよいですか?
これが私のコードです
reader.result のコンソール出力
このデータを取得する方法を誰か教えてもらえますか? セキュリティ上の問題はありますか?エラーはありません。onerror は実行されません。
コメントから:バッファの内容にアクセスする方法を教えてください。私は実際にオーディオファイルを再生しようとしていますAudioContext
...そのためにはバッファデータが必要です...
javascript - javascript/html5 経由で wav オーディオ バイト配列を再生するには?
次のメソッドを使用して、wav データを含むバイト配列を再生しています。関数は GWT プロジェクトから呼び出されています。
この関数は音を再生しますが、ある種の地獄のモンスターのように聞こえます。サンプル レートは間違いなく正しく (サウンドは neospeech によって生成されています)、numberOfSamples のあらゆる種類の値を試しましたが、これはオーディオ データの長さを表しているようです。
numberOfSamples の値が 30000 を超えると、オーディオ ファイルの全長が再生されますが、文字化けしてひどいものになります。
それで、私は何を間違っていますか?
javascript - Icecast ストリームが AudioContext を介してロードされない
HTML5/JS でアイスキャスト ストリーム用のビジュアル プレーヤーを作成したいと考えています。これを機能させるには AudioContext を使用する必要があることは理解していますが、Chrome 以外で機能させるのに問題があり、その理由がわかりません。
- クロムは正常に動作します
- Firefox/Opera は何もしません
- IE アラート Web オーディオ API はサポートされていません
実際の例については、以下のフィドルを参照してください。
奇妙なことに、ローカルの mp3 ファイルを試してみると、Chrome/FF/(Opera?) ですべて正常に動作します。
ラインと関係があるのは確かなのですが…
offline - OfflineAudioContext のみのレンダリングと onComplete の呼び出し
レンダリングされたバッファに基づいてビジュアライゼーションをレンダリングするオフライン コンテキストを作成し、startRendering() を呼び出して onComplete コールバックでレンダリングされたバッファを取得しました。接続されたオーディオ ノードの新しいセットを作成しようとしても、もう一度 startRendering() を呼び出しても何も起こりません。レンダリングごとにオフライン コンテキスト全体を再作成する必要がありますか?
node.js - NodeJs からの WebAudio API の使用
NodeJSでWebAudio(AudioContext)を使いたいです。ただし、NodeJS は WebAudio をサポートしていません。web-audio-api の npm がありますが、まだアルファ段階であり、不完全です。
では、NodeJS で WebAudio(AudioContext) を使用するにはどうすればよいですか。
NodeJS から Chrome ブラウザー環境をインスタンス化し、その機能を利用できますか? これは可能ですか?それを行う他の方法はありますか?
助けてください。