2015-10-04 37 views
1

我遇到了一個我沒有能夠診斷的未記錄的問題。我正在使用pd-for-ios。我的補丁加載到libpd(iOS)中的行爲與在Pd中運行的行爲不同。libpd iOS補丁城域和延遲對象行爲錯誤

我設法發現延遲和城域對象以比指定更高的速率發送消息。似乎在libpd中沒有時間同步。爲了測試這個,我做了一個簡單的補丁,每1秒就有一個節拍器發出一聲巨響。在Pd中,它按預期工作。在libpd中,我註冊了一個調度程序,每隔幾毫秒就會發生一次爆炸。當我將補丁加載到提供的pd-for-ios測試項目之一時,結果是一樣的。似乎節拍器在沒有時間限制的情況下工作,不斷髮送劉海。

回答

2

libpd本身沒有固定的時間感。它只根據處理的音頻幀的數量來記錄時間;客戶端代碼負責在正確的時間調用libpd的過程方法。

如果您將libpd與pd-for-ios一起使用,那麼將會隱式地處理這個問題,因爲pd-for-ios將創建一個音頻單元,該單元在其渲染回調中調用libpd的處理方法。

如果您直接調用過程方法,那麼它會盡可能快地運行,這就解釋了您所看到的行爲。你可以實現自己的延遲,但它可能更容易通過pd-for-ios來代替。

+0

有趣的是,我正在使用pd-for-ios。我應該明確指出,我測試我的補丁的libpd測試項目來自pd-for-ios軟件包。 (編輯原始問題)。這讓我吃了一驚。任何想法如何檢查pd-for-ios是否正確設置音頻單元? – enamodeka

+0

你在看哪個測試項目? – Nettoyeur

+0

這是在做我的頭。我嘗試過SliderPadBasic和PolyPatch。有趣的是,在PolyPatch中,我的音色保持在正確的音調,但是發射速度如此之快,聽起來像是連續的聲音(它在我做過的所有其他測試中都有),但是PolyPatch test2.pd播放的是低音聲音blurbs。然而,當我在Pd中打開補丁時,test2.pd的音調更高,並且播放時間更短...... – enamodeka