Skip to content

Changing Pre-roll or the sample rate while a Take is being saved no longer shows "Couldn't start" (#932) - #951

Merged
Skeyelab merged 1 commit into
mainfrom
fix/932-settings-coalesce
Oct 23, 2026
Merged

Skeyelab merged 1 commit into
mainfrom
fix/932-settings-coalesce

Conversation

@Skeyelab

Copy link
Copy Markdown
Member

Fixes #932.

What

TakeSequencer.settingsChanged() re-Armed at once. While a Take is being saved, Recorder.arm throws .finishing, so a clean Take was followed by a red "Couldn't start" error and the change waited for the next Arm. It now waits for the save (recorder.waitWhileFinishing()), as tierChanged does since #884, and then re-Arms. A flag keeps several changes during one save to one Arm, since each Arm restarts the input and drops Pre-roll.

Red first

New test settingsChangedWhileFinishing (AsyncStopOffMainTests) changes the setting three times during a blocked save. Before the fix: 3 issues (armError set right away, armError still set after the save, three Arms instead of one). After: passes. TakeSequencerTests and AsyncStopOffMainTests: 65 pass. VERIFY_QUICK=1 ./scripts/verify.sh passes.

Checked only by tests

Not tried on a device. TakeSequencer is on the tag gate in CLAUDE.md: it needs a real-device Take from a TestFlight build before External testers. It rides the internal tag after v1.1.16, not v1.1.16.

Known limits (from review, not fixed here)

  • A settings change and a tier or device-list change during the same save can still Arm twice (rare, one extra input restart).
  • A change deferred during a save is dropped if a new Take starts right after the save; it applies at the next Arm, as a change made during a Take already does.

…onger shows "Couldn't start" (#932)

settingsChanged() re-Armed at once; during a save Arm throws .finishing, so a clean
Take was followed by a false error. It now waits for the save like tierChanged, and
several changes during one save make one Arm.

Assisted-by: Claude Code:claude-sonnet-5-5
@Skeyelab
Skeyelab enabled auto-merge (squash) October 23, 2026 05:16
@codecov

codecov Bot commented Oct 23, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@Skeyelab
Skeyelab merged commit 65fd596 into main Oct 23, 2026
11 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.

Changing Pre-roll or the sample rate just after Stop shows a false "Couldn't start" error

1 participant