我正在研究程序音乐生成项目,该项目读取MIDI文件并使用一些概率模型来生成新音乐。
用jMusic阅读笔记很容易。首先从MIDI文件中获取Score对象,然后从Score中获取Part对象,然后从Part中获取Phrase对象,然后从Phrase获取Note对象数组。
我正在尝试整合和弦功能,并将和弦包含在生成的音乐中。 jMusic使用CPhrase对象表示和弦,该对象基本上是音高值的数组。 我的问题是您不能直接从MIDI文件读取CPhrase对象。您也无法从“注释”对象中获取注释的实际开始/结束时间。
我想知道是否有比将Score转换为SMF对象,从中读取Track对象,从Track中读取Event对象,然后从中获取NoteOn / NoteOff事件的时间更简单的方法事件对象。
如果您有jMusic的经验并且可以帮助我,我将非常感谢您。谢谢!