【问题标题】:Chords in MIDI?MIDI中的和弦?
【发布时间】:2016-08-23 23:32:27
【问题描述】:

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

请注意,我并不是要代表和弦发声。这可以通过多个注释消息轻松完成。但是如果我这样做了,那么每次我读回 MIDI 文件时,我都必须对和弦分析进行某种注释,这是一个很大的麻烦,特别是因为我在编写文件时已经知道和弦结构。

相反,我正在寻找更类似于吉他指法谱或假书的东西。也就是说,我想在特定时间点记录“C”或“Cm”或“I”或“I”或“iii7”。

所以我的问题...

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

有没有一种非标准的方式来做到这一点?

我正在考虑使用歌词/显示元事件的“标签”功能。似乎我可以发明 {@chord=Cm} 并且对于任何不理解这种用法​​的过去、现在或未来的读者来说都应该是透明的。我读的标准对吗?这会是一个合理的、本质上是私有的、非标准的扩展吗?

【问题讨论】:

    标签: midi music-notation


    【解决方案1】:

    MIDI 规范提供了诸如“note on”和“pitch value”(as seen here) 之类的值,它们仅表示为整数。

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

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

    【讨论】:

      【解决方案2】:

      您是绝对正确的,您可以实现自定义元事件并将此类事件放在代表和弦的 NoteOn/NoteOff 组之前。我不知道你用的是什么编程语言,但是对于C#你可以看看DryWetMIDI。它允许创建自定义元事件,读取和写入它们。库文档的This article 显示了如何执行此操作。

      【讨论】:

        猜你喜欢
        • 2011-03-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-05-23
        • 2023-03-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多