• 沒有找到結果。

第三章、 研究方法

3.1 系統架構

圖 3.1 為本論文的系統流程圖,步驟說明如下:

第一個步驟是找出 Prime Form 。系統提供兩種輸入方式:一種為輸入一個 MIDI File,一種則是讓使用者自由選擇 Pitch ,系統會根據輸入的資料找出 Prime Form ,來當作音高產生的依據。

接著系統會根據使用者選擇的 Complexity 的值來產生節奏,系統以小節為單 位,隨機選擇可用的組合;我們使用 LHL 反推法來產生節奏,產生原理及節奏 組合於 3.3 節詳細介紹。

步驟三我們提供非調性及調性的選項讓使用者選擇,由於 Pitch-Class Set 本 來是分析 12 音列的方法, 12 音列為非調性音樂,因此利用 Prime Form 變化產 生非調性的旋律是合理的,且非調性音樂並無限制,系統也非產生 12 音列的音 樂,因此並不需要 Prime Form Filter 。而在調性音樂的部分,由於調性音樂需 符合調性音階,因此需使用 Prime Form Filter 來篩選出符合的 Prime Form 變 化。

第四步驟則將第二步驟產生的節奏組合與第三步驟 Prime Form 變化產生的 音高來產生旋律。為了讓調性音樂聽起來有方向性,系統會搭配終止式讓產生的 旋律有和聲架構;產生旋律的同時也考慮曲式的架構,因此我們加入動機及主題 變化的概念,讓產生旋律更有結構性,系統依照使用者選擇的小節長度來建立架 構,前二小節為動機,八小節為主題, 17 小節以上才會有主題變化。

圖 圖 圖

圖 3.1 系統流程圖系統流程圖系統流程圖系統流程圖

20

3.2 找出找出找出找出 MIDI 音樂的音樂的音樂的音樂的 Prime Form

從 MIDI File 裡找出 Prime Form 之前,必須先分析 MIDI file ,取出需要的 資料後再找出 Prime Form 。 Prime Form 是 Pitch-Class Set 裡最 Normal 的 Normal Form ,因此我們分析 MIDI File 後,會先找出此 MIDI File 的所有 Pitch , 接 著 將 這 些 Pitch 轉成 Pitch Class ,再從這些 Pirch Class 中找出 Normal Form 。

圖 圖 圖

圖 3.2 「「「「櫻花櫻花櫻花櫻花」」」」譜例譜例譜例譜例

以圖 3.2 為例,歌曲「櫻花」整首曲子出現的 Pitch Class 有: 2,4,5,9,10 , 其 Normal Form 為 [0,2,3,7,8] , Inversion Normal Form 為 [0,1,5,6,8] ,比較結 果 是 [0,1,5,6,8] 較 Packed , 因此 [0,1,5,6,8] 為「櫻花」這首曲子的 Prime Form 。

3.3 節奏節奏節奏節奏產生方法產生方法產生方法產生方法

系統產生節奏的方法分為兩種,為 3/4 拍及 4/4 拍,分別產生三拍及四拍的 音樂。 3.3.1 節說明 3.4 拍的產生方法,3.3.2 節為 4/4 拍的產生方法。

3.3.1 3/4 拍節奏產生方法拍節奏產生方法拍節奏產生方法拍節奏產生方法

3/4 拍的節奏是根據常見 3/4 拍節奏加入系統內建資料庫,當使用者選擇 3/4 拍時,系統會從這些節奏樣本中,以一小節為單位,隨機選出其中一種來產生該 小節的節奏。

表 3.1 為系統內建的所有節奏樣本,數值 1.0 代表四分音符,數值 0.5 代表 八分音符,數值 0.25 代表十六分音符,數值 1.5 為附點四分音符,數值 2.0 代 表二分音符,數值若為負號則為休止符。

表 表表

表 3.1 系統內建系統內建系統內建的系統內建的的的 3/4 拍拍拍拍節奏樣本資料庫節奏樣本資料庫節奏樣本資料庫節奏樣本資料庫 1. {1.0, 1.0, 1.0}

2. {1.0, 0.5, 0.5, 1.0}

3. {0.5, 0.5, 0.5, 0.5, 0.5, 0.5}

4. {0.5, 0.5, 0.5, 0.5, 1.0}

5. {0.5, 0.5, 1.0, 1.0}

6. {1.0, 0.25, 0.25, 0.25, 0.25, 0.5, 0.5}

