注意合成、泛音(小提琴、钢琴、吉他、低音吉他)、频率、MIDI

7
我想了解音符是如何建立的,例如乐器(小提琴或钢琴)中的A4音符具有主(或中心)频率FC为440Hz,并具有特定振幅AC,但它还必须具有其他频率(谐波?)FH和其他幅度AH。
谐波具有其他频率,这些频率取决于主频率与(几乎)小于主频率的幅度。
音符的形成(建立)
我想知道音符是如何形成(建立)的(不考虑时间)。
例如: A4 = AC(FC)+ AH1(FH1)+ AH2(FH2)+ AH3(FH3)+ AH4(FH4)....AHn(FHn) 可能,FH1 = 2 * FC,FH2 = 3 * FC,FH3 = 4 * FC,依此类推....
乐器之间的比较(小提琴和钢琴)
对于钢琴而言,A4音符的主频率FC为440Hz, 可能,FC(钢琴)= FC(小提琴),FH1(钢琴)= FH1(小提琴),FH2(钢琴)= FH2(小提琴),依此类推....
但是,AC(钢琴)!= AC(小提琴),AH1(钢琴)!= AH1(小提琴),AH2(钢琴)!= AH2(小提琴),依此类推....
我的问题的示例是: http://www.phys.unsw.edu.au/jw/sound.spectrum.html 我想播放这些音符而避免使用MIDI格式,可以在Java / C#(或其他编程语言)中实现,以及更多对声音的控制。
谢谢。
安娜
2个回答

2
请注意,你正在进行的是一项巨大的任务。如果你的目标是创建自己的合成器,通过添加特定幅度的谐波来模拟钢琴、小提琴等声音,那么要创建出任何逼真的声音是极其困难的。声学乐器的谐波以复杂的方式随时间变化。正如guidot所指出的,声音的攻击和延迟部分会非常不同。如果你尝试在时间上测量实际乐器的相对振幅,然后合成正弦波,最好的结果也只能听起来像孩子的玩具。
如果这就是你想做的事情,那么你需要分析想要模拟的声音的频谱随时间的变化。我建议使用类似Matlab、Octave或Scipy这样的工具。如果你想要可视化效果,可以尝试使用Sonic Visualiser或Marsyas。
如果你想创建逼真的播放效果,那么有两种选择。一种是使用波表合成,这是许多廉价合成器(特别是PC声卡上的合成器)的工作方式。另一种选择是研究物理建模合成,它模拟乐器的物理特性以创建逼真的声音。

0

如果我理解正确,您正在尝试进行傅里叶合成,希望得到类似于原始乐器的东西。我认为成功的机会相当渺茫:

  • 使用MIDI不起作用,因为这需要纯正弦波组合(标准MIDI GS乐器不提供)
  • 需要大量难以获得的数据;请注意,您的系数不仅特定于“钢琴”,而且还随音高变化,因此“钢琴a5”与“钢琴a6”的值不同
    • 该模型假设音调处于稳定状态(通过添加正弦波无法实现不同的目标);然而,乐器的特性更多地取决于其攻击阶段

我建议您阅读约翰·皮尔斯(John Pierce)的《音乐声音科学》作为介绍。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接