Skip to content

Sound-palette prompt builder: a curated vocabulary + mood pad, the generative analog of the 2D style pad #60

Description

@brxs

Composes with #54 but does not require it — this is a prompt-construction UI over the existing text path (frontend/src/deck/DeckColumn.tsx:243-1020).

Problem

Generation input is a raw freeform textbox + a length picker + an engine select (DeckColumn.tsx:243, the engine Select at :1018). Powerful, but unplayable mid-set: writing prose under the lights is slow and the results swing wildly. The Magenta side solved the analogous problem with the 2D style pad — up to 8 weighted prompt targets blended by distance (ADR-0004, "style is a weighted prompt blend"). SA3's text prompt deserves the same treatment: a curated, composable vocabulary instead of a blank box.

Proposed approach

A sound-palette builder over the existing /api/generate path: curated chips grouped by axis (genre / era / instrument / texture / space-&-reverb / energy) that compose into a prompt, named user-savable presets (loaded like style presets, App.tsx), and a mood XY-pad (reuse frontend/src/ui/XYPad.tsx) that interpolates between two or more palette corners — the SA3 echo of the style pad. The composed prompt stays visible and editable (never a black box). Pure frontend: prompt assembly only, no model/runtime change.

Acceptance criteria

  • A user builds a generation prompt from chips/axes and a mood pad without typing prose; the composed prompt is shown and remains hand-editable.
  • Palettes save/load as named presets and persist.
  • The XY mood pad blends between palette corners and the blend is reflected in the composed prompt.
  • Reuses existing primitives (XYPad, Select, Panel, the preset machinery); strings via i18n; house style; npx tsc -p tsconfig.app.json --noEmit clean.

Scope & non-goals

In scope: the prompt-construction UX (chips, presets, mood pad). Non-goals: changing the generation backend; weighting via true latent blends (this composes text, not embeddings — a deliberate simplification vs. ADR-0011's audio embeddings); negative-prompt chips (the guidance issue).

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions