我喜歡電子音樂,而且我對它的一切都很敏感。 我在Stack Overflow上發現了許多有用的問題,可以用來播放音頻,濾鏡等。但是我真正好奇的是實際開發的是什麼:數據如何在效果和振盪器之間傳遞?我已經對dsp的數學方面進行了研究,並且我已經瞭解了這個問題的結尾,但我不確定使用什麼緩衝系統等。最終目標是讓一個簡單的對象影響和振盪器傳遞數據彼此之間(也許使用多線程,如果我最終沒有拉出我的頭髮試圖實現它)。這不會是下一個Propellerhead的原因,但我對它是如何工作感興趣,而這更像是一個練習,而不是一個會產生最終產品的東西。從零開始創建一個DSP系統
目前我使用.net和C#,最近我學到了F#(這可能會導致一些有趣的數據處理方式),但如果這些不適合這項工作,我可以學習另一個系統if必要。
問題是:通過程序使用緩衝區獲取大量信號數據的最佳方法是什麼?例如,我會更好使用隊列,數組,鏈接列表等?我應該讓樣本不可變,並且每次向系統應用效果或僅編輯緩衝區中的值時創建一組新的數據?我有一個調度器/線程池風格的對象,組織傳遞數據或應該效果函數之間直接傳遞數據?
謝謝。
編輯:另一個相關的問題是,我將如何使用Windows API播放這個數組?我真的不想使用DirectShow,因爲微軟現在已經差不多了。
編輯2:感謝所有的答案。在查看所有技術後,我將使用XNA 4(我花了一段時間拖網因特網,發現this site解釋瞭如何操作)或NAudio輸出音樂......不確定哪一個還取決於先進程度系統結束了。當C#5.0出來時,我會使用它的異步功能來創建一個效果架構。我幾乎每個人的回答都是平等的,所以現在我有一個難題給誰獎勵...
你能問一個具體的問題嗎? – Amy 2011-06-13 20:18:41
是的,對不起,它有點含糊。 – 2011-06-13 20:50:58