如何解决MIDI 文件刻度转换为秒不加起来播放时间
from mido import MidiFile as readSong
from mido import second2tick as sec2tick
from mido import tick2second as tick2sec
from tqdm import tqdm
def maxtick(relative_path_to_file):
song=readSong(relative_path_to_file)
tpb=song.ticks_per_beat
maxticktrack=0
for track in song.tracks:
isPiano=re.search(".*Piano|piano.*",track.name)
if (isPiano and len(track)>10):
total_tick=0
for msg in track:
total_tick+=msg.time
if (total_tick>maxticktrack):
maxticktrack=total_tick
print (mido.tick2second(maxticktrack,tpb,500000)
print (song.length)
基本上我将我想要的轨道按摩中的每个刻度加起来,然后将它们转换为第二个。并将它们与实际播放时间进行比较。我检查过节奏没有改变,我不知道发生了什么。
更多细节 tick2second 比实际轨道长度长多少。轨道是类型 1。 我以为我对这些可交换记号有一些错误的理解,但我不知道有什么问题。
(更新) 我尝试使用我自己的公式从刻度到秒进行计算。得到与函数给出的完全相等。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。