Skip to content

Feature Proposal: Vertical Cast Preset Bar (Left of Gutter) #2

Description

@hneal98

Feature Proposal: Vertical Cast Preset Bar (Left of Gutter)

Summary

Add a vertical Cast button bar that displays the project’s presets (up to 15), sorted alphabetically, as colored buttons. This allows users to see the available cast at a glance and select the active preset with one click. A compact N / E / S / D management row beneath the bar will handle preset creation, editing, saving, and deletion — replacing the right‑side preset dropdown.

Motivation

  • The current preset dropdown hides the available cast and slows switching.
  • The gutter already shows who is speaking; the cast bar shows who can speak.
  • Switching presets becomes dramatically faster with visible buttons.
  • Most narration projects use a small cast (often 1–2 voices for long stretches; rarely more than ~15).

Proposed UI

Layout

[ Cast Column ] [ Gutter Column ] [ Editor ]

Column Headers

  • Cast — above cast button bar
  • Gutter — above gutter markers
  • “Current Chunk Editor” shifts slightly upward to align the header row.

Cast Buttons

  • Styled like gutter markers: preset color background + high‑contrast white text.
  • Alphabetical order.
  • Maximum: 15 presets.
  • Click → sets active preset (same as current dropdown).
  • Selected state visually distinct.
  • Tooltip: full preset name (and optionally voice ID).

Management Row (N / E / S / D)

[ N ] [ E ] [ S ] [ D ]
Button Color Tooltip Action
N Blue New preset Create a new preset seeded from current voice settings.
E Amber Edit preset Load selected preset into voice controls.
S Green Save preset Update selected preset or create new.
D Red Delete preset Confirm, then remove selected preset.

Voice Settings & Save Behavior

  • Right panel continues to control voice, rate, pitch, volume.
  • These values are saved into the selected preset when pressing S.
  • N seeds a new preset from current voice settings.
  • If no preset is selected:
    • E and D disabled.
    • S optionally limited to “create new”.

Preset color is fixed at creation.


Right Panel Changes

  • Keep: Voice / Rate / Pitch / Volume controls.
  • Remove: Preset dropdown + Save/Delete buttons.

Behavior Summary

Action Result
Click cast button Sets active preset; becomes target for E/S/D
N New preset from current voice settings
E Load selected preset into voice controls
S Update selected preset or create new
D Delete selected preset
Load project/chunk Cast bar rebuilds (alphabetical, ≤15)
Add/rename/delete preset Cast bar updates

Roles

  • Cast bar → who’s available + preset management
  • Gutter → who’s speaking on this line
  • Voice panel → live voice settings saved into presets via S

Technical Notes

Likely files involved:

  • MainWindow.xaml — cast column, headers, button list, N/E/S/D row
  • MainWindow.xaml.cs — selection logic, handlers, refresh on collection changes
  • Preset.cs — name + color binding
  • PresetGutter.cs — if active preset must sync with gutter
  • Project/chunk JSON load path — cast bar uses same preset list as dropdown

Bind cast bar to sorted preset collection (max 15).


Acceptance Criteria

  • Cast bar appears left of gutter with headers.
  • Buttons use preset color + high‑contrast text; alphabetical; max 15.
  • Clicking a button selects active preset; selection is visually clear.
  • N/E/S/D row implemented with correct colors and tooltips.
  • Save dialog unchanged; persists voice/rate/pitch/volume.
  • Bar updates on project load and preset changes.
  • Right‑side preset dropdown + Save/Delete removed.
  • Voice controls remain unchanged.
  • No recoloring after creation.

Out of Scope

  • Recoloring presets after creation
  • Drag‑and‑drop reordering
  • Showing more than 15 presets
  • Changing gutter marker format or meaning

Design Intent (One Line)

Gutter = who’s on this line; Cast = who’s in the story; N/E/S/D = manage the cast; voice sliders define what Save writes into the selected (or new) preset.

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

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions