2012-01-04 128 views
0

我有興趣創建音頻插件,例如壓縮器或合成器VST插件。雖然我確實想從一個簡單的失真插件開始。C++音頻插件的音頻庫?

我以爲我會用C++來做它。

我想知道哪個音頻庫會適合這種情況?

我的靈感來自Sonalksis壓縮機和Reason的Mälstrom。

+0

爲什麼平臺?另外,你對「音頻庫」的定義是什麼?你在尋找像LADSPA這樣的界面嗎?你是否已經知道這將是一個VST插件? – sellibitze 2012-01-04 09:56:00

回答

1

Juce不會是一個不好的地方開始。

1

我建議你看一下以下資源:

  • Faust從DSP處理的高級別描述生成C++代碼(在其他語言中)。它可以輸出使用大量音頻API和GUI庫的代碼。
  • Juce。已經被@SSteve提及,它是一個跨平臺的C++庫,專注於音頻應用程序。
  • STK是一個獨立於平臺的聲音合成庫和一些DSP。
  • 如果你能得到The Audio Programming Book,那就做吧!
  • 另一種選擇是使用PD來描述您的DSP進程,然後使用LibPD將其嵌入到C++程序中。我爲嵌入式設備上播放的音樂節目做了這個,你可以看到一個完整的教程here和代碼here
  • RTAudioRTMidi對我也很有幫助。
  • 關於C++音頻編程的另一個棘手問題是線程間通信。我建議你閱讀this
0

這裏有一些可能會感興趣:

  1. WDL/iPlug, Oli Larkin Edition:這其中有在Cockos論壇主題爲它很多用戶貢獻的程序和控件(一個很長的線程)。但是,如果您檢查問題,您會發現RTAS/AAX插件在PT上存在穩定性問題;與互斥體有關。它擁有很多用它製作的插件。
  2. RackAFX:這個爲你創建一個項目模板,並允許你定義GUI元素。 DSP在Win32 C++中完全取決於你,但它爲GUI創建了一些處理代碼。編譯好你的插件之後,它也有一個排序的表單設計器,允許你配置和重新排列GUI元素。但是,它不支持AAX/RTAS插件。
  3. SynthEdit:也許不是你期望在C++列表中找到的一個,但我相信它可以發出C++代碼 - 用於修改或學習。是的,它的確可以做音頻插件,而不僅僅是樂器。
  4. "A Collection of Useful C++ Classes for Digital Signal Processing"是另一種實現了很多有用的技術,並且依賴於C++模板很多;但公平的警告:它自己的程序員認爲它的類庫很難閱讀,並且設計非常糟糕。
  5. 最後,an STK author聲稱CLAM,Csound和SndObj當前也支持工具包。 Csound是它自己的語言,但是CLAM和SndObj有C++庫。不過,我對他們瞭解不多。

BTW:浮士德看起來有趣,但它的網站目前是一個存根,例如沒有下載。但是,其SourceForge頁面已打開。不利的一面是,我認爲它不支持VST3而沒有第三方破解。另一方面,它是支持Linux插件的少數幾個之一。 FWIW:JUCE只收取一個插件的商業許可費用,還有更多的商業插件許可費。如果這個插件只是給你的,或者是非盈利的,它會工作的很好。它是這裏提到的少數支持AAX和RTAS的之一。