2013-03-26 75 views
0

我正在研究家庭釀造遊戲引擎,我目前正致力於音頻引擎的實現。這主要是出於自我教育的原因。我想爲通用音頻處理創建一個接口包裝器,因此我可以根據需要在OpenAL,XAudio2或其他平臺之間切換。我也希望這個代碼是可重用的,所以我試圖儘可能地完成它,並且讓不同的系統實現儘可能多的功能。目前,我關注的是XAudio2的實現,並可能會在稍後的日期繼續進行OpenAL實施。XAudio2遮擋處理

在過去的幾個月裏,我在3D處理(聽衆/發射器),環境影響(混響),排斥,遮擋,障礙和直接聲音方面閱讀了很多。我希望能夠在音頻播放中使用這些效果中的任何一種。儘管我已經盡我所能研究了這些主題,但我無法找到任何有關如何實際實現遮擋(直接和反射信號消聲),阻塞(直接信號消聲)或排除(反射信號消聲)的任何示例。閱讀MSDN文檔似乎被動地引用了遮擋,但沒有直接涉及到實現。我發現最好的是一個通用的「使用低通濾波器」,這並沒有多大幫助我

所以我的問題是這樣的:使用XAudio2,如何將實現音頻反射信號消音(排除)和音頻直接信號消聲(阻塞)還是兩者同時(阻塞)?音頻圖是什麼樣子的,這些與混響環境效應有什麼關係?

編輯2013年3月26日
論圖進一步的思考,我意識到,我可以不看,從正確的角度看圖形。
如果圖形顯示爲:源→效果(次混音)→掌握
- 或 -
應的曲線出現一般如下:

 ↗→ Direct → Effects ↘ 
Source       →Mastering 
     ↘→ Reflections → Effects ↗ 

第二圖表將拆分圖表,使得排除阻塞可以分開計算;我的一部分困惑是如何獨立處理它們。
那麼我會認爲3D音頻DSP結構中的混響設置會應用到反射路徑;多普勒將適用於直接或直接和反射路徑;而混響環境效應只會影響反射路徑。這是否接近正確的音頻圖模型?

回答

0

您希望您的圖形看的線沿線的東西:

輸入數據--->低通濾波器--->輸出

爲源變得更加阻塞你調整低通濾波器。您也可以使用低通濾波器增益來模擬吸收。過濾器設置最好設置爲使其可以通過聲音設計器進行調整。

這篇文章涵蓋了更詳細的聲音傳播史:http://engineroom.ubi.com/sound-propagation-and-diffraction-simulation/

在這則一直沿着圖形環境影響,如混響傳遞方面,你只是想那些進一步進行降圖:

輸入--->低通濾波器--->輸出--->混響---->主輸出

這樣混響的聲音將匹配被遮擋的聲音(否則它會聽起來奇怪,混響不匹配直接信號)。

使用低通濾波器聽起來模糊和不完整,但實際上沒有比濾波高頻和調整增益更多的效果。對於更高級的環境建模,您希望研究諸如「預計算波動模擬在複雜場景中動態源的實時聲音傳播」(我無法直接鏈接,因爲我沒有足夠的代表!),但它可能這超出了你想要達到的範圍。

+0

感謝您的回答。閱讀後,它似乎不適合我的問題的實施方面。我用一些想法編輯了我的問題,但我可能對此感到困惑。從本質上講,僅僅傾銷低通濾波器似乎會影響直接和反射,我想知道如何單獨應用。 – 2013-03-26 17:57:38

+0

低通濾波器近似直接和間接信號的總和。如果你想分開他們,我會在輸入階段做到這一點。如前所述,間接信號通過低通濾波器等。直接信號在輸入端分開,並饋入增益(以便可以改變直接/間接平衡),然後重新加入輸出階段的主信號路徑(就在混響之前)。當混響正在建模您正在聽的位置(而不是聲音來自的位置)時,您希望兩者都輸入到混響中。 – MikeJones 2013-03-27 15:49:43