Skip to content

Phase 3 / M1: Add named synth parameter model and symbolic binding plans #6

Closed

Description

@norbot7865

Objective

Extend defsynth with typed, stable named parameters and compile (param ...) references into deterministic symbolic control-binding plans.

Scope

  • Add ParameterID, SynthParameter, scope/rate/curve metadata, defaults, transforms, and canonical serialization.
  • Parse and validate :params declarations and (param :id [transform]) references.
  • Support one parameter targeting multiple unit parameters.
  • Validate finite/ranged defaults, scope, smoothing, curve, target compatibility, and conflicting bindings.
  • Emit warnings for unused declarations and helpful errors for undeclared references.
  • Add generation-specific immutable binding descriptors while keeping user references symbolic.
  • Extend fingerprints and synth-info/controls introspection.
  • Add parser, validation, determinism, fingerprint, and error-code tests/fuzz targets.

Acceptance criteria

  • Controlled synths compile into stable symbolic binding plans independent of unit order where required.
  • Invalid declarations/references produce structured diagnostics.
  • Parameter IDs remain stable across compatible recompilation.

Spec: phase-3.md §§6, 8, 24–25, 29–30, 35, 40 (Milestone 1), 42.

Activity

  1. added
    enhancementNew feature or request
    phase-3Phase 3: live controls, automation, MIDI, patch transitions, and nREPL
    on Jul 15, 2026
  2. added this to the Phase 3 milestone on Jul 15, 2026
  3. self-assigned this
    on Jul 15, 2026
  4. norbot7865 commented on Jul 15, 2026

    @norbot7865
    CollaboratorAuthor

    I picked this up as a prerequisite for #15. I am implementing M1/M2 together on norbot/issues-6-7-control-foundation: typed parameter declarations/references and immutable binding plans first, then the controlled Go VM adapter.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

enhancementNew feature or requestphase-3Phase 3: live controls, automation, MIDI, patch transitions, and nREPL

Projects

No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions