python - 四分之一持续时间小于 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 ...
解决方案
MIDI 文件默认被量化。您可以阅读有关量化参数的信息——包括converter.parse
如何配置或关闭量化——在:http://web.mit.edu/music21/doc/moduleReference/moduleConverter.html?highlight=converter%20parse#music21。转换器解析
推荐阅读
- python-3.x - 使用 Pandas 合并执行查找
- python-3.x - 缩进嵌套字典每一层的内容
- android - Retrofit2 在 JSON 响应中跳过内部元素
- android - Flutter image_picker 不适用于 PlatformException
- r - 为什么 dplyr recode 在重新编码为 NA 而不是 NaN 时会产生错误
- node.js - 使用 firebase-admin 的云函数中 @firebase/database 的错误对等依赖项
- pytorch - 如何在 Pytorch 中对批次中的每个矩阵进行转置?
- javascript - IE 开发者控制台中的神秘 SCRIPT18 错误
- mysql - Python Flask 应用程序上传文件并在 MySQL 中保存路径
- python - 如何使用烧瓶为 keras 模型提供推理服务?