用于MIDI分数(音符)和/或音频翻译的纯python库

时间:2013-01-26 16:43:38

标签: python pygame midi

我想要一些东西抽取midi事件,提取/合成音符的音高/持续时间/动态/开始(例如第四拍的大声D#四分音符)。

fluidynth和timidity工作,但我更喜欢纯粹的python库。除了绑定here之外,我找不到任何东西。

midiutil让midis和pygame播放它们,但是我想要能够合成原始音频数据并量化音符的东西(即它们将在乐谱中表示,而不是作为midi事件/脉冲/“音调”/等)

编辑这些并不是很好(不是在python中,或者是在低级别,或者“自己动手”):
 Get note data from MIDI file
Python: midi to audio stream

2 个答案:

答案 0 :(得分:2)

你可能想要的是一个称为“量化”的过程,它将midi事件与最接近的音符长度相匹配。

我在C 1999中写了这样一个应用程序:

http://www.findthatzipfile.com/search-3558240-hZIP/winrar-winzip-download-midi2tone.zip.htm

(我没有任何来源,抱歉)

这个过程本身并不复杂。我只是粗暴地强迫不同的音符长度找到最接近的匹配。 MIDI事件投注本身直接映射到音符,所以对话不是neede.d

MIDI格式本身并不是很复杂,所以我建议你找一个纯Python的MIDI读取库,然后将算法应用到最上面。

https://github.com/vishnubob/python-midi

答案 1 :(得分:1)

你试过Mingus吗?它与py FluidSynth http://code.google.com/p/mingus/wiki/tutorialFluidsynth