Skip to content

Phase 3 / M3: Schedule exact-frame controls and per-note parameters #8

Closed

Description

@norbot7865

Objective

Route direct and note-local controls through the existing sample-accurate scheduler with deterministic ordering and stale-handle safety.

Scope

  • Add EventSetControl/ControlCommand with symbolic target, generation, ownership epoch, sequence, and exact frame.
  • Split render blocks at control frames and document/test same-frame ordering.
  • Implement ctl, map form, scheduled form, control-value, controls, and reset-control!.
  • Add play {:params ...} validation and apply values before a note's first rendered sample.
  • Implement instrument/voice scope, inheritance, precedence, clamp opt-in, and future-event revalidation.
  • Reject stale handles, NaN/Inf, range/scope errors, unknown controls, invalid times, and bounded-queue overflow with structured errors.
  • Add control events/statistics and machine-readable control traces.

Acceptance criteria

  • Controls apply at exact requested frames and produce block-size-invariant traces/audio.
  • ctl changes audio without patch recompilation.
  • Per-note values are present on the first sample, remain voice-independent, and stale handles cannot affect reused voices.

Spec: phase-3.md §§9–11, 15, 24–28, 31.1, 33–36, 40 (Milestone 3), 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

    Control foundation #18 is merged and closed #6/#7. Starting exact-frame scheduler, ctl/inspection/reset, per-note params, stale ownership validation, traces, and block-size tests on norbot/issue-8-control-scheduler.

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