標籤: 暫無標籤

MIDI本身只是MusicalInstrumentDigitalInterface的縮寫,意思是音樂設備數字介面。這種介面技術的作用就是使電子樂器與電子樂器,電子樂器與電腦之間通過一種通用的通訊協議進行通訊,這種協議自然就是MIDI協議了。

1 MIDI -基本特徵

MIDIMIDI

MIDI僅僅是一個通信標準,它是由電子樂器製造商們建立起來的,用以確定電腦音樂程序、合成器和其他電子音響的設備互相交換信息與控制信號的方法。MIDI系統實際就是一個作曲、配器、電子模擬的演奏系統。從一個MIDI設備轉送到另一個MIDI設備上去的數據就是MIDI信w息。MIDI數據不是數字的音頻波形,而是音樂代碼或稱電子樂譜。電視晚會的音樂編導可以用MIDI功能輔助音樂創作,或按MI-DI標準生成音樂數據傳播媒介,或直接進行樂曲演奏。

2 MIDI -發展史

MIDIMIDI代碼
MIDI不是首先出現在計算機裡面的,它是由電子樂器生產廠家為了不同型號的電子樂器的「交流」而產生的,由於它採用的是數字化技術,當然自然而然的很容易的與計算機掛上了關係。所以要講MIDI樂器的介面,有三種,MIDIOUT、MIDIIN、MIDITHRU。這些可以在MIDI樂器或帶有MIDI的電子琴(現在的很多電子琴上都有MIDI介面)上找到的。MIDIOUT是將樂器中的數據(MIDI消息)向外發送;MIDIIN就是接收數據啦;至於MIDITHRU,是將收到的數據再傳給另一個MIDI樂器或設備,可以說是若干個樂器連接的介面。可以這樣說,MIDI所描述的是將MIDI樂器彈奏出的音變成01010一樣的數據輸出,也可以將計算機中的軟體將要表示的音變成01010的二進位數據通過音效卡輸出,或者接收一些01010的數據進行處理。

一個標準的MIDI有16個通道,GM標準里的第10通道是專為打擊樂設定的。

早期的MIDI設備除了都能接受MIDI信號之外沒有統一的標準,尤其是在音色排列的方式上更是「隨心所欲」的。也就是說在這台琴上製作完成的音樂拿到另一台不同型號的琴上播放時會變得面目全非,小提琴可能會變成小號,長笛可能會變成吉他,鋼琴可能會變成大鼓……這對於專業音樂人士的工作並不會產生太大的影響,畢竟他們製作一次灌成唱片也就完事兒了,但是對於音樂愛好者之間的交流,尤其是多媒體的發展卻極為不利。

於是著名的日本ROLAND公司於1990年制定出它稱之為GS的標準。GS標準是在ROLAND的早期產品MT-32和CM-32/64的基礎之上,規定了MIDI設備的最大同時發音數不得少於24個、鼓鑔等打擊樂器作為一組單獨排列、128種樂器音色有統一的排列方式等。在這幾項規定中,最重要的就是這128種音色的統一排列方式。有了這種排列方式,只要是在支持GS標準的設備上製作的音樂,拿到任何一台支持同樣標準的設備上都能正常播放。

GS標準的制定本來是一件天大的好事,它使得全世界的電子樂器有了一個「全方位接觸」的機會。可是,也許是由於這個標準真的是過於複雜,更可能是由於眾多的MIDI設備製造商不願意形成ROLAND的獨霸世界標準的局面,總之最後世界各國的MIDI設備製造商並沒有全盤接受這個標準,而是將之稍作改變,泡製出了一個GM標準。

GM標準的全稱應該是「通用MIDI標準系統第一級」(GeneralMIDIsystemLevel1),這個標準制定於1991年,在GS標準基礎上,主要規定了音色排列、同時發音數和鼓組的鍵位,而把GS標準中重要的音色編輯和音色選擇部分去掉了。GM的音色排列方式基本上沿襲了GS標準,只是在名稱上進行了無關痛癢的修改,如把GS的Piano1改名為AcousticGrandPiano等。

