1

診断できなかった文書化されていない問題に遭遇しました。pd-for-ios を使用しています。私のパッチを libpd (iOS) にロードすると、Pd 内での実行とは異なる動作をします。

遅延とメトロ オブジェクトが、指定されたよりもはるかに高いレートでメッセージを送信していることがわかりました。libpd 内で時刻同期が行われていないようです。これをテストするために、メトロノームが 1 秒ごとに音を鳴らす簡単なパッチを作成しました。Pd では期待どおりに動作します。libpd でディスパッチャーを登録しましたが、数ミリ秒ごとに大きな音が出ます。提供された pd-for-ios テスト プロジェクトの 1 つにパッチをロードすると、結果は同じです。まるでメトロノームが時間制限なしで動いているかのように、バタンと音を立て続けに送り出します。

4

1 に答える 1

2

libpd 自体には、壁時間の組み込みの感覚がありません。処理されたオーディオ フレームの数に関してのみ時間を追跡します。クライアント コードは、適切なタイミングで libpd のプロセス メソッドを呼び出す責任があります。

pd-for-ios で libpd を使用する場合、pd-for-ios はレンダリング コールバックで libpd のプロセス メソッドを呼び出すオーディオ ユニットを作成するため、これは暗黙的に処理されます。

プロセス メソッドを直接呼び出している場合は、可能な限り高速に実行されます。これにより、表示されている動作が説明されます。独自の遅延を実装することもできますが、代わりに pd-for-ios を使用する方がおそらく簡単です。

于 2015-10-05T15:17:53.787 に答える