繁體中文
MIDI 訊息速查表:每種類型、狀態位元組與範圍
這款 App 完全免費。不需要建立帳號。沒有訂閱,沒有麻煩的下載,也沒有任何鎖住的功能。針對 Apple 晶片最佳化。
MIDI 1.0 的訊息由一個狀態位元組加上零個、一個或兩個資料位元組組成,狀態位元組說明這是什麼訊息。聲道訊息有七種,從十六進位 80 的 Note Off 到 E0 的 Pitch Bend,每一種都把聲道放在最後一位數字,另外還有一組從 F0 到 FF 的系統訊息,完全沒有聲道。下面的表格涵蓋了每一種,附上每個資料位元組的範圍,而且每一列都連到本站說明該訊息的詳細頁面。
這些數值來自 MIDI Association 自己的 MIDI 1.0 訊息摘要和它的 Control Change 清單,我在 2026 年 10 月 27 日讀取。我做了 InputConfig,這是會讀取和送出 MIDI 的免費 Mac App,所以有一張表說明它處理其中哪些訊息。
步驟
- 以十六進位讀出訊息的第一個位元組。
- 如果是 80 到 EF,第一位數字指出訊息種類,第二位數字是聲道,0 代表聲道 1,最高 F 代表聲道 16。
- 如果是 F0 到 FF,就是沒有聲道的系統訊息,請到系統訊息表查詢。
- 使用聲道訊息表,讀出後面的資料位元組,每個都是 0 到 127。
- 如果是 Control Change,請到 CC 表查詢控制器編號。
分辨狀態位元組和資料位元組
MIDI 1.0 裡的每個位元組不是狀態位元組就是資料位元組,由最高位元決定。在 MIDI Association 的表格裡,每個狀態位元組的二進位都以 1 開頭,每個資料位元組都以 0 開頭。
- 狀態位元組。十六進位 80 到 FF,也就是 128 到 255。它們開啟一則訊息。
- 資料位元組。十六進位 00 到 7F,也就是 0 到 127。這就是為什麼 MIDI 裡幾乎所有的數值都停在 127。
- 聲道。在聲道訊息裡,第二個十六進位數字是聲道,0 到 F,App 會顯示成聲道 1 到 16。所以 90 是聲道 1 的 Note On,9F 是聲道 16 的 Note On。
- 14 位元的數值。當 128 級不夠用時,兩個資料位元組會合在一起:細調的一半 LSB,和粗調的一半 MSB。合起來是 0 到 16383,而 Pitch Bend 把中心放在 8192,也就是十六進位 2000。
128 以上的位元組開啟一則訊息,小於 128 的位元組則攜帶數值。MIDI 聲道和 MSB 和 LSB 對這兩者都有更深入的說明。
讀懂聲道訊息
這七種負責音樂本身:音符、壓力、旋鈕、音色切換和彎音輪。狀態欄是十六進位,低位數字由聲道決定。
| 訊息 | 狀態(十六進位) | 資料位元組 1 | 資料位元組 2 | 更多 |
|---|---|---|---|---|
| Note Off | 80 到 8F | 音符編號,0 到 127 | 放開力度,0 到 127 | 音符編號 |
| Note On | 90 到 9F | 音符編號,0 到 127 | 力度,0 到 127(0 等同 Note Off) | 力度 |
| 複音按鍵壓力 | A0 到 AF | 音符編號,0 到 127 | 壓力,0 到 127 | 觸後 |
| Control Change | B0 到 BF | 控制器,0 到 119 | 數值,0 到 127 | CC 清單 |
| Program Change | C0 到 CF | 音色編號,0 到 127 | 無 | Program Change |
| 聲道壓力 | D0 到 DF | 壓力,0 到 127 | 無 | 觸後 |
| Pitch Bend | E0 到 EF | 細調的一半(LSB),0 到 127 | 粗調的一半(MSB),0 到 127 | 彎音 |
力度為 0 的 Note On 視同 Note Off,MIDI Association 自己的 Arduino 指南就是用它來結束一個音符。Control Change 的控制器編號停在 119,是因為 120 到 127 被下面的聲道模式訊息佔用了。Pitch Bend 的半音範圍完全不在訊息裡:由接收端決定,MIDI 表格註明可以用 RPN 0 設定。Program Change 和聲道壓力帶一個資料位元組,其他五種帶兩個。
認識聲道模式訊息
聲道模式訊息使用 Control Change 的狀態位元組 B0 到 BF,控制器編號為 120 到 127。它們改變的是聲道的行為,而不是聲音的樣子。
| 控制器 | 名稱 | 作用 |
|---|---|---|
| 120 | All Sound Off | 一次讓所有發聲都靜音 |
| 121 | Reset All Controllers | 把控制器恢復成預設狀態 |
| 122 | Local Control | 0 是關,127 是開:琴鍵是否演奏合成器自己的聲音 |
| 123 | All Notes Off | 放開所有按住的音符 |
| 124 和 125 | Omni Mode Off 和 On | 裝置是只聽一個聲道,還是聽全部聲道 |
| 126 和 127 | Mono Mode On 和 Poly Mode On | 每個聲道一個音符,或是和弦 |
MIDI Association 的清單註明,124 到 127 也會關閉所有音符。緊急停止鈕大多就是在全部 16 個聲道上送出 CC 123 和 CC 120。MIDI panic 列出了確切的位元組。
讀懂系統訊息
系統訊息以 F 開頭,不帶聲道,所以線上的每個裝置都可能讀取它們。F0 到 F7 是系統通用訊息,F8 到 FF 是即時訊息,只有它們可以插在 SysEx 訊息的中間。
| 狀態(十六進位) | 訊息 | 資料 | 更多 |
|---|---|---|---|
| F0 | System Exclusive | 廠商 ID,然後是任意數量的資料位元組,直到 F7 | SysEx |
| F1 | MIDI Time Code quarter frame | 一個位元組:時間碼的一部分 | |
| F2 | Song Position Pointer | 兩個位元組:從開頭算起的 14 位元拍數,一拍是 6 個時脈 | |
| F3 | Song Select | 一個位元組:哪一首歌或序列 | |
| F6 | Tune Request | 無。要求類比合成器調準它們的振盪器 | |
| F7 | End of Exclusive | 無。結束一則 SysEx 訊息 | |
| F8 | Timing Clock | 無。每個四分音符送出 24 次 | MIDI 時脈 |
| FA、FB、FC | Start、Continue、Stop | 無 | MIDI 時脈 |
| FE | Active Sensing | 無。選用,裝置一旦開始送出,至少每 300 毫秒一次 | |
| FF | Reset | 無。讓接收端恢復成開機時的狀態 |
F4、F5、F9 和 FD 是未定義的。Clock、Start 和 Stop 是系統訊息,所以絕不帶聲道。關於 SysEx 傾印和傳送它們的 App,請看 Mac 上的 SysEx librarian 頁面。
查詢值得記住的 CC 編號
120 個 Control Change 編號中有許多是未定義的,但有幾個在 MIDI 標準裡有名字,合成器和 App 都會遵循。以下來自 MIDI Association 的 Control Change 清單。
| CC | 名稱 | 更多 |
|---|---|---|
| 0 和 32 | Bank Select,MSB 和 LSB | MSB 和 LSB |
| 1 | 調變輪 | CC 清單 |
| 2 | 呼吸控制器 | |
| 4 | 腳踏控制器 | |
| 6 和 38 | Data Entry,MSB 和 LSB | NRPN 和 RPN |
| 7 | 聲道音量 | |
| 10 | 聲像 | |
| 11 | 表情 | |
| 64 | 延音(制音)踏板:0 到 63 為關,64 到 127 為開 | 延音踏板 |
| 65、66、67 | 滑音、持音和弱音踏板,開或關 | |
| 98 和 99 | NRPN 編號,LSB 和 MSB | NRPN 和 RPN |
| 100 和 101 | RPN 編號,LSB 和 MSB | NRPN 和 RPN |
控制器 32 到 63 是控制器 0 到 31 細調的一半,也就是 LSB,Bank Select 就是這樣變成 CC 0 加 CC 32。CC 64 是開關,所以 64 以上的任何值都表示踏板已踩下。MIDI CC 清單列出了每一個編號。
看看 InputConfig 讀取和送出什麼
InputConfig 會把來自鍵盤、打擊墊控制器或 DAW 的 MIDI 變成按鍵、點按、Mac 的音量等等,也會從遊戲手把或鍵盤,透過名為 InputConfig 的虛擬連接埠送出 MIDI。以下是逐則訊息的誠實清單。
| 訊息 | 可對應為輸入 | 可作為輸出送出 |
|---|---|---|
| Note On 和 Off | 可以,作為按住的按鈕 | 可以,力度依該列的設定 |
| Control Change | 可以,作為開關、旋鈕或轉動 | 可以,固定值,或搖桿或扳機的位置 |
| Pitch Bend | 可以,像搖桿一樣有正負 | 可以,來自搖桿軸或按鈕 |
| 觸後 | 可以 | 不行 |
| Program Change | 可以,而且能啟用預設集 | 可以 |
| Start、Continue、Stop | 可以 | 可以 |
| Timing Clock | 不行 | 不行 |
| System Exclusive | 不行 | 不行 |
| NRPN 和 RPN | 不行 | 不行,它送出的是單一訊息 |
有兩個細節常讓人卡住。按鈕沒有力度感應,所以每個 MIDI Note 輸出都以該列設定的力度演奏,範圍是 1 到 127,要取得動態變化,可以把扳機設在 CC 11。還有,處於 Switch 模式的旋鈕,在數值超過一半時觸發一次,這會把延音踏板變成開關。


