Skip to content

bug: recall() is not idempotent — re-recalling same scene triggers audible rebuild #15

@jonkhler

Description

@jonkhler

Calling kr.recall("chorus") when already in the chorus scene triggers an audible rebuild (audio dip + pattern restart). It should be a no-op if the current state already matches the target scene.

Reproduction:

  1. Set up verse/chorus scenes
  2. with kr.transition(bars=4): kr.recall("chorus") — changes to chorus
  3. with kr.transition(bars=4): kr.recall("chorus") again — audible rebuild even though nothing changed

Expected: Recalling the same scene you're already in should be a no-op (or at minimum, should not cause any audible artifact).

Root cause: recall() unconditionally clears all state and re-instantiates from the scene IR. It doesn't diff current state against target. Even identical state causes a full graph rebuild → audio interruption.

Related: #12, #13, #14 — all point to recall/rebuild being too destructive. The fix for all four may be the same: diff-based state application instead of clear+rebuild.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions