Как добавить временную подпись в MIDI-файл? - PullRequest
1 голос
/ 25 марта 2019

Я пытаюсь добавить временную подпись в MIDI-файл в Python.

Я пытался сделать это с помощью библиотеки MIDO и MIDI, но не знаю, возможно ли это или какой точный код должен быть.

Как должен выглядеть код Pythonдобавить временную подпись?

В настоящее время миди-файл выглядит так:

...
midi.Pattern(format=0, resolution=96, tracks=\
[midi.Track(\
  [midi.ProgramChangeEvent(tick=0, channel=0, data=[0]),
   midi.NoteOnEvent(tick=0, channel=0, data=[41, 90]),
   midi.NoteOnEvent(tick=440, channel=0, data=[41, 0]),
   midi.NoteOffEvent(tick=0, channel=0, data=[41, 90]),
....

И мне нужно изменить его на:

....
midi.Pattern(format=0, resolution=96, tracks=\
[midi.Track(\
  [midi.TimeSignatureEvent(tick=0, data=[4, 2, 36, 8]),
   midi.TimeSignatureEvent(tick=0, data=[4, 2, 36, 8]),
   midi.ProgramChangeEvent(tick=0, channel=0, data=[0]),
   midi.NoteOnEvent(tick=0, channel=0, data=[41, 90]),
   midi.NoteOnEvent(tick=440, channel=0, data=[41, 0]),
   midi.NoteOffEvent(tick=0, channel=0, data=[41, 90]),

...

Ответы [ 2 ]

0 голосов
/ 26 марта 2019

Документация MIDO показывает, как создавать мета-сообщения:

MetaMessage('time_signature', numerator=4, denominator=4)
0 голосов
/ 25 марта 2019

Проверьте эту библиотеку под названием метроном , которая может вам помочь.

Документация на этой странице включает функцию под названием setTimeSignature(timeSignature).Его описание:

Установить метрику времени метронома (список, например, [4, 4] означает 4/4).

Вы можете использовать pass в желаемомвремя подписи в виде списка.

...