2013-12-17 29 views
0

我有一張專業的聲卡,我想用C++或c#錄製來自吉他的信號,以便實時開發吉他效果。用C++或C實時錄製聲音

如何通過C++方法實時記錄?

是否意味着我需要聲卡API? this one夠了嗎?

回答

3

雖然可能不如使用預構建函數庫那麼簡單,但您可能能夠從製造商那裏獲得用於聲卡的C++ SDK。我將首先瀏覽他們的網站或聯繫支持。

如果這不是一個選項,您還可以使用DirectSound,它是DirectX系列產品的一部分。學習曲線相當陡峭,但我相信它應該做任何你想做的事情。

最後一個選擇是查看最喜歡的工具(如聲音僞造)。許多這些工具都支持自動化,這意味着您可以單擊應用程序,決定想要的內容,然後自動執行該事件序列(例如See this)。

希望有所幫助,祝你好運!

邊注:我已經開發了一些硬件接口,根據我的經驗,最好從一個例子開始,它至少具有您正在查找的內容,然後從那裏修改代碼。如果任何特定的選項沒有這樣的例子,我可能會跳過它,贊成一個例子。

例子

直接聲音 - 微軟有直接的聲音的學習網站,您可以find here。我還發現this blog article有一個用直接聲音錄製音頻的例子。

Sound Forge - 如果您下載了「腳本開發工具包」,那麼腳本文件夾中有C#示例可供您啓動。我相信這個特定的工具更側重於編輯和效果,但我猜測應該有自動化的記錄。

+0

非常感謝:) +1爲您的答案。 你有沒有簡單的例子?我知道採樣是PCM ..我想我會從捕捉筆記本電腦集成聲卡輸入輸入的聲音開始,以基本示例爲例...然後嘗試詢問製造商是否有適合我專業聲音的SDK卡..你能爲此提供一個例子嗎?這將是有益的:) – Elior

+0

@Elior增加了一些鏈接到我的文章。我會從這些開始,看看他們把你帶到哪裏! –

+0

所有的聲卡都使用asio4all,不是嗎?所以我在哪裏可以找到這個sdk? – Elior

1

這可能是一個好主意,使用第三方庫。 有很多選擇。我所知道的是portaudioSTK

+0

感謝您的回答! +1 :) – Elior

1

要實時記錄音頻,任何API都可以。請注意,WASAPI是主要API(自Vista以來),並且像WaveIn API,DirectSound這樣的傳統API在WASAPI之上實現爲兼容性層。

通常的API假設您可以對某些處理延遲/開銷進行處理,大約爲幾十毫秒。

如果你要比這更快,而且你需要實時性能,比如處理數據並儘快返回回放以便回放,你需要所謂的exclusive mode streams,在那裏你可以實現延遲幾毫秒的數量級,這與專業音頻開發套件相媲美。

視窗SDK有幾個音頻記錄樣品中\Samples\multimedia\audio(C++)

+0

謝謝:) :) +1 – Elior