2011-06-28 51 views
0

我正在播放在AudioUnit的幫助下隨時產生的兩個正弦波音。我需要給用戶一個UISlider,這可以幫助他在飛行中改變音調的音調。我堅持用AudioUnits設置音調的音調,請提供一些代碼片段以便在AudioUnit的幫助下改變音調。是否可以使用AudioUnit進行實時音高切換?

回答

1

將生成的波形(如正弦波)的音調更改爲複製到AudioUnit回調緩衝區當然是可以的。究竟如何改變它取決於你如何產生正弦波。如果按表查找,則可以更改表格步長和插值。如果通過調用sinf()函數,您可以更改函數調用中每個樣本的增量相位變化,以與滑塊位置匹配一些關係。等等。

然而,術語「實時音高移位」通常指的是另一個不同的和更復雜的DSP過程,例如用於組合時間間距修改的相位聲碼器。你的意思是?

+0

感謝您澄清hotpaw 2.我正在使用簡單的sinf()函數來生成音調,所以如你所說,它應該是可能的音高轉換。現在請幫助我做到這一點,我不知道要做到這一點。如果我給出F2#,G2,G2#等音高值,是否可以改變音高?我的音源與此類似http://cocoawithlove.com/2010/10/ios-tone-generator-introduction-to.html – user505593

+0

您需要查看一些dsp書籍。這不是一個簡單的事情,有人可以爲你做。 – Mark

相關問題