Musical Instrument Digital Interface (.mid)
MIDI 標準Musical Instrument Digital Interface (MIDI) 是一個符號式音樂記譜標準,用來記錄樂器演奏事件,而非聲學音訊波形。
檢查與中繼資料
作業系統與檔案分析工具透過檢查開頭的二進位位元組序列來識別 MID 檔案:
位元組層級標頭簽章(檔案簽章)
作業系統與檔案分析工具透過檢查開頭的二進位位元組序列來識別 MID 檔案:
十六進位簽章(偏移量 0):
4D 54 68 64ASCII 表示法: MThd
標準化: MIDI Manufacturers Association (MMA) / AMEI
技術規格
| 容器架構 | 標準 MIDI 檔案(SMF)區塊階層(MThd 標頭 + MTrk 軌道區塊) |
| 壓縮 | 未壓縮的符號式表演事件(Note On、Note Off、Velocity、Pitch Bend) |
| 位元組序 | 大端序(Big-Endian)位元與位元組順序 |
| 色彩空間 | 不適用(符號式音符指令串流) |
| 色版與結構 | 每個軌道 16 個邏輯 MIDI 通道 |
| 最大尺寸 | 可變 Delta 時間解析度(每個四分音符的 tick 數,最高 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 事件資料具可攜性;播放聲音取決於裝置合成器或音源庫 | 由於內嵌取樣而保持一致 |
| 編曲編輯 | 簡單;逐音符的樂譜操作 | 音訊重新調音極度困難 | 音訊重新調音極度困難 | 基於圖樣的取樣編輯 |
常見損壞模式與十六進位修復指南
合成器音符無限期響起(「卡住的音符」)或速度變得極快。
根本原因: MTrk 區塊中缺少「Note Off」事件或變長 delta-time 值損毀。
修復: 在 MIDI 定序器中開啟檔案,或使用 File2File.app MIDI 工具來清理執行狀態並注入遺漏的 Note Off 指令。
安全性分析與解析器攻擊向量
MIDI 解析器會解碼複雜的變長數量(VLQ)delta-time 值和系統專屬(SysEx)訊息,這些訊息可能會在硬體和軟體合成器中觸發緩衝區溢位。
已知攻擊向量
- 未檢查的變長數量擴展導致 32 位元整數溢位。
- 過大的 SysEx 訊息酬載導致合成器韌體或軟體外掛程式發生堆積溢位。
- 惡意製作的循環標記導致音訊算繪執行緒中出現無限 CPU 循環。
防禦最佳實務: 對 delta-time 值強制執行最大邊界,並在分派至合成器之前清理 SysEx 製造商區塊。
歷史起源與里程碑
2020MIDI 2.0 標準定案,引入雙向通訊與 32 位元控制器解析度。
1988標準 MIDI 檔案(SMF)格式正式確立,分為格式 0(單軌)與格式 1(多軌)。
1983Dave Smith 與梯郁太郎在 NAMM 展會上示範使用 MIDI 將 Prophet-600 連接到 Roland Jupiter-6。
主要優勢與優點
- 極小的檔案大小:完整的交響樂編曲僅佔用幾十 KB,而不是幾十 MB。
- 完整的編輯彈性:可以修改個別音符、速度、調性與樂器音色,且不會損失品質。
- 許多合成器、數位鋼琴、定序器與 DAW 都支援 MIDI,不過功能各有不同。
技術限制與缺點
- 不包含任何實際的錄音;播放完全取決於聆聽裝置的合成器與音源庫。
- 無法重現錄製的人聲歌唱或真實的非樂器聲學聲音。
- 根據安裝的 General MIDI 音源庫,MIDI 在不同電腦上的播放效果會完全不同。
有趣的技術冷知識
- 檔案簽章「MThd」代表「MIDI Track Header」,後面接著代表每個軌道區塊的「MTrk」。
- 諸如《毀滅戰士》(Doom)、《魔獸爭霸》(Warcraft)與《猴島小英雄》(Monkey Island)等經典 PC 電玩遊戲,都使用 MIDI 在 1.44 MB 軟碟上提供豐富的音樂。
- Dave Smith 因其在發明 MIDI 方面的奠基角色,於 2013 年榮獲技術葛萊美獎。
常見技術問題
為什麼 MIDI 檔案在我的電腦上聽起來像是廉價樂器?
MIDI 檔案只包含樂譜指令(要按下哪個音符以及力道大小)。您聽到的聲音是由作業系統內建的 General MIDI 合成器產生的。載入專業的 SoundFont(.sf2)可以大幅提升真實感。
如何將 MIDI 檔案轉換為 MP3 或 WAV 檔案?
由於 MIDI 沒有音訊,轉換它需要透過具有樂器的軟體合成器來「算繪」它。File2File.app 音訊轉換器會直接在您的瀏覽器中使用高品質的原聲音源庫自動算繪 MIDI。
MIDI 格式 0 與格式 1 有什麼區別?
格式 0 將所有音樂聲道合併到單一音軌區塊中。格式 1 將每個樂器(鋼琴、貝斯、爵士鼓)分隔到各自獨立的音軌區塊中,以進行多音軌編輯。