Skip to content

Complete native capture, review, session, and export workflow - #2

Merged
ddri merged 6 commits into
mainfrom
codex/desktop-workflow-release-candidate
Oct 5, 2026
Merged

ddri merged 6 commits into
mainfrom
codex/desktop-workflow-release-candidate

Conversation

@ddri

@ddri ddri commented Oct 5, 2026 •

Copy link
Copy Markdown
Owner

Summary

Completes Batcherbird's native capture → review → save session → export workflow. Captures now use the actual audio-device configuration, retain completed takes when stopped, and release MIDI notes during cancellation and worker cleanup. Review supports selecting, auditioning, and replacing individual takes, with portable lossless sessions and post-batch recovery.

  • Correct stereo frame handling, playback sample-rate conversion, capture overflow/error reporting, and responsive cancellation. Preview completion retains the stream for the final buffer’s estimated playback deadline with a conservative drain allowance; Stop remains immediate.
  • Generate consistent processed WAVs and DecentSampler/SFZ mappings, including sparse key coverage, non-overlapping velocity zones, relative sample paths, and frame-correct loop coordinates.
  • Redesign the desktop with collapsible settings, more waveform space, clear capture/review/export actions, and guarded asynchronous operations. Preserve unsaved work with an in-app Keep current session / Open replacement confirmation after the candidate validates; long session filenames truncate within the toolbar.
  • Persist export settings, including opt-in experimental looping and a silence-trim toggle for quiet attacks. Export processing operates on a copy of the original recordings.
  • Stage macOS packages transactionally, preserve existing artifacts on failure, derive minimum OS from the binary, strengthen CI, and document desktop/hardware acceptance gates.

Post-batch recovery restores the last captured batch and its settings; opening or editing another saved session does not update that checkpoint. Generated app/DMG and QA audio artifacts are local and are not committed.

Validation

  • cargo test --workspace --offline: 142 passed, 0 failed, 1 ignored (real audio hardware required).

  • cargo clippy --workspace --all-targets --offline -- -D warnings, formatting, and diff whitespace checks passed. The same strict checks were reproduced with CI's Rust 1.99 toolchain; newer Clippy warnings were corrected without weakening the CI gate.

  • Packaging rollback/metadata fixtures passed; release build and local app/DMG packaging succeeded. Plist validates, packaged binary matches the release build, and hdiutil verify reports a valid DMG checksum.

  • Preview regression tests distinguish final-buffer submission from completion, retain conservative drain time, and verify immediate Stop. Session-replacement tests verify full settings/audio retention on Keep current and applying only the validated candidate on confirmation. Parallel workflow test directories use an atomic sequence to prevent clock-tick collisions.

  • Artifact-based workflow tests verify moved sessions, exact float audio restoration, completed-take/canceled-re-record retention, stereo/quiet-attack/release preservation, and every key/velocity in the fixture range matching exactly one region in both presets.

  • Native demo QA loaded six takes through Open, selected a sample with visible keyboard focus, saved a portable session with all six full-length stereo float recordings, and exported six 48kHz stereo 24-bit WAVs plus DecentSampler/SFZ presets through the native folder chooser.

  • Explicit accessibility values identify ordinary desktop buttons; checked-row labels and accessibility activation still need a Vizia framework fix.

  • Reusable six-take QA session generator stores an absolute export destination; desktop/hardware test procedures include observed results and remaining checks.

  • GitHub CI on b6dbf0c: desktop workflow/strict Rust checks, macOS app/DMG packaging and checksum verification, and experimental Linux checks all passed.

Remaining validation

Ready for code review; all automated CI checks pass. The following acceptance checks remain release requirements and do not block reviewing this implementation. The revised layout, Tab/Return activation, load, save, and combined export have native observations. Playback/listening, minimum-size resizing, the new in-app replacement confirmation’s rendering/keyboard behavior, invalid-file recovery, dialog cancellation, Shift+Tab/shortcuts, and full VoiceOver support remain to be verified. Real synth/interface capture, DecentSampler/SFZ player listening, clean installation and microphone permissions, and distribution signing/notarization remain pending. Current local packaging is Apple Silicon; Intel and broader OS compatibility are unverified.

Automatic loops remain experimental. Default silence trimming uses a −40dB threshold and can remove very quiet attacks; users can disable trimming to retain the full take. The quiet-attack trimming test deliberately uses a lower threshold. No release tag is created by this PR.

@ddri
ddri marked this pull request as ready for review October 5, 2026 17:54
@ddri
ddri merged commit e47220f into main Oct 5, 2026
3 checks passed
@ddri
ddri deleted the codex/desktop-workflow-release-candidate branch October 5, 2026 19:58
@ddri

ddri commented Oct 5, 2026

Copy link
Copy Markdown
Owner Author

Merged-work handoff — October 5, 2026

This PR is merged into main at e47220f. Implementation validation finished with 142 passing tests, one real-hardware test ignored, strict Clippy/formatting passing, and all three CI jobs passing on PR head b6dbf0c.

The next session is tracked in #3: the complete 30-minute hardware acceptance procedure, a checklist, equipment/results template, instructions to build current main, and the remaining desktop/accessibility/installation/signing release gates are recorded there.

Real synth/interface capture and DecentSampler/SFZ listening remain untested. The latest in-app confirmation also still needs native visual/keyboard verification after automation disconnected. No release has been published. Resume from #3 when the hardware is available.

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.

1 participant