All posts
v0.4.4

v0.4.4

Added

  • Builtin overload resolution. Builtins and user-defined functions can now be overloaded across multiple forms; operators participate as named builtins in the same resolution pass.
  • Scale/key quantization with user-defined scales. New scale/key pattern support plus a documented reference (pattern/scale-key).
  • Parameter type annotations. Type names are PascalCase — Signal, Number, Pattern, Record, Array, String, Function, Stream — parsed contextually, so they remain usable as identifiers.
  • Windows / MSVC build support. Source-level readiness for the Cedar engine and the Akkado/nkido CLI tools (ctrl-c handling, binary stdio, UTF-8 init, app manifests).
  • Session state save/restore round-trip. A state-init codec on the web side serializes and restores live DSP state across reloads.
  • EBNF grammar references for the core language, mini-notation, and chord symbols (docs/grammar/).
  • Top-level MIT LICENSE.

Changed

  • Audio arena memory is reclaimed during GC. Long live-coding sessions no longer grow the audio arena without bound; untouched buffers are reclaimed on sweep.

Fixed

  • Hot-swapped patterns join in phase. Pattern alternation position is now derived from the global clock, so a hot-swap keeps the new pattern aligned instead of restarting its cycle.