2013-04-26 83 views
2

我正在嘗試在我的iOS應用中合併newTimePitch音頻單元。我用filePlayer單元 - > subType_NewTimePitch單元 - > remoteIO單元構建了一個AUGraph。我發現newTimePitch單位的輸出是失真的。即使在默認速率(1.0)和音高(0)參數下,這種失真仍然是持續的。關於核心音頻newTimePitch音頻單元的失真

我已經執行了一個簡單的測試以確認:在我的auGraph中,我換了subType_NewTimePitch for subType_Varispeed,保持所有其他參數相同,並且失真消失。我還嘗試在newTimePitch的上游放置一個混音器單元,以減少newTimePitch單元的輸入增益。當然,這減少了該單元的總體輸出,但沒有改善失真。我發現,雖然在iOS模擬器中失真並不明顯,但它確實存在於實際設備(iPad2)上。

我會對其他人的經驗和/或解決方案非常感興趣。

+0

你發現了什麼樣的失真? – hotpaw2 2013-04-27 03:34:33

回答

0

我也發現了這個,只是回到了舊的時間單位。

+0

我可以最好地描述NewTimePitch音頻單元具有金屬/機器人質量(尤其是人聲)的失真。當我改變速率參數時,這種失真就變得更加明顯,但正如我所提到的,它也存在於默認值中。我有興趣比較「老」timePitch音頻單元的性能 - 請讓我知道我能找到它的位置。提前致謝。 – 2013-04-28 15:12:29

+0

是的,現貨,金屬/機器人。 – 2013-04-28 15:12:58

+0

dorada,你提到要回到「老」時間間隔單位。我試圖使用subType_TimePitch,但自動完成只是指subType_NewTimePitch,而不是... – 2013-04-29 01:36:26

0

格雷格,我也在我的應用程序中使用newTimePitch音頻單元。我在模擬器上沒有發現任何失真或噪音。設備怎麼樣:不幸的是,我用NewTimePitch節點沒有聲音(iOS Sounds with AudioUnit works on simulator, not on real device iPad)。如果我使用AUConverter節點而不是NewTimePitch,則聲音播放效果良好。我也嘗試了Varispeed,但也沒有成功。你知道在iPad上丟失聲音的可能原因嗎?

我對你的問題有幾點建議:
1)你的NewTimePitch是圖中的第一個節點?並且輸入呈現回調與它相關聯?如果是,那麼你是否嘗試添加混合器節點作爲第一個節點和NewTimePitch之後?如果問題與流格式有關,則可以使用它。

2)您是否嘗試在NewTimePitch節點和remoteIO節點之間添加AUConverter節點?如果問題與流格式有關,則可以使用它。

3)您是否嘗試在不是來自XCode的設備上啓動已編譯的應用程序?如果您有渲染回調日誌(大量日誌信息導致完全沒有聲音或聲音不好),則可以使用它。

+0

對不起,泰德,我不知道爲什麼你的iOS應用程序使用NewTimePitch或Varispeed不能在設備上工作。我的應用程序不使用渲染回調,NewTimePitch單元不是auGraph上的第一個節點。我將嘗試整合一個AUConverter節點,看看會發生什麼...... – 2013-04-29 01:33:43

0

如果您不希望它以默認音高和速率(無變化)影響聲音,可以在NewTimePitch轉換器音頻單元上設置BypassEffect屬性。

我只在iOS 6設備上測試過,但NewTimePitch和旁路似乎在那裏工作。

+0

hotpaw2,感謝您對繞過pro – 2013-04-29 21:29:49

+0

hotpaw2的建議,感謝您對NewTimePitch單元旁路屬性的建議;不幸的是,我想實際使用它的效果。我只是提到失真是目前的默認值。您還描述了iOS 6設備上的NewTimePitch沒有任何問題。如果可能的話,你會詳細說明你的代碼設置以使用單元(例如aura,使用回調等)和一些參數範圍嗎?提前致謝。 – 2013-04-29 21:38:56

+0

我使用AU圖形將NewTimePitch AU直接連接到RemoteIO總線0(揚聲器),並從緩衝區回調(我自己的混音器代碼)中提供樣本。 – hotpaw2 2013-04-30 01:47:03

0

我遇到了這個問題,使用渲染回調 - >混音器單元 - > NewTimePitch單元 - >混音器單元 - > RemoteIO單元。我找到了兩種解決方法:

1)使用Varispeed單位並在其上設置kNewTimePitchParam_Pitch屬性(未記錄,但有效)。

2)使用AUFilePlayer而不是渲染回調。

結果:播放器單元 - > NewTimePitch單元 - >混合單元 - > RemoteIO單元

的解決方法2注:我需要從音高單元獲得kAudioUnitProperty_StreamFormat和播放器單元的輸出格式設置爲它,和混頻器單位的輸入格式。