MIDI中的和弦?

时间:2016-08-23 23:32:28

标签: midi music-notation

我正在寻找一种在MIDI文件中表示和弦的方法。

请注意,我不打算代表和弦声音。这可以通过多个音符开消息来完成。但是,如果我这样做,那么每次我读回MIDI文件时,我都必须对和弦分析做一些注意事项,这是一个主要的麻烦,特别是因为我在编写文件时已经知道了和弦结构。 / p> 相反,我正在寻找更类似于吉他指法或假书的东西。也就是说,我想在特定时间记录“C”或“Cm”或“I”或“I”或“iii7”。

所以我的问题......

有没有标准的方法来做到这一点? (我找不到一个,但我不完全了解当前的规格。)

有没有非标准的方法吗?

我正在考虑使用lyric / display meta事件的“tag”工具。似乎我可以发明{@ chord = Cm},这应该对过去,现在或未来的任何读者都是透明的,他们不理解这种用法​​。我正在阅读标准吗?这是一个合理的,基本上是私人的,非标准的扩展吗?

2 个答案:

答案 0 :(得分:0)

MIDI规范提供的值如"注意"和"音高值" (as seen here),仅表示为整数。

根据MIDI类型(有3种),您应该能够以与建议的方式类似的方式保存和弦值。卡拉OK文件是以这种方式创建的。

如果您使用的是Windows,则可以尝试使用Noteworthy Composer之类的内容。该链接还包含播放建议。

答案 1 :(得分:0)

您是绝对正确的,您可以实现自定义元事件,并将此类事件放在代表和弦的NoteOn / NoteOff组之前。我不知道您使用的是哪种编程语言,但对于C#,您可以查看DryWetMIDI。它允许创建自定义元事件,读取和写入它们。图书馆的维基页面describes如何做到这一点。