# FELUCCA target cost budget (tests/target_budget.py): instructions in the loops of each
# function in build/felucca.dis, x4 per nesting level, divides x9. The check allows +10 %.
# Rewritten by BUDGET_UPDATE=1.
project_pattern_tick 112
analog_render 585
phase_render 79
phase_render_f 102
lofi_render 123
sample_render 126
formant_render 314
trio_render 341
trio_pass 175
wheel_render 267
wheel_block 102
grain_render 1731
grain_block 139
phys_render 61
drum_render 86
noise_render 259
fm6_render 372
fm6_op_run 72
fm6_op_fb 26
px_modal_block 111
px_modal_run 192
px_memb_block 106
px_string_excite 171
px_string_run 264
px_symp_run 252
dv_metal_run 26
dv_kick_run 153
dv_snare_run 158
dv_clap_run 74
dv_hat_run 61
dv_tom_run 75
dv_rim_run 61
dv_bell_run 52
dv_cym_run 67
dv_out 35
dv_metal_mix 16
slicer_track 632
slice_render 453
slc_rev 120
fm1_alnk0_irq 8285
fm1_timer5_irq 33387
click_render 30
# DRONE TOPO matrix scaling/clamp stays in the stored family (0..2 or 3..5): +24 % per block, not per sample.
mod_begin 196
mod_voice 30
mod_end 7
perf_begin 28
perf_mute 21
perf_pre 27
perf_block 814
perf_master 31
perf_flanger 368
perf_phaser 448
perf_throw 52
rev_room 218
rev_spring 126
rev_hall 1995
rev_side_mix 9
track_insert 3
ins_drive 277
ins_swept 230

# Caravel 0.3.0: the per-track FILTER (fx.c track_filter), a new entry, measured with pi32v2: the sample loop of b (and, with SPREAD, d) with
# both poles inlined, 141 loop instructions. mix_part grew 876 -> 909 instructions (641 -> 659 in loops, 2 calls more: the two calls and the tail test)
# inside its existing budget (OPTIONAL 2800 in target_budget.py).
track_filter 141

# BYTE/FLOAT pi32v2 baseline: weighted renderer loop; full formula code footprints.
lofi_formula_render 183
lofi_byte 324
lofi_float 840

# New sound renderers measured in pi32v2 CI 38392191675; existing budgets unchanged.
phase_render_ext 231
analog_morph_render 790
lofi_morph_render 223
# DRUM-X initial measured pi32v2 baselines (existing thresholds retained).
drumx_render 468
dx_run 1426
dx_layer 105
drumx_mix 34

# FULL live-load boundary helpers, measured with pi32v2; existing budgets retained, except project_sound_apply: 123 -> 161 with FX HOLD
# (a sound load decides per parameter what stays; main loop, not the audio path).
project_sound_apply 161
project_pattern_engines_ok 7

# SEM renderer, measured pi32v2; both oscillators inlined into the counted loop.
sem_render 409
hades_render 633


# Custom 22: new control-rate helper footprints, measured with pi32v2.
lfo2_sync_inc 20
lfo2_trigger 35
mod_kind 17
track_lfo2_tick 115

# Coupled DRONE prototype, measured pi32v2 loop baseline (2026-10-17).
drone_render 828

# Opt-in cell renderer and separately tracked unchanged legacy DSP.
drone_legacy_render 788
# Custom 25: PM makeup + DRIFT breathing (multiplies only; still ~3 divides per sample).
# 0.3.2: SHARP wave shape (per cell: triangle from the PM angle, blend or soft clip), ROUGH factors, BREATH gain and the PM feedback
# low-pass. The slow quantities (roughness smoothing, BREATH phase) run every 8th sample in drone_slow_tick, a call of its own that this
# loop count does not include (66 instructions of code, run four times per call, i.e. roughly 100 per call or ~12 per sample on top); +24 % against 1471, still 3 divides.
drone_cell_render 1824