雖然GM標準不如GS那樣功能強大,但是它畢竟是世界第一種通用的MIDI樂器排列的標準,而且正因為它將ROLANDGS標準作了簡化,也使得更多的MIDI設備廠商可以製造符合此標準的MIDI設備。所以GM標準剛一制定,就得到了MIDI廠商,尤其是多媒體設備廠商的熱烈響應。此後,各大MIDI廠商的設備紛紛被敲上GM的標制,MIDI設備之間實現了比以往更深層次的交流,為多媒體時代的真正到來作好了準備。對於現在的MIDI設備,GM標準是最基本的了。

另一個MIDI巨頭YAMAHA也不甘示弱,他當然不甘於這樣一個要求很低的標準,所以YAMAHA於1994年9月提出了自己的音源標準--XG。XG同樣在兼容GM的基礎上做了大幅度的擴展,如加入了「音色編輯」的功能,使得作曲家可以在MIDI樂曲中實時地改變樂器的音色;還加入了「音色選擇」功能,在每一個XG音色上可以疊加若干種音色。

八十年代初,電腦音樂迎來了第一個真正的繁榮時期,同時也迎來了一個難以解決的問題,那就是各種電子樂器之間的通訊問題:各生產廠家都按照自己的規格生產電子樂器,當單獨使用某一廠家的產品時,您還不會遇到什麼問題,可是當您同時使用幾家公司的設備構成一個電腦音樂系統的時候,麻煩就來了,怎麼能使一台美國E-MU的音源發出您在日本ROLAND鍵盤上彈奏的一個標準A呢?
  
為了解決電子樂器的通訊問題,1982年,國際樂器製造者協會的十幾家廠商(其中主要是美國和日本的廠商)會聚一堂,各抒己見。會議通過了美國SequentialCircuits公司的大衛.史密斯提出的「通用合成器介面」的方案,並改名為「音樂設備數字介面」,即「MusicalInstrumentDigitalInterface」縮寫為「MIDI」,公佈於世。1983年,MIDI協議1.0版正式制定出來。此後,所有的商業用電子樂器的背後都出現了幾個五孔的MIDI插座,樂器之間不再存在「語言障礙」,它們同裝上MIDI介面的電腦一起,構成了一個更加繁榮昌盛的電腦音樂大家庭。
  
實際上,MIDI本身只是MusicalInstrumentDigitalInterface的縮寫,意思是音樂設備數字介面。這種介面技術的作用就是使電子樂器與電子樂器,電子樂器與電腦之間通過一種通用的通訊協議進行通訊,這種協議自然就是MIDI協議了。
  
對於搞計算機的人來說,把MIDI理解成一種區域網,網路的各個部分通過專用的串列電纜(MIDI線)連接,並以31.25KBPS的速度傳送著數字音樂信息。
  
MIDI標準制定以後,開始只是在專業的電腦音樂圈兒里受到重視,但是隨著電子技術的不斷發展,尤其是近幾年多媒體技術的突飛猛進,MIDI作為多媒的一個重要組成部分,被炒得沸沸揚揚,幾乎達到了婦孺皆知的地步。而大家也已經把這種介面技術當作了電腦音樂的代名詞,常有「做MIDI」,「玩兒MIDI」的說法,使一些正統的「電腦音樂人」覺得莫名其妙,啼笑皆非。
  
因此,將MIDI劃分為「狹義MIDI」和「廣義MIDI」兩種概念,狹義MIDI就是上面所說的音樂設備數字介面,而廣義MIDI則是大家已經約定俗成的整個電腦音樂的統稱,這樣即不會造成概念上的進一步混亂,也不會使得MIDI一詞失去其本質的含義。
  
1985年11月,國際樂器製造者協會公布了《MIDI1.0版的細節規定》,重新定義了一些控制器號碼。此外,為保證MIDI的健康發展,還專門成立了「MIDI廠商協會」和「日本MIDI標準委員會」等組織,MIDI標準從成長階段步入了成熟階段。
  
MIDI標準的成熟使各電子樂器生產廠商生產出各種電子樂器,有鍵盤式的(合成器、主控鍵盤)、弦控式的(MIDI吉他)、敲擊式的(鼓機)甚至還有吹奏式的(呼吸控制器),除此之外,還有五花八門的各種音源模塊(就是把沒有鍵盤的電子合成器)供人選購。

3 MIDI -文件結構

MIDIMIDI文件結構
標準MIDI文件結構
MIDI文件包含一個或更多MIDI塊與每個事件的時間信息。它支持歌曲、序列和音軌結構,拍子和拍號信息。音軌名字和其他描述信息也可以與MIDI信息一同存儲。這個格式支持多條音軌、多個序列。這種格式可以允許用戶從一個音軌移向另一個音軌。
  
用於MIDI文件的8位二進位的數據塊可以在一個高效率的傳輸的MIDI二進位文件中,分解可以存儲為7位數據,或被轉換成其他的ASCII或者被翻譯為一個文本文件。
  
1、MIDI文件結構序列文件塊組成
每個塊4個位元組,有32位長度。MIDI文件結構數據通過在文件的數據叉,或者在剪貼板上進行傳輸。(在Macintosh這個格式的文件類型是「Midi」)塊結構允許被忽略跳過。
  
MIDI文件結構定義了塊的二種類型:文件頭塊和音軌塊。文件頭塊提供關於整個MIDI文件的最小數量信息。音軌塊包含的MIDI數據序列也許包含16條MIDI通道的信息。使用多個音軌塊,就可以用多條音軌、多個MIDI序列、譜式和歌曲。MIDI文件總是以文件頭塊開始,緊隨其後的是一個或多個音軌塊。
MThd
MTrk
MTrk…

MIDI文件結構音軌數據格式(MTrk塊類型)
MTrk塊類型是存放實際歌曲數據的地方。它是MIDI事件(和非MIDI事件)的序列。在MTrk塊的有些數字是以叫可變長的數量的形式進行存儲的。這些數字首先每個位元組用7位,最高位不是有效位。除最後一位之外的所有位元組,最高位設為1;最後一個位元組最高位設為0。如果數字在0和127之間,它能正確地表示為一個位元組。這作為可變長的數量代表的數字的有些例子:
數字(十六進位)變長表示法(十六進位)
0000000000
0000004040
0000007F7F
000000808100
00002000C000
00003FFFFF7F
0000400081800000
100000C08000
001FFFFFFFFF7F
0020000081808000
08000000C0808000
0FFFFFFFFFFFFF7F
  
允許的大數是0FFFFFFF,這是以可變長表示法表示的32位的最大數字。理論上,大數是有可能的,但是實際中不必要。
  
MIDI文件結構MTrk塊的句法:「經過的時間」被作為一個可變長的量存儲。它代表以下事件之前所要經過的時間。如果在音軌的第一個事件發生在音軌的開始,或者,如果二個事件同時發生,使用Δt的零。Δt總是存在。Δt的具體時間單位,在文件頭塊上指定。<元event>是所有MIDI通道消息。使用連續狀態時:狀態位也許在第一個事件以後被省去。在文件的第一個事件必須指定狀態。Δt沒有被認為是事件:它是格式的整體部分。
  
MIDI文件結構<元event>指定非MIDI信息
FF所有階事件從FF開始,然後有事件類型(總是少於128),然後有作為一個可變長的數量被存放的數據的長度,然後是數據。如果沒有數據,長度是0。
  
使用指定MIDI系統專屬消息,或者作為「escape」指定將被傳送的任何任意位元組。一些合成器製造者指定他們的系統專屬消息將被作為小包傳送。每個小包作為一則整個語法系統專屬消息的部分,但是他們被傳送的時間是很重要的。這樣的例子是在CZ補丁傳送的位元組或者FB-01's「系統獨家新聞」中,可以傳送部分數據。為了能處理像這樣的情況,兩個形式的被提供了:
F0<長度><數據>
F7<長度><數據>
  
在兩種情況下,長度被作為一個可變長的數量存放,等於跟隨它的位元組數,不包括本身或消息類型(F0或F7),但是包括跟著的所有位元組,包括所有在意欲被傳送的信息末端的F7。絕大多數的系統專屬消息將使用F0格式。例如,被傳送的消息F043120007F7在MIDI文件將被存儲為F00543120007F7。所有信息要求在末端包含F7,以便MIDI文件的處理程序知道它讀了全部的信息。對於特別的情況,當一則唯一的系統專屬信息被分開成多段,分到不同的時間傳送時,小包除了最後一個都以F7結束。不能在多個小包之間傳遞任何其他的系統專屬信息。例如:
假設位元組431200將首先被傳送到F0,緊隨著200個時間單位的延遲,再緊隨著由位元組431200431200組成的數據,再緊隨著100各時間單位的延遲,再緊隨著由位元組431200F7組成的數據,這在MIDI文件是這樣的:
F0034312008148
200個單位的Δt
8148F70643120043120064
100個單位的Δt
64F704431200F7
  
