繁体   English   中英

抑制 MIDI 文件的结尾

[英]suppress the end of a midi file

例如,我想删除一个 midi 文件的结尾,以便拥有一个 30 秒的文件。

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

有人知道我该怎么做吗?

谢谢!

很可能,您忘记删除一些 MetaMessage。 尝试这个:

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')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM