問題タブ [javasound]

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 に答える
5490 参照

java - 生のバイトをオーディオ サウンドに変換する

私のアプリケーションでは、freeTTS パッケージから javastreamingaudio クラスを継承し、オーディオ処理のためにバイト配列を SourceDataLine に送信する書き込みメソッドをバイパスします。データ行に書き込む代わりに、このバイト配列と後続のバイト配列をバッファーに書き込み、それをクラスに取り込んでサウンドに処理しようとします。私のアプリケーションはサウンドを float の配列として処理するので、float に変換して処理しようとしますが、常に静的なサウンドが返されます。

これが進むべき道だと確信していますが、途中で何かが欠けています。サウンドはフレームとして処理され、各フレームはバイトのグループであることを知っているので、私のアプリケーションではバイトをフレームに処理する必要があります。私はこれを正しい方法で見ていますか?助けてくれてありがとう。

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

java - getAudioInputStream は [ステレオ、4 バイト/フレーム] ストリームを [モノ、2 バイト/フレーム] に変換できません

私は javasound を使用しており、形式の AudioInputStream を持っています PCM_SIGNED 8000.0 Hz, 16 bit, stereo, 4 bytes/frame, little-endian

target_formatAudioSystem.getAudioInputStream(target_format, original_stream)PCM_SIGNED 8000.0 Hz, 16 bit, mono, 2 bytes/frame, little-endian

read() 呼び出しのたびにこのストリームを手動で変換することは可能ですか? はいの場合、どのように?
一般に、2 つの形式を比較して、変換が可能かどうかを判断するにはどうすればよいでしょうか?

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

java - オーディオクリップが動かなくなる

ClipJavaのインスタンスで奇妙な動作が見られます。

私が取り組んでいるクラスの目的はClip、同じサウンドサンプルを含むインスタンスの数をカウントすることです(によってインデックスが付けられURIます)。アプリケーションがクリップの再生を要求し、同じソースからのクリップがすでに3つ以上再生されている場合、次の手順が実行されます。

  • PAN現在再生中のクリップをとの加重和で並べ替えframePositionます。
  • 停止して再開するクリップとして、値が最も高いクリップを選択します。
  • クリップを再開します(次の方法)。

このメソッドがすばやく連続して何度も呼び出されると(たとえば、1ミリ秒以内に20回)、奇妙な動作が発生します。

  • クリップが再生されます
  • クリップは、START再生が開始されたことを通知するイベントを発生させます
  • クリップがSTOPイベントを発生させることはありません。
  • 以降の呼び出しは効果がstopありstartません(ただし、例外をスローしないでください)。
  • getFramePosition0は、クリップが(最後に)聞こえた場合でも、常にを返します。

これを引き起こしている可能性のあるアイデアはありますか?

私はそれがスレッドの問題ではないと思います(少なくとも私のコードでは)。1つのスレッドだけが私のクラスのパブリックメソッドを呼び出しています(そしてそれらはすべてsynchronizedとにかくです)


このバグに関連している可能性があります。

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

java - SO にインストールされているコーデックを JavaSound で使用する方法はありますか?

次のコードで Java Sound を使用しています。

しかし、mp3 を再生するには、クラスパスに SPI が必要です... OK ですが、SO にインストールされているコーデックを使用する方法を探していました。それを行う方法はありますか?

0 投票する
4 に答える
2521 参照

java - Javaゲームはアプリケーションで鳴ります(アプレットではなく)

2つの質問があります-(1)小さなサウンドクリップを再生する方法。たとえば、受け皿の飛行、弾丸の射撃、弾丸が当たる音など。非常に短いがリアルタイムの音。私は古いアーケードサウンドが好きなので、largess.wavである必要はありません。これらをできるだけ少ないコードで実行したいと思います。これが私の2番目の質問につながります...(2)これらのサウンドクリップがどこにあるか知っている人はいますか。