7. {1.5, 0.5, 1.0}

8. {0.5, 0.5, 2.0}

9. {1.0, 0.75, 0.25, 1.0}

10. {1.0, 0.5, 0.5, 0.5, 0.5}

11. {1.0, 2.0}

12. {0.5, 0.5, 2.0}

13. {0.5, 1.0, 0.5, 1.0}

14. {0.5, 2.5}

15. {2.5, 0.5}

16. {-0.5, 0.5, 2.0}

17. {-0.5, 0.5, 0.5, 0.5, 1.0}

18. {-1.0, 0.5, 0.5, 1.0}

19. {-0.25, 0.25, 0.25, 0.25, 0.5, 0.5, 1.0}

3.3.2 4/4 拍節奏產生方式拍節奏產生方式拍節奏產生方式拍節奏產生方式

由於複雜度是節奏的特徵之一,而音樂節奏的複雜度可用節奏複雜度分析方 法 [17, 18] 來定義,其中又以 LHL 分析法效果最好,因此本論文在 4/4 拍的節 奏產生方法,是以 LHL 節奏複雜度分析法的反推來實作。

 LHL 反推法反推法反推法反推法

LHL 在分析節奏複雜度的方法裡效果最好,因此我們嘗試採用其反推法來產 生節奏片段。以下說明 LHL 反推法的過程,圖 3.3 為 LHL 的樹狀圖,上面標 示 LHL 的階層及權重值。

圖 3.3 中,樹狀圖的權重 “-1” 、 ”-2” 、 ”-3” 、 ”-4” 分別代表 2 分音 符、 4 分音符、 8 分音符、 16 分音符; ”x” 代表 Onse t 的位置, ”.” 代表非 Onset 的位置,可能為休止符或是 x 位置的延音;接著我們用英文字母來代表有複 雜度出現的地方,即 a 、 b 、 c 、 d 、 e 、 f 、 g 這七個位置,也就是 ”.”

的權重值減去 ”x” 權重值大於零之處,而每個位置的權重值,計算方法是把 ”.”

的權重減去前面 ”x” 的權重,例如在位置 a ,其權重值為 -3 – (-4) = 1 > 0 。

22

圖 圖 圖

圖 3.3 LHL 反推法之樹狀圖反推法之樹狀圖反推法之樹狀圖反推法之樹狀圖(4/4, 16-baet)

表表表

表 3.2 複雜度組合複雜度組合複雜度組合複雜度組合

欲產生之 Complexity 值 產生方法:(n) 代表選 n 個

1 1 a.c.e.g (1)

2 1+1 a.c.e.g (2)

2 b.f(1)

3 1+1+1 a.c.e.g (3)

1+2 a.c.e.g (1) + b.f (1)

3 d

4 1+1+1+1 a.c.e.g (4)

1+1+2 a.c.e.g (2) + b.f (1)

2+2 b.f (2)

1+3 a.c.e.g (1) + d

5 1+1+1+2 a.c.e.g (3) +b.f (1) 1+1+3 a.c.e.g (2) + d 1+2+2 a.c.e.g (1) + b.f (2)

2+3 b.f (1) + d

6 1+1+1+1+2 a.c.e.g (4) + b.f (1) 1+1+1+3 a.c.e.g (3) + d 1+1+2+2 a.c.e.g (2) + b.f (2) 1+2+3 a.c.e.g (1) + b.f (1) + d 7 1+1+1+1+3 a.c.e.g (4) + d

1+1+1+2+2 a.c.e.g (3) + b.f (2) 1+1+2+3 a.c.e.g (2) + b.f (1) + d

2+2+3 b.f (2) + d

8 1+1+1+1+2+2 a.c.e.g (4) + b.f (2) 1+1+1+2+3 a.c.e.g (3) + b.f (1) + d 1+2+2+3 a.c.e.g (1) + b.f (2) + d 9 1+1+1+1+2+3 a.c.e.g (4) + b.f (1) + d 1+1+2+2+3 a.c.e.g (2) + b.f (2) + d 10 1+1+1+2+2+3 a.c.e.g (3) + b.f (2) + d 11 1+1+1+1+2+2+3 a.c.e.g (4) + b.f (2) + d

定義出七個位置的權重值後,接著計算 Complexity 的組合。不同 Complexity 的值有不同種的組合,例如: Complexity 為 3 時,組合有三種,若組合是 1+2 , 則表示從權重 1 的 a、c、e、g 四個位置中選一個,再從權重 2 的 b、f 兩個位 子中選一個,最後此小節裡會有兩個 Note 。表 3.2 列出所有 Complexity 組合的 種類。

