首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用MIDO将和弦写入文件

使用MIDO将和弦写入文件
EN

Stack Overflow用户
提问于 2020-04-19 13:11:11
回答 1查看 310关注 0票数 0

我很难使用MIDO在MIDI文件中写和弦,MIDO是Python的MIDI库。

我有一个100个和弦的列表,在列表中存储了音符。因此,下面代码中的每个和弦是60,63,67,就像Cmin一样。每一次的计时(以秒为单位)存储在chordTimes列表中。

我在列表中迭代,

代码语言:javascript
复制
for i in range(1, len(chords)): 
    chordNotes = chordMidiNotes(chords[i], extraBass= False)[0]
    chordSymbol = chordMidiNotes(chords[i], extraBass= False)[1]
    for note_value in chordNotes: # result has chord notes
        track.append(Message('note_on', note=note_value, velocity=100, time=0))
    for note_value in chordNotes: # result has chord notes
        track.append(Message('note_off', note=note_value, velocity=127, time=time_in_ticks(chordTimes[i], mo)))
mo.save("songWithChords.mid") 

但是当我打开文件时,和弦同时开始,然而,第一个音符在最后一个和弦之前结束,下面的一个在最后一个和弦之前结束,后一个和弦在它之前几个节拍再次停止,……正如你在图片中看到的。我正在使用类型1的midi文件。

EN

回答 1

Stack Overflow用户

发布于 2020-04-19 18:56:08

MIDO documentation说:

所有消息都必须标记增量时间(以刻度为单位)。(增量时间是指在下一条消息之前等待的时间。)

因此,除第一条消息外,所有笔记消息的增量时间必须为零。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61299852

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档