少し注意してください、私はここでいくつかの答えを見ました、そしてそれらは不完全に見えます。あなたがまっすぐで一般的なコードを持っているなら、それは素晴らしいことです!私は通常、ゲームの執筆ではこれほど遠くまでは得られないので、音についてはほとんど知りません。

ありとあらゆる情報をありがとう-私はそれを感謝します!

0 投票する
4 に答える
10105 参照

java - Java でのアコースティック エコー キャンセレーション

純粋な Java を使用する VOIP アプリケーションを実装しています。ユーザーがヘッドセットを使用していない場合 (ほとんどの場合、マイクが内蔵されているラップトップ) に発生するエコーの問題があります。

現在起きていること

VOIP アプリケーションの基本は、Java のメディア フレームワークの単なるデータラインです。基本的に、出力用にスピーカーに書き込む前に、オーディオ データに対して何らかのデジタル信号処理を実行したいと考えています。

ご覧のとおり、オーディオ データが到着し、バッファにエンキューされます。これは危険な接続に対応し、さまざまなパケット サイズを許可するためです。また、オーディオ データをスピーカー ラインに再生する前に、高度な DSP 操作に必要なだけのオーディオ データにアクセスできることも意味します。

動作するエコー キャンセラを 1 つ管理しましたが、多くのインタラクティブなユーザー入力が必要なため、自動エコー キャンセラが必要です。

手動エコーキャンセラー

適応フィルター

私は、適応フィルターが進むべき道であることを読みました。具体的には、最小平均二乗フィルターです。しかし、私は立ち往生しています。上記のほとんどのサンプル コードは C および C++ で記述されており、Java にうまく変換されません。

それらを Java で実装する方法についてアドバイスがある人はいますか? 他のアイデアも大歓迎です。前もって感謝します。

0 投票する
2 に答える
7130 参照

java - Java Audio - ゲーム中に曲を再生する方法 (アプレットではなくアプリケーション)

最終編集 - 2 つの簡単な回答が必要です。

1) URL で動作するコードを取得できました (以下の応答の 1 つからのコードです)。しかし、私の歌はwavファイルです。File url = new File("---"); を実行しようとすると、機能しません。

代わりに、スタック トレース (そのヒントをありがとう!) で、それは言う

"Failed to allocate clip data: Requested buffer too large"

私が演奏しようとしている曲はテクノで、長さは約 3 分です。

クリップ データ サイズの問題を回避するにはどうすればよいですか?

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

java - JavaでMIDIファイルを読み取る

.MIDファイルをJavaプログラムに読み込もうとしていますが、ある種のUIに表示されるように、各音符/和音を分離したいと思います。JavaでSequencerAPIを使用することはあまりうまくいきませんでしたし、MidiFileReaderを直接使用しようとしてもうまくいきませんでした。誰かが見たい場合は、ここで使用したコードを添付します。

0 投票する
2 に答える
8044 参照

java - Javaで可変トーンを再生しますか?

高校のパスカルのクラスに戻って、整数を取り込んでシステムスピーカーを使ってトーンを再生する楽しい小さなプログラムがありました。トーンのピッチは、intに基づいて異なります。

このような機能はJavaの世界に存在しますか?代わりに、wavまたはulawをプルしてから、周波数を変更することもできますか?

ありがとう、
IVRアベンジャー

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

java - MIDIサウンドバンクとは?

私はMIDI初心者です。MIDI サウンドバンクには、MIDI シンセサイザーが PCM オーディオに変換するための「命令」[原文ママ] が含まれていますか?

サーバーで生成されたタイムラインに基づいて、(必要に応じて) シーケンスし、再生 (およびそれらをミックス) するための指示を提供したい可変デュレーション オーディオ (現在は PCM であり、したがって私の質問) が多数あります。論理的には MIDI が答えのように思えますが、正確にはサウンドバンクとは何か、そしてそれが本当に単なる PCM サウンドのバンクなのかについては少し曖昧です。


更新: 私は最初にこれを Java から見ています。