280 likes | 635 Views
MIDI 在吉他編曲上的應用. 研究生:黃裕韡 指導教授:趙春棠. 研究動機與目的. 使用不同的媒體,如聲音、影像、文字、動畫等等來傳達資訊,我們稱為多媒體。 用電腦處理多媒體呈現和儲存時所採取的各種方法,我們稱為多媒體技術。 在音效媒體中,以 MIDI 具有較小的梢案結構,多媒體電腦的硬體支援,且高度的整合性,為最佳的音樂媒體格式 在 1983 年出現了第一個數位樂器界面 (MIDI, Musical Instrument Digital Interface). 研究動機與目的. MIDI 提供一種電子樂器之間連結、控制的通訊介面。
E N D
MIDI在吉他編曲上的應用 研究生:黃裕韡 指導教授:趙春棠
研究動機與目的 • 使用不同的媒體,如聲音、影像、文字、動畫等等來傳達資訊,我們稱為多媒體。 • 用電腦處理多媒體呈現和儲存時所採取的各種方法,我們稱為多媒體技術。 • 在音效媒體中,以MIDI具有較小的梢案結構,多媒體電腦的硬體支援,且高度的整合性,為最佳的音樂媒體格式 • 在1983年出現了第一個數位樂器界面(MIDI, Musical Instrument Digital Interface)
研究動機與目的 • MIDI提供一種電子樂器之間連結、控制的通訊介面。 • 研究的主要目的在於推廣MIDI的應用層次。因為過去大多以鋼琴的五線譜為主,很少有對吉他方式的六線譜。
MIDI基本規格 • 第一個MIDI電子合成器是由美國的Sequential Circuits公司於1983年所研發的。 • MIDI規格的發展歷程: • 1983年3月 MIDI Time Code (MTC) 。 • 1987年5月 SCSI Musical Data Interchange (SMDI) 。 • 1991年7月 標準的MIDI檔案。 • 1991年7月 MIDI Show Control (MSC) 。
MIDI基本規格 • 目前MIDI由美國的MIDI Manufactures Association, MMA,international MIDI Association, IMA及日本的Japanese MIDI Standard Committee, JMSC等組織負責制定及維護MIDI規格。 • MIDI標準1.0版定訂了下列規格 • 標準MIDI的三個輸出入埠。 • MIDI訊息的基本模式。 • 每一種型式MIDI Message的格式及基本內容。 • 16個MIDI頻道。
MIDI基本規格 Pin5:訊號線,方向不可相反 Pin2:接地 Pin4:訊號線,方向不可相反 Pin3:無作用 Pin1:無作用
MIDI的時間單位 • MIDI程式一個即時系統,需要即時處理使用者的輸入訊息,因此必須有精確的時間單位。MIDI的時間單位為”tick”,代表音樂上一拍的區隔等分。 • 若拍速為每分鐘100拍,每拍120個tick,則一個tick的時間為0.005秒
MIDI訊息資料結構 • MIDI分為兩種格式,第一個格式為表示命令,稱為狀態位元組,第二個格式為配合命令的資料位元組。 • MIDI訊息通常以一個狀態位元組帶著二個資料位元組,共三個bytes組成一道指令。
狀態位元組(Status Bytes) • 一個Status Bytes有8個bit分為下列三個部分 • Byte ID:Bit7識別位元。在此為位元組的最高位元MSB (Most Significant bit),此位元為1時,代表這整個Byte為一個Status Byte。 • Command/Message ID:Bit6、5、4,它有3個bit的寛度,用來表示MIDI Message的命令種類。 • Channel ID:Bit3、2、1、0這4個bits就是用來表示MIDI規格中所定的16個頻道。其中在System Message裡,這個部份不代表MIDI Channel,而代表訊息種類。
資料位元組(Data Bytes) • Data Byte分為二個部分 • Byte ID:Bit7識別位元。它和Status Byte相反,Data Byte的識別位元為0。 • Bit6~0,共7個bits表示資料值。7個bits共可表示0~127個數值,這也表示了在MIDI的世界裡,量的表示法多為0~127。
頻道訊息 • 頻道聲音訊息 • Note Off:停止發音命令。後面接的為音高,再為音量。 • Note No:開始發音命令。後面接的為音高,再為音量。 • PKP Aftertouch:全名為Polyphonic Key Pressure為多音琴鍵觸壓值。後面接的為音高,再為音量。可增加彈奏的響度、亮度及顫音。 • Control Change:此為控制編號,後面接的為資料值。 • Program Change:切換音色,後面接的為音色編號。 • Channel Aftertouch:頻道觸壓值。後面接的為觸壓值。 • Pitch Bend:音高輪盤。作用在使發音的音高變調,摸擬滑音的動作。
頻道訊息 • 頻道模式訊息 • All Sound Off:關閉所有聲音。 • Reset All Controller:所有項目重新設為初始狀態。 • Local Control:設定音源模組發聲的開關。 • All Note Off:停止所有在發聲的音符。 • Omni On/Off/Poly/Mono: • Omni On:表示接收全部MIDI In Port的資料。 • Omni Off:此為標準模式,只接收屬於本機Channel的資料。 • Poly:表示可以同時發一個音以上,可以彈和弦。 • Mono:僅能單音發聲。
系統訊息 • 系統一般訊息 此為對於MIDI系統的整體性設定,每個MIDI設備都會受這個訊息的影響。這個訊息是與MIDI Time Code有關的MIDI命令。 • 系統即時訊息 和同步功能有關的MIDI命令。 • 系統專屬訊息 系統專屬訊息是給同廠牌的MIDI設備之間互相交換訊息用的。主要的功能是傳輸音色資料,在同一廠牌的音色資料可以共享。
MIDI檔案結構 • MIDI檔是由Chunk所組成,包含了二種型式的Chunk:Header Chunk及Track Chunk。一個MIDI檔只有一個Header Chunk,用來記錄基本格式資料,其後可以接一個或數個Track Chunk用來記錄音符資料及MIDI命令資料。
Header Chunk(標頭區塊) • 區塊識別碼:為4個bytes的識別字元 • 區塊長度:用4個bytes來表示Header Chunk的資料長度 • 檔案楁式:2個bytes表示3種格式 • 格式0:單軌格式,表示在Header Chunk後僅接著一個Track Chunk • 格式1:同步多軌格式,表示在Header Chunk之後可以銜接多個Track Chunk並且在播放時多軌同時處理 • 格式2:非同步多軌格式,可包含多個Track Chunk,且每一個音軌擁有自己的速度資料 • 軌道數:記錄MIDI檔中有多少個Track Chunk • 區隔:指定計時的方式,分為兩種格式:一為隨時間計時,屬於MIDI格式,另一為制定的時間碼,為SMPTE Time Code格式。
Track Chunk(軌道區塊) • 區塊識別碼:為4個bytes的識別字元。 • 區塊長度:用4個bytes來表示Track Chunk的資料長度。 • 軌道事件:相關音符的資料,包括Delta Time與Event。 • Delta Time:下一個Event與前一個Event的時間間隔,並沒有固定長度,其單位為tick。 • Event:可分為Meta Event、MIDI Event及SysEx Event。 • Meta Event:非MIDI訊息的重要資訊。 • MIDI Event:為任何一個MIDI訊息碼。 • SysEx Event:此為MIDI System Exclusive訊息。
MIDI檔案(單音) • 4D 54 68 64:為識別位元。 • 00 00 00 00:為資料長度。 • 00 01:表示檔案格式為1,為同步多軌。 • 00 02:表示有2個Track Chunk。
MIDI檔案 • 00 F0:將一拍分成F016=24010等分。 • 4D 54 72 6B:為識別位元。 • 00 00 00 13:為資料長度。 • 00:將Delta Time設為0。
MIDI檔案 • FF 58 04:為Meta Event (FF)型號,58代表拍子記號,接著4個bytes的資料。 • 04 02:指每小節有四(04)拍,四分音符(22)為一拍。 • 18 08:1816=2410個MIDI Clock中有8個32分音符。 • 00:將Delta Time設為0。
MIDI檔案 • FF 51 03:為Meta Event (FF)型號,51代表拍速,接著3個bytes的資料。 • 09 27 C0:0927C0轉為十進位為600000,由於單位採用微秒(10-6),故得到一拍為0.6秒,故一分鐘有100拍。 • 00:將Delta Time設為0 。 • FF 2F 00:結束此軌。
MIDI檔案 • 4D 54 72 6B:為識別位元。 • 00 00 00 0D:為資料長度。 • 00:將Delta Time設為0 。 • 90 3C 50:表示Note ON在Channel 0,彈奏中央C (Do),力道為5016。
MIDI檔案 • 81 40:為Delta Time,時間為192tick,實際時間為 192tick x(1beat/240tick)x(1min/100beats)x(60sec/1min)=0.48秒。 • 80 3C 40:Note Off 在中央C。 • 00:將Delta Time設為0 。 • FF 2F 00:結束區塊。
MIDI檔案(合音) • 要發出合音的話,只要在90 3C 50後加上為0的Delta Time再加上要發出的音,結束發音的方法也是一樣的。
References [1]Tim Kientzle, ”A programmer’s Guide To Sound”, 1998. [2]Eleanor Selfridge, “Beyond MIDI – The handbook of Musical Codes”, 1997. [3]Robert L. Wick, “Electronic and Computer music – An Annotated Bibliography’, 1997. [4]Joseph Rothstein, “MIDI:A Comprehensive introduction 2nd Edition”, 1995. [5]Christian Braut, “The Musician’s Guide to MIDI”, SYBEX Inc., 1994. [6]Scott Jarol, Anthony Potts, “Visual Basic 5 Multimedia Adventure Set”, 1998.