不得不承认pretty-midi很好用,以及一些简单的上手

官方文档在此:

http://craffel.github.io/pretty-midi/

首先我们演示如何将midi文件转变为piano-roll格式(matrix)。

现在我们手中有了一个数据集,假设我们就用The Lakh数据集,我使用了里面的Bach BMV 988作为测试midi。现在我们这么写代码:

midi_data = pretty_midi.PrettyMIDI('bmv988.mid')

这样我们就得到了一个pretty.midi对象。接下来我们单刀直入,分离音轨。

midi_data.instruments

这里可以查看所有乐器,我们这个midi文件是单音轨,只有钢琴A。我们可以通过列表操作选定指定的音轨。

接下来使用

get_piano_roll()

 方法进行操作:

好了,现在我们可以为所欲为了!

接下来我们将矩阵转换成piano-roll,使用以下方法:

import scipy.misc
scipy.misc.imsave('outfile.jpg', image_array)

下面是效果图:

原文地址:https://www.cnblogs.com/ldzhangyx/p/7789939.html