無盡的殘骸

這篇博文是關(guān)于65daysofstatic的《Wreckage Systems》(殘骸系統(tǒng))。《Wreckage Systems》是一個無限音樂直播作品。你可以在這里(https://www.youtube.com/65propaganda/live)觀看,也可以在這里(https://65daysofstatic.com/)聽純音頻版本。它并不是一個游戲,盡管它是在Unity中建立的,且所有的音頻都在Wwise中運行。實際上它部分是一個準(zhǔn)學(xué)術(shù)研究項目,部分是“一個突然無法巡演的樂隊所制定的針對大流行病的應(yīng)急計劃”。它是一個頑固的烏托邦式的嘗試,試圖找到新的方式來寫和表現(xiàn)音樂,也是一個借口,來制造很多不一定有機會進入65daysofstatic更傳統(tǒng)產(chǎn)出的噪音創(chuàng)作嘗試。我將在下面進入它的Wwise內(nèi)核,但首先要介紹一下它的背景,即為什么它存在。
背景
早在2014年,我的樂隊65daysofstatic被要求為《No Man's Sky》創(chuàng)作原聲音樂。這意味著不僅要寫一張充滿線性、歌曲形式的常規(guī)配樂專輯,還要構(gòu)建一個無限長的、動態(tài)的配樂,以配合Hello Games所創(chuàng)造的無限大的、程序生成的宇宙。
我們是作曲家,但創(chuàng)建 《No Man's Sky》音頻框架的重任是由音頻總監(jiān)(可能是魔法師)保羅-威爾(https://Twitter.com/earcom)負(fù)責(zé)的,所以關(guān)于這些無限的聲景如何在游戲中實際建立的技術(shù)細(xì)節(jié)并不是我們真正要講述的。然而,作為一個樂隊,我們渴望充分利用配樂的生成性,因此我們投入到互動音樂技術(shù)的速成課程中,并匆匆忙忙地深入?yún)⑴c到這個過程中。我們帶著關(guān)于制作非線性音樂的無數(shù)想法和對音樂的基本性質(zhì)的新的存在性擔(dān)憂來到了另一邊。
大約在同一時間,偶然的是,我正在攻讀博士學(xué)位,探索流行音樂背景下的算法作曲策略(就是關(guān)于你”如何可以將這些策略應(yīng)用于像我這樣的嘈雜的現(xiàn)場樂隊“的研究)這種將游戲音樂開發(fā)和實驗性算法音樂研究應(yīng)用于65daysofstatic的事件在幾年內(nèi)持續(xù)平行發(fā)生,并開辟了許多我一直渴望探索的未開發(fā)的領(lǐng)域。
盡管我的整個成年生活都在使用電腦制作音樂,但在這一切結(jié)束時,我對任何可以被普遍描述為算法驅(qū)動的、程序性的或生成性的音樂技術(shù)應(yīng)用于創(chuàng)作的說法都產(chǎn)生了深刻的批判,甚至經(jīng)常持懷疑的態(tài)度。不是因為我不認(rèn)為計算機能夠自主地制造有趣的聲音結(jié)構(gòu),而是因為——對我來說,揚聲器發(fā)出的實際聲音只是音樂的一小部分。你可以給計算機所有的基于機器學(xué)習(xí)、神經(jīng)網(wǎng)絡(luò)的超人工智能,但你永遠(yuǎn)無法給它意圖——你永遠(yuǎn)無法給它一顆破碎的心、過剩的浪漫,它永遠(yuǎn)不會理解在一個狹小的房間里和它的朋友們一起制造混亂的噪音,或者在重復(fù)的節(jié)拍下整夜跳舞的快樂。
然后,就有了《Wreckage Systems》。這是一個持續(xù)進行的項目,我們在互聯(lián)網(wǎng)上無休止地播放不斷變化的音樂,試圖解決這種辯證關(guān)系:"計算機永遠(yuǎn)不可能真正理解嵌入到音樂中的意義是什么;應(yīng)該是我們使用計算機自主地制造有意義的音樂"。
《Wreckage Systems》是一個對當(dāng)代藝術(shù)家被不合理地要求去折騰無限音樂內(nèi)容的藝術(shù)化表達(dá)嗎?或許,但它還是一個看看在自動音樂失去所有意義之前,音樂家們能把它推到什么程度的嘗試,也是一個由Wwise驅(qū)動的Unity項目來完成的由大量的算法撞擊聲、悲傷的鋼琴聲、突兀的霹靂聲、自由爵士樂循環(huán)、田野錄音、程序化合成器旋律以及一大堆其他生成性音樂系統(tǒng)組成的集合體。
如果你對進一步解釋《Wreckage Systems》背后的哲學(xué)和藝術(shù)思想的博客文章,以及對我們使用的個別作曲技術(shù)進行的更詳細(xì)的分解感興趣,那么請看看我們的Wreckage Systems Patreon,這是我們選擇的維持這個奇怪的音樂實驗的方式。若您想要預(yù)覽,這里(https://www.patreon.com/posts/49480111)有一篇解鎖了的文章,討論了更多關(guān)于我們在《No Man's Sky》上的經(jīng)驗。如果你喜歡烏托邦式的馬克思主義,那么這里(https://www.patreon.com/posts/49157817)有一篇與項目有關(guān)的歷史唯物主義的大膽運用。而本文接下來的其余部分將具體考察Wwise項目,為您揭示該項目如何驅(qū)動存在于《Wreckage Systems》廣播中的65個不同的自主音樂系統(tǒng)。
整體結(jié)構(gòu)
在直播中總共存在65個不同的 "Wreckage System"。每個系統(tǒng)在Wwise中都有自己的一套聲音和行為,并經(jīng)常在Unity中借助自定義腳本對行為進行延展。因為《Wreckage Systems》不是一個游戲,也因為它只是以音視頻流的形式向公眾提供,而不是以軟件的形式,所以我們可以圍繞音頻輸出設(shè)計一切,而不需要考慮磁盤空間、DSP線程、發(fā)聲數(shù)、音頻質(zhì)量等等限制。它不需要成為任何傳統(tǒng)意義上的交付的產(chǎn)品。
為此,或多或少每個Wreckage Systems在Wwise中都有自己的SoundBank,其中充滿了所需的高質(zhì)量音頻。還有一個額外的SoundBank,一直在加載一般的背景隆隆聲(Drone)、靜態(tài)嘶嘶聲和偶爾的UI音效。
直播流中的廣播循環(huán)就像一系列的無線電傳輸,從靜止?fàn)顟B(tài)中出來,然后又落回靜止?fàn)顟B(tài)中。當(dāng)一個新的系統(tǒng)上線時,它加載SoundBank,開始運行,并從靜態(tài)中交叉淡化到系統(tǒng)正在制作的音樂中。當(dāng)系統(tǒng)接近尾聲時,它又回到靜態(tài),卸載已完成的系統(tǒng)的SoundBank,并重復(fù)這個循環(huán)。系統(tǒng)很少堅持超過7-8分鐘,所以如果你看廣播至少有這么長的時間,并跟隨日志的內(nèi)容,你應(yīng)該能夠注意到這個動作。(哦對,它偶爾也會黑掉自己……)。
Wreckage System的類型
65個不同的系統(tǒng)中的每一個都基于一個概念,我們稱之為 "constellation heart"(凝聚之心)。這里有一個來自我們Patreon的簡短視頻,以非技術(shù)性的方式解釋了這個概念。

