Цифровой интерфейс музыкальных инструментов (MIDI) (.mid)

Ассоциация Стандарт

Цифровой интерфейс музыкальных инструментов (MIDI): это стандарт символической музыкальной нотации, который записывает события инструментального исполнения, а не акустические звуковые волны.

Анализ и метаданные

Операционные системы и анализаторы файлов идентифицируют файлы MID по начальной двоичной последовательности байтов:

Выберите или перетащите файлы сюда

Конфиденциально - файлы никогда не покидают ваше устройство

или вставьте Ctrl+V
Гарантия конфиденциальности без передачи по сети: 0 байт загружено на внешние серверы. Вся обработка выполнялась локально в песочнице Вашего браузера.

Сигнатура заголовка на уровне байтов (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 (Текущий)WAVMP3MOD
Сохраняемый контентИнструкции событий (нота, высота звука, сила нажатия)Несжатая форма волны 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 с идентификаторами производителей перед передачей синтезаторам.

История происхождения и ключевые этапы

2020Утвержден стандарт MIDI 2.0, предусматривающий двунаправленную связь и 32-битное разрешение контроллеров.
1988Формат стандартного файла MIDI (SMF) формализован и включает формат 0 (однодорожечный) и формат 1 (многодорожечный).
1983Дэйв Смит и Икутаро Каэхаси демонстрируют подключение синтезатора Prophet-600 к Roland Jupiter-6 по протоколу MIDI на выставке NAMM.

Ключевые преимущества и плюсы

  • Микроскопический размер файла: полные симфонические аранжировки занимают десятки килобайт, а не десятки мегабайт.
  • Полная гибкость редактирования: отдельные ноты, темпы, тональности и патчи инструментов могут быть изменены без потери качества.
  • Совместимость с синтезаторами, цифровыми пианино, секвенсорами и цифровыми рабочими станциями (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 разделяет каждый инструмент (пианино, бас, ударные) на собственный независимый блок трека для многодорожечного редактирования.