Repository navigation
audioeffects: catalog.json names every effect's patches and macros - #19
Merged
Merged
Conversation
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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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.pywrites it from the classes. The catalogue tests (which every pull request runs) check it's current, list every effect inALLorder and match each class, andtools/wheel_gate.pynow refuses a wheel without it.tools/scoped_tests.pytreats 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.jsonremoved three fail, and the package-data test fails with its line removed),make_catalog.py --check, flake8, andtools/wheel_gate.pyon a built wheel (ok). The full suite runs here in CI because this touches the scoping tool.