没有关闭事件的 MIDI 音符开启事件
MIDI Note On Event Without Off Event
我制作了一个系统,可以获取 MIDI 文件并创建音乐的图形表示。
每个 NoteOnEvent
是单个音符开始的时间,每个 NoteOffEvent
具有相同音符代码的时间是它结束的时间。
这适用于大多数 MIDI 文件。
但是,我现在遇到根本没有 NoteOffEvent
事件的文件,所以我继续播放它们。
例如,看到时的正确行为是什么:
midi.NoteOnEvent(tick=0, channel=0, data=[65, 127])
midi.NoteOnEvent(tick=240, channel=0, data=[65, 0])
我认为如果一个音符 "on" 事件发生在同一个音符上,它应该就像一个切换事件,但我不确定它是否合理,或者是否每个 midi 文件都会发生这种情况或只是一个这样的子集?
编辑:
我认为这无关紧要,但我正在使用 python-midi
从 midi 文件中提取音轨
通常将 0 力度的音符解释为音符关闭。我不确定它是否属于标准。
我制作了一个系统,可以获取 MIDI 文件并创建音乐的图形表示。
每个 NoteOnEvent
是单个音符开始的时间,每个 NoteOffEvent
具有相同音符代码的时间是它结束的时间。
这适用于大多数 MIDI 文件。
但是,我现在遇到根本没有 NoteOffEvent
事件的文件,所以我继续播放它们。
例如,看到时的正确行为是什么:
midi.NoteOnEvent(tick=0, channel=0, data=[65, 127])
midi.NoteOnEvent(tick=240, channel=0, data=[65, 0])
我认为如果一个音符 "on" 事件发生在同一个音符上,它应该就像一个切换事件,但我不确定它是否合理,或者是否每个 midi 文件都会发生这种情况或只是一个这样的子集?
编辑:
我认为这无关紧要,但我正在使用 python-midi
从 midi 文件中提取音轨
通常将 0 力度的音符解释为音符关闭。我不确定它是否属于标准。