Stakes
The effects program rewrites every audioeffects class from scratch, and its options, macros and patches may all change (Brad's D2: the soundtrack is our art and a playspace; it can be rewritten; it should not limit our work). When that lands, the four soundtrack directories that build effects stop rendering and bouncing until they are migrated:
| Directory |
How it builds effects |
AureliaOverture |
audioeffects.create(...) in script strings (composition.py) |
VelvetCircuit |
the same; the soundtrack's only user of the drive classes |
Perihelion |
fx_shimmer.py loaded through _read_effect |
ShimmerLab |
ShimmerHall / AirSpace by name through mpvst_effect_adapter |
Automata, NeonMeridian (no effect inserts, by design) and PatchTest build none. tools/test-effects-lib.py also calls every class with legacy constructor keywords and is rewritten in the same step.
What to do, when the effects roadmap reaches Phase 6
- Migrate the four compositions to the new surfaces. A piece may be re-voiced rather than forced to sound as it did — there is no baseline (D4).
- Rebuild the sidecar engine on the pinned audioif, both ports, clear a stale
MPVST_AUDIOIF_LIB cache entry if present, rebuild and ctest, reinstall the plug-in (full build), and confirm the installed engine imports synthio with audioeffects/ staged beside it. The staged lib goes stale silently.
- Render every piece offline and bounce it; run
reaper/verify_song.py per piece (peaks, section levels, ordering, dead air).
- Re-capture the render reference as a new reference:
audioif/tests/parity/capture_render_reference.py --capture --python micropython-vst3/.venv/bin/python. D4 is the approval that re-capture needs.
- Rewrite
tools/test-effects-lib.py against the new surfaces; ctests green.
Plan: workspace docs/effects-roadmap.md, Phase 6. Trigger: the effects program closes Phase 5.
Stakes
The effects program rewrites every
audioeffectsclass from scratch, and its options, macros and patches may all change (Brad's D2: the soundtrack is our art and a playspace; it can be rewritten; it should not limit our work). When that lands, the four soundtrack directories that build effects stop rendering and bouncing until they are migrated:AureliaOvertureaudioeffects.create(...)in script strings (composition.py)VelvetCircuitPerihelionfx_shimmer.pyloaded through_read_effectShimmerLabShimmerHall/AirSpaceby name throughmpvst_effect_adapterAutomata,NeonMeridian(no effect inserts, by design) andPatchTestbuild none.tools/test-effects-lib.pyalso calls every class with legacy constructor keywords and is rewritten in the same step.What to do, when the effects roadmap reaches Phase 6
MPVST_AUDIOIF_LIBcache entry if present, rebuild andctest, reinstall the plug-in (full build), and confirm the installed engine importssynthiowithaudioeffects/staged beside it. The staged lib goes stale silently.reaper/verify_song.pyper piece (peaks, section levels, ordering, dead air).audioif/tests/parity/capture_render_reference.py --capture --python micropython-vst3/.venv/bin/python. D4 is the approval that re-capture needs.tools/test-effects-lib.pyagainst the new surfaces; ctests green.Plan: workspace
docs/effects-roadmap.md, Phase 6. Trigger: the effects program closes Phase 5.