Skip to content

feat(native-audio): add native multi-output routing - #574

Merged
grazzolini merged 1 commit into
mainfrom
feat/native-output-routing
Oct 1, 2026
Merged

grazzolini merged 1 commit into
mainfrom
feat/native-output-routing

Conversation

@grazzolini

@grazzolini grazzolini commented Sep 28, 2026 •

Copy link
Copy Markdown
Owner

Summary

  • Add native output groups for project audio, stems, and cues. Sources resolving to the same device share one stream, with existing gains preserved.
  • Apply transport commands across groups and expose routing requests, effective destinations, and fallback state through Tauri IPC.
  • Attempt System Default recovery for unavailable selections. Failed default recovery stops playback while preserving position and routing preferences.

Motivation

Refs #505. Layer 1 of a three-PR review stack: native audio, shared state/engine adapters, then UI/UX. The complete stack is the runnable acceptance target.

Scope is routing first: device-clock synchronization, drift correction, latency compensation, and per-output volume controls are deferred.

Testing

  • Native audio tests: 233 passed (cargo test --manifest-path apps/desktop/src-tauri/Cargo.toml native_audio).
  • IPC tests: 17 passed (pnpm --filter @tuneforge/desktop exec vitest run src/lib/nativeAudio.test.ts).
  • cargo check, pnpm typecheck, and git diff --check passed.
  • Full integration and platform validation, including Android, Linux, and hardware routing, will run against the complete stack after all three PRs are open. This includes pnpm lint, pnpm test, and node scripts/capture-release-media.mjs --run.

Checklist

  • Native-layer implementation and focused review complete
  • Complete-stack integration and platform validation
  • Shared routing state, Web Audio, UI/UX, docs, and changelog in subsequent layers

Route project, stem, and cue playback through independent native output groups.

Keep requested routes when System Default recovery fails.

Refs #505
@grazzolini
grazzolini marked this pull request as ready for review September 28, 2026 22:38
@grazzolini
grazzolini marked this pull request as draft September 28, 2026 22:41
@grazzolini
grazzolini marked this pull request as ready for review September 29, 2026 13:27
@grazzolini
grazzolini added this pull request to stack #576 September 29, 2026 13:33
@grazzolini grazzolini mentioned this pull request Sep 29, 2026
3 of 5 tasks
@grazzolini
grazzolini merged commit ddac4aa into main Oct 1, 2026
16 checks passed
@grazzolini
grazzolini deleted the feat/native-output-routing branch October 1, 2026 19:01
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.

2 participants