28
MIDI 在在在在在在在在在 在在在 在在在 在在在在 在在在

MIDI 在吉他編曲上的應用

  • Upload
    tola

  • View
    64

  • Download
    3

Embed Size (px)

DESCRIPTION

MIDI 在吉他編曲上的應用. 研究生:黃裕韡 指導教授:趙春棠. 研究動機與目的. 使用不同的媒體,如聲音、影像、文字、動畫等等來傳達資訊,我們稱為多媒體。 用電腦處理多媒體呈現和儲存時所採取的各種方法,我們稱為多媒體技術。 在音效媒體中,以 MIDI 具有較小的梢案結構,多媒體電腦的硬體支援,且高度的整合性,為最佳的音樂媒體格式 在 1983 年出現了第一個數位樂器界面 (MIDI, Musical Instrument Digital Interface). 研究動機與目的. MIDI 提供一種電子樂器之間連結、控制的通訊介面。 - PowerPoint PPT Presentation

Citation preview

Page 1: MIDI 在吉他編曲上的應用

MIDI 在吉他編曲上的應用

研究生:黃裕韡指導教授:趙春棠

Page 2: MIDI 在吉他編曲上的應用

研究動機與目的 使用不同的媒體,如聲音、影像、文字、動畫

等等來傳達資訊,我們稱為多媒體。 用電腦處理多媒體呈現和儲存時所採取的各種

方法,我們稱為多媒體技術。 在音效媒體中,以 MIDI 具有較小的梢案結構,

多媒體電腦的硬體支援,且高度的整合性,為最佳的音樂媒體格式

在 1983 年出現了第一個數位樂器界面 (MIDI, Musical Instrument Digital Interface)

Page 3: MIDI 在吉他編曲上的應用

研究動機與目的 MIDI 提供一種電子樂器之間連結、控制的通

訊介面。 研究的主要目的在於推廣 MIDI 的應用層次。

因為過去大多以鋼琴的五線譜為主,很少有對吉他方式的六線譜。

Page 4: 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) 。

Page 5: MIDI 在吉他編曲上的應用

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 頻道。

Page 6: MIDI 在吉他編曲上的應用

MIDI 基本規格

Pin2 :接地 Pin4 :訊號線,方向不可相反

Pin5 :訊號線,方向不可相反

Pin1 :無作用Pin3 :無作用

Page 7: MIDI 在吉他編曲上的應用

MIDI 的時間單位

MIDI 程式一個即時系統,需要即時處理使用者的輸入訊息,因此必須有精確的時間單位。MIDI 的時間單位為” tick” ,代表音樂上一拍的區隔等分。

若拍速為每分鐘 100 拍,每拍 120 個 tick ,則一個 tick 的時間為 0.005 秒

Page 8: MIDI 在吉他編曲上的應用

MIDI 訊息資料結構

MIDI 分為兩種格式,第一個格式為表示命令,稱為狀態位元組,第二個格式為配合命令的資料位元組。

MIDI 訊息通常以一個狀態位元組帶著二個資料位元組,共三個 bytes 組成一道指令。

Page 9: MIDI 在吉他編曲上的應用

