4

一个人会唱出一种音调,并希望将其转换为演奏相同音调的乐器。在使用aubio.org处理录制的人声的 .wav 文件时,我能够获得不同时间间隔的音高/频率。但是如何从这些数据中获取要演奏的乐器的音符,或者是否有一些调音器可以帮助我做到这一点?

4

1 回答 1

2

对于音高,使用 MIDI 69 = 440hz 的公式,所以(python/伪代码)

midiNote = round(12 * (log(freq/440.0), 2))) + 69

但是你会发现对于节奏来说,事情实际上可能比这更复杂,因为。我会使用一个已经制作的有节奏的“量化”包(这是你想要的谷歌搜索词),因为确定速度以及是否应该将 1.125 拍长的东西转录为四分音符或四分音符绑定到32nd note 很大程度上取决于上下文,这是一项很大的编程工作。有几个预先存在的工具包可以为您完成。我自己的python 框架music21 有一个audioSearch 模块,它应该可以处理简单的片段——至少你可以把代码放到你自己的包中,因为它是非常标准的FFT 样本转换技术。

于 2013-03-15T22:17:53.040 回答