今天,花一点时间学习MIDI的相关知识。
MIDI的全程是:Music Instrument Digital Interface,音乐数字接口。“不发送声音,只发送像是音调和音乐强度的数据,音量,颤音和相位等参数的控制信号,还有设置节奏的时钟信号。” (来自WIKI百科)
在MIR中,借助MIDI准确的音高、时间等信息,可以帮助分析歌声检测、音高估计、主旋律提取等任务,MIDI格式的文件可以为其打上准确的标签,方便研究。但不是每首歌都能轻轻松松获取其MIDI,所以使用MIDI研究都是以上MIR任务早期的方式。随着发展,要求算法具有鲁棒性能处理音频文件格式(wav等)的音乐,乃至带着噪声的音乐。
下面介绍一下一些帮助操作MIDI的python库。
Py-MIDI
支持python2,3。
有蛮多的的前置库需要安装。
import midi
pretty-midi
支持python2,3。
谷歌的Magenta项目(使用人工智能进行音乐创作,2017.6)使用了该库。
蛮多的前置库。需要FluidSynth
import pretty_midi
mingus
这是一个跨平台的处理MIDI的python库。需要FluidSynth作为前置库,在win上安装有点点麻烦。
music21
这是一个python的计算机辅助音乐学工具包,里面有些对MIDI的操作。
Mido
专门处理的MIDI的python库,使用起来非常的Pythonic。我蛮推荐这个库的。