You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[Bug]: Voiceover is not synced with trimmed sections #1195
When recording a voiceover in a project that contains trimmed sections, the project playback skips over the trimmed sections, but the voiceover is stored as one continuous audio clip placed at the exact timeline position where the voiceover recording started. As a result, the voiceover does not follow the trims: it keeps playing through trimmed sections (which are never rendered or played) and ends up out of sync with the video content that follows.
Expected behavior
The voiceover should follow the same trim behavior as the video during playback and export:
When playback reaches a trimmed section, the voiceover should stop/pause, and resume at the end of the trimmed section.
The trimmed section should contain no voiceover audio, since it is never rendered or played (i.e. the voiceover should effectively be split around the trimmed ranges, or the trimmed portions skipped).
Playback and rendered output should keep the voiceover aligned with the video it was recorded against.
To Reproduce
Open a project and trim one or more sections out of the timeline.
Record a voiceover starting before a trimmed section and continuing past it.
Play the project.
Observe that the video jumps over the trimmed section, but the voiceover continues as one continuous audio clip from its start position instead of skipping/pausing over the trimmed section.
I have opened #1236 to fix this. The voiceover now records a snapshot of the timeline trims and playback speeds, then uses that recording clock for playback, export, transcript placement and cue selection, re-anchoring, and generated-audio insertion. When the playhead does not advance, the recording duration preserves the full take. Existing voiceovers without the snapshot keep their current behavior.
Local validation passed: 338 test files (4,786 tests; 8 skipped), changed-file Biome checks, both TypeScript checks, the Vite build, and git diff --check. Four release-notes tests fail on the clean base as well and were excluded from the passing full-suite run; repository-wide lint has 148 pre-existing formatting diagnostics on both the base and this branch. A desktop preview/export smoke test remains outstanding.
The upstream CI and diagnostic-artifact workflows remain action_required on this fork PR. Rerunning them requires repository admin rights, which my account does not have. PR: #1236
Activity
mikemikimike commentedon Oct 14, 2026
I have opened #1236 to fix this. The voiceover now records a snapshot of the timeline trims and playback speeds, then uses that recording clock for playback, export, transcript placement and cue selection, re-anchoring, and generated-audio insertion. When the playhead does not advance, the recording duration preserves the full take. Existing voiceovers without the snapshot keep their current behavior.
Local validation passed: 338 test files (4,786 tests; 8 skipped), changed-file Biome checks, both TypeScript checks, the Vite build, and
git diff --check. Four release-notes tests fail on the clean base as well and were excluded from the passing full-suite run; repository-wide lint has 148 pre-existing formatting diagnostics on both the base and this branch. A desktop preview/export smoke test remains outstanding.The upstream CI and diagnostic-artifact workflows remain
action_requiredon this fork PR. Rerunning them requires repository admin rights, which my account does not have. PR: #1236fix(editor): preserve voiceover recording spans (getopenscreen#1195)
fix(editor): map transcript cues through voiceover speed (getopenscre…