Skip to content

feat: add advanced per-application audio routing - #40

Merged
FaulMit merged 9 commits into
FaulMit:mainfrom
halsatif:issue-31-process-audio-backend
Aug 25, 2026
Merged

feat: add advanced per-application audio routing#40
FaulMit merged 9 commits into
FaulMit:mainfrom
halsatif:issue-31-process-audio-backend

Conversation

@halsatif

@halsatif halsatif commented Aug 21, 2026

Copy link
Copy Markdown
Contributor

Summary

  • add the native OBS process-audio source backend contributed by @halsatif
  • add complete per-application audio routing UI with real application icons, search, live level meters, microphone routing, and format-aware track limits
  • expose routed sources as quick toggles on the main window
  • preserve useful track names and show every audio track in the clip editor
  • recover routed capture after process exits or restarts without stopping the replay buffer
  • fix tray shutdown, startup icon/indicator, routing hover/search, and multi-track editor regressions
  • prepare Captail 0.2.2 documentation, release notes, and Microsoft Store listing assets

Validation

  • dotnet build Captail.sln -c Release --no-restore
  • 27 process-audio foundation tests
  • issue several issues found during replay/editor testing #41 regression and follow-up contracts
  • startup tray/indicator contract
  • all 11 localization dictionaries and protected compact layouts
  • Microsoft Store workflow and listing validation
  • Portable release-candidate build and real application testing

Closes #31

halsatif and others added 6 commits August 22, 2026 00:58
Add persistent executable-to-track routing, stable process-tree reconciliation, and the PID-aware OBS loopback plugin. Include focused backend QA and package the native source in portable and Store builds while leaving WPF UI and localization unchanged.
@FaulMit FaulMit linked an issue Aug 22, 2026 that may be closed by this pull request
2 tasks
@FaulMit

FaulMit commented Aug 22, 2026

Copy link
Copy Markdown
Owner

I integrated the maintainer-side UI and runtime fixes on top of the original process-audio backend.

What changed

  • added Advanced as the third audio-track mode while keeping existing mixed and separate modes unchanged
  • added an application-routing dialog with search, live audio-level meters, per-application track selection, and a separate microphone track selector
  • ordered the process list as Selected, Playing audio, then Other processes
  • included processes without an active audio session so routes can be prepared before an application starts playing sound
  • added real executable icons with a cached asynchronous loader and initials as the fallback for protected or inaccessible processes
  • made available track choices follow the selected container/audio-codec limits
  • preserved and normalized routes across application and Captail restarts
  • hardened process-source recovery, cleanup, and failure isolation without interrupting the replay buffer
  • fixed the search-field caret/text layout and removed the flickering row-hover animation
  • made OBS SDK archive verification work consistently in Windows PowerShell and GitHub Actions
  • added automatic Portable artifacts for pull requests

Portable test build

Download Captail-PR-40-win-x64

Built from commit 50d766b. Extract the artifact, then extract Captail-0.2.1-Portable-win-x64.zip and run Captail.exe. GitHub sign-in may be required. The artifact is retained for 14 days.

SHA-256 for the Portable ZIP:

20d36ae4a26842f4940f399d46b57ede75871750b7dadf9db5bb4166fcfee5ff

Suggested test coverage

  • route a game, Discord, browser, and media player to different tracks
  • restart routed applications and confirm their routes recover
  • test Chromium-family multi-process applications
  • route the microphone to another track
  • change container/audio codec and confirm unavailable tracks disappear
  • restart Captail and confirm configuration persists
  • switch back to mixed/separate modes and confirm their previous behavior is unchanged
  • save a replay and verify expected tracks in the editor or a media inspector

CI passed: build, analyzers, capability model, replay routing, localization, Store workflow checks, diagnostics policy, and Portable packaging.

@FaulMit FaulMit changed the title feat: add advanced process audio backend feat: add advanced per-application audio routing Aug 25, 2026
@FaulMit
FaulMit marked this pull request as ready for review August 25, 2026 11:23
@FaulMit
FaulMit merged commit dd07293 into FaulMit:main Aug 25, 2026
1 check passed

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: b20e73b6b1

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread tools/DeployTestBuild.ps1
Comment on lines +87 to +91
"Captail.exe",
"CaptailObsBridge.dll",
"obs.dll",
"libmpv-2.dll",
"ffmpeg\ffmpeg.exe")) {

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Validate the process-audio plugin during test deployment

When DeployTestBuild.ps1 is run with -SkipBuild or a supplied ArtifactRoot, this required-file check can report a successful deployment even if obs-plugins\64bit\captail-process-audio.dll is absent. The deployed app then marks per-application routing as unavailable, so manual QA can unknowingly test a build without the feature; include the plugin in this validation list as the release and Store scripts already do.

Useful? React with 👍 / 👎.

@FaulMit FaulMit linked an issue Aug 25, 2026 that may be closed by this pull request
@FaulMit

FaulMit commented Aug 25, 2026

Copy link
Copy Markdown
Owner

Thanks @halsatif — merged and released in Captail v0.2.2. Your original process-audio backend commit remains preserved in the project history; the merged scope adds the complete routing UI, recovery, editor integration, tests, and documentation.

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.

several issues found during replay/editor testing [Feature]: advanced per-application audio routing

2 participants