Skip to content

Improve recording and MIDI workflows; package offline support - #36

Merged
sdevil7th merged 34 commits into
developfrom
test-run-1-bugfixes
Nov 5, 2026
Merged

sdevil7th merged 34 commits into
developfrom
test-run-1-bugfixes

Conversation

@sdevil7th

@sdevil7th sdevil7th commented Nov 4, 2026 •

Copy link
Copy Markdown
Owner

Recording and editing the supplied 31-track project exposed tiny-block processing costs, excess waveform work, source/render inconsistencies and MIDI/mixer bugs. This PR addresses those paths and packages a separately opened, offline Support application. Support stays inactive until the user opens it and requires the DAW to be closed before collection or analysis.

The owner accepted the measured 8-sample limitation as non-blocking for PR #36 on 5 November 2026, and asked to stop further optimization. The measurements remain failures; no timing threshold or test assertion was relaxed. This decision does not establish that further optimization is impossible or guarantee dropout-free recording.

Changes:

  • Prepare recording storage before capture, use bounded recording FIFOs, and reduce repeated source/track work at tiny buffers while preserving deadlines and fault handling.
  • Prepare native NAM input/track effects for the actual device capacity, including insertion after device startup, reducing cabinet FFT work without added cabinet latency. Preserve other processors' preparation reserve.
  • Bound waveform work to the viewport; improve recording previews, tempo analysis, mixer behavior, linked crossfades, project-rate copies, joined MIDI notes and selected-clip export. Preserve the fixes shipped in 0.1.08.
  • Package Support for Windows, macOS and Linux without requiring Python or terminal commands. Collect bounded existing logs, filtered audio/plugin settings and optional crash reports; inspect audio/MIDI exports offline. Users review and share archives themselves. No automatic collection, upload, service or startup task is added.
  • Match incident module IDs against real PDB GUID/age, Mach-O UUID or ELF build IDs. Keep current-install and incident identities separate. Archive matching native symbols and frontend source maps at build time, outside the runtime package.
  • Compile optional callback timing, ARA logging and diagnostic state out of ordinary builds. Remove routine heartbeat/fault polling; the Windows crash helper waits on events. Timed hang monitoring is restricted to explicit diagnostic tests and final Quit. Keep crash capture and functional audio/MIDI/ARA behavior.
  • Keep exactly neutral EQ coefficients free of recursive fused-math residue; add a strict exact-PCM regression without relaxing the spectral export limit.
  • Use bundled Vorbis for offline OGG exports so system FFmpeg builds without libvorbis work, retaining bounded cancellation, finalisation checks and atomic publication.
  • Qualify installers/MSIX, Linux packages and standalone Support through nonpublishing workflows. Add an actual Linux executable/symbol/source-map archive check.

Validation at 074cc2e7ff65b72e8eb90c0e9cfaba23cf18f53c:

  • Verify run: all 25 jobs pass. The Mac browser rerun passed 295 tests with 33 skips after the first attempt encountered a Chromium promise-collection error during test setup. The same commit was tested; the original failure trace is retained. No application assertions or timing thresholds were relaxed.
  • Windows: pass. Native and installed-package checks cover protected normal/safe startup, detached windows, engine/export/FX tests, installer installation/uninstallation and bundled Support. The C++ build has zero compiler warnings.
  • Windows App Certification Kit: pass. Certification job and report: overall PASS, exit 0, all 13 required tests pass, no required findings, published: false. Application count (1 finding) and blocked executables (179 findings) are optional failures retained in the report. MSIX SHA-256: 00b1c8e86a35ef809e007812a73b694b0266de9444df00ad67c221c1c55bffc6.
  • macOS native: pass on Apple Silicon and Intel, with zero C++ compiler warnings. Native OGG quality 0-10, mono/stereo, sample-rate conversion, Unicode paths, cancellation and existing-output protection pass. The Apple Silicon export report has 429 passes and one explicitly unsupported Windows-only plugin-isolation check (not_asserted). Neutral-EQ PCM error is exactly zero; spectral route error is 1.862645149230957e-9, below the unchanged limit.
  • Finished universal DMG: pass on both architectures. Apple Silicon installed report and Intel installed report identify the same DMG SHA-256, d0bb9bd0831c7336c41f0d000ee298b7f9b3ed309aeed5e661fb78ca5e7b2a9a. Each passes all 88 window checks, frozen Support, Finder launch and ad-hoc signature integrity. Notarization/Gatekeeper are explicitly not_asserted.
  • Linux: pass. Native/package job: warning-free C++ build; actual executable/symbol/source-map archive matching; installed DEB normal/safe startup, detached windows, render/export and engine checks; final AppImage launch/lifecycle and ABI checks. Installed binaries retain build IDs while debug sections stay in the separate archive.
  • Support and tooling: pass. Standalone Windows/Linux/Mac Support packages and universal-Mac assembly/Intel execution, Python tooling, and all three platform AI-runtime checks pass. Support remains a separately opened offline application; collection and analysis require the DAW closed.
  • Local follow-up: pass. Warning-free Windows Release build, all 427 export checks, and six focused EQ suites. The exact-unity coefficient correction adds a strict exact-PCM regression rather than widening the spectral tolerance. Local precommit binaries retain their dirty-tree identity; they are not relabelled as clean commit builds.

Accepted hardware limitation — fail, non-blocking:

With Dota 2 running, Audient ASIO at 48 kHz / 8 samples and four NAM tracks at 4x oversampling, the tested executable recorded 3,658 late callbacks / 180,000 (mean 82.6 us, p99 190.8 us, maximum 408.7 us). Worker misses cover a different interval and are not additive. Raw synthetic capture passes; engine/worker capacity fails. The separate 31-track UI result remains 19 engine misses / 21 host overruns. Scheduling attribution is diagnostic_only; physical driver xruns, monitor continuity, round-trip latency and subjective quality remain not_asserted. Exact binaries, counts and trace limitations are retained in the qualification record.

Release limits:

  • Developer ID/notarization credentials remain unavailable; notarization and Gatekeeper acceptance are not asserted.
  • Store account inspection remains restricted by its tag-only environment policy. WACK is not Store approval; submission, update delivery and S-mode are not asserted.
  • Physical interfaces, mixed-DPI transitions, Linux FUSE/RPM installation and listening checks remain manual. Scheduling attribution is diagnostic_only; subjective audio quality remains not_asserted. No formal PR review approval is recorded.

Release notes describe the unpublished candidate. The PR is open, non-draft, conflict-free and fully green, ready to merge with the owner-accepted 8-sample limitation above. No release tag, Store submission, publication or merge is included. Private recordings, project copies and machine traces are excluded.

* Fix plugin parameter history across consecutive gestures

* Close native Touch on keyboard Undo and qualify WebKit history

* Retain and summarize AppImage lifecycle failure evidence

* Give the ruler browser fixture document-owned module lifetime

* Prepare reviewed cumulative 0.1.08 release notes

* Isolate AppImage qualification outputs without discarding evidence
@sdevil7th sdevil7th changed the title Improve low-buffer recording and MIDI editing workflows Improve recording and MIDI workflows; package offline support Nov 4, 2026
@sdevil7th
sdevil7th marked this pull request as ready for review November 5, 2026 04:55
@sdevil7th
sdevil7th merged commit 8eb2fca into develop Nov 5, 2026
49 of 50 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.

1 participant