Как получить атрибут заметки из сообщения в mido?

Я пытаюсь распечатать атрибут примечания в каждом сообщении, выводимом mido в файле.mid. Прямо сейчас мой код выглядит так:

for msg in mid.tracks[1]:
    if not msg.is_meta:
        print(msg.note)

Но при запуске кода я получаю ошибку:

AttributeError: 'Message' object has no attribute 'note'

Я сбит с толку, поскольку документация показывает, что тот же синтаксис "msg.note" работает нормально. Любая помощь приветствуется.

2 ответа

Существует много различных типов MIDI-сообщений, и не все из них имеют номер ноты.

Если вы хотите распечатать все заметки, вам нужно сначала проверить тип сообщения. Если вы хотите распечатать все сообщения, вы не можете полагаться наnote поле находится там.

Пытаться

if not msg.is_meta:
   if msg.type == 'note_on':
      print(msg.note)

На выходе должны появиться только числовые примечания.

Другие вопросы по тегам