2012-03-14 99 views
0

刚开始一个新节目,你们有什么想法如何在歌曲的特定时间得到一首歌曲的确切频率。就像导入歌曲然后每0.01秒一样,它会将歌曲的频率存储在数组中?有任何想法吗?只是不知道如何获得一首歌曲的频率并导入一首歌来测试。java音乐获取歌曲的波长(频率)?

这个项目的重点是如果歌曲的频率很高,屏幕会变成蓝色,如果它的下方红色等等,那就是为什么我想要频率,所以我知道音符。

+0

我会说这取决于歌曲的格式。 – 2012-03-14 02:43:51

+0

我知道很多次它是由歌曲的有多少内存而不是秒,所以我会按字节或秒。打开任何想法。 – 2012-03-14 02:44:07

+0

如果它是一个MP3?或者,我可以将其转换为任何类型的可能,所以w.e是最容易做的 – 2012-03-14 02:44:47

回答

0

是的,得到声音的“原始”形式,然后运行它通过一个快速傅立叶变换。然后你必须设计一个算法来挑选出峰值。

你或许可以使用自相关,但是有开源的FFT算法很容易获得,但我怀疑你很容易找到自相关算法。

+0

thx你知道任何好的 我发现:一对夫妇是::: ::::: http://www.ee.columbia.edu/~ronw/code/MEAPsoft/doc/html/FFT_8java-source.html ::::::或http://introcs.cs.princeton。 EDU/JAVA/97data/FFT.java.html – 2012-03-14 03:58:52