然而節奏的組合並不只有表 3.2 的內容,我們透過加音但不影響節奏複雜度 的方法,來增加可用的節奏組合,圖 3.3 裡的 “y“ 及 “z“ 的位置為一個小節內第 一個 Beat 及最後一個 Beat ,頭尾的位置不論是否有 Onset 皆不影響節奏複雜 度的值,因此頭尾的部分可隨機選擇加或不加,組合有三種,如表 3.3 。

表 表 表

表 3.3 小節頭尾加音組合表小節頭尾加音組合表小節頭尾加音組合表小節頭尾加音組合表

組合 y z

組合 1 onset

組合 2 onset

組合 3 onset onset

組合 4

接著是在有權重的位置隨機加音,此步驟的狀況會有兩種:若隨機位置在 Onset 的地方,則和它一組的 “.“ 也會被選到,如此才不會增加其複雜度;若隨 機位置在 “.“ 的地方,則檢查和它一組的 “x“ 是否為 Onset ,如果和它一組的

“x“ 是 Onset ,表示此位置不可為 Onset ,否則會減少複雜度,若和它一組的

“x“ 沒有 Onset ,則可加 Onset 在此位置上。

3.4 音高產生音高產生音高產生音高產生

找出 Prime Form 後,系統會先找出其所有變化,即 Origin 、 Inversion 、 Tn(n=1~11) 及 TnI(n = 1~11) 。 Tn 是將 Prime Form 內的所有數字作加 n 的運 算,若運算後的數字大於 12 ,則須取 mod 12 後的數字,例如: [11,0,4] = T11[0,1,5] ; Inversion 是用 12 去減掉 Prime Form 內的所有數字,例如: [0,7,11]

= T0I[0,1,5] ; TnI 為綜合 Transposition 及 Inversion 的變化,例如: [1,2,9] = T2I[0,1,5] 。

接著系統會依照非調性或調性作 Prime Form 變化的篩選:在非調性時,因為 沒有音階限制,所以 Prime Form 的全部變化皆可使用;在調性時,需符合大調音 階或小調音階,在 3.4.3 節裡,我們將會介紹 Prime Form 在調性時的篩選方法。

表 3.3 為 Prime Form 的所有變化對照表。篩選出可用的 Prime Form 後,系統會 以這些 Pitch-Class set 為依據,並加上 Pitch Offset 來產生音高。

位置

24

Inversion [0,9,5]

Transposision

3.4.2 調性調性調性調性

調性音樂分為大小調共 24 調,小調音階又分為旋律小音階及和聲小音階,

系統採用的是和聲小音階,表 3.4 為 24 大小調音階與 Pitch Class 對照表。

表 表表

表 3.5 大小調音階和大小調音階和大小調音階和 Pitch Class 對照表大小調音階和 對照表對照表對照表 大調音階

大調音階 大調音階 大調音階

C 大調音階大調音階大調音階大調音階 C D E F G A B

Pitch class 0 2 4 5 7 9 11

D大調音階大調音階大調音階大調音階 D E F G A B C

Pitch class 1 3 5 6 8 10 0

D 大調音階大調音階大調音階大調音階 D E F G A B C

Pitch class 2 4 6 7 9 11 1

E大調音階大調音階大調音階大調音階 E F G A B C D

Pitch class 3 5 7 8 10 0 2

E 大調音階大調音階大調音階大調音階 E F G A B C D

Pitch class 4 6 8 9 11 1 3

F 大調音階大調音階大調音階大調音階 F G A B C D E

Pitch class 5 7 9 10 0 2 4

G 大調音階大調音階大調音階大調音階 G A B C D E F

Pitch class 7 9 11 0 2 4 6

A大調音階大調音階大調音階大調音階 A B C D E F G

Pitch class 8 10 0 1 3 5 7

A 大調音階大調音階大調音階大調音階 A B C D E F G

Pitch class 9 11 1 2 4 6 8

B大調音階大調音階大調音階大調音階 B C D E F G A

Pitch class 10 0 2 3 5 7 9

B 大調音階大調音階大調音階大調音階 B C D E F G A

Pitch class 11 1 3 4 6 8 10

26

小調音階 小調音階 小調音階 小調音階

c 小調音階小調音階小調音階 小調音階 c d e f g a B

