希望读取大量 MIDI 文件并将其数据提取到组中 - 滴答声(时间)、音高(音符)和速度(音量)。提取的数据将应用于循环神经网络以进一步生成音乐。
我一直在搜索库并找到python-midi。这是我的代码:
import midi
pattern = midi.read_midifile("pachelbel_canon.mid")
#print out all events
print pattern
#print out all events at tick = 0
print pattern[0]
可以在此处或Granroth-Wilding 的网站上找到对不同事件类型的解释。我的目标值(滴答声、音高和速度)显示为 midi.NOteOn/OffEvent(tick=0, channel=0, data=[pitch, velocity])。
问题 1:
由于没有可用的教程或文档,经过一些测试后,我print pattern[0]
发现所有事件都发生在 tick == 0。当然,所有数据都可以通过对所有事件运行 for 循环来检索,我只是想知道是否存在通过提供其他参数(例如通道、音高等)来检索数据的任何功能。
问题 2: 显然那里有很多可用的 MIDI/音乐库。不是说 python-midi 不好,但如果你有更好的想法,请分享!最好附带一些适当的文档或支持,这对于 python-midi 是不存在的。我是这个领域的新手,希望得到一些建议。