狀態位元組 (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 ,而代表訊息種類。

Page 10: MIDI 在吉他編曲上的應用

狀態位元組 (Status Bytes)

Page 11: MIDI 在吉他編曲上的應用

資料位元組 (Data Bytes)

Data Byte 分為二個部分 Byte ID : Bit7 識別位元。它和 Status Byte 相反,

Data Byte 的識別位元為 0 。 Bit6~0 ,共 7 個 bits 表示資料值。 7 個 bits 共可表

示 0~127 個數值,這也表示了在 MIDI 的世界裡,量的表示法多為 0~127 。

Page 12: MIDI 在吉他編曲上的應用

Status Byte 與 Data Bytes 之關係

Status Byte 與 Data Bytes 之關係Status

ByteMIDI

Command1st Data Byte 2nd Data Byte

80~8F Note Off Note NumberVelocity (Release)

90~9F Note On Note Number Velocity (Attack)

A0~AFPKP Aftertouc

h Note Number Pressure Position

B0~BFControl Change

Ctrl Number Ctrl Position

C0~CFProgram

ChangeProgram Number --

D0~DF Ch. Aftertouch Pressure Position --

E0~EF Pitch Bend Position LSB Position MSB

F0~FF SystemDepends on

MessageDepends on

Message

Page 13: MIDI 在吉他編曲上的應用

MIDI 訊息

Page 14: MIDI 在吉他編曲上的應用

頻道訊息

頻道聲音訊息 Note Off :停止發音命令。後面接的為音高,再為音量。 Note No :開始發音命令。後面接的為音高,再為音量。 PKP Aftertouch :全名為 Polyphonic Key Pressure 為多音

琴鍵觸壓值。後面接的為音高,再為音量。可增加彈奏的響度、亮度及顫音。

Control Change :此為控制編號,後面接的為資料值。 Program Change :切換音色,後面接的為音色編號。 Channel Aftertouch :頻道觸壓值。後面接的為觸壓值。 Pitch Bend :音高輪盤。作用在使發音的音高變調,摸擬滑

音的動作。

Page 15: MIDI 在吉他編曲上的應用

頻道訊息

頻道模式訊息 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 :僅能單音發聲。

Page 16: MIDI 在吉他編曲上的應用

系統訊息

系統一般訊息 此為對於 MIDI 系統的整體性設定,每個 MIDI設備都會受這個訊息的影響。這個訊息是與 MIDI Time Code 有關的 MIDI 命令。

系統即時訊息 和同步功能有關的 MIDI 命令。 系統專屬訊息 系統專屬訊息是給同廠牌的 MIDI設備之間互相交換

訊息用的。主要的功能是傳輸音色資料,在同一廠牌的音色資料可以共享。

Page 17: MIDI 在吉他編曲上的應用

MIDI 檔案結構

MIDI 檔是由 Chunk 所組成,包含了二種型式的 Chunk : Header Chunk 及 Track Chunk 。一個 MIDI 檔只有一個 Header Chunk ,用來記錄基本格式資料,其後可以接一個或數個 Track Chunk 用來記錄音符資料及 MIDI 命令資料。

Page 18: 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 格式。

Page 19: MIDI 在吉他編曲上的應用

Track Chunk(軌道區塊)

區塊識別碼:為4個 bytes 的識別字元。 區塊長度:用4個 bytes 來表示 Track Chunk 的資料長

度。 軌道事件:相關音符的資料,包括 Delta Time 與 Eve

nt 。 Delta Time :下一個 Event 與前一個 Event 的時間間隔,並沒有固定長度,其單位為 tick 。

Event :可分為 Meta Event 、 MIDI Event 及 SysEx Event 。 Meta Event :非MIDI 訊息的重要資訊。 MIDI Event :為任何一個 MIDI 訊息碼。 SysEx Event :此為 MIDI System Exclusive 訊息。

Page 20: MIDI 在吉他編曲上的應用

MIDI 檔案(單音)

  0 1 2 3 4 5 6 7 8 9 A B C D E F

00H 4D 546

864 00 00 00 06 00 01 00 02 00 F0 4D 54

10H 72 6B 00 00 00 13 00 FF 58 04 04 02 18 08 00 FF

20H 51 03 09 27 C0 00 FF 2F 00 4D 54 72 6B 00 00 00

30H 0D 00 90 3C 50 81 40 80 3C 40 00 FF 2F 00    

4D 54 68 64 :為識別位元。 00 00 00 00 :為資料長度。 00 01 :表示檔案格式為1,為同步多軌。 00 02 :表示有 2個 Track Chunk。

Page 21: MIDI 在吉他編曲上的應用

MIDI 檔案

00 F0 :將一拍分成 F016=24010 等分。 4D 54 72 6B :為識別位元。 00 00 00 13 :為資料長度。 00 :將 Delta Time設為 0 。

  0 1 2 3 4 5 6 7 8 9 A B C D E F

00H 4D 54 68 64 00 00 00 06 00 01 00 02 00 F0 4D 54

10H 72 6B 00 00 00 13 00 FF 58 04 04 02 18 08 00 FF

20H 51 03 09 27 C0 00 FF 2F 00 4D 54 72 6B 00 00 00

30H 0D 00 90 3C 50 81 40 80 3C 40 00 FF 2F 00    

Page 22: MIDI 在吉他編曲上的應用

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 。

  0 1 2 3 4 5 6 7 8 9 A B C D E F

00H 4D 54 68 64 00 00 00 06 00 01 00 02 00 F0 4D 54

10H 72 6B 00 00 00 13 00 FF 58 04 04 02 18 08 00 FF

20H 51 03 09 27 C0 00 FF 2F 00 4D 54 72 6B 00 00 00

30H 0D 00 90 3C 50 81 40 80 3C 40 00 FF 2F 00    

Page 23: MIDI 在吉他編曲上的應用

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 :結束此軌。

  0 1 2 3 4 5 6 7 8 9 A B C D E F

00H 4D 54 68 64 00 00 00 06 00 01 00 02 00 F0 4D 54

10H 72 6B 00 00 00 13 00 FF 58 04 04 02 18 08 00 FF

20H 51 03 09 27 C0 00 FF 2F 00 4D 54 72 6B 00 00 00

30H 0D 00 90 3C 50 81 40 80 3C 40 00 FF 2F 00    

Page 24: MIDI 在吉他編曲上的應用

MIDI 檔案

4D 54 72 6B :為識別位元。 00 00 00 0D :為資料長度。 00 :將 Delta Time設為 0 。 90 3C 50 :表示 Note ON 在 Channel 0 ,彈奏中央

C (Do) ,力道為 5016 。

  0 1 2 3 4 5 6 7 8 9 A B C D E F

00H 4D 54 68 64 00 00 00 06 00 01 00 02 00 F0 4D 54

10H 72 6B 00 00 00 13 00 FF 58 04 04 02 18 08 00 FF

20H 51 03 09 27 C0 00 FF 2F 00 4D 54 72 6B 00 00 00

30H 0D 00 90 3C 50 81 40 80 3C 40 00 FF 2F 00    

Page 25: MIDI 在吉他編曲上的應用

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 :結束區塊。

  0 1 2 3 4 5 6 7 8 9 A B C D E F

00H 4D 54 68 64 00 00 00 06 00 01 00 02 00 F0 4D 54

10H 72 6B 00 00 00 13 00 FF 58 04 04 02 18 08 00 FF

20H 51 03 09 27 C0 00 FF 2F 00 4D 54 72 6B 00 00 00

30H 0D 00 90 3C 50 81 40 80 3C 40 00 FF 2F 00    

Page 26: MIDI 在吉他編曲上的應用

MIDI 檔案(合音)

要發出合音的話,只要在 90 3C 50後加上為 0 的 Delta Time再加上要發出的音,結束發音的方法也是一樣的。

  0 1 2 3 4 5 6 7 8 9 A B C D E F

00H 4D 54 68 64 00 00 00 06 00 01 00 02 00 F0 4D 54

10H 72 6B 00 00 00 13 00 FF 58 04 04 02 18 08 00 FF

20H 51 03 09 27 C0 00 FF 2F 00 4D 54 72 6B 00 00 00

30H 0D 00 90 3C 50 00 30 50 81 40 80 3C 40 00 30 50

40H 00 FF 2F 00    

Page 27: MIDI 在吉他編曲上的應用

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.

Page 28: MIDI 在吉他編曲上的應用

Thanks for your attention!!