Bounce a Performance (#64) #121
No reviewers
Labels
No labels
bug
duplicate
enhancement
help wanted
invalid
needs-info
needs-triage
question
ready-for-agent
ready-for-human
wayfinder:grilling
wayfinder:map
wayfinder:prototype
wayfinder:research
wayfinder:task
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
crowmaki/ai-studio!121
Loading…
Reference in a new issue
No description provided.
Delete branch "issue-64-bounce-performance"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Closes #64. Part of #24 (User Stories 181–182).
What it does
Bounce renders a Scene's Cut audio into its next Performance version.
covered = false). Holes at either end are left out of the audio. Every hole is returned and listed in a warning, so a Bounce never invents dialogue.performance_sourcenow records Take sources and a carried-forward Performance alongside imports.How
studio-core:ProjectSession::plan_bouncereads the Cut, using a new crate-internalbounce_sourcesnext to the Cut builder.BounceAudio::renderdecodes the sources with the ffmpeg sidecar and lays them end to end at 48 kHz stereo.ProjectSession::bounce_performancestores the result.store_performance.performance_sourcewith kindsimport | take | performanceand a typed FK column per kind. This keeps the references real under ADR-0004. A later kind, such as local TTS, adds one column and one kind.12A-3,v1 carried forward.Tests
crates/studio-core/tests/performance_bounce.rsruns through theProjectSessionseam, with real audio from the fake ComfyUI. It covers:cargo test --workspace --all-features(58 test binaries),bun test src(245) andbun run checkall pass.Screenshots
Scene with a v1 Performance imported over the first two Lines, before the Bounce:
After the Bounce: v2 carries v1 forward, the ghost lane shows v1, and the warning lists the silent third Line:
Version history with each version's sources:
These screenshots don't show Take sources. A circled Take needs a ComfyUI render, and this run had none. The integration tests cover Take sources.