Co to jest format pliku MID?
Pliki .mid są ściśle powiązane z formatem .midi - oba są sekwencjami typu Standard MIDI File (SMF).
Pliki .mid przechowują zdarzenia wykonania muzycznego zorganizowane z precyzyjnym czasem. Zdarzenia te mogą opisywać:
- wysokość nuty, dynamikę (velocity) i czas trwania odtwarzania,
- głośność, ekspresję i inne wartości kontrolerów,
- zmiany instrumentów (programów) na maksymalnie 16 kanałach.
Należy zauważyć, że pliki .mid nie zawierają danych audio, a jedynie instrukcje zdarzeń niezbędne do prawidłowego odtworzenia przez syntezator lub silnik próbek dźwiękowych. Ponieważ nie są przechowywane żadne próbki audio, ten sam plik .mid może brzmieć zauważalnie inaczej na różnych urządzeniach.
Pliki z rozszerzeniem .mid mogą być używane przez oprogramowanie do edycji muzyki, a także przez sprzętowe urządzenia MIDI i syntezatory. Pliki .mid służą jako uniwersalny sposób udostępniania kompozycji muzycznych między programami - cyfrowe stacje robocze audio (DAW), edytory notacji i sekwencery obsługują ten format. W urządzeniach sprzętowych pliki .mid mogą być używane do wyzwalania instrumentów, zmiany parametrów wyjściowych audio, takich jak wysokość lub czas trwania, oraz sterowania zautomatyzowanymi występami.
Wewnętrznie plik .mid wykorzystuje strukturę binarną opartą na blokach (chunks): blok nagłówka MThd określa typ formatu (0, 1 lub 2), liczbę ścieżek i rozdzielczość czasową, a po nim następuje jeden lub więcej bloków ścieżek MTrk przechowujących zdarzenia ze znacznikami czasu delta. Wariant .rmi opakowuje tę samą zawartość w kontener RIFF, podczas gdy format .kar rozszerza .mid o osadzone teksty piosenek karaoke.
Bezpieczeństwo
RYZYKO: LOWStandardowy plik MIDI to pasywne dane zdarzeń bez osadzonego kodu lub makr, więc sam format jest niskiego ryzyka. Historyczna uwaga: w 2012 r. błąd parsowania MIDI w systemie Windows (CVE-2012-0003) pozwalał na wykonanie kodu poprzez spreparowany plik MIDI w Windows Media Player - został on dawno załatany, więc należy aktualizować system i odtwarzacze. Poza tym głównym „ryzykiem” jest rozczarowanie: MIDI może brzmieć płasko lub źle, ponieważ odtwarzanie zależy od soundfontu urządzenia, a nie od pliku.
Szczegóły formatu
w pigułce- Karaoke MIDI (.kar) - Ta sama struktura Standard MIDI File z osadzonymi meta-zdarzeniami tekstowymi dla karaoke; często zapisywane również z rozszerzeniem .mid.
- RMID (RIFF MIDI) - Sekwencja MIDI opakowana w kontener RIFF, czasem z osadzonym bankiem brzmień DLS; używa rozszerzenia .rmi, ale sporadycznie także .mid.
Programy otwierające pliki MID
Szczegóły techniczne
specyfikacja| Kodowanie pliku | Binarny, kolejność bajtów big-endian |
| Sygnatura pliku (magic bytes) | `4D 54 68 64` - ASCII `MThd` na offsetcie 0, a następnie 4-bajtowa długość bloku (`00 00 00 06`) |
| Struktura kontenera | Oparta na blokach: blok nagłówka `MThd`, po którym następuje jeden lub więcej bloków ścieżek `MTrk` |
| Typy formatów | Format 0 - pojedyncza ścieżka wielokanałowa; Format 1 - wiele zsynchronizowanych ścieżek; Format 2 - niezależne sekwencje wzorów |
| Pojemność kanałów MIDI | Do 16 jednoczesnych kanałów na plik, z których każdy można przypisać do innego instrumentu lub głosu |
| Rozdzielczość czasowa | Ustawiana przez pole `division` w `MThd`; wyrażana jako tyknięcia na ćwierćnutę (np. 480 PPQ) lub ramki kodu czasowego SMPTE |
| Kodowanie czasu delta zdarzeń | Variable-length quantity (VLQ) - koduje odstępy czasowe między zdarzeniami przy użyciu 7 bitów na bajt z flagą kontynuacji MSB |
| Typ MIME | `audio/midi`; rozpoznawany również jako `audio/x-midi` i `audio/sp-midi` |
| Typowy rozmiar pliku | 1 KB - 100 KB; kilka minut muzyki zazwyczaj zajmuje znacznie mniej niż 50 KB, ponieważ nie są przechowywane próbki audio |
| Kompresja | Brak; zdarzenia są z natury kompaktowe dzięki binarnym kodom operacyjnym i kodowaniu czasu delta VLQ |
| Meta-zdarzenia | Metadane niedźwiękowe osadzone w ścieżkach: tempo (mikrosekundy na uderzenie), metrum, tonacja, nazwa ścieżki, tekst piosenki, prawa autorskie i znaczniki końca ścieżki |
| Deweloper / opiekun | MIDI Manufacturers Association (MMA) oraz AMEI (Association of Musical Electronics Industry) |
| Kompatybilność z MIDI 2.0 | `.mid` koduje komunikaty MIDI 1.0; protokół MIDI 2.0 (2020) używa innych formatów kontenerów - pliki `.mid` pozostają w powszechnym użyciu |
| Wydano | Standard MIDI File 1.0 published 1988 (MIDI protocol 1983) |
| Najnowsza wersja | SMF 1.0 (stable since 1988); MIDI 2.0 protocol 2020 uses .midi2/clips, not .mid |
| Otwarty standard | Tak · bezpłatny (royalty-free) |
| Specyfikacja | midi.org |
Konwersje MID
Pytania i odpowiedzi społeczności
pytania użytkownikówBrak pytań - bądź pierwszą osobą, która zapyta o pliki MID.