網站首頁 文學常識 簡歷 公文文書 文學名著 實用文 人生哲理 作文 熱點話題作文
當前位置:文萃咖 > 實用範文 > 論文

作曲中的節奏複雜度探析論文

欄目: 論文 / 發佈於: / 人氣:9.02K

一、節奏及節奏複雜度

作曲中的節奏複雜度探析論文

音樂包含節奏、曲調、和聲三大要素,然而要怎麼精確的定義“節奏”,卻不是一件容易的事,有人説節奏是拍子結構上的一種變化,有人説節奏包括了音樂中所有與時間相關的因素,而知名的音樂學家 Curt Sachs 曾經這樣形容“節奏”這個詞,“沒有廣泛被接受的意義”。

二、作曲中的節奏表示法

目前一共有四種節奏表示法,前面兩種是以原本音樂的表示法,也就是以平常所見的樂譜上的形式來呈現,後面兩種則是在分析節奏是較常使用到的方式,去除了原本音符的長度,只留下音符出現的時間點。

第一種方式是音樂當中最熟悉、最常見的表現方式。以五線譜的方式來表示節奏,只有一個小節拍號為 4/4,因為加上了反覆記號,所以會重複一遍,最小的單位是十六分音符所以會將此小節切成十六等分。第二種方式通常是使用在打擊樂器上,同樣是樂譜的表示方式。比起五線譜,少了音高的表示,只是很單純的表示出節奏。但在打擊樂器中,樂器所發生的聲響只有一瞬間,實際上是無法表示出音符長度的,所以可以將原本音符的長度去掉,只留下發生聲音的那個時間點,其餘的位置由休止符補上。第三種方式是音樂學家 James Koetting 在研究非洲復節奏時所提出的表示法 box notation,這樣的表示法取代了傳統樂譜,以圖像化的方式清楚地表現出節奏的模樣,比起樂譜更適合用在節奏複雜度上,其中“x”標示着發出聲音的點,也就是音符開始的位置,而原本沒有聲音的位置,也就是休止符所在的點,則由“?”標示。最後一個表示法以計算機科學的方式來表示,在只有 0 跟1 的計算機的世界,將先前的 box notation 轉換成為二元表示法,以 1 代替“x”標示着發出聲音的點,以 0 代替“?”標示休止符所在的點,這樣的'表示法可以最直接的使用在計算機程序上,在此篇論文中,系統實踐時就是以這樣的表示法在進行。

三、作曲中的節奏複雜度分析實踐

在上述四種複雜度的基礎上,我們將原來 Metric 對於複雜度的定義,加上前面所提及應用在不同拍號以及不規則節奏的延伸定義,在系統實踐當中,以 Music XML 作為輸入的格式,按照拍號把每個小節切割出來,再按照指定的基礎單位,建立所有點的權重,因為 Metric 必須以同樣 onset 個數的權重總和最大值作為基準相減,所以分別必須算出每個小節的 onset 個數,再按照先前建立好的權重找出最大總和,如果沒有不規則節奏,則按照此權重算出每個小節的複雜度,如果在節奏當中發現不規則節奏,則調整權重,按照調整後的權重算出複雜度。

拍號上方的數字代表的是一個小節有幾拍,稱為 beat count,在系統當中可以接受所有整數的 beat count,拍號下方的數字代表的是音符時值,也就是以何種單位當作一拍,稱為 beat unit,在此係統當中只能接受二的冪次方為音符時值,雖然也是有以非二的冪次方作為 beat unit 的音樂作品,但其實這樣的拍號與音樂節奏,是可以調整而成以二的冪次方作為 beat unit 的樣子,所以我們沒有實踐非二的冪次方作為 beat unit 的拍號在此係統當中。其中預設的拍號有六種 beat count,我們將simple 以及compound 兩種拍號的 metrical hierarchy 定義在程序裏面。如果使用者輸入這六種以外的拍號,則會要求使用者自行定義 metrical hierarchy,如果使用者希望將預設的拍號重新定義,也可以按照輸入的 metricalhierarchy 去建立權重。

在系統當中,所有的權重都以 0 為最大值作為最高階層的數值,以下的階層則以負數表示,以方便在出現不規則節奏時,找到最小階層的權重值往下減一,如果按照原來 Metric 的正數階層,在碰到不規則節奏需要設定下一階層的權重值的時候,則會需要將所有權重值往上加一,因為 Metric 是算出與最簡單節奏也就是權重總和最大值的差,所以只要階層之間的相對位置沒有被改變,正數負數並不影響結果。

四、作曲中的節奏產生方法

上述實踐系統除了將樂曲分析節奏複雜度以外,也實踐了以節奏複雜度為基礎的節奏產生方法,將一個複雜度的數值反過來產生出一小節的節奏,以 Metric 複雜度定義為基礎,讓使用者指定拍號、基礎單位以建立權重,指定 onset 個數、輸入複雜度,建立出最簡單節奏也就是權重總和最高、複雜度最低的節奏,然後以移動 onset 使其複雜度增加,直到符合指定的複雜度,另外也可選擇加入不規則節奏,提高複雜度。

就節奏產生的步驟而言,假設我們要產生出一個拍號 4/4、基礎單位為十六分音符、小節裏面一個有六個 onset 的節奏,第一步,首先我們找出權重值當中六個最大的數值,第一個一定是0 所在的位置也就是第一拍,第二個是-1 所在的位置也就是第三拍,然後第三個與第四個則是第二拍與第四拍,權重為-2 的兩個位置,接着剩下兩個,我們從下一層-3 當中隨機選出兩個點,於是將 onset 都放上這些點的位置,成為了複雜度為 0 的最簡單節奏。建立了最簡單的節奏之後,再按照輸入的複雜度,去移動 onset 的點,符合我們所指定的複雜度值。以複雜度 3 為例子:首先,我們隨機指定一個 onset 的點,假設我們找到了權重-3 的這個位置,然後移動到-4 這個位置,我們的複雜度就變成了 1;進而,我們再隨機指定一個 onset 的點,假設我們找到了權重-2 的這個位置,然後移動到同樣是-4 的另一個位置,複雜度就變成了 3。這樣一來,就可產生出符合我們所指定的複雜度的節奏。有一點需要特別注意的,如果設定了某些拍子會有不規則節奏產生時,我們會從調整過的權重去尋找最簡單的節奏,但此時所建立出來的最簡單節奏的複雜度值,有可能不是 0。