2011-11-21 77 views
4

我目前正在開發一個關於使用演化算法模擬吉他效果的專業化項目,並且希望使用Python和CSound來做到這一點。CSound和Python通信

這個想法是在Python中的算法中生成效果參數,將它們發送到CSound並將過濾器應用到音頻文件,然後將新的音頻文件發送回Python以執行頻率分析以與目標音頻文件進行比較(這將在循環中完成,直到音頻文件足夠類似於目標音頻文件,因此CSound和Python之間的發送/接收將完成很多)。如何獲取Python將數據發送到CSound(.csd文件),如何讀取.csd文件中的數據,以及如何將.ound文件從CSound發送到Python?同樣優選的是,這可以自動工作,直到滿足音頻文件的標準。

預先感謝

+0

Csound是否有能力爲您做分析?看來這篇文章是關於它的:[實時頻譜處理工具(pvs opcodes)](http://www.csounds.com/manual/html/SpectralRealTime.html) – Wolf

回答

1

從蟒發送參數值,以CSound的可以用OSC協議

從CSound的將音頻發送到蟒可以通過路由插孔通道在兩個應用程序之間進行來完成

+0

我會看看osc協議,雖然我不熟悉兩個應用程序之間的路由插孔通道。 – jk87

+1

如果您在Linux系統上,最簡單的方法是使用qjackctl,並簡單地在應用程序 –

+0

之間繪製一個連接,我正在Windows 7中工作,並且很快就不會切換到Linux系統。 – jk87

1

您可以使用Csound的python API,因此您可以在python中運行Csound並使用軟件總線傳遞值。見csound.h。您可能還想使用csPerfThread包裝類,它可以在Csound運行時調度和發送消息。所有功能都可以從python獲得。

+0

我已經看過一點點到Python API中,所以我想我可以發送參數給CSound而不會有太多的麻煩。 但我還沒有找到一種方法將音頻文件從CSound發送到Python,它似乎沒有任何簡單的內置函數(糾正我,如果我錯了,我可能忽略了它)。 – jk87