Skip to content

audioeffects: catalog.json names every effect's patches and macros - #19

Merged
bdbarnett merged 1 commit into
mainfrom
fg-catalog
Nov 11, 2026
Merged

bdbarnett merged 1 commit into
mainfrom
fg-catalog

Conversation

@bdbarnett

Copy link
Copy Markdown
Contributor

Every wheel now carries audioeffects/catalog.json, the names a DAW or MIDI host needs without loading the audio stack: each effect's display name, categories, macro labels and modes, and patches with their values. It's a file in the wheel rather than a release asset, so it always matches the code installed beside it, works offline, and is still reachable by raw URL at any tag.

tools/make_catalog.py writes it from the classes. The catalogue tests (which every pull request runs) check it's current, list every effect in ALL order and match each class, and tools/wheel_gate.py now refuses a wheel without it. tools/scoped_tests.py treats a change to the catalog or its tool as covered by those always-run tests, so a patch change doesn't send a pull request to the whole suite. The reference page on metadata gains a section on reading it, and the roadmap bullet goes.

I ran the catalogue tests (11 pass; with catalog.json removed three fail, and the package-data test fails with its line removed), make_catalog.py --check, flake8, and tools/wheel_gate.py on a built wheel (ok). The full suite runs here in CI because this touches the scoping tool.

Each wheel now carries audioeffects/catalog.json: every effect's display
name, categories, macro labels and modes, and patches, as the classes
declare them. A DAW or MIDI host can show those names without loading the
audio stack. tools/make_catalog.py writes it from the classes; the
catalogue tests run its --check on every pull request, and the wheel gate
refuses a wheel without it. A pull request that changes only the catalog
runs the tests every change runs, since those include the catalogue's.

Checked: the four new tests pass, and three fail with catalog.json removed
(the fourth with the package-data line removed). tools/wheel_gate.py passes
on a built wheel.
@bdbarnett
bdbarnett merged commit 3a39612 into main Nov 11, 2026
8 checks passed
@bdbarnett
bdbarnett deleted the fg-catalog branch November 11, 2026 01:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

1 participant