Skip to content

feature: integrate per-stem volume sliders into the mixer popover #7

Description

@byrongamatos

Restored from slopsmith/slopsmith#95 — original issue, opened by @byrongamatos on 2026-04-26.
[restored-from: slopsmith/slopsmith#95]

Follow-up from #378 / #94.

slopsmith#94 introduces a fader registry (`window.slopsmith.audio.registerFader`). For sloppak songs with separated stems, each stem (guitar, bass, drums, vocals, piano, other) already has its own GainNode in `window._stemsState`, exposed today via the existing stem panel. Folding them into the mixer popover would give the user one surface for all audio balance: Song · Amp · Guitar Stem · Bass Stem · ...

Considerations

  • Stems are per-song state — `_stemsState` is rebuilt on each `playSong()`. Faders would need to register on song load, unregister on song teardown.
  • Variable count — depends on what stems were split. Some songs have 2, some have 6.
  • Existing stem panel (slopsmith-plugin-stems) overlaps with this functionality. The cleanest path is probably the Stems plugin opting in: register-and-unregister faders on song load/teardown, leaving the existing panel as the more detailed view.
  • Mixer popover width — N+2 strips (Song, Amp, plus stems) may overflow the popover. May need horizontal scroll or a configurable hide-by-default mode.

Out of scope for this issue

  • Mute/solo per stem (currently in stem panel; could come later).
  • Per-arrangement stem presets.

Acceptance criteria

  • Sloppak song with 4+ stems → mixer popover shows Song, Amp (if enabled), and one strip per stem.
  • Switching songs → stem strips disappear/reappear cleanly without dangling faders.
  • Existing stem panel continues to work; no double-control fight.

Reference: parent feature #378, registry implemented in #94.

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

    audioAudio engine, latency, routing, VST/NAMcap:1:audio-mixFaders, mixer state, analyser integration, and per-source balancecap:1:stemsStem ownership, stem state, stem mute/restore, and stem-specific playback behaviorpluginRelates to a slopsmith pluginuxuser-experience

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions