3

以下网页http://www-etud.iro.umontreal.ca/~boulanni/icml2012提到可以在 python 中将 MIDI 文件转换为钢琴卷轴:

以下是论文中评估的 4 个数据集的源文件 (MIDI)(分为训练集、验证集和测试集)。您可以根据 MIDI 文件中的节拍信息,通过移调 C 大调或 C 小调中的每个序列以及每八分音符(JSB 合唱的四分音符)采样帧,从源文件生成钢琴卷轴。或者,还提供了用于 Python 语言的腌制钢琴卷。

他们已经做了几个例子。我想知道怎么做,但我在他们的代码库中找不到任何地方。有没有一种简单的方法可以做到这一点?

所以我知道如何将midi文件转换为按键(在Python中)?我能做到的

import midi
midi.read_midifile('example.mid')

这会给我一个类似的模式

midi.Pattern(format=1, resolution=220, tracks=\
[midi.Track(\
  [midi.NoteOnEvent(tick=0, channel=0, data=[43, 20]),
   midi.NoteOffEvent(tick=100, channel=0, data=[43, 0]),
   midi.EndOfTrackEvent(tick=1, data=[])])])

但是,我如何转调 C 大调或小调的序列,以及如何每八分音符采样帧?

所以它接缝在上面引用的代码中,他们这样做:

from midi.utils import midiread, midiwrite
midiread(midi_file, (21, 109), 0.3).piano_roll

那么我的问题就变成了,我在哪里可以找到这些midi.utils,我如何确保序列以正确的键移调并以正确的速率采样?

4

1 回答 1

2

因此,他们似乎拥有原始 midi 库 ( https://github.com/vishnubob/python-midi ) 的修改版本,可创建钢​​琴卷。代码的修改版本可以在这里找到:http ://www.iro.umontreal.ca/~lisa/deep/midi.zip 。

于 2017-04-11T14:56:05.233 回答