Skip to content

ThereMaxi v1.0.1

Choose a tag to compare

@github-actions github-actions released this 23 Jul 12:55
· 30 commits to main since this release

Fixed

  • A filter cutoff word below 15 in an imported preset decoded to NaN: ** cannot raise a
    negative number to a fractional power. NaN compares false against everything, so it slipped
    through the range check in numeric::value_import, was written into the library file — where it
    is not valid JSON — and from then on that library could not be read back at all, taking the
    program down on startup with "malformed JSON string". The cube root is now taken by sign, and
    a non-finite value is clamped to the parameter's minimum as a second line of defence.

Added

  • protocol/tables.json and protocol/golden.json, generated from the tables in lib/ by
    tools/dump-protocol.pl: the parameter descriptions, the sysex offsets, decoded preset dumps and
    value-to-wire sweeps. t/check.sh fails if they drift from the code.
  • DESIGN.md: the plan for the split into a protocol library, a device library, a UI-less LV2
    plugin and a wxWidgets application, and how each step is tested against the perl implementation.
  • The beginning of libtheremini-protocol: a CMake build, the parameter table generated from
    protocol/tables.json, and value-to-wire conversion, tested by replaying all 711 recorded
    vectors plus a monotonicity sweep over the full range of every numeric parameter.
  • CI on every push and pull request, for both the perl code and the C library.
  • A .gitignore for the files the program writes next to itself, and .dir-locals.el so Emacs
    keeps the tab indentation this code has always used.

Changed

  • %CONTROLLER and %IMPORT are package variables now, so the generator can read them. No
    behaviour change.