微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

抑制midi文件的结尾

如何解决抑制midi文件的结尾

我想删除一个 MIDI 文件的结尾,以便得到一个 30 秒的文件

我尝试在每个轨道上计算总时间值,并在每次超过 30 秒时删除消息。不过我听的时候还是一样的时长,唯一的区别就是文件中间有一个没有声音的间隙。

有人知道我该怎么做吗?

谢谢!

解决方法

很可能,您忘记删除一些元消息。 试试这个:

import mido

midifile = mido.MidiFile('old.mid')
lasttick = # last tick you want to keep

for track in midifile.tracks:
    tick = 0
    keep = []
    for msg in track:
        if tick > lasttick:
            break
        keep.append(msg)
        tick += msg.time
    track.clear()
    track.extend(keep)

midifile.save('new.mid')

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。