我正在寻找识别乐谱的方法,例如当有人在演奏吉他时。 我该如何做到这一点?我听说 midi 将音乐数据存储为乐谱。 我想知道这是否是一个好的解决方案。
回答:
MIDI确实存储乐谱,但它(通常)不会从录制的声音中提取乐谱。 你不能采用 mp3 文件并以标准或完全可靠的方式“将其转换为 MIDI”。
您可以使用录音机(或“音序器”)创建 MIDI 文件,这可能是桌面应用程序,您可以在其中像作曲家一样“编写乐谱”,或者可能是像键盘一样的乐器设备,它可以记录您按下的琴键,按下的力度和持续时间,并将其解释为乐谱。
MIDI 播放器获取数据/乐谱,并使用自己的声音(或者如果您喜欢,可以使用“音色库”)进行重现。因此,MIDI 数据的优势首先在于声音已经可以在播放设备上使用(因此数据非常紧凑),其次是相同的数据(“曲调”)可以使用不同的声音(“乐器”)[*]播放。
我相信有 MIDI 吉他,但我不知道它们有多“好”。 电吉他的音调部分来自固体的共鸣。 这当然可以在播放时通过声音来模仿,但是肯定有一些你可以在电吉他上做的事情,而 MIDI 格式无法捕获或表示(例如,我猜反馈是不可能的)。
存在从录制的声音中提取 MIDI 数据的软件 – 这有点像 OCR 从文本图像中提取 ASCII 字符数据的方式。 这并不是记录某人吉他演奏的主要手段,但如果您想要的是获得乐谱/谱表的初步近似值,则可以尝试一下。
这是一个随机选择的示例,通过 Google 搜索“convert from wav to MIDI”找到:
http://www.pluto.dti.ne.jp/~araki/amazingmidi/
[*] 但是观众们,你会发现自己想知道,“这个盲目的机器人是什么?它按照指示敲击曲调,没有任何理解或任何审美意识”。 女士们,先生们,请欣赏科林·塞尔在钢琴上演奏。