用 Max/MSP 編寫顆粒合成(Granular Synthesis):從聲音切片到創意聲響設計

顆粒合成(Granular Synthesis) 是數位聲音處理中一項兼具技術性與藝術性的聲響生成方法。簡單來說,它將一段聲音素材切分為極短、不可分辨的聲音單元(稱為 grains),再透過時間與參數操控將其重組,創造出具有特殊紋理與動態變化的聲音場景。

為什麼選擇顆粒合成?

顆粒合成的關鍵在於「時間粒度」的操作。這些聲音顆粒長度介於數毫秒到數十毫秒之間,當成千上萬個顆粒以不同速度、方向、包絡線重疊時,聲音的質地會呈現出豐富的動態與顆粒感。這種聲響結構常見於:

  • 電子與實驗音樂作品

  • 聲音裝置與互動設計

  • 時基(time-domain)與頻率拉伸的動態合成

A, B, C 分別為從同一個音訊 Sample 中所擷取出的不同聲音顆粒。

想了解更多關於「顆粒合成」在物理與數學上的運算細節,可參考 wiki 上的資料以及這篇文章

歷史脈絡與創作者參考

顆粒合成的觀念可追溯至 20 世紀中期的電子音樂先驅,如:

這些作品展示了顆粒合成如何從理論構想發展成為一種完整的聲音創作語彙。

使用 Max/MSP 實作顆粒合成效果器

之前我們曾上傳過一部Demo影片:

這次我們在Max程式中以中英文加註了比較清楚的說明,方便大家使用。

在Max中編寫的簡易顆粒合成效果,預留了幾個常見的控制項。

在這邊跟大家解釋一下每個小區塊的功能。上可以看到幾個有數字的黃色小圓圈。小圓圈0是效果的開關。小圓圈1是讓使用者可以直接把sample丟進去讓效果器讀取,寫進[buffer~]中,並且會同時抓取該sample的長度。此區塊有一個Slider讓使用者可以調整欲播放的位置(Sample Position)

小圓圈2是調整「顆粒播放的長度(Duration)」,今天聲音的顆粒,大小方面,可以像一粒沙,也可以像一顆大饅頭。當你擾動這些顆粒,即使原始的聲音素材相同,但因為顆粒的大小不同,自然會出現的聲音質感就會很不一樣。此區塊所放置的Slider可以設定「範圍」,範圍越大,你的顆粒長度就越長、概念上就越大顆。2毫秒以內的時間長度,通常會聽起來像極短的click聲,將無法分辨其原始內容;大於25毫秒後會逐漸清晰、可聽出該聲音事件的輪廓。

小圓圈3是聲音Sample的「播放速度」顆粒的「間隔(Interval)」。想像你抓了一把顆粒,你撥弄顆粒的速度可快可慢、顆粒跟顆粒間的間隔距離也可大可小。播放速度越快,音高就會越高,這邊類似於移調(Transposition)效果。「間隔」越大,則顆粒跟顆粒間的時間差也會越大。若是間隔時間設定極短、顆粒又很大的話,就會互相覆蓋、聲音相疊。間隔時間大到一定程度,例如300毫秒以上,聽起來就會有點類似DJ常用的Stutter或Beat Repeat效果。

小圓圈4是音量的Envelope。這邊相信常使用合成器的玩家們都很熟悉,就是改變顆粒聲音出來跟消失的速度。在本次分享的Patch中,數值都是設定為0-1的浮點數。

大家應該有注意到,這些控制項都是用send/return的方式送出與接收,讓 Max Patch 整體上看起來不至於太凌亂。這些與顆粒運算有關的數值,包括 Position、Length、Transposition、Envelope AR 等等,最後都送到一個叫 voice 的 subpatch。截圖如下,其中[play~]這個物件是用來重複播放使用者丟進去的聲音素材,依照控制需求不同,也可用[groove~]物件來替換。

透過簡單的幾個參數設定,替換預錄Sample就可以創造出各式各樣帶有不同氛圍的聲音質地,是不是很好玩呢?聲音合成就是一件看似抽象,深入探究卻如此有趣的事情。

這個效果示範的特色,在於其架構相當直接明瞭,沒有額外的複雜迴圈且不耗CPU,因為過程中完全沒有用到[poly~]物件,所有訊號處理都是在單一層級的運算中完成。[poly~]的使用技巧較為進階,通常在比較大的專案中才會採用。在Max官方的教學示範中,顆粒合成的應用被放置於[poly~]相關章節中。

Max for Live 或進階應用?

若你希望將此效果整合至 Ableton Live,可考慮轉換為 Max for Live 裝置,我們也歡迎你提出具體需求,協助進行客製化開發或教學。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

相關文章

返回頂端