基本上,我們在這個視頻中想說的是,在可能的情況下,我們沒有讓我們建立的主要音頻框架限制任何特定系統(tǒng)的主要音樂理念。每個系統(tǒng)的 "constellation heart"是系統(tǒng)音樂想法的核心,是使該特定系統(tǒng)獨特的東西,也是我們需要不惜一切代價保護的東西,以阻止該項目成為一個包含65種不同口味的平庸的生成性聲景的系統(tǒng)。有時,一個系統(tǒng)的 "constellation heart"?就像一組特定的獨特樣本一樣簡單。有時,這個系統(tǒng)可能耗費了幾天或幾周的時間去構(gòu)建,因為它充滿了互動音樂的Music Switch Container?與 Playlist Container,還具有定制的Stinger和Transition,無法與任何其他系統(tǒng)通用。通常,這意味著Unity中還包含了一套額外的自定義腳本,不僅僅是啟動或停止Wwise事件,而是會擴展系統(tǒng)的行為——也許是通過生成MIDI音型,也許是利用事件上的各種回調(diào)命令來實時創(chuàng)造音樂。盡管我們盡力確保每個"constellation heart"的想法的獨特,但仍有必要在一定程度上概括所有系統(tǒng)的運作方式。
因此,在所有系統(tǒng)的頂層是一個非常通用的游戲同步狀態(tài)。這有七個通用狀態(tài)。
Beginning??
State_00??
State_01??
State_02??
State_03??
State_04??
Ending??
一個系統(tǒng)可以選擇忽略這些狀態(tài),把相同的東西分配給所有的狀態(tài),但是每個系統(tǒng)都從它的起始狀態(tài)開始,在它的結(jié)束狀態(tài)結(jié)束。如果系統(tǒng)正在使用不同的狀態(tài),那么它可以選擇通過使用該系統(tǒng)特有的自定義sequencer在它們之間移動,或者使用一個通用的sequencer,在系統(tǒng)決定運行多長時間的過程中隨機切換它們。
除了這個頂層的機制之外,Wwise中的系統(tǒng)實際的樣子,可被以如下方式劃分:
ACTOR-MIXER?系統(tǒng)
比較簡單的系統(tǒng)是那些傾向于聽起來更氛圍化或聲景化的系統(tǒng)。這種音樂往往是在Actor-Mixer Hierarchy結(jié)構(gòu)中使用Random Container和Blend Container的配合來生成的。(在聽了太多年糟糕的算法音樂之后,我堅信只要核心旋律或聲音足夠有趣,用極其簡單的隨機化方式反而可以走得更遠(yuǎn))
Wwise也很適合將簡單的隨機化進行分層,從而造更復(fù)雜的變化。例如,這里有一個叫做Unravelling的系統(tǒng):

