Schroeder混響的算法相對(duì)而言比較簡(jiǎn)單,而且也能達(dá)到一個(gè)非常不錯(cuò)的效果。但是隨著后來(lái)的發(fā)展,Schroeder算法也存在一些可以改進(jìn)的點(diǎn),例如上圖(圖6)的預(yù)梳理和預(yù)延時(shí)模塊,如果想獲取更加逼真的效果,在早期反射其實(shí)不能夠完全按照Schroeder模型進(jìn)行設(shè)計(jì),要增加APF以及Pre-delay模塊,或者可以考慮是否可以增加更加多的Comb來(lái)獲取更多的回聲密度、后端的APF是否可以嵌套使用等等。在Schroeder的基礎(chǔ)之上,Moorer的數(shù)字混響模型也就誕生了,下圖(圖8)為Moorer脈沖響應(yīng)模型圖:
Moorer算法模型大概將一個(gè)混響分成了三個(gè)階段:直達(dá)聲、早期混響、晚期混響。早期混響通過(guò)增加前級(jí)反饋和FIR來(lái)模擬,同時(shí)增加低通濾波器來(lái)模擬高通在空氣中的衰減效果,后端增加到6個(gè)Comb組以及APF的嵌套使用。
隨著目前大家對(duì)音頻相關(guān)產(chǎn)品的需求增加,混響對(duì)于音頻設(shè)備來(lái)說(shuō)已經(jīng)成為一種基本需求。那么在混響中又有哪些參數(shù)調(diào)整?在ADI的DSP中我們?cè)撊绾芜x擇DSP去設(shè)計(jì)一套合理的算法?接下來(lái)將對(duì)混響的具體參數(shù)調(diào)整以及選擇ADI的DSP設(shè)計(jì)合理算法進(jìn)行深入解析。
目前做一個(gè)專業(yè)級(jí)的混響需要設(shè)置許多的參數(shù),有些參數(shù)是必備的,而有些是特定的需求下慢慢增加起的。專業(yè)的效果器一般包含如下圖(圖9)的一些參數(shù):
圖9 混響的相關(guān)參數(shù)
? 混響時(shí)間:能夠逼真地模擬自然混響的數(shù)碼混響器上都有一套復(fù)雜的程序,其中雖然有很多技術(shù)參數(shù)可調(diào),然而對(duì)這些技術(shù)參數(shù)的調(diào)整都不會(huì)比原有的效果更為自然,尤其是混響時(shí)間(取決于預(yù)延遲時(shí)間,以及衰減速率和收斂的判定)。
? 預(yù)延遲時(shí)間:在混響效果器上的眾多參數(shù)中,預(yù)延遲時(shí)間(Predelay)是一個(gè)比較重要的點(diǎn)。所謂的預(yù)延遲時(shí)間,指的是達(dá)到人耳的直達(dá)聲和第一次反射聲之間的時(shí)間間隔。在混音中,預(yù)延遲時(shí)間的選擇是與我們的基準(zhǔn)時(shí)間有著一定的關(guān)聯(lián)性的。而基準(zhǔn)時(shí)間的計(jì)算方式一般來(lái)說(shuō)就是拿60秒除以音樂(lè)BPM的值(取決于直達(dá)聲之后做的延遲時(shí)間以及FIR的時(shí)間)。
? 高頻滾降:此項(xiàng)參數(shù)用于模擬自然混響當(dāng)中,空氣對(duì)高頻的吸收效應(yīng),以產(chǎn)生較為自然的混響效果。一般高頻混降的可調(diào)范圍為0.1~1.0。此值較高時(shí),混響效果也較接近自然混響;此值較低時(shí),混響效果則較清澈(取決于低通濾波器的階數(shù)以及截至頻率的設(shè)計(jì))。
? 擴(kuò)散度:此項(xiàng)參數(shù)可調(diào)整混響聲陣密度的增長(zhǎng)速度,其可調(diào)范圍為0~10,其值較高時(shí),混響效果比較豐厚、溫暖;其值較低時(shí),混響效果則較空曠、冷僻(取決于Comb Filter的D值選取以及回聲密度遞增數(shù)值)。
? 聲陣密度:此項(xiàng)參數(shù)可調(diào)整聲陣的密度,其值較高時(shí),混響效果較為溫暖,但有明顯的聲染色;其值較低時(shí),混響效果較深邃,切聲染色也較弱(取決于Comb Filter的數(shù)量)。
? 頻率調(diào)制:這是一項(xiàng)技術(shù)性的參數(shù),因?yàn)殡娮踊祉懙穆曣嚸芏缺茸匀换祉懴∈瑁瑸榱耸够祉懙穆曇舯容^平滑、連貫,需要對(duì)混響聲陣列的延時(shí)時(shí)間進(jìn)行調(diào)制。此項(xiàng)技術(shù)可以有效地消除延時(shí)聲陣列的段裂聲,可以增加混響聲的柔和感(取決于Comb Filter的延時(shí)時(shí)間)。
? 混響類型:不同房間的自然混響聲陣列差別也較大,而這種差別也不是一兩項(xiàng)參數(shù)就能表現(xiàn)的。在數(shù)碼混響器當(dāng)中,不同的自然混響需要不同的程序。其可選項(xiàng)一般有小廳(S-Hall)、大廳(L-Hall)、房間(Room)、隨機(jī)(Random)、反混響(Reverse)、鋼板(Plate)、彈簧(Spring)等。其中小廳、大廳房間混響屬自然混響效果;鋼板、彈簧混響則可以模擬早期機(jī)械式混響的處理效果。
? 干濕比:干聲信號(hào)和混響信號(hào)的比例,調(diào)節(jié)直達(dá)聲以及混響信號(hào)的分量比重。
從這些后續(xù)發(fā)展出來(lái)的參數(shù)不難看出,涉及的調(diào)節(jié)選擇變得越來(lái)越多,那么對(duì)于設(shè)計(jì)者來(lái)講如何挑選合適的參數(shù)和類型去搭建自己想要的產(chǎn)品就變得非常重要。
DSP和混響類型的選擇
在實(shí)際的生產(chǎn)應(yīng)用中,選擇混響的類型,并不是直接去選一個(gè)最完善的類型就好了。實(shí)際上很多時(shí)候應(yīng)用達(dá)不到這個(gè)條件,越完善的混響類型意味著對(duì)DSP的內(nèi)存空間的需求以及算力的大小都是有需求的,然而很多成本預(yù)算不是那么充足,或者工作環(huán)境對(duì)功耗等等方面都有需求的產(chǎn)品,我們是無(wú)法選擇那么一個(gè)比較高復(fù)雜度的混響。
舉個(gè)很簡(jiǎn)單的例子,比如A客戶需要做一個(gè)輕量級(jí)的吉他拾音器,拾音器主要的目的就是拾音,當(dāng)然為了豐富一些效果,可能我們需要調(diào)節(jié)高中低頻的EQ,加一個(gè)混響,在這個(gè)時(shí)候,選擇一個(gè)ECHO類的混響要比選擇MOORER類的混響好太多。從控制成本和功耗的角度上來(lái)講,雖然ECHO類并不如Moorer類的好,但是在演奏中已經(jīng)夠用,復(fù)雜的可以通過(guò)拾取后,送到效果器或者功放中去實(shí)現(xiàn)。
在選擇時(shí),建議都要根據(jù)自己的產(chǎn)品類型合理地從成本、封裝體積大小,以及功耗上選擇最為合適的產(chǎn)品。
ADI DSP在ECHO類算法的基本實(shí)現(xiàn)
眾所周知,ADI在音頻的DSP上相當(dāng)有競(jìng)爭(zhēng)力,從其Sigma到Sharc 類的DSP均用到了各類的音頻電子產(chǎn)品中。如下圖(圖10)所示為ADI SigmaDSP產(chǎn)品選型對(duì)比表:
圖10 SigmaDSP的產(chǎn)品選型對(duì)比表
下圖(圖11)為ADI Sharc DSP產(chǎn)品選型對(duì)比表:
圖11 SharcDSP的產(chǎn)品選型對(duì)比表
ADI SigmaDSP的產(chǎn)品是定點(diǎn)的數(shù)字信號(hào)處理器,而SharcDSP即全浮點(diǎn)的數(shù)字信號(hào)處理器。全浮點(diǎn)的DSP可以處理復(fù)雜度比較高的混響,SigmaDSP一般用于處理一些簡(jiǎn)單一點(diǎn)的混響。以下將展示一些ECHO類混響在DSP上的應(yīng)用實(shí)現(xiàn),目前混響主要對(duì)內(nèi)存的空間需求是比較多的,存在著很多Delay。
在ADAU1701和ADAU1761中的實(shí)現(xiàn):
圖12 ECHO類混響在ADAU1761中的實(shí)現(xiàn)
從上圖(圖12)可以看出,直達(dá)聲直接作為干音傳到輸出端,將音源的左右通達(dá)合成一路用來(lái)減少內(nèi)存空間和算力的消耗,用三個(gè)延時(shí)線創(chuàng)造混響空間,傳到后端進(jìn)行低通濾波,實(shí)現(xiàn)高頻滾降。這樣做能夠得到一定量的混響的效果,但是回聲密度不夠,增益調(diào)節(jié)以及擴(kuò)散度和頻率調(diào)制是無(wú)法實(shí)現(xiàn)的,適合一些輕量化的產(chǎn)品應(yīng)用。我們?cè)赟harcDSP中一般直接通過(guò)代碼來(lái)實(shí)現(xiàn),例如下方的ECHO類回聲的實(shí)現(xiàn):
創(chuàng)建一個(gè)DSP混響的效果器。以下圖(13)是一個(gè)使用Python和NumPy庫(kù)實(shí)現(xiàn)的簡(jiǎn)單DSP混響效果的示例代碼: