3

音楽ビジュアライザを作成しようとしています。調べてみたところ、sound.sampled はデータを読み取るための優れたライブラリのようです。ただし、jdk は .wav ファイルしかロードできません。そこで、.mp3 をロードできる柔軟なアドオンを探しています。

使用するクラスは次のとおりです: http://uk.answers.yahoo.com/question/index?qid=20100125081723AAdnYzf

PS Lemme は、以前に音楽ビジュアライザーを試したことがあるかどうかを知っています。

4

2 に答える 2

2

ただし、jdk ..

重要なのはJDKではなく、JREです。

..ロードできるのは.wavファイルのみです。..

によって返される型(のサブセット)をロードできますAudioSystem.getAudioFileTypes()。Java 7でドキュメントをチェックするとAudioFileFormat.Type、5つのタイプのリストが表示されますが、最終的なチェックはJREが返すものです。

..だから私は.mp3をロードできるようにする柔軟なアドオンを探しています。

JMFのmp3plugin.jarをランタイムクラスパスに追加して、JavaSoundへのMP3デコードのサポートを追加できます。

Lemmeは、以前に音楽ビジュアライザーを試したことがあるかどうかを知っています。

音楽ビジュアライザー

うん;)


私はこの素晴らしい星空の背景を作り、音楽に基づいて星がきらめき、輝くべきだと思いました。演奏している奇妙な楽器を検出することは可能だと思いますか?ドラムやストリングスのように?

私は最近、自分のプレーヤーを壊し、他のことに忙しくしています。たとえば、WinAmpを使用してお気に入りのトラックを再生し、WinAmpが提供する(300以上の)視覚化のいくつかを視聴しています。私が言及する理由は、私のトレースには「オシロスコープ」スタイルと「リサージュ」スタイルの2つのタイプがあるためです。それぞれの例については、上記のリンク先のYouYubeサイトを確認してください。

WinAmp OTOHは、一見まったく異なるスタイルを多数提供しており、視覚的に音楽と密接に関連しているものもあれば、まったく関係のないものもあります(それ自体がかなりのアニメーションです)。私は、音楽にリンクしているもの(私のソフトウェアのように、トレース自体を表すだけでなく)が、信号の音量に基づいてグラフィックを作成していると考えています。これにより、ビートを表すことができます。

ボリュームを計算する正しい方法は、デシベル(dB)単位の数値を考え出すことですが、私のソフトウェアでは、各チャネルのRMSを検出するためのより単純なアルゴリズムを実装しました。RasputinaTrackでこれらのボリュームバーを見ることができます。

RMSレベルでの視覚化

それらはその画像(左下/右下)では特に明確ではありませんが、ビデオを見ると、それらが見やすく、あなたが求めている「脈動変光星」タイプの効果の良い基盤を提供していることがわかると思います(基本的な明るさを掛ける数)。周波数に応じて星のきらめきを変えるには(たとえば、低音-低、バイオリン-高)、スペクトル分析のようなものに目を向ける必要があります-高速フーリエ変換はそれを行う1つの方法です。

于 2012-03-18T21:45:18.627 に答える
1

Javazoom には mp3 形式のライブラリがあります。

http://www.javazoom.net/javalayer/javalayer.html

私自身は使っていません。しかし、私は他の人が成功したことを知っています。

ミックスからインストゥルメントを抽出するツールは現実のものになっていますが、Java で実現されているかどうかはわかりません。それは可能だと思いますが、現時点ではかなりの努力と限られた成功しかありません。この種のことを「C」ファミリー言語よりもトリッキーにする Java の側面に対処する必要があります (リアルタイム保証の欠如: ガベージ コレクションのタイミングの変動、スレッドの切り替え)。

于 2012-03-18T23:52:23.977 に答える