Цифровой интерфейс музыкальных инструментов (MIDI) (.mid)
Ассоциация СтандартЦифровой интерфейс музыкальных инструментов (MIDI): это стандарт символической музыкальной нотации, который записывает события инструментального исполнения, а не акустические звуковые волны.
Анализ и метаданные
Операционные системы и анализаторы файлов идентифицируют файлы MID по начальной двоичной последовательности байтов:
Сигнатура заголовка на уровне байтов (Magic Bytes)
Операционные системы и анализаторы файлов идентифицируют файлы MID по начальной двоичной последовательности байтов:
HEX-СИГНАТУРА (СМЕЩЕНИЕ 0):
4D 54 68 64ПРЕДСТАВЛЕНИЕ ASCII: MThd
Стандартизация: Ассоциация производителей MIDI (MMA) / AMEI
Технические спецификации
| Архитектура контейнера | Иерархия блоков стандартного файла MIDI (SMF) (заголовок MThd + блоки треков MTrk) |
| Сжатие | Несжатые символические события исполнения (Note On, Note Off, Velocity, Pitch Bend) |
| Порядок байтов (Endianness) | Порядок битов и байтов от старшего к младшему разряду (Big-Endian) |
| Цветовые пространства | Н/Д (символический поток инструкций нот) |
| Каналы и структура | 16 логических каналов MIDI на один трек |
| Максимальные размеры | Переменное разрешение дельта-времени (число тиков на четвертную ноту, до 65 535) |
| Прозрачность | Чистая последовательность математических событий; аудиосигнал в виде формы волны не хранится |
| Потоковая передача и прогрессивная загрузка | Последовательный поток событий; его можно разбирать и передавать по одному событию за раз |
Техническая матрица сравнения: MID с конкурентами
| Технический атрибут | MID (Текущий) | WAV | MP3 | MOD |
|---|---|---|---|---|
| Сохраняемый контент | Инструкции событий (нота, высота звука, сила нажатия) | Несжатая форма волны PCM | Сжатая форма волны с потерями | Инструкции трека + встроенные сэмплы аудиоинструментов |
| Средний размер файла | 10 КБ: 100 КБ | 30 МБ: 50 МБ | 3 МБ: 5 МБ | 500 КБ: 2 МБ |
| Постоянство звука | Сильно различается в зависимости от синтезатора или звукового шрифта пользователя | Данные MIDI-событий можно переносить; звук при воспроизведении зависит от синтезатора или банка звуков. | Данные MIDI-событий можно переносить; звук при воспроизведении зависит от синтезатора или банка звуков. | |
| Редактирование аранжировки | Простое редактирование партитуры по отдельным нотам | Чрезвычайно сложная перенастройка аудио | Чрезвычайно сложная перенастройка аудио | Редактирование сэмплов на основе паттернов |
Распространенные сценарии повреждения и руководство по восстановлению в HEX
Ноты синтезатора звучат бесконечно ('залипшие ноты') или темп становится астрономически быстрым.
Первопричина: Отсутствие событий 'Note Off' или поврежденные значения дельта-времени переменной длины в блоке MTrk.
Восстановление: Откройте файл в MIDI-секвенсоре или используйте инструмент File2File.app MIDI, чтобы нормализовать running status и добавить отсутствующие команды Note Off.
Анализ безопасности и векторы атак на парсер
MIDI-парсеры декодируют сложные значения дельта-времени переменной длины (VLQ) и системные эксклюзивные сообщения (SysEx), которые могут вызывать переполнения буфера в аппаратных и программных синтезаторах.
Известные векторы атак
- Непроверенное увеличение значений переменной длины, приводящее к переполнению 32-битного целого числа.
- Полезная нагрузка сообщений SysEx чрезмерного размера, вызывающая переполнение кучи в прошивке синтезатора или программных плагинах.
- Злонамеренно созданные маркеры циклов, вызывающие бесконечные циклы процессора в потоках рендеринга аудио.
Лучшие практики защиты: Ограничивайте значения дельта-времени и очищайте блоки SysEx с идентификаторами производителей перед передачей синтезаторам.
История происхождения и ключевые этапы
Ключевые преимущества и плюсы
- Микроскопический размер файла: полные симфонические аранжировки занимают десятки килобайт, а не десятки мегабайт.
- Полная гибкость редактирования: отдельные ноты, темпы, тональности и патчи инструментов могут быть изменены без потери качества.
- Совместимость с синтезаторами, цифровыми пианино, секвенсорами и цифровыми рабочими станциями (DAW).
Технические ограничения и минусы
- Не содержит звуковых записей; воспроизведение полностью зависит от синтезатора и звуковой библиотеки устройства воспроизведения.
- Не может воспроизводить записанный человеческий голос или реалистичные акустические неинструментальные звуки.
- Звучание MIDI-файлов может существенно различаться на разных компьютерах в зависимости от установленных звуковых банков General MIDI.
Интересные технические факты
- Магический заголовок «MThd» означает «MIDI Track Header» (заголовок трека MIDI); за ним для каждого блока трека следует «MTrk».
- Классические компьютерные видеоигры вроде Doom, Warcraft и Monkey Island использовали MIDI для воспроизведения насыщенной музыки на дискетах емкостью 1,44 МБ.
- Дэйв Смит получил техническую премию 'Грэмми' в 2013 году за свой основополагающий вклад в изобретение MIDI.
Часто задаваемые технические вопросы
Почему файл MIDI звучит на моем компьютере как дешевые инструменты?
Файл MIDI содержит только инструкции для исполнения нот (какую ноту нажать и с какой силой). Звук генерирует встроенный в операционную систему синтезатор General MIDI. Загрузка профессионального SoundFont (.sf2) значительно улучшает реалистичность звучания.
Как конвертировать файл MIDI в файл MP3 или WAV?
Поскольку MIDI не содержит аудио, для конвертации требуется выполнить рендеринг через программный синтезатор со звуковыми инструментами. Аудиоконвертер File2File.app автоматически рендерит MIDI с помощью высококачественных акустических звуковых банков прямо в браузере.
В чем разница между форматами MIDI 0 и 1?
Формат 0 объединяет все музыкальные каналы в один блок трека. Формат 1 разделяет каждый инструмент (пианино, бас, ударные) на собственный независимый блок трека для многодорожечного редактирования.