2010-04-08 96 views
3

我怎樣才能用iphone sdk反轉音頻樣本? 我會嘗試做出「dj scratch」效果。 我正在談論加速和減速並實時倒轉音頻採樣。如何反轉音頻樣本?

回答

1

這不會像您想象的那麼容易。爲了獲得真正的劃痕效果,您必須對回放速度的變化進行建模 - 音高降低至0 Hz,然後反轉音頻流並將音高移回到正常播放速度。這是而不是一個簡單的算法。

+0

是的,沒錯,但我必須找到一個起點。音頻單元可能?我發現fmod api可以幫助我解決問題,但許可證是500美元...對於我的預算來說太多了。 – Chiodo 2010-04-09 11:10:25

1

一般來說,當您想要使用音頻進行大量處理時,您必須自己或與第三方庫一起實施。音頻隊列和音頻單元是很好的起點,但您無法爲iOS創建自己的音頻單元。最好的辦法是在你的音頻隊列或音頻單元處理圖表的回調中執行所有的處理,在這個處理圖表中你將得到一個AudioUnitSampleType的緩衝區,你可以在傳遞它之前處理你的心臟內容。 (請看Mixer Host示例應用程序中MixerHostAudio.m的回調。)爲了獲得這種效果,您必須編寫體面複雜的DSP代碼,但在與Apple代碼的交互方面,從回調中工作是一個安全的選擇。

+0

嗨,謝謝你的回答。我在很久以前使用FMOD在他的API中提供了一個「反向」功能「解決了」這個問題。 – Chiodo 2011-07-06 14:23:14

0

您可以使用FMOD,但沒有「反向」功能。通過將頻道頻率設爲負值,您可以向後播放聲音。 (根據文件)