如何正确过滤midi钢琴曲?如何过滤控件变化事件 64?
How to properly filter midi piano song? How to filter control change events 64?
我有一个 midi 歌曲数据集,我想在不丢失太多信息的情况下尽可能多地清理它们。
我真的不太了解音乐,我刚开始使用 midifiles,所以我的知识有限。
到目前为止,我所做的是过滤所有似乎与我无关的事件。我保留的事件是:
- 注意事项
- 节奏事件
- 控制变化事件(只有控制64,我认为代表钢琴的踏板)
我做的另一件事是擦除所有速度事件,并通过根据以前的速度事件替换其他事件的节拍,在开始时将一个速度事件设置为 120bpm。
现在我也希望能够清除控件更改事件。
有没有办法修改音符事件(可能是持续时间)以实现与控件更改事件类似的效果,以便我可以删除所有控件更改事件(因为它们的大部分信息将出现在注释)?
我想要实现的是一种仅对音符特征(出现时间、持续时间、音高、速度)进行编码但能够再现几乎相同歌曲的格式。
可以将延音踏板处于活动状态时发生的所有音符关闭事件移动到延音释放事件的时间,然后删除延音事件。但是如果你有一个合成器以不同的方式处理音符和延音(例如,通过模拟共振),那么结果就会不同。
我有一个 midi 歌曲数据集,我想在不丢失太多信息的情况下尽可能多地清理它们。 我真的不太了解音乐,我刚开始使用 midifiles,所以我的知识有限。 到目前为止,我所做的是过滤所有似乎与我无关的事件。我保留的事件是:
- 注意事项
- 节奏事件
- 控制变化事件(只有控制64,我认为代表钢琴的踏板)
我做的另一件事是擦除所有速度事件,并通过根据以前的速度事件替换其他事件的节拍,在开始时将一个速度事件设置为 120bpm。 现在我也希望能够清除控件更改事件。
有没有办法修改音符事件(可能是持续时间)以实现与控件更改事件类似的效果,以便我可以删除所有控件更改事件(因为它们的大部分信息将出现在注释)?
我想要实现的是一种仅对音符特征(出现时间、持续时间、音高、速度)进行编码但能够再现几乎相同歌曲的格式。
可以将延音踏板处于活动状态时发生的所有音符关闭事件移动到延音释放事件的时间,然后删除延音事件。但是如果你有一个合成器以不同的方式处理音符和延音(例如,通过模拟共振),那么结果就会不同。