1. 程式人生 > 其它 >【翻譯】MPE標準(MIDI Polyphonic Expression)

【翻譯】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)