Аудио MIDI (.mid)
MIDI СтандартMusical Instrument Digital Interface (MIDI) е стандарт за символно представяне на музика, който записва събития от инструментални изпълнения, вместо акустични звукови вълни.
Проверка и метаданни
Операционните системи и файловите анализатори идентифицират MID файлове чрез проверка на началната двоична байтова последователност:
Байтов подпис на заглавката (сигнатурни байтове)
Операционните системи и файловите анализатори идентифицират MID файлове чрез проверка на началната двоична байтова последователност:
HEX ПОДПИС (ОФСЕТ 0):
4D 54 68 64ASCII ПРЕДСТАВЯНЕ: MThd
Стандартизация: MIDI Manufacturers Association (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 KB - 100 KB | 30 MB - 50 MB | 3 MB - 5 MB | 500 KB - 2 MB |
| Постоянство на звука | Силно варира според синтезатора или звуковия шрифт на потребителя | MIDI данните за събития са преносими; звукът при възпроизвеждане зависи от синтезатора или звуковата банка. | MIDI данните за събития са преносими; звукът при възпроизвеждане зависи от синтезатора или звуковата банка. | |
| Редактиране на аранжимента | Лесно; редактиране на всяка нота в партитурата поотделно | Изключително трудно пренастройване на аудиото | Изключително трудно пренастройване на аудиото | Редактиране на семпли на базата на модели |
Често срещани видове повреди и ръководство за възстановяване на шестнадесетични данни
Нотите на синтезатора звучат безкрайно („задържани ноти“) или темпото става астрономически бързо.
Първопричина: Липсващи събития 'Note Off' или повредени стойности за делта-време (delta-time) с променлива дължина в MTrk блока.
Възстановяване: Отворете файла в MIDI секвенсер или използвайте инструмента File2File.app MIDI tool, за да коригирате статуса на running status и да вмъкнете липсващите команди Note Off.
Анализ на сигурността и вектори на атака към парсера
MIDI парсерите декодират сложни стойности с променлива дължина (VLQ) за делта-времето и системни ексклузивни съобщения (SysEx), които могат да предизвикат препълване на буфера в хардуерни и софтуерни синтезатори.
Известни вектори на атака
- Непроверено разширяване на стойностите с променлива дължина, водещо до 32-битово целочислено препълване.
- Прекалено големи данни в SysEx съобщения, причиняващи препълване на динамичната памет във фърмуера на синтезатора или софтуерните плъгини.
- Злонамерено манипулирани маркери за повтаряне (loop markers), причиняващи безкрайни процесорни цикли в нишките за аудио рендериране.
Най-добри практики за защита: Наложете максимални ограничения върху стойностите на делта-времето и почистете блоковете на производителите на SysEx, преди да ги изпратите към синтезаторите.
Исторически произход и етапи
Основни предимства
- Микроскопичен размер на файла: пълни симфонични аранжименти заемат десетки килобайти вместо десетки мегабайти.
- Пълна гъвкавост при редактиране: отделни ноти, темпа, тоналности и настройки на инструментите могат да бъдат променяни без загуба на качество.
- MIDI се поддържа от много синтезатори, дигитални пиана, секвенсери и DAW, но възможностите варират.
Технически ограничения и минуси
- Не съдържа никакви реални звукови записи; възпроизвеждането зависи изцяло от синтезатора и звуковата библиотека на устройството за възпроизвеждане.
- Не може да възпроизвежда записани човешки гласове или реалистични акустични неинструментални звуци.
- Възпроизвеждането звучи напълно различно на различни компютри в зависимост от инсталираните шрифтове за звукови банки (General MIDI soundfonts).
Интересни технически факти
- Магическият хедър 'MThd' означава 'MIDI Track Header' (Заглавна част на MIDI писта), последван от 'MTrk' за всеки блок с писта.
- Класически компютърни видеоигри като Doom, Warcraft и Monkey Island използват MIDI за осигуряване на богата музика на дискети с капацитет 1.44 MB.
- Дейв Смит получава техническа награда Грами през 2013 г. за основополагащата си роля в изобретяването на MIDI.
Често задавани технически въпроси
Защо MIDI файлът звучи като некачествени инструменти на моя компютър?
MIDI файлът съдържа само инструкции за изпълнение (кой тон да се натисне и колко силно). Звукът, който чувате, се генерира от вградения General MIDI синтезатор на вашата операционна система. Зареждането на професионален SoundFont (.sf2) драстично подобрява реализма.
Как мога да конвертирам MIDI файл в MP3 или WAV файл?
Тъй като MIDI не съдържа аудио, за конвертирането му е необходимо рендиране чрез софтуерен синтезатор със звукови инструменти. Аудиоконверторът на File2File.app автоматично рендира MIDI с висококачествени акустични звукови банки директно във вашия браузър.
Каква е разликата между MIDI формат 0 и формат 1?
Формат 0 обединява всички музикални канали в един-единствен блок (chunk). Формат 1 разделя всеки инструмент (пиано, бас, барабани) в собствен отделен блок за редактиране на множество писти.