第三章、 研究方法
3.1 音樂分析與 MIDI 轉檔系統
3.1.1 系統架構
圖 16 音樂分析系統架構及流程圖
圖 16 為本論文的分析系統架構圖,其中未包含簡化系統部份。
分析系統主要分為兩部份,第一部份為 MIDI 檔的轉換(MIDI Parser),第二部份為 MIDI 分析(Music Analysis)。
MIDI 轉換主要工作為輸入 MIDI 檔案,利用關鍵的 MIDI 事件轉換出我們所需要的 中介檔案(FSC 檔案)。其中所需的資訊只要對 MIDI 檔案夠熟悉就能完整取得,因此在 這邊不詳談。圖 17 為中介檔的格式示意圖:
- 27 -
圖 17 FSC 檔案格式示意圖
而音樂分析部份因為較為重要,以下分別說明基本分析項目和進階分析項目。
3.1.2 基本分析項目
表 9 基本分析項目功能說明
Function Name 功能
PitchRange 1. 回傳最大最小 Pitch 值
2. 回傳 Pitch 數量及密度
PitchClassDistribution 1. 回傳各 pitch class 的使用次數 2. 回傳各 pitch 的使用次數
3. 回傳各 pitch class 的使用總長度 4. 回傳各 pitch 的使用總長度 PitchTransitionMatrix 回傳 pitch 轉換的機率矩陣
MelodyContour 1. 利用時間長度為單位統計每段落的 Pitch 帄均值
2. 利用 pitch 數量為單位統計每段落的 pitch 帄均值
表 9 內包含了分析系統當中的基本分析項目,這些函數的功能做法都很簡單,大部 份都是利用簡單的統計就可達到目的。但是其中所統計的參數對於自動作曲都是很重要 的依據,在常見的自動作曲軟體中大部份都需要大量利用機率來控制各種參數,例如下 個音該產生什麼音,會利用到音符轉換機率矩陣來決定,而決定旋律走向需要用到 Melody Contour 參數等等,因此雖然取得這些參數的做法簡單,但如果想要利用自動分 析的結果進行自動作曲,這些參數還是非常重要且必要的分析項目。
- 28 -
3.1.3 Key Finding
在我們的分析系統中,調性分析部份我們實作 KS Key Finding[11],Spiral Array[6]
部份雖然不存在本系統但有另外實作在其它系統當中,因此比較實驗結果實我們兩種演 算法都會比較。
KS Key Finding 的做法在相關研究討論中已詳細說明,因此這裡只利用流程圖的方 式來表示 KS Key Finding 這個函數如何運作。
圖 18 KS Key Finding 流程圖
圖 17 當中,輸入 FSC 檔後會利用每個音的音長來計算出十二種 Pitch Class 分別的 比例向量,而 Key Profile 輸入後需要位移到 24 種調性所對應到的 Pitch Class 向量來比 對。
根據產生出的 24 個 Key Profile 和輸入的 Pitch Class 向量,利用公式(3)算出 24 個相 對應的相關系數,最後輸出 24 種調性的計算結果。可從中取出相關系數最高的調性做 為答案,也可觀察輸入音樂和每種調性的相關性高不高。
3.1.4 Chord Finding
本音樂分析系統中的和聲分析演算法是實作「Algorithm of Chordal Analysis」[12]
這篇論文的方式,其詳細做法已在相關研究中討論過,因此在這利用流程圖表示實做的 方式及流程。
- 29 -
圖 19 和聲分析流程圖
如圖 19 所示,過程中第一階段會先讀取輸入的 FSC 檔案,由於和聲分析有時可能 會需要輸入好幾個 MIDI 音軌的檔案,因此設計為可輸入多個 FSC 檔。
輸入後會先進行 FSC 檔案的合併以及排序,接著找出所有的分割點,找完之後就會 開始對每種分割組合,利用公式(6)進行分數計算,並取出最高分和弦紀錄下來,第一階 段工作到此完成,產生一個中介檔案包含所有分割方式的分數及和弦。
第二階段利用第一階段所產生的檔案,計算每個分割點的最佳路徑以及最高分,最 後從最後一個分割點開始往回找出整段音樂的最佳路徑,完成分段以及和弦猜測的工 作。
本系統也利用 Chord Finding 的結果統計出和弦轉移機率,做為另一種音樂參數資 料。
- 30 -