• 沒有找到結果。

系統整合系統架構

第五章   系統架構與功能

5.1 系統整合系統架構

圖5.1 為數字簡譜系統的流程圖,這亦是本系統所建立的基本架構。而圖 5.1 虛線 區塊為本研究探討的範圍,簡單來說,系統在分析 MIDI 資訊中的音符出現與結束時 間、音高、音長等之後,做音名正確拼寫、調性分析以及節拍的歸納,最後分析和弦 加強簡譜的功能性,透過這些分析與歸納的結果再整合後,成為一個擁有基本且重要 架構的簡譜平台。

圖 5. 1 數字簡譜系統流程圖 5.2 模組與機制設計

從使用者的角度來看,輸入一首MIDI 檔案透過系統可以方便的得到樂譜,樂譜 預設以相對音高的數字簡譜呈現,當然系統也提供選擇將相對音高換成絕對音高呈現。

但無論是相對音高或是絕對音高,一首音樂的基本架構首要具備:明確的找到調性,

其次就是節拍的定義,有了前面兩者可以分析和弦的組合。為此我們規劃了調性分析 模組、音名分析與拼寫模組、拍追蹤與節拍歸納模組以及和弦分析模組。

圖5.2 為系統中主要分析模組的流程圖,大致分為兩個主線:一個是音符中音高、

旋律的處理,另一部份是以音符的時間為主要處理對象。旋律處理的流程為音名拼寫 後,再做調性分析與統計;而時間則是分析所有音符的開始時間與音符間的時間長度,

歸納拍子的周期與節拍。最後再結合兩個主線的析後的結果進行和弦分析。

在輸入MIDI 檔案之後,必須有一個前置作業將 MIDI 的訊號轉譯為易讀的事件字 串,而在MIDI 解碼後,我們分析音符事件建立了音符物件,其中包括有音符的 MIDI

音高代號、音符的名稱、音符開始與結束的時間、音符的調性以及音符可能的和絃,

透過音符物件更方便模組之間的群取與溝通。圖5.3 即為完整的系統流程與人機互動,

對照上圖 5.2 的模組圖,在模組分析之前我們將前置作業細分為 MIDI 解碼和音符事 件分析與物件建立兩個部分。MIDI 解碼後輸出字串再分析音符的事件與和建立每個音 符物件;而在調性分析模組完成後,我們已經在音符物件中記錄了每個音符的音名和 調號,並且傳送調號給調性轉移機制,透過此轉移機制可將絕對音高轉置為相對音高;

最後以樂理規則解讀機制將所有包括音符、和絃、小節線等整合,也就是說當所有分 析模組皆已完成後,再透過樂理規則解讀機制將所有分析結果一一解讀為數字簡譜的 形式,在使用者介面輸出。

MIDI 訊息可以依照定義的不同,而有不同的解讀,不同定義之間的樂器將會無 法正確溝通。因此業界制定了一套控制信號以及合成樂器的規範,稱為「通用 MIDI」

(General MIDI),並且依照制定的詳細程度給予不同的「等級」(Level)。General MIDI Level 1,給予各種控制信號編號;其中包括了音高、調變、預設樂器、延音程度、音 量、力度等常見的數位樂器表現方式。但為了解讀 MIDI 訊息信號,程式設計者須以 背誦位元編號的方式來了解每個 MIDI 訊息裡面所包含的資訊。因此,系統將使用者 輸入的 MIDI 檔案解碼並建立描述事件的字串方便程式編輯者讀取和分析,輸出結果 如表5.1 所表現的 MIDI 格式字串。

圖 5. 2 系統中主要分析模組的流程圖

圖 5. 3 系統流程與人機互動

檔頭 Header format=1 ntrks=1 division=1024 Track 1 contains 999 bytes

音軌

0 Metatext time signature=4/4 樂曲資訊

0 Metatext tempo=120.00 bpm

音符資訊 tick 音符開始 Channel 音符 音量

圖 5.5 為調性轉移機制的流程圖,系統在對調性做了正確的分析後,首先先確定 此樂曲應為大調或小調,然後再計算樂曲本身的調性主音至 C 大調或 a 小調的音程距 離即為位移的距離,最後每一個音符都必須移動上步驟所計算出來的位移量。調性轉 移對相對音高的表示方法是很重要的一個步驟,簡單的說,相對音高表示法即是將各 種大調移置C 大調表示,小調則以 a 小調表示。

圖 5. 5 調性轉移機制的流程圖

樂理規則解讀機制主要在處理需要用到的各種樂理定義,例如同樣都是 Do 這個 音在不同八度上表現的差異等等。此機制分為音符規則和音樂架構規則兩部分,先對 音符的定義對應出音符的字型,再透過音樂架構規則來決定輸出。

圖 5.6 為定義音符輸出格式的流程,首先決定音高對應的數字符號,再從每一個 音長定義音長符號的表現,接著判斷音符的臨時升降記號,最後依照音高八度的位置 附加上加點或下加點的高度符號,在使用者介面以數字簡譜字型輸出。

圖 5.7 則為音樂架構規則的流程圖,分作兩個部分,一個是調性的表現定義,另 一個是與時間軸和輸出的座標位置有關的:先定義小節線的寫法和座標位置,然後決 定每一個音符的座標位置,最後再定義和弦的寫法並且決定和弦的座標位置。另外,

在前面分析了正確調性之後,調性表現定義決定了大小調的寫法,例如大調以大寫英 文字母M 表示,而小調則為小寫英文字母 m。而判斷小節線則使用節拍歸納模組執行 後的結果,在時間軸上切割小節,並在此步驟決定了小節線的座標位置;決定小節線 的座標之後,定義過字型的音符接著決定其座標位置;最後,和絃依照流行樂上常用 的註記符號,定義和絃的輸出型態,同樣的,在此步驟決定和弦的座標位置。

