Skip to content

A node's tail stops when its source stops, and carries on when the source comes back #180

Description

@bdbarnett

Found by the lifecycle matrix on 2026-09-28 in seven of the eight effects built in Phase 5.

audioecho.FeedbackDelay, audioverb.Tank and audioconvolve.Convolver advance only on frames their source hands them (FeedbackDelay.c:235-239: "the tail stops with the source"). When a source runs dry, the line freezes. When the source comes back, the frozen tail carries on from where it stopped, over the new material: on a noise burst the matrix read up to 11817 LSB of old audio after a pause.

What a player hears: a note's echoes do not ring out after the note ends. They wait, and then play over the next note. It does not show while something keeps feeding silence, which the audio pump and a synth voice do.

audiodelays.MultiTapDelay already behaves the other way: at the end of its source it drops the source and keeps processing silence, so its tail rings.

Brad ruled on 2026-09-28: disclose it now, fix it in the nodes later. Each Phase 5 class says so in one sentence. This issue is the later.

Wanted

  • One behaviour across the nodes: when the source runs dry, the node processes silence until its tail has ended, then rests.
  • What a source that comes back should meet: a node at rest.
  • The same on all three bindings.

It reaches every delay and reverb class built on these nodes, so it should land between effects phases, not inside one. Related: #177.

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions