【翻譯】MPE標準(MIDI Polyphonic Expression)
MIDI基本內容
MIDI裝置通過MIDI線進行物理連結,並被劃分為16個虛擬資料通道,資料線中傳輸的資料為MIDI Message。一般情況下,每一個通道代表一種樂器(音色)。MIDI協議對每一種樂器的音色都進行了編號。
MIDI Modes
Mode 1(OMNI ON,POLY):MIDI裝置接收所有通道,多按鍵(Note)MIDI資訊
Mode 2(OMNI ON,MONO):MIDI裝置接收所有通道,單按鍵MIDI資訊
Mode 3(OMNI OFF,POLY):MIDI裝置僅接收一個通道,多按鍵MIDI資訊
Mode 4(OMNI OFF,MONO):MIDI裝置僅接收一個通道,單按鍵MIDI資訊
本文討論的是Mode 5(MULTI-MODE):MIDI裝置接收所有通道,多按鍵(Note)MIDI資訊
MIDI Message(Event)
MIDI Message(Event)為3位元組資料 SC DD DD:狀態碼+通道碼 資料碼 資料碼
MIDI訊息以序列的方式傳送
MIDI事件 |
狀態碼 |
資料碼說明 |
音符關 |
8c |
音符編號 力度 |
音符開 |
9c |
音符編號 力度 |
複音 |
Ac |
音符編號 力度 |
控制資訊 |
Bc |
控制號 控制值 |
通道方式 |
Bc |
通道方式 控制值 |
切換音色 |
Cc |
音色編號 |
音符持續壓力 |
Dc |
壓力 |
彎音 |
Ec |
變換值 |
系統資訊 |
FX |
無或固定 |
注:c表示通道 |
例:0x95 64 67,第6個通道(0x95)編號為0x64的音符以力度0x67按下(0x95 Note On)
MIDI CC(Control Change Message)與MIDI RPNs(Registered Parameter Numbers)
0x Bc CC VV表示控制資訊,MIDI協議中為每一個控制器都設定了一個0xCC長度的編號
例:0x B6 07 10,B表示控制資訊,6表示通道7,07表示通道響度,10表示響度大小
所有以0xBc開頭的MIDI訊息都是MIDI CC,當0xCC為0x64和0x65時,這時的MIDI CC被稱為MIDI RPNs。其中0x64使用 LSB編碼,0x65使用MSB編碼,00 06表示MPE配置資訊。
完整表格如下
MIDI 1.0 Control Change Messages (Data Bytes)
https://www.midi.org/specifications-old/item/table-3-control-change-messages-data-bytes-2
MIDI Polyphonic Expression MIDI的複合旋律表示
Version 1.0
March-12-2018
原文:https://www.midi.org/midi-articles/midi-polyphonic-expression-mpe
1. 介紹
1.1. 背景
這份說明是針對那些在演奏和絃時,需要對每一個Note都進行Timber(音色)與音高(Pitch)進行單獨調整的MIDI控制器所釋出的。在這一類控制器中,音高變化通過在裝置表面進行連續滑動而實現,而每一個音色則通過壓力,或通過前後移動來進行表示。
MPE規定了應用於這種三維空間的MIDI資訊,以及如何配置裝置,傳送與接種這種“多維控制資料”以實現最好的互動特性,並且與物理裝置的結構無關。更多維度的控制規則將在未來進行定義。
MIDI資訊中心彎音(Pitch Bend)與控制資訊(Control Change Message)都是通道資訊,也就是說這些資訊會做用到當前通道所對應的所有Note上。為了將通道資訊指定給每一個Node,MPE控制器為每一個Note都分配了通道。在MIDI 1.0規定中已經有一種方式可以為每一個Note指定一個通道,也就是MIDI Mode 4 “OMNI OFF/Mono”模式,也成為了Mono模式。Mono模式並不是實現MPE的方式,因為如果使用該方式為每一個Note都指定通道的,最大的和絃數量為16(或更少)。
MPE定義了在復調情況下“Mode 3(OMNI OFF,POLY)”,為每一個Note分配通道,同時在特定條件下,也能夠支援僅有Mono模式的合成器裝置。
1.2. 概述
MPE定義了MIDI製造商協會(MMA)和日本音樂電子行業協會(AMEI)推薦的一種可行性規範,目的是在MIDI控制樂器,合成器,數字音訊工作站及其他裝置之間,使用MIDI 1.0資訊進行多維控制資料的傳輸。
規範中描述了一種可行的方案,使得裝置可以為每一個Note都指定一個Channel,而無需切換至Mono模式(這種模式最多支援16個Note的和絃)。這也就為MIDI硬體和軟體提供了更加豐富的表達方式。
MPE為每一個Note指定Channel的方式類似於Mode 4(OMNI OFF,MONO):
l 在可能的情況下,每一個Sound Note都會被指定到一個Channel上。這就使得控制資訊與彎音(Pitch Bend)資訊可以作用於每一個獨立的Note上。
l 一個註冊的引數(Registered Parameter Number)可以用來描述覆蓋Note的Channel。MIDI Channel可以被劃分為許多子空間,被稱為Zone,因此通過一根MIDI線也可以實現多音色演奏。
l 每一個Zone都會被指定一個額外的Channel,被稱為Master Channel,這個通道用來處理作用於該Zone中所有Note的通用資訊,包含踏板資訊以及全域性彎音。
總之,MPE滿足了Mode 3(OMNI OFF,POLY)下,每一個通道都可以實現多和絃和需求。如果當前使用的Note超過了可用的Channel數,則指定兩個或者更多的Note共享一個Channel。這些共享Channel的Note將無法被單獨控制,但是這種限制可以增加和絃的數量,而不必考慮是防止新增聲音還是停止舊的聲音。
MPE同時對傳送端和接收端進行了額外的定義:
l 預設情況下,彎音可以為每一個Note生成±48個半音,同時為每一個Master Channel提供±2個半音。在RPNs為0x00時,可以提供最高±96個半音的範圍。
l 觸後(Aftertouch)使用通道壓力資訊表示(Channel Pressure Message)。為了與當前已經存在的MIDI裝置相容,Polyphonic Key Pressure(複音)訊息只被用在Master Channel上。
l 為了能夠為每一個Note都提供彎音(Pitch Bend)和壓力(Channel Pressure),將使用MIDI CC #74(MIDI 控制器 74號位 亮度 Brightness/Frequency)來表示這些三維資料。
在附錄的表格中有完整的實現方式總結。
1.3. 專業詞彙
Active Note(啟用按鍵)。任何已經產生了Note On訊息,但是還沒有產生Note Off訊息的Note。
Lower Zone(低區域)。使用Channel 1 作為Master Channel,並且從Channel 2開始進行對映的區域分配方式。
Member Channel(成員通道)。任何包含Zone,但不是Master Channel的Channel。
Occupied Channel(使用中通道)。至少有一個Active Note的Channel。
Released Note(已釋放按鍵)。已經發送過Note Off訊息的Note。一個已釋放的按鍵可能會造成一定尾音,大部分是由於ADSR的長度,或者長音踏板造成。
Master Channel(主通道)。該通道產生的MIDI 訊息將會作用於所有的Zone
Upper Zone(高區域)。使用Channel 16作為Master Channel,並且從Channel 15開始遞減的方式對映區域。
Zone(區域)。一組連續的Channel,包含一個Master Channel和至少一個Member Channel。
2. 詳細標準
2.1. MPE模式配置
當控制器或者合成器配置了至少一個MPE Zone時,就稱為啟動了MPE操作模式(Mode 5:MPE Mode)
所有相容MPE的裝置都必須支援MPE配置訊息,並且額外支援所有其他MPE Mode可選配置(比如,power-up default,或者via on-board selection)。MPE配置資訊通常來自於數字音訊工作站,或者遠端控制應用。
將所有Zone都設定為無通道時,將關閉MPE Mode。關閉MPE Mode後的操作則由製造商來決定。
2.1.1. MPE配置訊息(MPE Configuration Message MCM)
MPE配置訊息以MIDI RPNs的形式傳送,被定義為0x00(MSB) 0x06(LSB)。MSB Data Entry(CC=0x06)表示MPE通道分配資料,LSB Data Entry未使用。
RPNs REGISTERED PARAMETER NUMBER
MSB LSB 功能
=====================================================
0x00 0x06 MPE配置資訊(MIDI RPNs)
訊息格式:[Bn 64 06] [Bn 65 00] [Bn 06 <mm>]
n = MIDI Channel Number
n=0: Lower Zone Master Channel
n=F: Upper Zone Master Channel
其他任何值都是無效的,可以被忽略
mm = 當前Zone中,Member MIDI Channel的數量
mm=0: MPE關閉(沒有通道)
mm=1 至 F: 設定Zone中Member MIDI Channel的數量
每一個MPE配置資訊(MCM)定義一個MPE Zone,並通過訊息中的MIDI Channel Number(“n”)所佔用的半個位元組(nibble)來決定。在一個MPE裝置中可以有一個或者兩個Zone:一個“Lower Zone”,一個“Upper Zone”或者兩者兼有。這裡提到的兩個詞是通過拆分鍵盤高低部分而得到的,但實際上可以使用其他對映方式,並由製造商自行決定。MCM資訊制定了MPE Mode下,當前Zone使用的通道數量。任何沒有被指定Zone的MIDI Channel都可以被使用。如果一個裝置只有一個Zone時,務必注意只能傳送一條MCM指令。
Lower Zone模式下使用Master Channel 1,而且Member Channel則從Channel 2開始遞增。Upper Zone模式下使用Master Channel 16,而Member Channel則從Channel 15遞減。每一個Zone只響應自己的訊息,因此傳送順序不是固定的。當MCM訊息攜帶的Member Channel為0時,表示關閉這個Zone。
一個Zone中未使用的Master Channel可以被用作其他Zone的Master Channel。因此,如果一個Zone被啟用,它至多有15個Member Channel(“mm”=F)。
一個MIDI Channel不能被多於一個Zone所使用的,如果將一個Channel指定給多個Zone,訊息則會發送給最新的Zone,並導致之前的Zone被停止使用。
2.1.2. MCM例子
一個MPE配置訊息用來配置一個MPE Zone,兩個則配置兩個Zone。下面的例子描述了一些不同的Master Channel以及Member Channel的情況。Master Channel使用陰影表示。
2.1.2.1. 例子一
啟用Lower Zone模式,包含7個Member Channel(2-8),並關閉Upper Zone模式
B0 79 00 (B0) 64 06 (B0) 65 00 (B0) 06 07
BF 79 00 (BF) 64 06 (BF) 65 00 (BF) 06 00
圖 1
一個MPE Zone
Master Channel 1,Member Channel 7(2-8)
2.1.2.2. 例子二
啟用Lower Zone模式,包含7個Member Channel(2-8),並啟用Upper Zone模式,包含7個Member Channel(15-9)
B0 79 00 (B0) 64 06 (B0) 65 00 (B0) 06 07
BF 79 00 (BF) 64 06 (BF) 65 00 (BF) 06 07
圖 2
兩個MPE Zone
Master Channel 1,Member Channel 7(2-8)
Master Channel 16,Member Channel 7(9-15)
2.1.2.3. 例子三
啟用Upper Zone模式,設定15個Member Channel(1-15)
由於不能在指定Lower Zone了,因此Channel 1被用作Upper Zone模式的Member Channel。
BF 79 00 (BF) 64 06 (BF) 65 00 (BF) 06 0F
一個MPE Zone
Master Channel 16,Member Channel 15(1-15)