F7事件也許也使用作為「escape」傳送任何位元組,包括實時位元組、歌曲名或者MIDI時間代碼,在這個規格通常沒有被規定。

2、MIDI文件結構文件頭塊

在文件初的文件頭塊指定在文件中關於數據的一些基本信息。數據部分包含三個16位的欄位,首先被存放高位位元組(當然)。這裡有完整的塊的句法:
<塊類型><塊長度><格式><音軌數><分區>
 
塊類型是四個ASCII字元「MThd」;隨後的長度是一個6(高位優先的32位數字錶示法)。格式,是指定文件的整體組織。

格式的只有三種值,指定三種格式:
0文件包含一條唯一的多通道音軌
1文件包含一個或更多同時的音軌
2文件包含一個或更多獨立的音軌,相繼進行播放
音軌數,是文件中音軌塊的數量。
分區,是在文件的Δt之中1代表的是一秒的多少分之一。
  
格式0,多通道的音軌,是最容易轉換的數據。應用格式1的MIDI文件可以很容易轉換成這種格式。聲音是最重要的東西,格式並不重要。這種轉換是非常應該的,這可以化繁為簡。
  
MIDI文件有可以表達的節奏和拍號的信息。對於0的文件格式,節奏,將分散的存儲;對於格式1,節奏必須(在0.04版起)一起儲存,作為第一條音軌。這個規定是合理的。
  
所有的MIDI文件,應指定節奏和拍號。如果他們不這樣做,拍號假設為4/4,節奏和節拍120每分鐘。在格式0中,這些元事件應該在開頭。在格式1中,這些元事件應包含在第一個音軌中。在格式2中,每一獨立的音軌,應至少包含一條拍號和節奏的信息。

3、MIDI文件結構元事件
不是每個程序,都必須支持每一個元事件。MIDI文件結構元事件最初的定義包括:
序列數
FF0002ssss
  
這一類事件,必須發生在音軌的開頭,在任何非零時間后發生的事件或可傳送的MIDI信息之前,用於指定序列的數目。序列數對應在這條音軌的序列數。在一個格式0或1MIDI文件,其中只包含一個序列,這個數字應包含在第一個音軌。
文字事件
FF01長度文字
  
任何數量描述任何事情的文字。在音軌開頭放上這條音軌的相關的所有信息是很好的,這有助於日後查看。文本事件也可能發生在其他時間,被用來作為歌詞。在此事件中文本應用可列印的ASCII字元進行書寫。

元事件類型01到0F的是預留給各種類型的文本使用的,但使用的目的各不相同:
版權公告
FF02長度文本
  
載有版權聲明,作為列印ASCII文本。文本中應包含字元(c),版權所有的時間,版權所有者。如果幾段音樂是在同一個MIDI文件中,所有的版權聲明應放在一起,把它放在文件的開頭。這個事件應該是第一個事件,在時間0放在第一條音軌塊。
序列/音軌的名稱
FF03長度文本

MIDI文件結構樂器名稱:
FF04長度文本
說明該類型的樂器將用於在這一條MIDI文件結構音軌中使用。

MIDI文件結構歌詞:
FF05長度文本
寫明歌詞。每個音節將是一行單獨的歌詞,應該寫清時間
標記
FF06長度文本

通常在一個格式0的音軌,或在格式1的第一個音軌。
註釋點
FF07長度文本

描述一些在這一點上發生在電影或視頻屏幕或舞台的動作或事件
MIDI文件結構音軌終止
FF2F00

此事件必須的,以便確定的結束點。
設定速度,以毫秒(ms)為單位,是四分音符的時值
FF5103tttttt
  
