MIDO:ValueError:变量int必须是正整数

MIDO:ValueError:变量int必须是正整数,mido,Mido,在我的代码中,我得到 Traceback (most recent call last): File "Midi Projects/symbolToChord_v1.py", line 160, in <module> mo.save("songWithChords.mid") File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/

在我的代码中,我得到

Traceback (most recent call last):
  File "Midi Projects/symbolToChord_v1.py", line 160, in <module>
    mo.save("songWithChords.mid") 
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/mido/midifiles/midifiles.py", line 432, in save
    self._save(file)
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/mido/midifiles/midifiles.py", line 445, in _save
    write_track(outfile, track)
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/mido/midifiles/midifiles.py", line 251, in write_track
    data.extend(encode_variable_int(msg.time))
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/mido/midifiles/meta.py", line 112, in encode_variable_int
    raise ValueError('variable int must be a positive integer')
ValueError: variable int must be a positive intege
我做错了什么


任何帮助都将不胜感激。

我不是专家,但我也遇到了类似的问题

mido中的时间属性有点混乱,因为它可以表示滴答声或时间增量。从文件中( ):

时间属性有几种不同的使用方式:

在轨迹内部,它是以滴答为单位的增量时间。这必须是一个整数。 在play()生成的消息中,它是增量时间(秒)(自上次生成消息以来经过的时间) (仅对实现者重要)在某些方法中,它用于以滴答或秒为单位的绝对时间

您还可以查看此github问题以供参考

pip freeze | grep mido
mido==1.2.9