Repository navigation
Releases: FreeMixer/omx-plugins
Releases · FreeMixer/omx-plugins
Release list
v0.11.0
- meter-level: level meters bit for bit, the gain reduction within 1e-4 dB
- qualify-release: read plugin-qualify's qualification records
- 0.11.0 changelog: the merged changes and the omx-dsp 0.24.0 and omx-contract 2.16.0 floors
- ci: omx-dsp-copy-check --enforce, so no source carries a copy of an omx-dsp function again
- packaging: floor omx-dsp at 0.24.0, the release with omx_meter_level_db
- faces: a level meter reads through omx_meter_level_db
- meter-level: a digest of the level meters' values, before they read from omx-dsp
- oracles: take the rates from OMX_ORACLE_FULL_RATES_* (#177)
- omx-contract floor 2.16.0, where OMX_ORACLE_FULL_RATES_* first exists (#177)
- omx-contract.mjs: build the EQ default probe in a private directory and rename it into place (#195)
- faces: the level meter reads omx-dsp's peak and dB, g_level_db's own copies are gone (#169)
- test: sabotage arms for clap-params-check, panel-check, clap-ext-check and port-groups-check (#172)
- clap-crosscheck: a map with more than 256 rules or caps is refused, not written past the table (#190)
- strip-crosscheck: the low-pass above 0.6 of Nyquist is a declared gap, the rest is green (#190)
- contract-union test: the fake CLI is a .mjs file, so node 18 loads its ES module syntax (#187)
- omx-contract.mjs: render the union into a private directory, read it by content name (#187)
- gen: the LV2 faces state dBFS, dBu, LUFS, dB/oct, x and min (#171)
- strip-crosscheck: build the hand-ported strip against the omx-dsp and omx-contract it pinned (#130)
- Release 0.11.0: factory presets
- install-devel: ship test plugins' generated decl headers too
- presets: hold the catalogue presets to their measured figures through the DSP (#152)
- README: say where the factory presets are and how they are made
- packaging: install the factory presets with the omx-plugins package
- presets: 120 factory presets for the 19 plugins
- presets: a generator and a checker for factory preset files
v0.10.0
- Release 0.10.0: plugins described in omx-contract's words, faces checked against them; omx-contract 2.15.0 and omx-dsp 0.22.0
- debian: with no omx-contract command, skip the generator checks and say so
- eq-identity, the EQ default probe: the EQ's names are omx-dsp's
- descriptor-view: from omx-contract 2.15.0 on, a schema not found is red
- omx-contract: a union render carries its owners beside it
- packaging: build with the omx-contract command, the package that installs it
- omx-contract: read a 2.15 contract directory through the CLI's union render
- face-descriptor: our built faces, scanned, against the authored descriptor
- descriptor-view: each descriptor holds to omx-contract's descriptor words
- plugins: every single-kernel plugin described in omx-contract's words
- omx-delay: described in omx-contract's words, its declaration the extras
- gen: a plugin's declaration may be the view of its descriptor
- docs: the declaration as a view of the plugin descriptor
- omx-transient: generated faces follow its family none
- omx-transient: no dynamics family; a declared family stands on its meanings (#138)
- panel-description: lay a panel out from a plugin descriptor of any origin (#145)
- docs: a panel laid out from a plugin descriptor, its widget step and its family from meanings
- private-refs-check: self-test arms only the dated-filename and dated-citation patterns can catch
- Refuse AI-attribution lines in commit messages: commit-msg hook and a pull request check
- qualify-release: read plugin-qualify.rt-safety/1 and /2, refuse an unknown schema
- ci: the package jobs hand static-table-host the test plugins' ids (#162)
- omx-test-note-echo: a test instrument, one note out per note in (#162)
- omx-test-transport-probe: a test probe that records each block's transport (#162)
- omx-test-sine-voice: a test instrument, one sine per held note (#162)
- Test plugins: a declaration's "role": "test" links a face and installs nothing (#162)
- tools: the declaration schema's validator in a module of its own (#162)
v0.9.0
- Release 0.9.0: the changelog names the pitch units
- README, BUILDING.md: pitch travel with its units; omx-contract 2.12.0 or later
- omx pitch: the oracle's plan and one-step sabotage use whole semitones
- packaging: build against omx-contract 2.12.0 or later
- omx pitch: generated faces follow omx-contract 2.12.0
- tools: the semitone unit (st) of omx-contract 2.12.0 maps to semitone12TET
- Release 0.9.0: coherent meters, comp and de-esser levels, qualify-gated release; version and changelogs
- tools: qualify-release.sh carries a self-test, and a suitable rating whose rtSafe is not true refuses
- release: the RPM and DEB jobs wait for the qualify job, so no release goes out without a suitable verdict for every plugin (openmixer#1476)
- tools: qualify-release.sh builds the tree and refuses unless plugin-qualify's RT-safety document for every .clap says suitable (openmixer#1476)
- omx comp reports its gain reduction and its input and output levels, every meter coherent
- Coherent meters: the faces publish every meter through the ring; the de-esser reports its input and output levels
- include/omx_meter_ring.h: three copies and one word, so a meter read never mixes two blocks
- Include omx-clap-core's installed clap_meters.h, delete the second copy (#119)
v0.8.0
- Release 0.8.0: dependencies are a floor only; version and changelogs
- param contract: OMX_CLAP_UNIT_LUFS = 0x103 joins the vendor block (#140)
- Library dependencies are a floor only: no ceiling in the spec, debian/control or omxplugins.pc
- ci: the shared release workflow also reads the run it reports on (actions: read)
- ci: the dry-run job allows the issue-opening step of the shared release workflow
- release: allow the shared workflow to open an issue when a release fails
v0.7.0
- omx-drive: hfRolloff is the contract's roll-off id (off, 12 kHz, 16 kHz), regenerated against omx-contract 2.11.0 (omx-dsp#97)
- Widen the omx-contract range to >= 2.11.0, < 2.12 (omx-dsp#97)
- README: the drive's oversampling and the gate's key filter rows, generated
- omx keyed-gate: key high-pass and low-pass; omx strip fixes them off
- omx drive: the oversample control, bound to the instance face
- Build against omx-dsp 0.18: floor 0.18.0, ceiling below 0.19
- Drop the pin file; tools/deps-check.sh holds the packaging ranges
- tools: read omx-contract from the installed package, in the spec's range
- Makefile: take the omx-dsp and omx-contract ranges from the spec
- packaging: omx-dsp >= 0.17.0, < 0.18 and omx-contract >= 2.10.1, < 2.11
- omx transient: a thread the arms oracle cannot start is a failed arm, never joined (#36)
- private-refs-check: catch docs/design and harness paths, and fail when git grep fails
- omx transient: the arms oracle names no private source, only what it tests (#36)
- omx deesser: its declaration in the schema's key order, meters after portHints
- gen: the plugin Makefiles' OMXDSP_MIN follows the omx-dsp pin, 0.15.0
- Release 0.7.0: omx-dsp 0.15.0, and manuals from the contract; version and changelogs
- ci: fail on pointers into private repositories, issues, branches and paths
- Public sources state the facts, not pointers into private specs, issues and paths
- test: a travel moved in omx-contract moves the manuals (#104)
- declarations: the manuals read their ranges and defaults from the parameters (#104)
- gen: fill a manual's range, default and limits from its parameters (#104)
- omx transient: the engine's transient arms as an oracle on both faces at the nine RME rates (#36)
- gen: a declaration's oracles are built and run on both faces in make test (#36)
- docs: a declaration names the oracles moved with its effect from the engine (#36)
v0.6.0
- Release 0.6.0: omx-dsp 0.13.0, omx-contract 2.6.0, and omx comp's detector topology; version and changelogs (#125)
- selftest: the settled chain names the detector topology's two values (#125)
- Build against omx-dsp 0.13.0 and omx-contract 2.6.0; omx comp takes the detector topology (#125)
- tools: say what the first meters-abi sabotage really does
- ci: install diffutils for make meters-abi
- tools: check include/omx_clap_meters.h against omx-clap-core's clap_meters.h (#119)
v0.5.1
- Release 0.5.1: omx deesser reports its gain reduction; version and changelogs (#121)
- omx deesser: the oracle holds the meter to the kernel at every rate (#117)
- omx deesser: the CLAP face reports the kernel's gain reduction per block (#117)
- omx deesser: declare its gain-reduction meter (#117)
- gen: a declaration's meters, served through clap.meters/1 and checked by the oracle (#117)
- Spec: a plugin's meters through clap.meters/1, declared in its declaration (#117)
v0.5.0
- Release 0.5.0: omx pitch reports its latency; version and changelogs (#110)
- omx pitch: the latency at full mix is where the impulse lands, 0 at half mix (#110)
- oracle: the declaration's latency checks, an impulse through both faces at every rate (#110)
- CLAP faces: the latency changes only at activation, after a restart asked once (#110)
- Pin omx-dsp 0.6.0, whose pitch face reports its latency (#110)
- Declarations: console comments in plain words, no source symbols
- gen: a released parameter list is read from the parameter table alone (#107)
- gen: a released parameter list is read from the parameter table alone (#107)
- docs: BUILDING names look.mjs and its token source (#105)
- schema: the panel is declared once; console.panel is gone, a second copy is refused (#100)
- plugins: MOD GUIs regenerated, selectors named selector (#101)
- build: make test and CI check look.json against its tokens (#105)
- plugins: one panel per declaration, the console's sections and graphs folded into it (#100)
- tools: modgui-gen reads the schema's widgets, honours panel.widgets and draws a fader (#101)
- tools: look.json is generated from tools/look/tokens.css by look.mjs (#105)
- schema: the shared widgets are the console's names, selector where choice was (#101)
- plugins: every panel declares a family and roles of the console's vocabulary (#99)
- schema: panel.family and panel.roles are the console's closed set, a declaration outside it is refused (#99)
- tools: a variant's per-band role names every band's parameter (#99)
- panel description: a panel family the extension has no place for is none (#107)
- panel description: a panel family the extension has no place for is none (#107)
- test: the CLAP face's contract, pages and placement defaults read back against the declaration (#102)
- faces: CLAP serves param-contract/1, remote controls and track-info from the declaration (#102)
- panel description: the contract's per-placement defaults, and the sections as remote-control pages (#102)
- param contract: every plugin's rows of org.openmixer.param-contract/1, from its declaration (#102)
- omx-contract reader: a travel's per-kind defaults reach the resolved parameters (#102)
- test: each built face's panel description read back as a host reads it, against the declaration (#107)
- faces: CLAP and LV2 serve org.openmixer.panel-description/1 from the generated rows (#107)
- panel description: every plugin's rows of org.openmixer.panel-description/1, from its declaration (#107)
- declarations: the EQ, keyed gate and drive panels name the graph drawn over them (#107)
- test: the LV2 port groups read back through lilv against the declaration (#103)
- LV2 faces: one port group per panel section, each section's parameters in it (#103)
- Declarations: the console stage comments name no private branch or file
v0.4.0
- Release 0.4.0: libomxplugins; version and changelogs
- docs: BUILDING and README describe libomxplugins and its table (#98)
- packaging: the devel packages ship libomxplugins.a and omxplugins.pc (#98)
- recipe: every plugin is listed in libomxplugins' table (#98)
- test: a C host links libomxplugins through omxplugins.pc and opens every plugin (#98)
- build: make builds libomxplugins.a and install-devel installs it with omxplugins.pc (#98)
- lib: the static table lists every shipped plugin's CLAP entry (#98)
- tools: gen fills libomxplugins' table of CLAP entries from every shipped plugin (#98)
- docs: the Zynthian tarball, where it comes from and where its bundles go
- release: a Zynthian tarball repacked from the bookworm arm64 DEBs
v0.3.0
- ci: the recipe selftest runs in its own job beside make test
- changelogs: 0.3.0 brings omx comp
- omx comp: version 0.3.0, with the rest of the tree
- selftest: a swap named in shippedDiff generates; only the unchanged list is checked fresh
- selftest: the chain arm settles its console placement and the panel of its settled elements
- wizard: a drafted chain declares its panel, one section per element, and its console placement
- docs: a chain element's band counts and a fixed control's sheet default
- Release 0.3.0: version, changelogs; omx-strip's parameter list changed
- test: the strip cross-check map carries its SPDX line
- make strip-crosscheck: the chain strip against the hand-ported one, from the top Makefile
- selftest: a chain held to a released tag, refused when it moves, accepted when named, said when unread
- wizard: the panel check reads in the present tense
- omx strip: its EQ exposes the four bands omx-contract declares for it, on the eq8 face
- gen: an element exposes its contract band count on a face compiled at another; a fixed default names its sheet
- gen, recipe selftest: two comments in the present tense
- port hints: the assembled view is a build product, untracked as .gitignore says
- omx comp: the pinned port hints
- omx comp: in the README's catalogue
- omx comp: the kernel-identity test
- packaging: omx comp in omx-plugins-clap and omx-plugins-lv2
- test: strip-crosscheck builds the newest strip that is not yet a chain
- docs: a plugin made of several kernels, a chain
- test: strip-crosscheck, the chain strip against the hand-ported one it replaced
- omx strip: its README section and catalogue row
- omx strip: the identity test against its chain of faces, generated
- omx strip: CLAP and LV2 faces and the chain binding, generated; the hand-ported core goes
- omx strip: the generated parameter header, LV2 description, MOD GUI and pinned port hints
- omx strip: its declaration as a chain of the console's faces, trim, filters, gate, EQ and comp
- test: clap-crosscheck, two built CLAP plugins bit for bit at the same settings
- selftest: a chain of eq, gate and comp, drafted, written, tested, its core sabotaged
- clap-probe: live also tries every other toggle on with one travel at either end
- gen: an element fixes a control at its default, per band too; a chain's plan engages every element
- Pin omx-contract 2.3.0 and omx-dsp 0.5.2, the releases with the trim kernel and its face
- docs: the wizard drafts the panel, the console placement and the port-hint pin
- declarations: every plugin declares its console block, as the console draws it today
- declarations: every plugin declares its panel, today's MOD GUI
- perturb: a composite's reference finds its kernel through omx-contract
- wizard: --from-contract k1,k2,... drafts a chain
- recipe: a chain owes what an instance plugin owes, its params read from its elements
- gen: binding: chain, each element bound to its own instance face
- schema: a composite plugin, binding: chain, its elements, order and key
- port hints: the pin lives in the declaration, plugins//port-hints.json goes
- omx comp: CLAP and LV2 faces in plain C over omx-dsp's comp kernel
- omx comp: the generated parameter header and LV2 description
- omx comp: its declaration, parameters by reference to the comp kernel
- Pin omx-dsp 0.5.1; the gate binds its knee range, the strip and the checks follow omx-dsp 0.5
- port hints: the EQ variants' whole-EQ switch is the host's bypass
- omx eq: its variants in the README
- omx eq: the kernel-identity test of each variant
- omx eq: CLAP and LV2 faces in plain C over omx-dsp's eq kernel, for each variant
- omx eq: the generated parameter headers, LV2 descriptions and MOD GUIs of its three variants
- omx eq: one declaration for omx-eq8, omx-eq16 and omx-eq32, parameters by reference to the eq kernel
- gen: one declaration for plugins that differ in a band count (variants)
- gen: a control taken once per band binds as one array argument
- port hints: omx delay's time under the contract's control name
- omx delay: the kernel-identity test
- packaging: omx-plugins-devel carries omx delay's binding, omx_delay_core.h
- omx delay: CLAP and LV2 faces in plain C over omx-dsp's delay kernel
- omx delay: the generated parameter header, LV2 description and MOD GUI
- omx delay: its declaration, parameters by reference to the delay kernel
- recipe selftest: omx-drive's binding is generated; delay and chorus have faces
- port hints: omx drive's ports under the contract's control names
- omx drive: in the README's catalogue
- omx drive: the kernel-identity test
- omx drive: CLAP and LV2 faces in plain C over omx-dsp's drive kernel
- omx drive: the generated parameter header, LV2 description and MOD GUI
- omx drive: its declaration, parameters by reference to the drive kernel
- omx-contract.mjs: a set whose ids are exactly off, on is a toggle
- Pin omx-contract 2.2.0 and omx-dsp 0.5.0
- omx-limiter: regenerate its Makefile, manifest and MOD GUI (stale after #85 met #86)
- port hints: omx-limiter's hints move to its own file (#60)
- omx limiter: in the README's catalogue
- omx limiter: the kernel-identity test
- packaging: omx limiter in omx-plugins-clap and omx-plugins-lv2
- omx limiter: CLAP and LV2 faces in plain C over omx-dsp's limiter kernel
- omx limiter: the generated parameter header and LV2 description
- omx limiter: its declaration, parameters by reference to the limiter kernel
- docs: the identity test's plan reaches every control
- gen: the identity plan reaches every control
- clap-probe live: quiet gaps in the signal, and every value of every other choice
- port hints: omx geq pins its hints
- omx geq: in the README's catalogue
- omx geq: the kernel-identity test
- packaging: omx geq in omx-plugins-clap and omx-plugins-lv2
- omx geq: CLAP and LV2 faces in plain C over omx-dsp's geq kernel
- omx geq: the generated parameter header, LV2 description and MOD GUI
- omx geq: its declaration, parameters by reference to the geq kernel
- gen: a control taken once per band binds as one array argument
- generated plugins: their Makefiles generate and check the MOD GUI
- generated plugins: transient, tremolo, phaser, rotary and pitch carry their MOD GUI
- modgui: every generated plugin has its MOD GUI, choices drawn as selectors
- omx de-esser: in the README's catalogue
- omx de-esser: the kernel-identity test
- packaging: omx de-esser in omx-plugins-clap and omx-plugins-lv2
- omx de-esser: CLAP and LV2 faces in plain C over omx-dsp's de-esser kernel
- omx de-esser: the generated parameter header and LV2 description
- omx de-esser: its declaration, parameters by reference to the deesser kernel
- recipe-selftest: the face of another shape and the paid debt are written in the test
- omx reverb: in the README's catalogue
- omx reverb: the kernel-identity test
- packaging: omx reverb in omx-plugins-clap and omx-plugins-lv2
- omx reverb: CLAP and LV2 faces in plain C over omx-dsp's reverb kernel
- omx reverb: the generated parameter header and LV2 description
- omx reverb: its declaration, parameters by reference to the reverb kernel
- omx-contract.mjs: a kernel's controls come from the render alone
- recipe-selftest: the face of another shape and the paid debt are written in the test
- omx flanger: in the README's catalogue
- omx flanger: the kernel-identity test
- packaging: omx flanger in omx-plugins-clap and omx-plugins-lv2
- omx flanger: CLAP and LV2 faces in plain C over omx-dsp's flanger kernel
- omx flanger: the generated parameter header and LV2 description
- omx flanger: its declaration, parameters by reference to the flanger kernel
- docs: the identity test holds a control that re-arms
- gen: the identity oracle holds a control that re-arms at its default
- omx-contract.mjs: read a kernel's controls from the render's kernels
- pins: omx-contract 2.1.0 and omx-dsp 0.4.1
- recipe-selftest: the face of another shape and the paid debt are written in the test
- omx chorus: in the README's catalogue
- omx chorus: the kernel-identity test
- packaging: omx chorus in omx-plugins-clap and omx-plugins-lv2
- omx chorus: CLAP and LV2 faces in plain C over omx-dsp's chorus kernel
- omx chorus: the generated parameter header and LV2 description
- omx chorus: its declaration, parameters by reference to the chorus kernel
- recipe-selftest: the face of another shape and the paid debt are written in the test
- omx keyed-gate: the generated kernel-identity test, keyed and unkeyed
- omx keyed-gate: CLAP and LV2 faces and the binding generated from the declaration
- omx keyed-gate: its declaration is the folder's one hand-written file, bound to the gate's instance face
- gen: keyed instance faces; CLAP latency as the values give it
- port hints: one file per plugin, the shared view generated (#60)
- omx pitch: in the README's catalogue
- omx pitch: the kernel-identity test
- packaging: omx pitch in omx-plugins-clap and omx-plugins-lv2
- omx pitch: CLAP and LV2 faces in plain C over omx-dsp's pitch kernel
- omx pitch: the generated parameter header and LV2 description
- omx pitch: its declaration, parameters by reference to the pitch kernel
- Pin omx-dsp 0.4.0, built against omx-contract 2.0.0
- omx rotary: in the README's catalogue
- omx rotary: the kernel-identity test
- packaging: omx rotary in omx-plugins-clap and omx-plugins-lv2
- omx rotary: CLAP and LV2 faces in plain C over omx-dsp's rotary kernel
- omx rotary: the generated parameter header and LV2 description
- omx rotary: its declaration, parameters by reference to the rotary kernel
- clap-probe live: a fifth setting moves the other choices to their far value, so a rate behind a speed switch is heard
- recipe selftest: its stand-in kernel is wobble, so a real tremolo plugin in the tree does not collide with it
- omx phaser: in the README's catalogue
- omx tremolo: in the README's catalogue
- omx phaser: the kernel-identity test
- omx tremolo: the kernel-identity test
- packaging: omx phaser i...