top of page

[Valhalla系列]開始設計混響效果,第一部分:開發環境

作家相片: Alex ChenAlex Chen

你也可以設計混響算法


多年間,我經常收到關於如何開發混響算法的問題。很多情況下,提問者會加上一句:“我不是電子工程師,但......”。作為人類學專業的畢業生,我可以證明,不用經過四年制學術訓練也能設計混響效果!


設置開發環境


在我看來,所有的理論如果無法聽到結果,都是沒有用的。因此,我建議從設置一個或多個開發環境開始你的混響效果設計之路。理想情況下,你需要一個能夠在接近實時的狀況下聽到你的作品,並且可以將你選擇的音頻運行進你的算法中。


已經會編程?用 Juce 吧!


太棒了!我推薦你下載 Juce SDK。Juce 是許多插件開發者用來創建插件的框架。它不僅能處理插件的音頻部分,還能處理可視化部分,支持所有主流的插件格式(AU, VST2, VST3, AAX, Mac, Windows, Linux, iOS, Android),而且它是免費和開源的,讓你可以輕鬆入門。

當你想要將插件商業化發布時,Juce 提供了幾種付費選項來閉源使用代碼。我強烈建議安裝 Juce SDK,編譯範例插件,並修改它們,作為開始設計自己插件的起點。


不會編程?試試計算機音樂語言


我的建議是使用一個計算機音樂語言或環境,這樣你可以學習數位信號處理和算法的基礎,而不需要理解代碼。當我在1998年開始編程混響時,我使用的是 Csound。即便在當時,這也是一個老派的語言,但它包含了製作混響所需的所有基本組件


Delay line-延遲線:延遲線讓你能夠讀寫內存緩衝區,並在每個樣本中遞增這個緩衝區。讀取點與寫入點之間的距離決定了信號從輸入到輸出的延遲量。算法混響通常有數個到數十個這樣的延遲線,且每個延遲長度不同。


Filters-濾波器:數位濾波器用來控制信號的高頻或低頻平衡。在數位混響中,濾波器通常位於延遲的反饋路徑中,信號經過濾波、按一定值縮放,然後重新添加到輸入。


Modulators-調制器:許多數位混響(包括所有 Valhalla 混響)會緩慢變化延遲長度,這需要分數延遲並使用線性或高階插值,但這已超出本介紹的範圍。重點是你需要某種調制器來緩慢地改變參數,這通常是低頻振盪器或某種帶限噪聲。


Add/subtract/multiply-加/減/乘:這些是構建反饋環路、在延遲周圍傳遞信號、縮放混響輸出以及將信號在輸入前混合的基本構件。


今天,你有許多可以用於實驗這些基礎計算機音樂構件的實時選項。大多數現代音樂 DSP 環境使用視覺化界面來將信號處理模塊進行類似於模擬合成器的連接。


- Pure Data:這是一個免費、開源的實時計算機音樂環境,幾乎可以在所有平台上運行——Windows、Mac、Linux、嵌入式硬件等等。它的界面不太美觀,但功能非常強大。對於混響設計,你會想使用帶有 allpass~ 單元生成器的 Pd-Extended 分支,因為這是算法混響的重要構件。


- Max/MSP:這是 Pure Data 的商業閉源版,界面更美觀。它內置了延遲和 allpass 單元生成器。更重要的是,它擁有幾十年的有用範例代碼。


- Max4Live:這是 Max/MSP 的一個較新版本,能在 Ableton Live 中作為音頻和 MIDI 效果運行。如果你使用 Live 作為音樂製作工作流的一部分,那麼它是一個非常強大的入門環境。我在 2020 年初開始使用 Max4Live,並用它為我的講座創建了一些範例,這些範例後來成為了 ValhallaSupermassive 的核心算法。在 Max4Live 中,你可以做很多事。


-Bitwig Studio:最近更新了 Grid 環境,擁有 170 多個 DSP 模塊,可以在視覺化界面中進行連接。我還沒嘗試過,但聽說有人在這裡成功地設計了 allpass 延遲混響。


-Reaktor:這個環境過去幾十年來一直有一些不錯的混響範例,值得下載各種混響並打開來研究其工作原理。



想學習編程?專注於 C++ 吧。


我的大多數 DSP 代碼是用 C++ 編寫的,但它更接近於“帶有類的 C 語言”——我傾向於在低級 DSP 模塊中不使用 C++ 的高級功能。Juce 和許多其他音頻 SDK 都使用 C++,因此學習 C++ 將對你非常有幫助。


在視覺化 DSP 語言中進行開發,通常比基於文本的語言更快上手。創建一個簡單的混響原型,在 Max/MSP 或 Max4Live 中的速度遠快於用 C++ 創建完整的 DSP 和 GUI 代碼基礎。


視覺語言的缺點是,隨著算法的復雜性增加,它會變得像一團打結的項鏈,難以理解。而基於文本的語言通常有 for() 循環等功能來處理重複操作,這是許多混響算法的核心動作。不過,如果你剛剛開始,我還是強烈建議先嘗試視覺化語言,看看它能帶你走多遠。


這是我其中一個 Max4Live 混響的簡短片段



下一篇博客文章,我會列出我認為是混響文獻中的“經典”論文。感謝閱讀!

1 次查看0 則留言

最新文章

查看全部

[Valhalla系列] Reverb 101: Size

原始文章 數位混響中的Size參數 在數位混響中,Size是最常見的參數之一。這個參數有時以百分比表示,但在其他情況下則以米或立方米表示。但在數位混響中,Size究竟是什麼意思? Size如何運作? 在大多數數位混響中,Size用作構成數位混響網絡的部分或全部延遲長度的標量...

Comments

Rated 0 out of 5 stars.
No ratings yet

Add a rating

©2023 ALXC 版權所有。

bottom of page