Skip to content

Derive speaker formant override keys from declared formant bank #17

Description

@ctoth

Problem

Speaker formant override projection still hardcodes F1 through F10 in the frontend, even though control-score projection was made dynamic. This leaves one remaining fixed-formant-count assumption in the FE signal path.

Evidence

  • src/tts-frontend.ts defines SPEAKER_FORMANT_KEYS = ["F1" ... "F10"].
  • src/tts-frontend.ts iterates that list when applying speaker profile formant overrides.
  • src/control-score.ts no longer has the old index <= 10 loop, so the frontend override path is now the remaining mismatch.

Acceptance criteria

  • Derive speaker formant override keys from the active formant-bank/graph registry or another declarative synthesizer capability surface.
  • Remove SPEAKER_FORMANT_KEYS as a fixed F1-F10 list.
  • Add a focused test proving an F11 speaker override is carried when the active synthesizer declares that formant.
  • Do not reintroduce a fixed upper bound in TypeScript.
  • npm.cmd run typecheck:core passes.

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