• 沒有找到結果。

The Algorithmic Composer: ALICE

第二章、 相關研究

2.6 自動作曲

2.6.2 The Algorithmic Composer: ALICE

ALICE (Algorithmically Integrated Composing Environment) 是由 David Cope 所研發 [3],它可以幫助作曲者延伸想法、提供作曲者一些音樂片段、甚至完成其 未完成的作品。 ALICE 藉由分析音樂片段裡的各種參數來建立資料庫,並產生 規則,程式會根據這些規則產生音樂,發展出作曲者特有的風格。

ALICE 的 特 點 是 使 用 Pattern Match 找 出 “Signature” 、 ”Earmark” 和

“Unification“ 。 “Signature“ 指的是音樂特徵, ”Earmark” 是連結段落間的重要 特徵, “Unification“ 為音樂當中重複出現的樣式,使音樂具有其獨特性。

另外, ALICE 使用 Pitch Class 來建立和聲規則,這樣可以取得所有的和聲 種類,因此也較適合產生無調性的音樂。 ALICE 將音樂切成許多區塊,並記錄 區塊內使用的 Pitch Class ,還有儲存音樂前後文連接的規則,在自動創作過程中,

會比較現在產生片段的 Pitch Class 和資料庫中記錄的規則,從中選出符合的規則 來產生下個音樂片段。

圖 圖 圖

圖 2.20 ALICE 作曲流程圖作曲流程圖作曲流程圖作曲流程圖 資料來源資料來源資料來源

資料來源:The Algorithmic Composer [24]

圖 2.20 為 ALICE 的作曲流程,一開始先從之前作曲時所建立的資料庫中取 出音樂規則,以及設定不同的程式參數,接著利用這些資料來進行作曲,使用

18

第三章 第三章

第三章 第三章、 、 、 、 研究方法 研究方法 研究方法 研究方法

在文獻回顧中,電腦自動作曲的方法基本上分為兩種,一種是根據樂理或經 驗來產生規則,一種是利用機器學習方法,由訓練資料學習而產生出作曲規則。

我們採用的是第一種方法---根據樂理來產生作曲規則,使用樂理可以獲得全面性 規則,不會偏頗,也具有理論依據,所以用規則去作曲會更貼近音樂的本質 [25] 。 我們針對調性、曲式及和聲,作為作曲規則來產生旋律。

本 論 文 的 主 要 目 的 為 使 用 Pitch-Class Set 為 理 論 基 礎 來 自 動 作 曲 , Pitch-Class Set 是一組無序的 Pitch-Class 集合,每組 Pitch-Class Set 則可由一獨 特的 Prime Form 表示,若兩組 Set 的 Prime Form 相同,則表示它們包含相同數 目的 Pitch 及音程,聽起來的感覺相差不大,因此我們使用 Prime Form 及其 Transposition 、 Inversion 、 TnI 的變化來當作音高產生的主要依據。

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

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

相關文件