MIDI訊息

表22-2 MIDI通道訊息(n =通道代號,從0到15)
MIDI訊息 資料位元組 值
Note Off 8n kk vv kk = 鍵號(0-127)
vv = 速度(0-127)
Note On 9n kk vv kk = 鍵號(0-127)
vv = 速度(1-127, 0 = note off)
Polyphonic After Touch An kk tt kk = 鍵號(0-127)
tt = 按下之後 (0-127)
Control Change Bn cc xx cc = 控制器(0-121)
xx = 值(0-127)
Channel Mode Local Control Bn 7A xx xx = 0(關),127(開)
All Notes Off Bn 7B 00
Omni Mode Off Bn 7C 00
Omni Mode On Bn 7D 00
Mono Mode On Bn 7E cc cc = 頻道數
Poly Mode On Bn 7F 00
Program Change Cn pp pp = 程式(0-127)
Channel After Touch Dn tt tt = 按下之後(0-127)
Pitch Wheel Change En ll hh ll = 低7位元(0-127)
hh = 高7位元(0-127)
雖然沒有嚴格的要求,鍵號通常還是與西方音樂的傳統音符相對應(例如,對於打擊聲音,每個鍵號碼可以是不同的打擊樂器)。當鍵號與鋼琴類的鍵盤對應時,鍵60(十進位)是中音C。MIDI鍵號在普通的88鍵鋼琴範圍的基礎上向下擴展了21個音符,向上擴展了19個音符。速度代號是按下某鍵的速度,在鋼琴上它控制聲音的響度與和諧特徵。特殊的聲音可以依這種方式或其他方式來回應鍵的速度。
前面展示的例子使用帶有0速度位元組的Note On訊息來表示Note Off命令。對於鍵盤(或者其他控制器)還有一個單獨的Note Off命令,該命令實作釋放鍵的速度,不過,非常少見。
還有兩個「接觸後」訊息。接觸後是一些鍵盤的特徵,按下某個鍵以後,再用力按下鍵可以在某些方式上改變聲音。一個訊息(狀態位元組0xDn)是將接觸後套用於通道中目前演奏的所有音符,這是最常見的。狀態位元組0xAn表示獨立套用每個單獨鍵的接觸後。
通常,鍵盤上都有一些用於進一步控制聲音的刻度盤或開關。這些裝置稱為「控制器」,所有變化都由狀態位元組0xBn表示。通過從0到121的號碼確認控制器。0xBn狀態位元組也用於Channel Mode訊息,這些訊息顯示了合成器如何在通道中回應同時發生的音符。
一個非常重要的控制器是上下轉換音調的輪,它有一個單獨的MIDI訊息,其狀態位元組是0xEn。
表22-2中所缺少的是狀態位元組以從F0到FF開始的訊息。這些訊息稱為系統訊息,因為它們適用於整個MIDI系統,而不是部分通道。系統訊息通常用於同步的目的、觸發編曲器、重新設定硬體以及獲得資訊。
許多MIDI控制器連續傳送狀態位元組0xFE,該位元組稱為Active Sensing訊息。這簡單地表示了MIDI控制器仍依附於系統。
一條重要的系統訊息是以狀態位元組0xF0開始的「系統專用」訊息。此訊息用於將資料塊按廠商與合成器所依靠的格式傳遞給合成器(例如,用這種方法可以將新的聲音定義從電腦傳遞給合成器)。系統專用訊息只是可以包含多於2個資料位元組的唯一訊息。實際上,資料位元組數是變化的,而每個資料位元組的高位都設定為0。狀態位元組0xF7表示系統專用訊息的結尾。
系統專用訊息也用於從合成器轉儲資料(例如,聲音定義)。這些資料都是通過MIDI Out埠來自合成器。如果要用裝置無關的方式對MIDI編寫程式,則應該儘可能避免使用系統專用訊息。但是它們對於定義新的合成器聲音是非常有用的。
MIDI檔案(副檔名是.MDI)是帶有定時資訊的MIDI資訊集,可以用MCI播放MIDI檔案。不過,我將在本章的後面討論低階midiOut函式。

相關詞條

熱門詞條

聯絡我們