在上圖左側(cè),你可以看到它是如何被構(gòu)建的——所有的東西都存在于一個單一的Blend Container中,當(dāng)系統(tǒng)啟動時就會被觸發(fā)(子Blend Container是歌曲的不同部分)。截圖中突出顯示的容器'Busy',只有在'State_01'處于激活狀態(tài)期間才能聽到。在Unravelling這個例子中,其他容器代表對應(yīng)其他狀態(tài)。別的系統(tǒng)可能具有對應(yīng)多個狀態(tài)的容器,或者具有多個容器同時混合的狀態(tài)。

仔細(xì)看看我們創(chuàng)造變化的方法,展開'DulcimerPhrases'容器可了解它如何工作。核心是一個隨機容器,它從一個都在同一音階內(nèi)的揚琴音符樣本池中播放一個音符樣本。它的父類是一個序列容器,循環(huán)6次,Max Offset為2,Crossfade Duration為0.5,Min Offset為-0.2。它的父容器是DulcimerPhrases容器,每8秒觸發(fā)一次,最大偏移量為8。 這一切加起來就是,每8-16秒一次,它將播放一個6-8個揚琴音符的短音型,在時間上有一點變化,使它聽起來更人性化。
正如你所看到的,這個容器與Blend Container中的其他容器放在一起,這個Blend Container是系統(tǒng)的一個特定狀態(tài)。其他狀態(tài)有不同的采樣,不同的層次結(jié)構(gòu),不同的工作方式。有些包含循環(huán),有些是單獨的打擊樂樣本,以固定的速度重復(fù)......?這種可能性基本上是無窮無盡的。
unravelling_excerpt.mp3:https://www.audiokinetic.com/media/blog/infinite-wreckage/unravelling_excerpt.mp3
相對的,這里有一個簡單一些的系統(tǒng),叫Papour。

這個系統(tǒng)不使用狀態(tài)。它有三個隨機容器,每個容器都充滿了類似的36個樣本。每個容器都有不同數(shù)量的低通濾波器,以7到20秒間不同的Trigger rate觸發(fā),中間的容器被調(diào)低一個八度。采樣本身是長長的、類似Blade Runner配樂中的合成器的音符,我們在65HQ錄制,使其充滿了粗糙感和混響,為其賦予了現(xiàn)場調(diào)節(jié)的濾波器掃頻變化。將這一切都送入Wwise中的另一個巨大的混響總線,你就瞬間得到了一個科幻聲景!
papour_excerpt.mp3:https://www.audiokinetic.com/media/blog/infinite-wreckage/papour_excerpt.mp3
其他的Actor-Mixer系統(tǒng),例如Mist_Crackle,在音頻內(nèi)容和復(fù)雜性方面也同樣精簡,但使用方式不同,在Wwise中作為采樣樂器存在。

有些樂器是用許多樣本在整個范圍內(nèi)進行映射的(比如被多個系統(tǒng)使用的主鋼琴)。其他的,比如上圖中的 "CrackleToneSynth",則是比較精簡的。這個系統(tǒng)只用了三個采樣的音符映射到整個音域,并通過一些漂亮的混響進行處理。
對于這樣的系統(tǒng),與其使用Unity中的通用Sequencer來循環(huán)播放狀態(tài),不如使用自定義腳本,以這樣或那樣的方式創(chuàng)建音樂模式,然后將它們作為MIDI音符發(fā)送到Wwise。Mist_Crackle是一個環(huán)境聲景,精確的節(jié)奏既不重要也不需要,它在Unity中使用一個coroutine loop,從可能的MIDI音符庫中提取,并通過一些簡單的隨機化創(chuàng)造出一個由緩慢的氛圍旋律和較低音區(qū)的和弦進行組成的聲景。
mistCrackletone_excerpt.mp3:https://www.audiokinetic.com/media/blog/infinite-wreckage/mistCrackletone_excerpt.mp3
INTERACTIVE MUSIC?系統(tǒng)
其他系統(tǒng)使用了Wwise中比較常見的互動音樂實現(xiàn)方法,利用了Horizontal Sequencing和Vertical Remixing技術(shù)。我不會在這里說得太詳細(xì),因為對于Wwise的用戶來說,這可能是創(chuàng)作互動音樂最常見的使用情況。下面是一個基于Interactive Music Hierarchy的系統(tǒng)的例子:

