2011-12-18 68 views
0

我不太確定是否應該在這裏提出這個問題。 我想製作一個藝術項目。 我想將語音用作輸入,並將圖像用作輸出。 圖像隨聲音而變化。實時藝術項目---輸入:聲音---輸出:圖像(更好的標題?)

我該如何認識到這一點?因爲我需要實時或低於50毫秒的延遲。 起初我會用微控制器更好。 但我想計算巨大的圖像,也許我微控制器不能做到這一點。例如我想計算10.000個移動物體。 我可以通過windows/linux/mircocontroller來實現嗎?

這將是非常好的,如果我可以使用Python。 或者你的東西加工是一個更好的選擇?

您需要更多的細節?

回答

5

您是否想過使用像Pure Data(Pd)或Max這樣的圖形數據流環境? Max是一種商業產品,但是Pd是免費的。

即使您沒有最終使用Pd作爲您的最終項目,它也是一款出色的快速原型開發工具。雖然Pd的圖形處理能力有限,但有些擴展如GridflowGem,可能對您有所幫助。當然,使用Pd可以使用[fiddle〜]對象分析傳入聲音,這會給出各個部分的整體音高和頻率/幅度,以及[env〜],這將給出RMS幅度。然後,您可以非常方便地將聲音(音高,振幅,音色)的變化映射到Gem或Gridflow中圖像的各種屬性,如顏色,形狀,元素數量等等。

即使在現代臺式機GPU上,10k移動物體聽起來也是很多!即時計算所有這些位置將消耗資源的批次。我認爲即使使用像openFrameworks這樣的專用C++圖形庫,這也可能是一個難題。您可能需要考慮優化策略,例如預渲染圖像方面,並使用實時音頻控制來確定在任何給定時間顯示哪些預渲染組件。這可能會導致對10k對象的控制錯覺,實際上大部分對象都是預渲染的。

祝你好運!

+0

你的文章幫了我很多。謝謝! :) – kame 2011-12-18 20:07:07

1

上述答案很好,PD非常靈活,但如果你想要更多面向代碼的東西,更適合與MCU混合,處理可能會更好。

另一個好辦法是使用Csound和Csound Python API。 Csound的學習曲線非常陡峭,但音頻分析功能數噸,非常適合低延遲運行。您可以實時分析輸入信號,然後將控制值發送到圖形環境,並使用Python編寫腳本。