今天下载了个midi,用domino打开提示:
上网查询资料得知这是作者为了防止被编辑而设计的
了解了相关的midi知识以后,我便写了以下Python程序:
import mido,sys #此程序需要mido库,安装请输入:pip install mido
print("作者:Minecraftku_hei")
infile=mido.MidiFile(input("输入:"))
outfile=mido.MidiFile()
print("正在检测是否在单个音轨中有多个通道")
i=0
multiChannel=False
for track in infile.tracks:
channel=None
for note in track:
if hasattr(note,"channel"):
if channel==None:
channel=note.channel
elif channel!=note.channel:
print(f"轨道{i}有多个通道!")
multiChannel=True
break
else:
pass
i+=1
print(f"轨道{i}没有多个通道!")
if not multiChannel:
print("该midi文件一切正常!")
sys.exit(0)
tracks=[mido.MidiTrack() for i in range(17)]
for track in infile.tracks:
for note in track:
if hasattr(note,"channel"):
tracks[note.channel+1].append(note)
else:
tracks[0].append(note)
outfile.tracks=tracks
outfile.save(input("输出:"))
成功解决!