如何从 MIDI 文件中获取时序数据?
Posted
技术标签:
【中文标题】如何从 MIDI 文件中获取时序数据?【英文标题】:How can I obtain timing data from a MIDI file? 【发布时间】:2014-05-02 06:05:03 【问题描述】:我有一堆 MIDI 文件需要处理。对于其中的每一个,我都必须找到某些和弦开始的确切毫秒数。我该怎么做呢?到目前为止,我发现的库并没有那么有用。
有没有办法只打印 MIDI 文件的音符和时间戳列表?
【问题讨论】:
我希望有一个通用的工具或程序。编程方面,Python、Java 或 C。 那么你是想用 [lang] 来做,还是想找软件为你做呢? 要么,但首选后者。 【参考方案1】:打印音符和时间戳列表的最简单方法是使用 MIDI 到文本的转换程序。谷歌搜索“midi to text”会产生一些——例如,mf2t。但是,MIDI 文件不会以秒或毫秒为单位存储事件的时间戳,而是以滴答声为单位存储增量时间 - 尝试使用谷歌搜索“midi 文件增量时间”。
您的选择可能是:
使用 MIDI 到文本程序,解析文本输出并自己进行毫秒转换 - 可能使用例如Excel
使用 MIDI 库(如需建议,请告诉我们您使用哪种语言编写代码)读取音符事件并将其直接转换为毫秒,避免文本解析步骤
【讨论】:
以上是关于如何从 MIDI 文件中获取时序数据?的主要内容,如果未能解决你的问题,请参考以下文章
如何从 MIDI 序列中获取 Note On/Off 消息?