問題タブ [javax.sound.sampled]

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 投票する
1 に答える
119 参照

java - Java でエキゾチックな WAV ファイルを再生する

ADPCM (id=2)、モノラル、サンプルあたり 4 ビット、および「ファクト」チャンクでエンコードされた WAV ファイルがあります。「通常の」wav には表示されない多くのもの。

AudioInputStream の AudioFileReader クラスは、フォーマット コード (ここでは 2 == ADPCM) の解析時に既に失敗しており、1、3、6、および 7 のみを受け入れます。

そのようなファイルを再生する別の方法はありますか? 標準のJavaでは明らかにそれができないためです。

これはファイルです: https://anonfile.com/c1ianfj5b5/music_wav

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

java - .wav ファイルの生データは何を意味しますか?

そのため、時間に関して波形を再構築できるように、.wav ファイルからさまざまなサンプルの振幅を抽出しようとしています。.wav ファイルの形式を調べているときに、非常に役立つ情報を見つけました。ただし、生データ部分に関しては混乱しました。私が見つけた記事には、「16 ビット PCM の場合、16 ビット サンプルは 0 から 65535 の範囲の 2 の補数の符号なし整数として格納される」と記載されていました。ファイルが署名されていない場合、ファイルが正と負の振幅をどのように区別するのかがわからないため、混乱しています。たとえば、2 進数で 00000000 00000101 として表される 1 つの振幅が 5 である場合、2 の補数 -5 を使用すると、11111111 11111011 として表されます。これは 10 進数で整数として 65531 です。これにより、-5 の振幅は +5 の振幅よりもはるかに大きく認識されると思います。明らかにこれは機能する方法ではないので、何が間違っているのでしょうか? また、.wav ファイルをバイナリ配列に保存して値を出力すると、負の数値が得られます。0 から 65535 までの値のみを格納する必要があると記事に記載されている場合、これらの負の数はどこから来るのでしょうか。非常に混乱しているだけで、本当に物事を片付ける必要があります。私が参照していた記事のリンクは下に添付されています。著者が言ったことの引用は、ページの一番下にあります。ありがとう。

http://www.ievs.ch/projects/var/upload/Documentation%20Microsoft%20Wave%20File%20Format.pdf

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

animation - ノードを描画するための JavaFx のアプリケーション スレッドの更新

マイクまたはライン入力からストリーミングされた振幅データを使用してオーディオ波形を描画できるプログラムを開発しています。私がこれを行うと思った方法は、サンプルデータから各ポイントをサンプルレートに等しいレートで描画し、各ポイントを描画して x 方向に 1 ステップ移動することです。したがって、各ポイントを描画するには、JavaFx アプリケーション スレッドを 1 秒間に約 44100 回更新する必要があります。これを始める前に、直線を描き、各ポイントを 0.5 秒ごとに更新するだけで、アイデアをテストしたかったのです。これを行うには Timeline クラスを使用します。私のコードは次のようになります。

ただし、これを行うたびに、プログラムが応答しなくなり、強制的に閉じる必要があります。同じことをして、代わりに Text を点滅させると、まったく問題なく動作することに気付きました。Timeline クラスを使用して線を描画できない理由はありますか? スレッドに負荷がかかりすぎていませんか? もしそうなら、どのような方法で自分のアイデアを解決することができますか. 1 秒間に約 44,100 回更新して、リアルタイムで波形を描画できるようにしたいだけです。