朱青
算法作曲實(shí)際上就是希望通過采用某種形式化的方法,從而使得作曲家在利用計(jì)算機(jī)進(jìn)行音樂創(chuàng)作時(shí)參與的程度最小化的研究。對(duì)算法作曲問題的研究,一方面可以通過了解作曲家在創(chuàng)作音樂時(shí)的思考方式進(jìn)而對(duì)其進(jìn)行模擬,另一方面算法作曲的研究成果對(duì)于指導(dǎo)和開發(fā)不同的作曲系統(tǒng)有很大的幫助,而這些系統(tǒng)生成的不同形式的音樂作品,對(duì)于傳統(tǒng)樂曲制作也提供了有益的補(bǔ)充。
一、轉(zhuǎn)換表
在算法作曲技術(shù)中,最簡(jiǎn)單而有趣的方法就是根據(jù)轉(zhuǎn)換表來依次選擇音樂中的音符,從而完成整個(gè)樂曲的創(chuàng)作。轉(zhuǎn)化表的功能類似于一個(gè)函數(shù),它的輸入?yún)?shù)是當(dāng)前的音符,而其輸出結(jié)果則是下一個(gè)將要出現(xiàn)的音符。轉(zhuǎn)化表的構(gòu)造,可以按照一定的規(guī)則手工進(jìn)行生成,同時(shí)還可以在其中嵌入某個(gè)特定的音樂風(fēng)格。當(dāng)然,對(duì)具體音樂風(fēng)格轉(zhuǎn)換表的構(gòu)造,需要事先對(duì)這一時(shí)期或具有這一風(fēng)格的音樂作品進(jìn)行收集和統(tǒng)計(jì),然后根據(jù)一定的標(biāo)準(zhǔn)構(gòu)造出相應(yīng)的轉(zhuǎn)換表,這個(gè)轉(zhuǎn)換表中音符的相互轉(zhuǎn)化,隱含了具有該種風(fēng)格音樂的音符變換的可能性。
為了獲得更多的結(jié)構(gòu)信息,我們必須將通常使用的轉(zhuǎn)換表從2維擴(kuò)展到n維,在n維轉(zhuǎn)換表的應(yīng)用中,下一音符的取值是由樂曲中該音符的前(n-1)個(gè)音符所決定的,n值越大,則轉(zhuǎn)換表就對(duì)上下文越敏感,而這樣的轉(zhuǎn)換表就更能體現(xiàn)出其所蘊(yùn)涵的音樂風(fēng)格。然而隨著n的取值越來越大,轉(zhuǎn)換表的大小會(huì)呈指數(shù)級(jí)增長(zhǎng),這樣如何構(gòu)造出這樣大規(guī)模的轉(zhuǎn)換表成為一個(gè)難題,而且如何進(jìn)行存儲(chǔ)和快速運(yùn)算都比較麻煩。由于n值加大,對(duì)于轉(zhuǎn)換表中的一些局部信息運(yùn)算時(shí)會(huì)被丟棄,從而導(dǎo)致樂曲的局部細(xì)節(jié)無法控制。因此我們通常的做法是在系統(tǒng)中交替使用高階表和低階表,高階表用來從整體宏觀上控制音樂的風(fēng)格,低階表則用來在局部細(xì)節(jié)生成具有新的風(fēng)格樂曲片斷。
基于轉(zhuǎn)換表的作曲方法有兩個(gè)缺點(diǎn):一次不能預(yù)測(cè)出多個(gè)后續(xù)音符,每次只能預(yù)測(cè)下一個(gè)音符;對(duì)于一些對(duì)上下文比較敏感的過程如何表示還無法解決。
二、隨機(jī)過程
和轉(zhuǎn)換表不同,基于隨機(jī)過程方法的算法作曲系統(tǒng)每次生成的音符不是確定的,而是根據(jù)一定的概率進(jìn)行選擇。我們實(shí)現(xiàn)對(duì)各個(gè)音符的出現(xiàn)概率進(jìn)行統(tǒng)計(jì)分析,在此基礎(chǔ)上建立一個(gè)概率查找表,這個(gè)概率查找表中記錄了每個(gè)音符出現(xiàn)的概率,它是我們以后選擇哪一個(gè)音符作為下一個(gè)音符的基礎(chǔ)。
目前,在算法作曲領(lǐng)域中經(jīng)常使用的隨機(jī)過程是馬爾科夫過程,所謂馬爾科夫過程是指一個(gè)過程的“未來”僅依賴“現(xiàn)在”而與“過去”無關(guān),則我們稱這個(gè)過程具有馬爾科夫性質(zhì),也可稱此過程為馬爾科夫過程。如果一個(gè)事件具有馬爾科夫性質(zhì),則我們可以通過對(duì)大量的樣本進(jìn)行統(tǒng)計(jì),得出先驗(yàn)概率(狀態(tài)轉(zhuǎn)移概率),然后根據(jù)狀態(tài)轉(zhuǎn)移概率對(duì)事件的運(yùn)行狀態(tài)進(jìn)行選擇。對(duì)于任何具有時(shí)間序列關(guān)系的事物而言,當(dāng)前事物都可以視為前一事物的運(yùn)行結(jié)果,這正是馬爾科夫理論所要表達(dá)的內(nèi)容,這點(diǎn)也正好符合音樂藝術(shù)本身的旋律連續(xù)性的特性。
同樣,運(yùn)用馬爾科夫過程我們也要建立一個(gè)轉(zhuǎn)換表,這個(gè)轉(zhuǎn)化表的功能類似于一個(gè)函數(shù),它的輸入?yún)?shù)是當(dāng)前的音符,而其輸出結(jié)果則是下一個(gè)將要可能出現(xiàn)的音符(根據(jù)概率進(jìn)行選擇),這是它和傳統(tǒng)轉(zhuǎn)換表之間的區(qū)別。目前建立的許多算法作曲系統(tǒng)都使用的是馬爾科夫隨機(jī)過程,Cybernetic Composer系統(tǒng)中Ames和Domino就是這類算法作曲系統(tǒng)模型的一個(gè)范例。
將隨機(jī)過程應(yīng)用于算法作曲,其存在的主要缺點(diǎn)是:1.對(duì)于具有某種音樂風(fēng)格的作品的創(chuàng)作,必須事先分析很多具有這種風(fēng)格的音樂片段,從中發(fā)現(xiàn)并找到某些必要特征的概率,而對(duì)這些音樂片段的選擇是否典型且具有代表性,是比較難以判斷的事情。2.隨機(jī)生成的片段和整體音樂之間是否符合,以及簡(jiǎn)單地把這些音樂片段合為一體就形成一首樂曲是否符合音樂的整體要求,這些都是因?yàn)閺妮^低層次的細(xì)節(jié)獲取較高層次的樂曲旋律是比較困難的(整體不簡(jiǎn)單等于部分之和)。3.隨機(jī)過程中所使用的概率分布表(即狀態(tài)轉(zhuǎn)移表)必須包含盡可能多的音樂信息,然而對(duì)其權(quán)重如何分布從而保證概率的可靠性,這也是一個(gè)無法解決的問題。
三、基于分形幾何結(jié)構(gòu)的算法作曲
分形幾何的原意是指不規(guī)則、支離破碎的意思,它于1973年提出。分形幾何是一門主要研究非規(guī)則幾何形態(tài)的幾何學(xué),由于自然界中普遍存在著不規(guī)則現(xiàn)象,因此有時(shí)分形幾何又被稱為研究大自然形態(tài)的幾何學(xué)。
分形幾何學(xué)中最關(guān)鍵的思想是自相似性(局部和整體結(jié)構(gòu)上的相似),當(dāng)我們討論音樂時(shí),會(huì)發(fā)現(xiàn)音樂具有一種天然的自相似性(即局部樂曲片斷和整部樂曲的相似)。
如果我們把一首樂曲的音符音階隨時(shí)間的變化作一個(gè)波動(dòng)曲線,我們就會(huì)發(fā)現(xiàn)音樂的這種波動(dòng)既有隨機(jī)性又有一定的相關(guān)性,而具有這種特性的樂曲會(huì)給人帶來一種悅耳的感覺。研究表明,一般所有的音樂節(jié)律都類似于1/f噪音,不論何種類型的音樂都會(huì)有這種1/f噪音,這表明了節(jié)律波動(dòng)的這種共性,正好體現(xiàn)了音樂的本質(zhì)。
一種稱為分形音樂被設(shè)計(jì)出來,它是通過一個(gè)算法的多重迭代生成的,所設(shè)計(jì)出的音樂具有自相似性,其中先建構(gòu)一些帶有自相似小段的合成音樂,然后設(shè)計(jì)帶有小調(diào)的多次的返復(fù)循環(huán)中的主題,同時(shí)在節(jié)奏方面加上一些隨機(jī)變化。這樣生成的音樂效果非常有趣。還可以利用分形幾何的原理對(duì)現(xiàn)有音樂進(jìn)行改變(主要是壓縮操作),其試驗(yàn)結(jié)果表明改變后得到的音樂依然具有原音樂的風(fēng)格。
分形幾何在算法作曲中的應(yīng)用主要是給算法作曲提供了一個(gè)新的思路,同時(shí)通過這種方式可以建立音樂和美術(shù)之間聯(lián)系,為以后多媒體音樂和交互式音樂的開發(fā)和研究提供了思路和依據(jù),從某種意義上來說就是從美術(shù)或者幾何學(xué)的觀點(diǎn)來控制音樂的生成,這樣生成的音樂更具有邏輯性。然而音樂所說的邏輯性和美術(shù)涉及的邏輯性是否能在一定程度上統(tǒng)一,還需進(jìn)一步研究論證。