如何在 mido 中从 Message 中获取 note 属性?
Posted
技术标签:
【中文标题】如何在 mido 中从 Message 中获取 note 属性?【英文标题】:How to grab the note attribute from Message in mido? 【发布时间】:2019-12-23 20:26:27 【问题描述】:我正在尝试在 .mid 文件中打印出 mido 输出的每条消息中的 note 属性。现在,我的代码如下所示:
for msg in mid.tracks[1]:
if not msg.is_meta:
print(msg.note)
但是,在运行代码时,我得到了错误:
AttributeError: 'Message' object has no attribute 'note'
我很困惑,因为the documentation 显示相同的“msg.note”语法工作得很好。任何帮助将非常感激。
【问题讨论】:
print(mid.tracks[1])
看看它是什么对象,因为它看起来不像是一个 msg 对象。
它只打印了 '有许多不同类型的 MIDI 信息,但并非所有信息都有音符编号。
如果你想打印出所有的笔记,你必须先检查消息类型。
如果您想打印所有消息,则不能依赖 note
字段。
【讨论】:
【参考方案2】:试试
if not msg.is_meta:
if msg.type == 'note_on':
print(msg.note)
这应该只产生数字注释作为输出。
【讨论】:
以上是关于如何在 mido 中从 Message 中获取 note 属性?的主要内容,如果未能解决你的问题,请参考以下文章
如何将MIDO下的ticks_per_beat设置为一个新的MIDI文件?