JFugue解析midi文件并输出.csv?

时间:2016-06-09 09:19:12

标签: java csv midi jfugue

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

Notename,startTick,持续时间,速度

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

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

那么,JFugue中是否有功能可以帮助我实现这一目标?

1 个答案:

答案 0 :(得分:1)

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

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

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

相关问题