Pitch class 0 2 3 5 7 8 11

c小調音階小調音階小調音階小調音階 c d e f g a c

Pitch class 1 3 4 6 8 9 0

d 小調音階小調音階小調音階小調音階 d e f g a b c

Pitch class 2 4 5 7 9 10 1

e小調音階小調音階小調音階小調音階 e f g a b b d

Pitch class 3 5 6 8 10 11 2

e 小調音階小調音階小調音階 小調音階 e f g a b c d

Pitch class 4 6 7 9 11 0 3

f 小調音階小調音階小調音階 小調音階 f g a b c c e

Pitch class 5 7 8 10 0 1 4

f小調音階小調音階小調音階小調音階 f g A b c d f

Pitch class 6 8 9 11 1 3 5

g 小調音階小調音階小調音階小調音階 g a b c d e f

Pitch class 7 9 10 0 2 3 6

g小調音階小調音階小調音階小調音階 g a b c d e g

Pitch class 8 10 11 1 3 4 7

a 小調音階小調音階小調音階小調音階 a B c d e f g

Pitch class 9 11 0 2 4 5 8

b小調音階小調音階小調音階小調音階 b C d e f g a

Pitch calss 10 0 1 3 5 6 9

b 小調音階小調音階小調音階小調音階 b c d e f g a

Pitch class 11 1 2 4 6 7 10

3.4.3 Prime form filter

由於調性音樂的組成音必須在符合的音階內,因此需要設計 Filter 來篩選出 符合條件的 Prime Form 變化,使用者選擇大調時,系統會根據大調音階來選出合

適的 Prime Form 變化;而使用者選擇小調時,系統則根據和聲小音階的組成來選 出可用的 Prime Form 變化。

圖 3.4 為 Prime Form 在調性時的 Filter 示意圖,以 Prime Form [0,3,7] 為 例,在 C 大調時,從原始 Prime Form 及其變化中,篩選出來可用的有: [0,9,5]

(Inversion) 、 [2,5,9] (T2) 、 [4,7,11] (T4) 、 [9,0,4] (T9) 、 [2,11,7] (T2I) 、 [7,4,0]

(T7I) ;在 c 小調時,篩選出可用的則有: [0,3,7] (Origing) 、 [5,8,0] (T5) 、 [8,11,3]

(T8) 、 [2,11,7] (T2I) 、 [3,0,8] (T3I) 、 [10,7,3] (T10I) 。

圖 圖 圖

圖 3.4 Prime form tonal filter 示意圖示意圖示意圖示意圖

3.4.4 終止式終止式終止式終止式 (Cadence)

終止式是樂曲中樂段或樂句停頓處 生的調性音樂更聽得出調性

式分為正格終止 ( (Deceptive Cadence) 止,其最後一個和絃 和絃 (IV) 各分別屬於

資料來源資料來源資料來源 資料來源

資料來源資料來源資料來源

資料來源::::http://en.wikipedia.org/wiki/File:Plagal_cadence_in_C.png 然而簡單的樂曲大部分使用的是正格終止

資料來源::http://en.wikipedia.org/wiki/File:IV-V-:: I_in_C.png

圖 圖 圖

圖3.8 終止式終止式終止式 I  II終止式 6 V  I

雖然篩選出的 Prime Form 變化皆在音階內音上,但搭配和聲時,若出現和絃 外音,聽起來會不和諧,因此在搭配和聲時,系統預設一半的機率為和絃內音,

另一半的機率為 Prime Form 篩選出的音高,其中 Prime Form 篩選出的音高裡有 一定機率包含和絃內音。

3.5 動機動機動機動機及主題及主題及主題及主題發展發展發展發展

為了讓產生的旋律聽起來較有結構性,我們加入動機及主題的概念。產生節 奏及音高後,接著系統會產生動機及主題發展變化。

3.5.1 動機動機動機動機

動機的長度通常為兩小節,由一組特有的音程及節奏構成,圖 3.9 為主題及 動機的基本架構,圖中前兩小節為動機。所以本系統設定第一及第二小節為旋律 產生器的動機,其節奏根據使用者所選的複雜度而產生,音高則由 Prime Form 的

動機的長度通常為兩小節,由一組特有的音程及節奏構成,圖 3.9 為主題及 動機的基本架構,圖中前兩小節為動機。所以本系統設定第一及第二小節為旋律 產生器的動機,其節奏根據使用者所選的複雜度而產生,音高則由 Prime Form 的

相關文件