Какова структура MIDI файла?

Я хочу вручную создать функцию, которая создает файл MIDI в соответствии с требованиями пользователей, например.

Пользователь пишет 2 патча, которые содержат 8 баров 4 квартала A4 (Concert A - 440hz) и C4 (каждый как отдельный канал) на скорости 120, со скоростью 100, инструментальным фортепиано (01) и патчем 49 или что угодно.

Как должен выглядеть файл MIDI в соответствии с приведенным выше. Моя цель - научиться создавать функцию, которая генерирует MIDI-данные, а затем записывать все в файл MIDI.

Итак, сначала я должен понять, как создать эту функцию или понять "язык MIDI файлов", чтобы я мог ее написать.

Спасибо заранее.

Ответ 1

Из всей информации MIDI, которую я недавно прочитал, это, кажется, является наиболее полным руководством, с другой стороны, следующая ссылка - это хорошее место для начала работы:

Структура MIDI на официальном сайте MIDI

Кроме того, NAudio - это библиотека .NET, которая работает с файлами MIDI Mark Heath.
Я также нашел эту ссылку очень полезной, я подумал, почему бы не поделиться ею с людьми здесь.

Я думаю, что это лучший .NET API для взаимодействия с файлами MIDI.