Repository navigation
Sound module: patch, key and macro names for DAWs (MIDNAM and .ins) - #57
Merged
Merged
Conversation
python -m soundmodule.names writes a MIDNAM file and a Cakewalk instrument definition that name every instrument's patches under the Bank Select and Program Change that play them, the drum machines' keys, General MIDI's programs, CC91 and CC93 after the module's reverb and chorus, and CC102 to CC117 after each instrument's macros. The names come from the catalog.json that audioinstruments and audioeffects carry. Checked: tests/test_soundmodule_names.py builds both files from the real catalogs and parses them back (the MIDNAM with an XML parser, the .ins section by section), and fails without soundmodule.names. The MIDNAM also validates against the MIDI Manufacturers Association's DTD.
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.
A DAW can now show the sound module's instruments, patches, drum keys and macros by name.
python -m soundmodule.names --out names/writesPyDevices Sound Module.midnam(Ardour, Mixbus and other MIDNAM readers) andPyDevices Sound Module.ins(Cakewalk). Each patch carries the Bank Select and Program Change that play it (bank 80 or 81, the instrument's program, the patch as the LSB), General MIDI is bank 0, CC91 and CC93 are named after the module's reverb and chorus, and every instrument with macros gets its own mode that names CC102 to CC117 after them.The names come from the
catalog.jsonthat audioinstruments and audioeffects now ship in their wheels, so they follow the installed versions;--instrumentsand--effectstake a catalog file instead. The engines job checks out just those two files at the commits that added them, since neither is in a release yet. The guide gains a section on it, the MIDI reference links there, and the roadmap bullet goes.tests/test_soundmodule_names.pybuilds both files from the real catalogs and parses them back: the MIDNAM withxml.etree, checking every name set, note list and control list it references exists and every patch selects what the engine plays; the.inswith a strict section parser, checking everyPatch[],Key[]andControl=resolves and each bank names the right patch at the right program. It fails without the change. Separately, the generated MIDNAM validates against the MMA's MIDINameDocument 1.0 DTD with lxml. I haven't loaded either file in a DAW.