Учитывая, что сообщения темпа и note_on/off существуют, в чем смысл миди-мета-сообщений key_signature и time_signature?

Я пишу генератор midi, используя python и библиотеку mido. Я просто изо всех сил пытаюсь понять смысл мета-сообщений key_signature и time_signature. Я сохранил их в своих данных, но если я удалю их из сообщений о песнях и воспроизведу их, они будут звучать одинаково. Раньше я думал, что сообщения key_signature важны для определения того, какие ноты должны быть резкими и т. д., однако на консультации https://www.inspiredacoustics.com/en/MIDI_note_numbers_and_center_frequencies я вижу, что сообщения note_on уже указывают, являются ли они резкими или плоскими. Точно так же я думал, что сообщения time_signature важны для установки общего времени (я мало знаю о теории музыки), но затем обнаружил, что mid.ticks_per_beat, похоже, делает это вместо этого.

Все, что я пытаюсь выяснить, это важно ли сохранять эти сообщения при создании новой музыки, в которой рассматриваются закономерности между многими песнями. В равной степени, если бы кто-то мог подробно рассказать о важности mid.ticks_per_beat и о том, как я должен комбинировать эти значения для нескольких песен при создании новой музыки, это было бы очень ценно.

Спасибо

Ответы (1)

Что касается MIDI-данных, ни одно из метасообщений не требуется , но они полезны при преобразовании MIDI в нотную запись.

Ключевая подпись важна для определения правильного «орфографии» нот - например, должна ли MIDI-нота 61 быть написана как до-диез или ре-бемоль. Это не имеет значения для звука, но «неправильное» написание в нотной записи выглядит музыкально неграмотным, и его трудно читать, потому что оно запутывает определение аккордов и гамм, используемых в музыке.

Тактовый размер важен для определения общего ритма (например, является ли произведение маршем или вальсом), который не зависит от темпа и указывает положение тактов в нотоносце.

Количество тактов на четвертную ноту определяет, насколько равномерно вы можете разделить долю. В популярной музыке вы вряд ли найдете подразделения, намного превышающие 3 или 4, а относительно небольшое количество тактов на такт может (слегка) уменьшить размер MIDI-файла за счет уменьшения количества байтов, необходимых для хранения «дельта-времен» между ними. записи.

Первоначально 60 или 120 TPQN были довольно распространенным выбором, который поровну делился на 2, 3, 4, 5 и 6 подразделений (и 120 также на 8). 72 TPQN разбивается на 2, 3, 4, 6, 8 и 9. Общим стандартом для современного программного обеспечения является 480 TPQN, который является разумным компромиссом между возможностью более точных подразделений без чрезмерного увеличения размера файла. Некоторое программное обеспечение использует более высокие значения, такие как 5040 TPQN, и/или позволяет пользователю выбирать, какое значение использовать. Программное обеспечение, которое читает MIDI-файлы, должно иметь возможность обрабатывать любое (разумное) количество TPQN. Если у вас нет причин делать что-то другое, я бы использовал 480.