這個事件可以精確的寫清楚這條音軌的速度。用每拍所佔的時間而不是單位時間內的拍數表示速度,使得依據一個基於時間的同步協議(例如SMPTE時間代碼或MIDI時間代碼)實現時間的絕對同步成為可能。這種準確性使四分鐘左右的曲子在每分鐘的120拍下結束時,時間誤差在500微秒之內。
SMPTE時間同步
FF5405hrmnsefrff
  
這一事件,如果存在的話,將指定某一個特定事件開始的SMPTE時間。它應出現在MIDI文件結構音軌的開頭,在任何非零時間后發生的事件或可傳送的MIDI信息之前。

MIDI文件結構拍號標記:
FF5804nnddccbb
  
MIDI文件結構拍號表示為四個數字。nn和dd代表分子和分母。分母指的是2的dd次方,例如,2代表4,3代表8。cc代表一個四分音符應該佔多少個MIDI時間單位,bb代表一個四分音符的時值等價於多少個32分音符。

因此,完整的6/8拍號應該表示為
FF580406032408
  
這是,6/8拍號(8等於2的三次方,因此,這裡是0603),四分音符是32個MIDI時間間隔(十六進位24即是32),四分音符等於8個三十二分音符。
  
MIDI文件結構譜號信息:
FF5902sfmf
  
sf指明樂曲曲調中升號、降號的數目。例如,A大調在五線譜上注了三個升號,那麼sf=03。又如,F大調,五線譜上寫有一個降號,那麼sf=81。 也就是說,升號數目寫成0x,降號數目寫成8x
mf指出曲調是大調還是小調。大調mf=00,小調mf=01
對於序列器的元數據
FF7F長度數據
  
特殊要求,尤其是時序可能會使用此事件類型:第一個位元組或位元組的數據是一個製造商的ID。
作為一個例子,把一個MIDI文件摘錄如下所示。內容的MIDI流所代表的這個例子,細分在這裡:
Δt(十進位)事件號(十六進位)其他數據(十進位)說明
0FF580404022408
0FF5103500000
0C05通道1,音色5
0C146通道2,音色46
0C270通道3,音色70
0924896通道3開始彈奏C2,用力
0926096通道3開始彈奏C3,用力
96916764通道2開始彈奏G3,用力
96907632通道1開始彈奏E4,鋼琴
192824864通道3停止彈奏C2,標準
0826064通道3停止彈奏C3,標準
0816764通道2停止彈奏G3,標準
0807664通道1停止彈奏E4,標準
0FF2F00結束
整個格式0的MIDI文件的內容

MIDI文件結構文件頭塊:
4D546864MThd
00000006塊長度
0000格式0
0001一個音軌
0060一個MIDI時間間隔等於96分之一秒

MIDI文件結構音軌塊,
4D54726BMTrk
0000003B音軌長度(59位元組)
  
MIDI文件結構時間事件:
00FF580404021808拍號4/4
00FF510307A120速度
00C005
00C12E
00C246
00923060
003C60
60914340
60904C20
8140823040
003C40
00814340
00804C40
00FF2F00終止
  
類似的,可以把這個文件寫成1格式。

MIDI文件結構在網路傳送中,通常採用7位數據傳送方式,這樣可以大大提高傳輸速度。

MIDI文件結構由於體積很小,非常便於傳送;而且,由於它很有利於創作音樂,是很多作曲家在創作初期的首選。
  
MIDI文件結構由於其特殊的記錄方式,受硬體影響較大。
  
MID文件結構不是音頻文件結構,它的作用只相當於一個文本文檔,記錄了音樂該如何進行。MIDI回放音色完全取決於音效卡。

4 MIDI -電子合成器

MIDIMIDI使電子鼓機可模擬音響效果
如果在計算機上裝備了高級的MIDI軟體庫,可將音樂的創作、樂譜的列印、節目編排、音樂的調整、音響的幅度、節奏的速度、各聲部之間的協調、混響由MIDI來控制完成。

利用MIDI技術將電子合成器、電子節奏機(電子鼓機)和其他電子音源與序列器連接在一起即可演奏模擬出氣勢雄偉、音色變化萬千的音響效果,又可將演奏中的多種按鍵數據存儲起來,極大的改善了音樂演奏的能力和條件。用於連接各種MIDI設備所用的電纜為5芯電纜,通常人們也把它稱為MIDI電纜。MIDI是一種電子樂器之間以及電子樂器與電腦之間的統一交流協議。很多流行的遊戲、娛樂軟體中都有不少以MID、RMI為擴展名的MIDI格式音樂文件。

