βambi

contribute

measuring

Every number about cost comes from a run, in Release, as a share of one core.

Measure, do not assert, and measure in Release. An unoptimised build does not just run slower; it runs slower by different amounts in different code, so it ranks the parts wrongly. A library that is several times faster than an alternative in Release can look several times slower in Debug.

how to report a cost

As a share of one core at 128 samples and 48 kHz, which is 2.667 ms. Never a speedup without the absolute cost beside it: “twice as fast” at 0.01 % of a core is not worth any clarity.

If you did not run it, say “estimated”, and say from what.

the tools

what to look for first

  1. Cost that grows with the wrong thing. A path is drawn, hit-tested and edited from one fixed table of 1,024 points, so a frame costs the same whether the path has three nodes or twenty. That shape of fix beats any constant factor.
  2. Work done per sample that could be done per control step. Per-order gains, region matrices and cap weights change at control rate.
  3. Compute nothing that nothing uses. A feature no cell routes to is not computed.

what not to do