1

私は Pd で構築されたシンセサイザーに取り組んでおり、それをBeagleBone Blackで実行しています。このために、いくつかの抽象化と 2 つの外部を作成しました。現在、シンセはモノフォニックで、開始時に 100% の CPU を使用するため、多くの可聴クリック音やアーティファクトが発生します。約 5 秒後、CPU が 75% まで「安定」し、レイテンシーとサウンドはかなり良好です。

ここで、シンセをポリフォニックにする必要があるため、追加のボイス用に CPU 時間を解放する必要があります。このため、デバッグ シンボルを使用して Pd をビルドし、Callgrind/KCacheGrind などのプロファイラーを使用してパッチを実行して、CPU の消費が最も多い場所を特定し、その周りで最適化することを考えています。

Pd パッチと外部を最適化するために使用されるテクニックやヒントを共有できますか? この種のタスク用の Pd 固有のツールはありますか? 私のアプローチが機能する、または機能しない理由は何ですか?

4

2 に答える 2

1

あなたのパッチは実行するのが重いようです。これは、シンセサイザーを実行するときは常に多くの計算を行っていることを意味します。どんなシンセサイザーですか?

多くの場合、計算コストを削減する方法は、最初に計算された値を一度に固定することです。(たとえば、常に同じ値を使用する場合は、いつでも計算するのではなく、配列で読み取ることが興味深い場合があります)。プログラムのアーキテクチャについて詳しく教えていただければ、より具体的にお手伝いできるかもしれません。

幸運を !

于 2016-11-19T11:18:39.400 に答える