這個系統(tǒng),Available Data,基于一首線性的、具體的歌曲,是作為Wreckage系統(tǒng)研究的一部分而寫的。預(yù)先 錄制的版本是一首12分鐘的節(jié)奏、合成器、吉他和噪音構(gòu)成的龐然大物。(如果你想聽的話,可以在這里(https://65daysofstatic.bandcamp.com/album/available-data)收聽) 它的殘骸系統(tǒng)相當(dāng)于被設(shè)計成同樣長、同樣兇猛的主題變體,每次出現(xiàn)時都是這樣。上面的截圖顯示了其結(jié)構(gòu)。所有東西都住在一個開關(guān)容器里,各種播放列表充滿了不同的軌道和子軌道。另外這個系統(tǒng)具有很多自定義的Stinger和Transition,且在Unity側(cè)有一個自定義的音序器,使用加權(quán)概率在各狀態(tài)中移動。這需要大量的平衡,但結(jié)果是Available Data的每一次迭代都能夠可靠地播放頭尾及兩部分間的松散骨架(像原本一樣),且每次都會觸發(fā)新的段落、循環(huán)和變化。
availabledata_excerpt.mp3:https://www.audiokinetic.com/media/blog/infinite-wreckage/availabledata_excerpt.mp3
組合系統(tǒng)
另有很多系統(tǒng)是以混合Actor-Mixer系統(tǒng)及Interactive Music系統(tǒng)的形式存在的。

Malign系統(tǒng)是為那些“你是一個沮喪的賽博朋克偵探,在某種昏暗的電子酒吧里喝掉你的悲傷”的時刻提供的末日爵士樂配樂。它基于一個非常簡單的、刻意重復(fù)的循環(huán),在一個互動音樂播放列表容器中運行。最重要的是,Unity通過回調(diào)來觸發(fā)這個循環(huán)。然后,它使用這些回調(diào)來跟蹤每個新的循環(huán)的開始,在每個循環(huán)的開始,它決定是否要在電鋼琴上做一個小的旋律模式,或吉他,或兩者都不是。
如果它決定演奏吉他,那么它就通過Wwise事件觸發(fā)隨機容器,從大量的樣本集合中觸發(fā)一個樂句。如果它決定彈奏電鋼琴,它就會使用一些自定義代碼,使用MIDI音符編號創(chuàng)建一個新的旋律模式,然后通過調(diào)度MIDI音符并將其發(fā)布到指向采樣的電子鋼琴樂器的Wwise事件中,在隨后的循環(huán)中播放它。
由于Unity浮動的幀率,以這種方式運用回調(diào)會面臨一些微小的節(jié)奏波動,但在像Malign這樣的系統(tǒng)背景下,微小的時間上的不穩(wěn)定卻會有助于使旋律人性化。(我們還運用這種技術(shù)進行過一些實驗——用回調(diào)的方式產(chǎn)生快速的breakbeat段落,結(jié)果就相對不太成功了)。
malign_excerpt.mp3:https://www.audiokinetic.com/media/blog/infinite-wreckage/malign_excerpt.mp3
結(jié)論
本文中這些例子粗略地勾勒出了大部分系統(tǒng)的構(gòu)建方式,但它所希望的是展現(xiàn)出這個項目的意義——在”某種可通用的、可擴展的框架“和”允許在每個系統(tǒng)的基礎(chǔ)上整合自定義行為的系統(tǒng)“之間找到一個平衡。作為一個樂隊,《Wreckage Systems》向我們展示的是(這純粹是一個主觀的觀點)——在這個一切都自動化的時代,當(dāng)涉及到制作有意義的藝術(shù)時,選擇更曲折的方式并動用蠻力變得越來越重要。通過各種手段--使用計算機來尋找、建立和使用工具來幫助你穿越所有那些痛苦的平庸,這樣你就可以更快地找到你潛意識中的鉆石。但在這個過程中,無情地編輯和摒棄那些不夠好的東西,這就是創(chuàng)作。而所有這些規(guī)劃,這些意向性,就是"constellation heart"。它是永遠(yuǎn)無法被概括的。

保羅-沃林斯基(PAUL WOLINSKI)
保羅-沃林斯基是一位作曲家,65daysofstatic的成員,聲音設(shè)計師,實驗音樂研究者,總體上,搞怪是他的興趣所在。除了Wreckage Systems,他最近的工作是意外地成為Phi Games的Recompile(2021)的UI程序員。他在Twitter上偶爾出沒,個人網(wǎng)站是polin.ski。如果你的游戲需要很酷的音樂噪音,何不考慮一下65daysofstatic?
