Как установить ticks_per_beat под MIDO для нового файла MIDI?

Чтение ticks_per_beat под MIDO можно сделать через mid.ticks_per_beat, Однако, если я хочу сохранить значение ticks_per_beat (например, 120 или 480) в новый файл MIDI, как это можно сделать? (PS Я могу установить "время подпись" или "темп" следующим образом. Но, мне кажется, что нет никакой связи между этими значениями и ticks_per_beat.)

track.append(MetaMessage('time_signature', numerator=4, denominator=4, clocks_per_click=24, notated_32nd_notes_per_beat=8, time=0))

track.append(MetaMessage('set_tempo', tempo=100000, time=0))

1 ответ

Решение

Значение тиков на такт не сохраняется вместе с MIDI-сообщением; это поле в заголовке файла MIDI.

MidiFile Конструктор имеет множество недокументированных параметров:

class MidiFile(object):
    def __init__(self, filename=None, file=None,
                 type=1, ticks_per_beat=DEFAULT_TICKS_PER_BEAT,
                 charset='latin1',
                 debug=False,
                 clip=False
                 ):
Другие вопросы по тегам