繁體中文

MIDI 訊息速查表:每種類型、狀態位元組與範圍

在 Mac App Store 下載 InputConfig這款 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,所以有一張表說明它處理其中哪些訊息。

步驟

  1. 以十六進位讀出訊息的第一個位元組。
  2. 如果是 80 到 EF,第一位數字指出訊息種類,第二位數字是聲道,0 代表聲道 1,最高 F 代表聲道 16。
  3. 如果是 F0 到 FF,就是沒有聲道的系統訊息,請到系統訊息表查詢。
  4. 使用聲道訊息表,讀出後面的資料位元組,每個都是 0 到 127。
  5. 如果是 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 Off80 到 8F音符編號,0 到 127放開力度,0 到 127音符編號
Note On90 到 9F音符編號,0 到 127力度,0 到 127(0 等同 Note Off)力度
複音按鍵壓力A0 到 AF音符編號,0 到 127壓力,0 到 127觸後
Control ChangeB0 到 BF控制器,0 到 119數值,0 到 127CC 清單
Program ChangeC0 到 CF音色編號,0 到 127無Program Change
聲道壓力D0 到 DF壓力,0 到 127無觸後
Pitch BendE0 到 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。它們改變的是聲道的行為,而不是聲音的樣子。

控制器名稱作用
120All Sound Off一次讓所有發聲都靜音
121Reset All Controllers把控制器恢復成預設狀態
122Local Control0 是關,127 是開:琴鍵是否演奏合成器自己的聲音
123All Notes Off放開所有按住的音符
124 和 125Omni Mode Off 和 On裝置是只聽一個聲道,還是聽全部聲道
126 和 127Mono Mode On 和 Poly Mode On每個聲道一個音符,或是和弦

MIDI Association 的清單註明,124 到 127 也會關閉所有音符。緊急停止鈕大多就是在全部 16 個聲道上送出 CC 123 和 CC 120。MIDI panic 列出了確切的位元組。

讀懂系統訊息

系統訊息以 F 開頭,不帶聲道,所以線上的每個裝置都可能讀取它們。F0 到 F7 是系統通用訊息,F8 到 FF 是即時訊息,只有它們可以插在 SysEx 訊息的中間。

狀態(十六進位)訊息資料更多
F0System Exclusive廠商 ID,然後是任意數量的資料位元組,直到 F7SysEx
F1MIDI Time Code quarter frame一個位元組:時間碼的一部分
F2Song Position Pointer兩個位元組:從開頭算起的 14 位元拍數,一拍是 6 個時脈
F3Song Select一個位元組:哪一首歌或序列
F6Tune Request無。要求類比合成器調準它們的振盪器
F7End of Exclusive無。結束一則 SysEx 訊息
F8Timing Clock無。每個四分音符送出 24 次MIDI 時脈
FA、FB、FCStart、Continue、Stop無MIDI 時脈
FEActive Sensing無。選用,裝置一旦開始送出,至少每 300 毫秒一次
FFReset無。讓接收端恢復成開機時的狀態

F4、F5、F9 和 FD 是未定義的。Clock、Start 和 Stop 是系統訊息,所以絕不帶聲道。關於 SysEx 傾印和傳送它們的 App,請看 Mac 上的 SysEx librarian 頁面。

查詢值得記住的 CC 編號

120 個 Control Change 編號中有許多是未定義的,但有幾個在 MIDI 標準裡有名字,合成器和 App 都會遵循。以下來自 MIDI Association 的 Control Change 清單。

CC名稱更多
0 和 32Bank Select,MSB 和 LSBMSB 和 LSB
1調變輪CC 清單
2呼吸控制器
4腳踏控制器
6 和 38Data Entry,MSB 和 LSBNRPN 和 RPN
7聲道音量
10聲像
11表情
64延音(制音)踏板:0 到 63 為關,64 到 127 為開延音踏板
65、66、67滑音、持音和弱音踏板,開或關
98 和 99NRPN 編號,LSB 和 MSBNRPN 和 RPN
100 和 101RPN 編號,LSB 和 MSBNRPN 和 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 模式的旋鈕,在數值超過一半時觸發一次,這會把延音踏板變成開關。

InputConfig 的 Live Visualizer 在 MIDI 檢視中,載入 MIDI: Knob Deck 預設集,顯示一個鍵盤、旋鈕和最近的訊息。
Figure 1. Live Visualizer 以 CC 編號為每個旋鈕命名,所以這裡的 CC 7、10、64、71 和 1,直接對照上面的表格就能讀懂。
InputConfig 的編輯器,顯示幾個十字鍵列,每一列都送出 Program Change,其中一列前面先送 Bank Select。
Figure 2. CC 0 和 Program Change 一起運作。按一下十字鍵上,就先送出 Bank Select,再送出 Program Change。

只要控制項送出的是音符、CC、彎音或 Program Change,InputConfig 就能對應它。MIDI 轉按鍵和 MIDI 輸出說明了設定方式。

如果訊息和你預期的不一樣

大多數意外來自編號方式,而不是設備壞了。照這個階梯走,從最小的一步開始:

  1. 檢查聲道計數。位元組說的是 0 到 15,App 說的是 1 到 16。聲道 10 上的裝置,Note On 會送出 99。
  2. 檢查音色計數。訊息帶的是 0 到 127,而許多音色清單顯示 1 到 128,所以音色 1 送出的是 0。
  3. 檢查有沒有隱藏的 Note Off。力度為 0 的 Note On 會結束音符,所以滿是 Note On 的記錄,仍然可能在放開琴鍵。
  4. 解碼原始位元組。把它們貼到 MIDI 訊息解碼器,或在 MIDI 測試工具裡看它們進來。

差一的錯誤是最常見的 MIDI 問題。

深入了解某一則訊息

這裡每一頁都取表格中的一列,並用範例說明。如果這一切對你都很陌生,請從什麼是 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, Русский, ไทย, 简体中文

在 Mac App Store 下載 InputConfig免費。macOS 14 或以上版本。不需要帳號,資料不會離開你的 Mac。 原始碼在 GitHub 上.