首页 > 解决方案 > 四分之一持续时间小于 0.25 的 Music21 音符?

问题描述

我想使用 Music21 读取一个 midi 文件(肖邦练习曲 Opus 25 No. 2 from here),然后重新创建它。当我从文件中读取音符时,所有小于 16 分音符的音符都被“向上取整”,当我使用note.quarterLength它时返回 0.25。我做错了什么还是 Music21 的限制?

这是我读取文件的方式:

for file in glob.glob(midi_folder + '/*.mid'):
    midi = converter.parse(file)

    midi_notes = None

    try:
        instruments = instrument.partitionByInstrument(midi)
        for inst in instruments:
            if inst.partName == 'Piano':
                midi_notes = inst.recurse()
                break          
    except:
        midi_notes = midi.flat.notes
        
    for element in midi_notes:
        # do stuff with the note ...

标签: pythonpython-3.xmidimusic21

解决方案


MIDI 文件默认被量化。您可以阅读有关量化参数的信息——包括converter.parse如何配置或关闭量化——在:http://web.mit.edu/music21/doc/moduleReference/moduleConverter.html?highlight=converter%20parse#music21。转换器解析


推荐阅读