5 MIDI -實質

MIDI複雜MIDI系統
MIDI文件是一種描述性的「音樂語言」,它將所要演奏的樂曲信息用位元組進行描述。譬如在某一時刻,使用什麼樂器,以什麼音符開始,以什麼音調結束,加以什麼伴奏等等,也就是說MIDI文件本身並不包含波形數據,所以MIDI文件非常小巧。

MIDI要形成電腦音樂必須通過合成。早期的ISA音效卡普遍使用的是FM合成,即「頻率調變」。它運用聲音振蕩的原理對MIDI進行合成處理,由於技術本身的局限,效果很難令人滿意。而現在的音效卡大都採用的是波表合成了,它首先將各種真實樂器所能發出的所有聲音(包括各個音域、聲調)進行取樣,存儲為一個波表文件。

在播放時,根據MIDI文件記錄的樂曲信息向波表發出指令,從「表格」中逐一找出對應的聲音信息,經過合成、加工后回放出來。由於它採用的是真實樂器的採樣,所以效果自然要好於FM。一般波表的樂器聲音信息都以44.1KHz、16Bit的精度錄製,以達到最真實的回放效果。理論上,波表容量越大合成效果越好。根據取樣文件放置位置和由專用微處理器或CPU來處理的不同,波表合成又常被分為軟波表和硬波表。

6 MIDI -系統工作

MIDI簡單的MIDI系統
MIDI作曲和核配器系統核心部分是一個被稱為序列器的軟體。這個軟體即可以裝到個人電腦里,也可做在一個專門的硬體里。序列器實際上是一個音樂詞處理器(wordporcessor),應用它可以記錄、播放和編輯各種不同MIDI樂器演奏出的樂曲。序列器並不真正的記錄聲音,它只記錄和播放MIDI信息,這些信息從MIDI樂器來的電腦信息,就像印在紙上的樂譜一樣,它本身不能直接產生音樂,MIDI本身也不能產生音樂,但是它包含有如何產生音樂所需的所有指令,例如用什麼樂器、奏什麼音符、奏得多快,奏得力度多強等。

7 MIDI -使用配置

MIDIMIDI適用配置圖示
序列器可以是硬體,也可以是軟體,它們作用過程完全與專業錄音棚里多軌錄音機一樣,可以把許多獨立的聲音記錄在序列器里,其區別僅僅是序列器只記錄演奏時的MIDI數據,而不記錄聲音;它可以一軌一軌地進行錄製,也可以一軌軌地進行修改,當你彈鍵盤音樂時,序列器記錄下從鍵盤來的MIDI數據。一旦把所需要的數據存儲下來以後,可以播放你剛作好的曲子。如果你覺得這一聲部的曲子不錯,可以把別的聲部加上去,新加上去的聲部播放時完全與第一道同步。

作為單獨設備的序列器,音軌數相對少一些,大概8~16軌,而作為電腦軟體的序列器幾乎多達50000個音符,64~200軌以上。

序列器與磁帶不同,它只受到硬體有效的RAM(RndomaCCessmemory隨機存儲器)和存儲容量的限制,所以作曲、配器根本用不著擔心「磁帶」不夠用。MIDI技術的一大優點就是它送到和存儲在電腦里的數據量相當小,一個包含有一分鐘立體聲的數字音頻文件需要約10兆位元組(相當於7張軟盤的容量)的存儲空間。然而,一分鐘的MIDI音樂文件。這也意味著,在樂器與電腦之間的傳輸數據是很低的,也就是說即是最低檔的電腦也能運行和記錄MIDI文件。

8 MIDI -相關詞條

WMADVDoverture
MP3WMAVST


9 MIDI -參考資料

[1]midi:http://www.midicn.com/
[2]MidiShow: http://www.midishow.com/
[3]廣電電器網:http://www.go-gddq.com/
上一篇[優點]    下一篇 [尼羅河流域]

相關評論

同義詞:暫無同義詞