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

标签 java csv midi jfugue

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

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

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

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

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

最佳答案

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

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

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

关于java - JFugue 解析 midi 文件并输出 .csv?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37721745/

相关文章:

python - MIDI 刻度是固定值还是取决于文件的 BPM?

java - 如何在核心 java 1.4 中存储非唯一键值对

java - 如何在 Windows 10 启动时启动 Eclipse

java - 如何在url中定义soap webservice名称?

java - 拦截对 MongoDB Spring Boot 的所有写入调用

java - 将多个 .doc 合并到一个 .csv 中

excel - 如何使用 VBA 复制 Excel 工作表中的行并将其发送到 CSV?

python - 如何将包含键的字典和包含各个键的数据的列表中的数据保存为 csv 文件

swift - 如何保持 AVMIDIPlayer 播放?

python - 你如何使用 python-rtmidi 获取 midi 事件