2

我想将 midi 文件转换为 .csv 表示形式,如下所示:

音符名称、startTick、持续时间、速度

还包括整个和弦(从同一个刻度开始的一组音符)。

现在,JFugue 有一个 MidiParser 类,看起来它可以做到这一点。我自己的实现有点粗糙,没有检测到音符事件或中断或和弦。

那么,JFugue 中是否有可以帮助我完成此任务的功能?

4

1 回答 1

1

创建您自己的 ParserListener(可能是“CsvParserListener”),将其作为侦听器添加到 MidiParser,并让您的 CsvParserListener 知道如何创建 CSV 文件。

ParserListener 是 JFugue 中的一个接口。您还可以扩展 ParserListenerAdapter 而不是实现 ParserListener。

还有第二种方法。您还可以创建一个实现 AuxilliaryMidiParser 并覆盖 parseHandledEvent(MidiEvent e) 的类。您将可以直接访问 MIDI 事件,这可能更适合您,因为您可以在播放音符时轻松访问节拍。将您的 AuxilliaryMidiParser 添加到常规 MidiParser,然后调用 midiParser.parse(File),最后调用辅助解析器上的一个方法,用于保存 CSV 文件。

于 2016-06-09T19:29:26.657 回答