【问题标题】:MIDI NOTE_ON NOTE_OFF message correspondenceMIDI NOTE_ON NOTE_OFF 消息对应
【发布时间】:2014-06-11 18:55:25
【问题描述】:

我正在关注另一个关于堆栈溢出的教程,关于从 midi 文件中打印出所有音符开/关消息。

现在的问题是,当我有一个 Note_ON 事件时,我如何知道以下哪个 Note_OFF 消息是对应的?因为笔记可以重叠并且在彼此之内。我查看了 MIDI 规范,但不幸的是没有发现任何与此相关的信息,而且其他来源也没有提供任何细节。

但这一定是可能的,因为 Mathematica 会打印出 (Note-Pitch,Start-time,Stop-time) 的元组。

【问题讨论】:

    标签: java message midi overlap


    【解决方案1】:

    理论上,每个note-on事件都必须有一个对应的note-off事件,并且值相同的音符不能重叠。

    没有具体说明在这些情况下实际发生的情况。 因此,任何可能的解释都可以被认为是正确的。

    (大多数合成器(使用它们的默认设置)实际上不允许重叠音符,即,音符打开消息将取消任何先前具有相同通道和值的音符。)

    【讨论】:

    • 在对此进行了更多研究之后,我发现 Cubase 有一种奇怪的方式来解释注释(在 Cubase 中创建并在 Mathematica 中打开): Cubase: Note1(0s -> 1.5s) Note2(0.5s -> 1.5s) Note3(2s -> 3.5s) Note4(2.5s -> 4s) Mathematica: Note1(0s -> 1s) Note2(0.5s -> 1s) Note3(2s -> 3.5s) Note4(2.5s -> 4s) Java: (0.0s, on, C2) (0.5s, on, C2) (1.0s, off, C2) (1.5s, off, C2) (2.0s, on, C2) (2.5s, on, C2) (3.5s, off, C2) (4.0s, off, C2) 当我在导出后重新导入 Cubase 时,它​​看起来与 Mathematica 表示完全一样。所以感谢您清理一切!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多