只要控制項送出的是音符、CC、彎音或 Program Change,InputConfig 就能對應它。MIDI 轉按鍵和 MIDI 輸出說明了設定方式。
如果訊息和你預期的不一樣
大多數意外來自編號方式,而不是設備壞了。照這個階梯走,從最小的一步開始:
- 檢查聲道計數。位元組說的是 0 到 15,App 說的是 1 到 16。聲道 10 上的裝置,Note On 會送出 99。
- 檢查音色計數。訊息帶的是 0 到 127,而許多音色清單顯示 1 到 128,所以音色 1 送出的是 0。
- 檢查有沒有隱藏的 Note Off。力度為 0 的 Note On 會結束音符,所以滿是 Note On 的記錄,仍然可能在放開琴鍵。
- 解碼原始位元組。把它們貼到 MIDI 訊息解碼器,或在 MIDI 測試工具裡看它們進來。
差一的錯誤是最常見的 MIDI 問題。
深入了解某一則訊息
- 音符。力度、音符編號和 General MIDI 鼓對照表。
- 壓力。聲道觸後和複音觸後。
- 控制器。延音踏板、MSB 和 LSB、NRPN 和 RPN,以及 MIDI learn。
- 音色。Program Change。
- 音高。Pitch Bend。
- 時序與安全。MIDI 時脈、MIDI panic 和 MIDI Thru。
- 資料。SysEx。
這裡每一頁都取表格中的一列,並用範例說明。如果這一切對你都很陌生,請從什麼是 MIDI 開始。
簡短版
- 狀態優先。十六進位 80 以上的位元組開啟一則訊息,後面的位元組是 0 到 127 的數值。
- 聲道訊息。80 到 EF,聲道在最後一位數字。
- 系統訊息。F0 到 FF,沒有聲道:SysEx、時脈、Start、Stop 等等。
- 較大的數字。兩個資料位元組組成 0 到 16383,像 Pitch Bend 那樣。
讀狀態位元組的第一位數字,你就知道這是哪一種訊息。
常見問題
MIDI 有幾種訊息類型?
MIDI 1.0 有七種聲道訊息(Note Off、Note On、複音壓力、Control Change、Program Change、聲道壓力和 Pitch Bend)、CC 120 到 127 的聲道模式訊息,以及 F0 到 FF 的系統訊息。
什麼是 MIDI 狀態位元組?
訊息的第一個位元組,範圍是十六進位 80 到 FF。它說明這是什麼訊息,對聲道訊息來說,還說明它在 16 個聲道中的哪一個。
CC 和 NRPN 有什麼差別?
CC 是一則訊息,帶有控制器編號和 0 到 127 的數值。NRPN 用 CC 99 和 98 選定參數,再用 CC 6 和 38 的 Data Entry 設定它,所以一次變更要三到四則訊息。
InputConfig 支援哪些 MIDI 訊息?
它可對應音符、Control Change、彎音、觸後、Program Change 以及 Start、Continue 和 Stop,並能送出音符、Control Change、彎音、Program Change 和傳輸控制。它不處理時脈、SysEx 或 NRPN。
MIDI 時脈是聲道訊息嗎?
不是。Timing Clock,也就是 F8,是沒有聲道的系統即時訊息,每個四分音符送出 24 次。
更多中文頁面
詳細指南(英文)
作者說明。Ryleigh Newman 開發了 InputConfig,因為雙手活動不便,每天都用手把操作自己的 Mac。本頁譯自英文。Mac 的語言設為繁體中文時,App 的主要按鈕和選單會顯示為中文,本頁使用這些名稱,並在括號中附上英文名稱。App 的其他部分和網站的其他頁面都是英文。
本頁的其他語言版本: English, Deutsch, Español, Français, Italiano, 日本語, 한국어, Polski, Português, Русский, ไทย, 简体中文
免費。macOS 14 或以上版本。不需要帳號,資料不會離開你的 Mac。 原始碼在 GitHub 上.