我正在设计一个简单的调谐器,所以我的目标是显示一个音符名称(A,B,F#)和理论声音与实际输入之间的距离.
我对音频和信号处理完全陌生,所以我做了一些研究,我找到了一个名为快速傅立叶变换的东西,它将分析字节并给出频率.另外,我发现了一些Java库,如common math和JTransforms,所以我不会自己编写硬代码.
我相信这一切,因为每个范围频率可以直接映射到平等气质的音符,但后来我发现这个新的(对我来说)单词称为音高:它被认为与频率紧密相关,但并不完全相同事情并且要难得多,属于那个心理声学领域.
所以我的问题是,有人可以清楚地概述音高和频率之间的差异,也许可以告诉我哪个调谐器处理?
解决方法:
Frequency只是波每秒经过的振荡次数.任何周期性的波都有一个频率.但通常在音乐中,使用该术语仅限于谈论正弦波,所以如果你听到有关频率x的波动,它通常意味着每秒钟有很多振荡的正弦波.
任何波,无论是周期性的还是非周期性的,都可以通过将不同频率的不同频率的正弦波(即具有不同幅度)相加来构建.傅立叶变换的作用是告诉您使用哪些频率以及使用哪些幅度来创建任何给定的波.快速傅立叶变换(FFT)是计算波的傅里叶变换的特定算法,给定表示作为时间的函数的波的幅度的数据.
当您听到乐器演奏的音符时,它不仅包含一个频率.相反,你得到的是不同数量的基频不同倍数的组合.例如,演奏特定音符的长笛可能会产生组合
> 440 Hz,幅度为1
> 1320 Hz,幅度1/2
> 2200 Hz,幅度为1/3
等等.另一方面,演奏相同音符的小号可能会产生组合
> 440 Hz,幅度为1
> 880 Hz,幅度1/2
> 1320 Hz,幅度为1/4
> 1760 Hz,幅度为1/8
等等. (那些不是这些乐器的实际相对振幅;我只是编写了一些示例数字)所以在您的调谐器应用中,当