Skip to content

Settings tab: audio wave, Output and Voice - #18

Merged
davior merged 2 commits into
mainfrom
claude/vigilant-lamport-97wwx7
Oct 24, 2026
Merged

davior merged 2 commits into
mainfrom
claude/vigilant-lamport-97wwx7

Conversation

@davior

@davior davior commented Oct 24, 2026 •

Copy link
Copy Markdown
Owner

What

A new Settings tab for what applies to the whole video.

  • Audio wave across every scene (chrome.waveform). The spec and renderer already supported it; nothing in the editor could set it. Same settings and defaults as a scene's wave layer.
  • Output: shape (aspect), size, quality, frame rate, subtitles, chapter marks, cover picture.
  • Voice: a named voice, speaking speed, and the three pauses (between paragraphs, at a heading, at the end of a scene).
  • The project's default camera moves there from the Scenes tab.

Each setting writes only what differs from the spec's own defaults (checked against the backend model) and removes a section left empty, so a spec keeps to what was actually said. spec/settings.ts holds these as pure spec-to-spec functions, so a future project template can be a partial spec applied over the same fields.

Deliberately not built

voice.provider and voice.expressivity exist in the spec, but the renderer does not read them (it warns about expressivity). A control that does nothing is worse than none, so they have none until the renderer honours them.

Tests

Frontend: 168 passed, lint clean, npm run build typechecks. Backend untouched.

🤖 Generated with Claude Code

https://claude.ai/code/session_01XHkHXgxVVH3dn6EAVL9rbN

The spec has always had `chrome.waveform` (what Notes draws across a whole video) and
the renderer honours it, but nothing in the editor could set it. A new Settings tab
holds it, with the same settings and defaults as a scene's wave layer; the shared
vocabulary moves to spec/waveform.ts. The project's default camera moves there from
the Scenes tab, so the tab is the one home for what applies to the whole video.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XHkHXgxVVH3dn6EAVL9rbN
Output: shape, size, quality, frame rate, subtitles, chapter marks and cover picture.
Voice: a named voice, speaking speed and the three pauses. Both write only what
differs from the spec's own defaults, and remove a section left empty.

The spec also has `voice.provider` and `voice.expressivity`, which the renderer does
not read yet (it warns about expressivity), so there are no controls for them: a
control that does nothing is worse than none.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XHkHXgxVVH3dn6EAVL9rbN
@davior davior changed the title Settings tab with the project-wide audio wave Settings tab: audio wave, Output and Voice Oct 24, 2026
@davior
davior marked this pull request as ready for review October 24, 2026 05:05
@davior
davior merged commit dd2ab03 into main Oct 24, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants