2009年5月3日 星期日

「即時互動音樂」程式設計架構

一般製作互動音樂,有兩種方式,一種是全自動的方式,一種是使用MIDI踏板來切換每個階段的參數更動。

互動音樂的程式架構包含三部分:

(1)音樂姿態分析、聲音元素的分析:一般而言,最常用的是fiddle~這個物件,可以使用這個物件偵測獨奏樂器的音高,以及音量。有了音高、音量,更可以進一步分析出「樂句」(利用樂句之間的靜音來偵測出樂句的長短等)甚至「節奏型」、「音類集」。全自動的互動音樂,非常需要這一部份,寫曲子時要特別安排,例如當第一次遇到某一個音高時、或樂句長度超過某種長度、或節奏型恰巧符合某種節奏、或音類恰巧符合某種音類、或音量大於某一程度、或音域在某一範圍,就打開gate 物件,使其觸發某一事件(如觸發聲音檔案的播放、效果器的開啟、或軟體音源)。但這一部份是最複雜的,且會讓你的音樂材料使用上有所限制,所以不建議初學者使用這種全自動的互動音樂。
此外,由於演奏場地的不同,麥克風的不同,我認為初學者除非有專業老師指導,否則這部分大概要揣摩好一陣子。初學者可以改用MIDI 的 sustain pedal,透過control message 以及counter 和 select 物件的運用,將每一個音樂片段的指令事先用select 物件設定好,等待sustain pedal 推進 counter ,進而使select依照所收到訊息,送出你所設定的各種即使效果器、聲音播放的開關、各種參數漸變等。

(2) 準則控制:將第一部分輸入聲音經過音高、音量等分析的結果,加以處理、比較、過濾,而決定何時要開啟效果器、或將fiddle~分析出的參數於串連於效果器中的參數中,即時互動控制。此部分常使用邏輯判斷、比較、運算等的物件來操控效果器的一切運作。這部分的巧思可以使得一般常用的效果器化腐朽為神奇。且在技術上的學習,較不會有太多物理、電子、數學等先背知識不足的瓶頸,很適合作曲家、藝術家放較多的心力去學習與構思。

(3) 樂器模組:樂器模組可以是即時效果器、或軟體音源、聲音播放裝置等。當第一部分的訊息觸發了預設的指令之後,進而打開樂器模組,產生聲音,或用第一部份的音量分析結果與第二部分的各種準則,來控制某個效果器的參數與相關運作。例如音量大到某個程度,便開啟某個聲音檔案的播放等。又例如設定不同的音域範圍來驅動不同的預設參數。關於樂器模組本身,網路上有免費的 external object。你也可以透過vst~物件,去使用商用軟體的vst plug-in,cycling74網站最近已經貼出vst plug-in 的使用說明教材及 rewire 的教材。然而若要深入研究此部分,製作自己的軟體樂器和效果器,則通常要花非常多的時間去研究物理、數學等理論,但也唯有如此,才能讓你更能雕塑出獨特的音色或音樂織度。

(4) 聲音輸出:這個部分很簡單,只要利用receive~ 或 send~ 物件,或直接用線連接,將沒有效果器的樂器輸入、效果器出來的聲音等,全部都做在一個版面上,並利用 receive 及 send 物件,接受第一部份所傳來的各種參數(如音量的漸強漸弱等),以便於演奏時調整方便。另外,也可以善用 matrix~ 物件串連每個模組之間的輸入輸出。

架構就是如此囉,第一部份觀眾並不會太注意,所以我以為初學者可以用踏板驅動或用自動分析來推進,也可以達成相似目的,只是效果器的使用如果純靠踏板來控制,一方面容易使演奏者分心,一方面也若沒有很細微的控制,很容易造成效果器的過度使用,使得音樂產生強烈的段落區隔,產生結構上拼貼式的粗糙。後者則除了讓現場聽眾產生驚喜,更可以使得效果器的操控更為細緻而不需要演奏者反覆練習。而在第二部分中,若能善用max 的功能來做效果器的自動控制,則每個效果器依照自動控制程式的設計,彼此按照不同的規則做姿態上的起落,則常可以造就出非常令人驚豔的音樂織度。至於第三部份,常用的效果器就是那些,包括 reverb, harmonizer, delay, granular,或一些physical modeling 的軟體音源,以及多個聲音文件同時播放的裝置。想要更深入研究的人,也可以研究各種相關的樂器模組、即時效果器模組等,以便於有能力在同中求異。

初學者,可以多用聲音檔案和一些別人寫好的物件來做第二部份,來簡化製作過程,否則真的要深入研究效果器與虛擬樂器的製作,大概需要四年以上的苦工,和名師的指導。

互動音樂創作者,除了平時要多收集有效果的樂器模組(虛擬樂器、即時效果器等)之外,指導老師也很重要,有很多模組以及音樂姿態分析的程式碼,就像密技一樣,每個優秀的老師都有獨到的方法,學會、弄懂原理之後,就慢慢變成自己可用的語言,或許稍加修改,就可直接套用囉。當然若能自創效果器,總是比較有機會跟別人不一樣,特別是此部分,我以為完全自學,實在進步有限。不過 max/msp 文件夾中有很多不錯的patch,倒是不錯的研究材料。

有其他看不懂的地方,再提出問題吧。

沒有留言:

張貼留言