圖 5. 6 定義音符輸出格式流程

圖 5. 7 音樂架構規則流程圖

調性分析和音名拼寫模組流程與演算法請見第三章,拍追蹤與節拍歸納模組流程 與方法、和弦分析模組流程與演算法請見第四章。

第六章 實作結果

6.1 使用者介面

由圖 5.3 的模組與人機互動的流程圖看,人機介面由使用者選曲的主要有、選擇 絕對或是相對音高、調整小節寬度等按鈕。而圖 6.1 為簡譜系統主要的人機介面設計,

大致分為四個面板:

1. 最上方的控制面板:從左至右依序為,讀取 MIDI 檔、播放 MIDI 檔、輸出數字簡 譜和離開系統四個按鈕。

2. 主畫面中左上的條件控制面板:從上到下依序為,絕對音高或相對音高的選擇鈕以 及調整小節寬度的滑動桿。

3. 主畫面中左下的資訊面板:主要是呈現樂曲的資訊輸出面板,包括調性、節拍、

MIDI 音軌數。

4. 主畫面中右邊的輸出面板:主要是呈現數字簡譜的輸出面板,包括小節線、小節數、

音符、結合線、和弦。

圖 6. 1 系統介面

以搖籃曲為例,圖 6.2 即為系統Demo 樂譜的輸出結果樂曲資訊部分顯示此樂曲的 調性為C 大調,節拍為 3/4 拍子,MIDI 檔案的音軌數為 1。樂譜顯示部分有以相對音 高表現的數字音高,固定小節寬度的小節線、小節線上顯示小節編號、以及有變化的 和弦標示。而圖6.3 為以 Come On Over 單一音軌版本的 MIDI 檔 Demo 例子,與上個 例子不同的是,此首音樂為 Eb 大調,節拍為 2/4 拍子,很明顯的,這裡調性為非 C 為主音的大調,所以從相對音高看來主音表示為1,但事實上是 Eb 這個音。當然,若 是選擇以絕對音高表現樂譜的話,則主音 Eb 在簡譜上會標示為 b3。而圖 6.4 則是以 Come On Over 多個音軌版本的 MIDI 檔 Demo,每個音軌的排列方式為從左到右,上 下小節對齊。

圖 6. 2 系統 Demo”搖籃曲”樂譜畫面

圖 6. 3 系統 Demo” Come On Over”單一音軌樂譜畫面

圖 6. 4 系統 Demo” Come On Over”多音軌樂譜畫面

6.2 比較其他數字簡譜系統

圖6.5 為商業軟體”CuteMIDI 簡譜作曲家” 與圖 6.4 本文所提之演算法處理相同的 MIDI

檔案,在主畫面中,左邊有顯示其調性,因 MIDI 檔案沒有記載此樂曲的調性所以此軟體會

以預設的C 大調為主,而所有升降記號皆為臨時記號表示。

圖 6. 5 CuteMIDI 簡譜作曲家 Demo” Come On Over”多音軌樂譜畫面

由此可見,本系統比CuteMIDI 多增加了:

1. 最佳調性判斷:分析調性除了有能力給予正確的相對音高表現,主要是可以讓使用 者了解真正的調性,而不是以預設的C 調表現

2. 即時音名拼寫:CuteMIDI 判斷升降記號從已建立的表,而我們可以即時的判斷音 高的升降記號不需建表。

3. 和弦組合標示:每一個小節可以標示出參考的和弦,讓使用者可以更容易自己加上 伴奏或和聲。

4. 單軌或多軌的判斷:CuteMIDI 預設最多 16 音軌,若 MIDI 檔案沒有這麼多音軌,

很容易讓使用者混淆總音軌數。而本系統可以判斷有幾個音軌就產生幾行旋律,若 為單音軌則不以從左到右一直延伸下去的顯示,而是以一行四小節為主的頁面顯 示。

第七章 結論與未來工作

本系統已建立了擁有下列幾項分析功能的數字簡譜軟體:

1.音名拼寫 2.調性分析

3.拍子追蹤與節奏的歸納 4.和絃分析

5.基本音樂理論規則

透過上面的分析技術與規則,系統使用者可以從輸入一個 MIDI 檔案即可得到一 個容易閱讀的相對音高樂譜呈現;另外對於未知節拍音樂也可預測,尤其對於創作音 樂的人只需要錄下直覺的旋律即可得到合理的節拍分析;最後和弦分析的呈現提升使 用者對於音樂伴奏的方便性。因此,此系統除了音符閱讀的便利性之外,對於創作音 樂也提供了一個快速的路徑。

此外,雖然這個系統整合的技術不全是準確率最高或是最有效率的方法,並且系 統的功能只達到基礎的分析功能,但未來若希望能更進一步改進此系統,除了維持原 有的閱讀樂譜的便利性外,仍有更多分析追蹤技術可以和目前架構相結合。如此一來,

就可以讓使用者有更多細緻的操作功能,更多提升音樂創作效率的空間。

參考資料

[1] H. C. Longuet-Higgins and M. J. Steedman. On interpreting bach. Machine Intelligence, 6, 221-241, 1971.

[2] Gabrielsson, A. Studies in rhythm. Acta Universitatis Upsaliensis, 7, 3-19, 1973.

[2] Gabrielsson, A. Studies in rhythm. Acta Universitatis Upsaliensis, 7, 3-19, 1973.

相關文件