1

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

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

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

所以我的问题...

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

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

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

4

2 回答 2

0

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

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

如果你使用的是 Windows,你可以试试Noteworthy Composer 之类的东西。该链接还包含播放建议。

于 2016-09-13T15:22:05.343 回答
0

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

于 2017-05-27T04:46:08.797 回答