MIDI: несколько событий изменения программы с одинаковыми данными - PullRequest
0 голосов
/ 21 февраля 2020

Я пытаюсь понять структуру файлов MIDI. Читая некоторые файлы с библиотекой Python python-midi, я обнаружил, что два события Program Change с одинаковыми данными и разницей в 190 тиков. Я понимаю, что событие Program Change предназначено для выбора инструмента GM. Зачем отправлять два события Program Change с одинаковыми данными?

Вот структура, представленная python-midi:

midi.TrackNameEvent(tick=0, text='Pad1', data=[80, 97, 100, 49]),
midi.ProgramChangeEvent(tick=0, channel=0, data=[17]),
midi.ControlChangeEvent(tick=1, channel=0, data=[7, 127]),
midi.ControlChangeEvent(tick=1, channel=0, data=[10, 64]),
midi.ProgramChangeEvent(tick=190, channel=0, data=[17]),
midi.ControlChangeEvent(tick=0, channel=0, data=[7, 65]),

Дайте мне знать, если вам нужна дополнительная информация.

1 Ответ

1 голос
/ 09 апреля 2020

Зачем вам отправлять два события Program Change с одинаковыми данными?

Это , вероятно, бесполезно, хотя это совершенно верно в соответствии со стандартом Midi. Midi похож на язык программирования, но не потому, что программа компилируется нормально, что он не тупой. Или, может быть, у него есть определенная c цель для данного контекста, для конкретного c устройства Midi, но это знает только создатель файла.

В Интернете вы найдете много файлов Midi. , Они могут быть созданы с помощью различных инструментов и, возможно, отредактированы позже с помощью других инструментов, иногда не одним и тем же человеком. Поэтому очень часто можно найти странные вещи в файлах Midi, например, событие Note ON без соответствующего Note Off и т. Д. c.

...