流體(這裡具體是空氣)物理引擎能否純靠計算,而非播放對應錄音,以逼真地吹響3d建模的笛子?

比如,電鋼琴就是事先錄下了漸變粒度非常小的非常多組真實鋼琴的聲音,然後根據按鍵程度播放。
然而,有沒有可能在機器內部建立3d物理模型,靠引擎計算其中模擬碰撞擴散出的真實聲波,來告知喇叭應該發出什麼聲音。
想不到更好的例子,大概用這個類比對笛子進行的流體振動建模吧……


目前在圖形學裡面,SIGGRAPH上的論文,主要只是能實現音準上的模擬,而不太能實現音色上的模擬。一個比較現實的原因是音準很好量化,比如說Fundamental Frequency(基頻),A4就是440Hz,模擬出來就得是440Hz,如果要求高一點也就是多考慮幾個Overtone(泛音)同時進行優化。但是對於音色來說的話,比較主觀,我不太清楚有什麼可以很好量化音色的方法。

像是15年SIGGRAPH上的Aerophone in Flatland, 實現了2D domain real-time wave simulation,大概的形狀如下圖所示。 youtube視頻。 這篇文章沒有考慮怎麼延展到3D,而且文章末尾的comparison也說了:我們和真實的樂器比較發現模擬和真實的差別很大。

去年我的SIGGRAPH 2016的項目 Acoustic Voxels, 能夠通過模擬+優化,既能快速的模擬,又能夠3D列印出音準準確的類似於小號的樂器 (bilibili, youtube). 主要是通過預先解好很多frequency-domain的Helmholtz eqation然後很快的像樂高積木一樣,能夠把複雜的結構拼接然後計算出來。我們的方法不僅可以用在樂器的模擬,而且也可以用到消音器的設計,acoustic encoding,以及HCI(人機交互)的一些領域(見下圖)。

半年後的SIGGRAPH Asia 2016,Autodesk Research的 Printone 更進一步,把設計的過程加速到interactive rate,用戶可以實時設計類似豎笛的樂器

除了笛子這些基於空氣的樂器之外,我們組的另外一個合作的項目@Raymond,就是做優化金屬木琴 (Metallophone)的設計。這個項目也是優化新奇形狀的金屬,使得能夠滿足指定的基頻和一兩個泛頻,(bilibili, youtube)。

總的來說,graphics里這一系列的工作都主要強調音準的準確性,但是音色都不是特別的理想,這其中娛樂性質+對於新形狀的探索 &> 樂器的音色的追求。而且因為大部分方法是在頻域里分析和優化的,所以也缺失了很多時域上的細節。

逼真的模擬3D建模的笛子估計還有很多問題需要研究,目前短期來看,播放錄音是比較實際的方法。


樓上的角度很對,可以從acoustic的角度進行計算。但是要考慮在吹奏笛子的時候不光有流體的acoustic問題需要求解,笛子發出的聲音有可能(不太確定)一部分是由於流體與笛子內壁共振發聲,此時還需要考慮固體震動。
綜上,可以直接求解該類問題,但是可能需要用LES級別的網格加時間步,耦合求解固體方程組,計算量巨大無比......


物理建模的音源是存在的,比如 PianoTeq 和 TruePiano。

只是目前似乎跟實際音色還差得很遠。


幾個高贊答案其實都說的不錯了,我在補充一些:

如果光是氣體震動,即便是暴力DNS也是「achievable」(雖然運算量有點喪心病狂但還是屬於堆得出來的範圍),而且很多管樂器都是形狀比較簡單的多孔諧振腔,比較好model,硬算不是太有意義。

然而,問題的關鍵在於……這個諧振腔在抖,而且還抖得很快……不僅很快,還一堆boundary反射形成奇形怪狀的駐波……

然後由於固體那部分模擬需要的時間和空間尺度都比氣體小(大概小1-2個數量級),為了把寶貴的titan留給g胖就需要寫個時空vms之類的,再把沉迷steam的時間拿來tune材料參數和那層薄薄的還在抖的邊界層(ó﹏ò?)


以現在的計算機能力不可能,樂器泛音列存在大量複雜而且多變的問題,只能根據大致泛音情況進行象徵性地模擬。。要逼真還差得很遠呢,當然對於忽悠不怎麼了解信息科技和樂器發聲原理的外行來說,不管怎麼扯都對


Computational aeroacoustics
這個應該 @Kaiser


計算機能力夠的話,肯定是能算啊。笛子發聲的基本聲學現象,都研究過了。

不過這玩意有時候有不確定度的。所以也不一定了。

音樂聲學是聲學的一個重要分支,有很多人是專門研究這個的,也有很多參考書。


推薦閱讀:

單憑吹口哨的聲音能分清是男生還是女生嗎?
娃娃音是天生的還是裝的?
播音時,身體各個部位的狀態?
聲音的距離感是是如何產生的?
男生聲音像女生怎麼辦?

TAG:音樂 | 聲音 | 流體力學 | 計算流體力學CFD | 微流道 |