Что такое формат файла MIDI?
Файл .midi представляет собой стандартный MIDI-файл (SMF) - бинарную последовательность событий музыкального исполнения, созданную синтезаторами, клавиатурами и цифровыми звуковыми рабочими станциями. Формат хранит высоту нот, силу нажатия (velocity), тайминг, изменения контроллеров и назначения инструментов, но не содержит сэмплированного аудио. Качество воспроизведения целиком зависит от синтезатора или звукового шрифта (soundfont), используемого для рендеринга.
.midi побайтово идентичен .mid. Разница заключается исключительно в длине расширения: ограничение имен файлов DOS 8.3 вынуждало использовать короткую форму .mid, в то время как современные операционные системы принимают полное написание .midi. Некоторые приложения, в частности Ableton Live, требуют переименования .midi в .mid перед импортом.
Файл начинается с четырехбайтового маркера MThd (заголовочный блок MIDI), за которым следует 6-байтовый заголовок, объявляющий тип формата, количество дорожек и разрешение тайминга. Далее следуют один или несколько блоков дорожек MTrk. Существует три типа формата: Format 0 хранит все каналы в одной дорожке; Format 1 использует несколько синхронных дорожек; Format 2 хранит независимые последовательности паттернов.
Спецификация Standard MIDI File 1.0 была опубликована в 1988 году ассоциацией MIDI Manufacturers Association и с тех пор остается неизменной. MIDI 2.0 (2020) расширяет базовый протокол, но использует другие форматы клипов; последовательности .midi по-прежнему широко используются в DAW, нотных редакторах и аппаратных синтезаторах.
Безопасность и защита
РИСК: LOWСтандартный MIDI-файл содержит пассивные данные о событиях без встроенного кода или макросов, поэтому сам формат безвреден. Историческая справка: CVE-2012-0003 позволяла выполнять код через специально подготовленный MIDI в старых версиях Windows Media Player - уязвимость давно исправлена. Держите ОС и плееры обновленными. Основной риск - разочарование: качество звука зависит от синтезатора/саундфонта, а не от самого файла.
Детали формата
в двух словахПрограммы, открывающие файлы MIDI
Технические подробности
глубокая спецификация| Магические байты | `4D 54 68 64` (`MThd`) со смещением 0, за которыми следует `00 00 00 06` (длина блока заголовка) |
| Порядок байтов | Big-endian (от старшего к младшему) |
| Структура блоков | Блок заголовка `MThd` + один или несколько блоков дорожек `MTrk`; перед каждым блоком идет 4-байтовый идентификатор типа и 32-битная длина |
| Типы форматов | Format 0 - одна дорожка, все каналы; Format 1 - несколько синхронных дорожек; Format 2 - независимые паттерны |
| Разрешение тайминга | Устанавливается в поле division блока `MThd`: тики на четвертную ноту (например, 480 TPQN) или кадры тайм-кода SMPTE |
| Кодирование темпа | Мета-событие `FF 51 03` хранит микросекунды на четвертную ноту; по умолчанию 500 000 мкс (120 BPM) |
| Кодирование дельта-времени | Величина переменной длины (VLQ) предшествует каждому событию; компактное кодирование без фиксированного заполнения |
| Типы событий | Включение/выключение ноты, velocity, изменение контроллера, смена программы, pitch bend, послекасание, SysEx, мета-события (темп, размер, текст песни) |
| Емкость каналов | 16 MIDI-каналов на дорожку; 10-й канал традиционно зарезервирован для ударных |
| Связь с .mid | Побайтово идентичен `.mid`; `.midi` - это полная форма расширения, принимаемая современными ОС, но отвергаемая именованием DOS 8.3 |
| Типичный размер файла | 1 КБ - 100 КБ; несколько минут музыки обычно занимают менее 50 КБ |
| Вариант караоке | Файлы `.kar` встраивают мета-события текста песни во вторую дорожку; в остальном идентичны SMF Format 1 |
| Связь с MIDI 2.0 | MIDI 2.0 (2020) расширяет протокол, но использует другие форматы клипов; SMF `.midi`/`.mid` не вытеснен |
| Выпущен | Standard MIDI File 1.0 published 1988 (MIDI protocol 1983) |
| Последняя версия | SMF 1.0 (stable since 1988); MIDI 2.0 protocol (2020) uses different clip formats |
| Открыть стандартное | Да · без роялти |
| Спецификация | midi.org |
Конвертации MIDI
Вопросы и ответы сообщества
спрошено пользователямиВопросов пока нет - станьте первым, кто спросит о файлах MIDI.