我正在做一个程序音乐生成项目,它读取一个 MIDI 文件并使用一些概率模型来生成一段新的音乐。
在 jMusic 中阅读笔记很容易。首先从 MIDI 文件中获取 Score 对象,然后从 Score 中获取 Part(s) 对象,然后从 Part(s) 中获取 Phrase(s) 对象,然后从 Phrase(s) 中获取 Note 对象数组。
我正在尝试整合阅读和弦的能力,并将和弦包含在生成的音乐中。jMusic 使用 CPhrase 对象表示和弦,该对象基本上是一个音高值数组。我的问题是你不能直接从 MIDI 文件中读取 CPhrase 对象。您也无法从 Note 对象中获取注释的实际开始/结束时间。
我想知道除了将分数转换为 SMF 对象、从中读取 Track 对象、从 Track 中读取 Event 对象然后从 Event 对象中获取 NoteOn/NoteOff 事件的时间之外,是否有更简单的方法来执行此操作.
如果您有使用 jMusic 的经验并且可以帮助我,我将不胜感激。谢谢!