Repository navigation
Complete native capture, review, session, and export workflow - #2
Conversation
|
Merged-work handoff — October 5, 2026 This PR is merged into main at 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. |
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.
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 verifyreports 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.