gpt4 book ai didi

python - 如何在 python 中合并或连接两个 midi 文件

转载 作者:行者123 更新时间:2023-12-05 07:44:04 26 4
gpt4 key购买 nike

我正在进行一个项目,该项目正在生成 midi 文件作为输出。但是那些 midi 文件非常短,我想合并或连接它们以生成一个长的 midi 文件。我正在使用 python-midi library并且没有太多关于这个库的信息或文档。我试过这个程序,但它给出了错误:

import midi
pattern=midi.read_midifile("kl.mid")
track=midi.Track()
pattern2=midi.read_midifile("oi.mid")
pattern.append(pattern2)
midi.write_midifile("aaka.mid",pattern)

错误:

    Traceback (most recent call last):
File "lp.py", line 6, in <module>
midi.write_midifile("aaka.mid",pattern)
File "/home/userdf/.local/lib/python2.7/site-packages/midi/fileio.py", line 152, in write_midifile
return writer.write(midifile, pattern)
File "/home/userdf/.local/lib/python2.7/site-packages/midi/fileio.py", line 102, in write
self.write_track(midifile, track)
File "/home/userdf/.local/lib/python2.7/site-packages/midi/fileio.py", line 116, in write_track
buf += self.encode_midi_event(event)
File "/home/userdf/.local/lib/python2.7/site-packages/midi/fileio.py", line 125, in encode_midi_event
ret += write_varlen(event.tick)
AttributeError: 'Track' object has no attribute 'tick'

我在谷歌上搜索了很多,但没有找到通过 python 添加两个 midi 文件的方法。让我知道我该怎么做?

提前致谢。

最佳答案

读取midi文件并保存样式

pattern1 = midi.read_midifile(file1)
pattern2 = midi.read_midifile(file2)

然后从每个模式中读取每个轨道

pattern = midi.Pattern()

for track in pattern1:
pattern.append(track)

for track in pattern2:
pattern.append(track)

最后用新的模式保存文件

midi.write_midifile('sound.mid', pattern)

关于python - 如何在 python 中合并或连接两个 midi 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43173023/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com