Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
8914b40
feat(windows): add managed VB-CABLE lifecycle
DeadMorose777 Aug 17, 2026
f7ce741
feat(windows): expose virtual microphone setup
DeadMorose777 Aug 17, 2026
843db0e
docs(windows): document VB-CABLE integration
DeadMorose777 Aug 17, 2026
24e8b0b
fix(windows): restore VB-CABLE build
DeadMorose777 Aug 17, 2026
9f4086b
fix(windows): harden VB-CABLE uninstall
DeadMorose777 Aug 17, 2026
0a14846
ci(windows): verify VB-CABLE build
DeadMorose777 Aug 17, 2026
e220d39
fix(windows): bind cable endpoints to PnP packages
DeadMorose777 Aug 17, 2026
3f14832
fix(windows): publish verified cable archives atomically
DeadMorose777 Aug 17, 2026
3f0fd9e
fix(windows): scope cable consumers to user identity
DeadMorose777 Aug 17, 2026
35bb0a1
fix(windows): preserve consumer identity across UAC
DeadMorose777 Aug 17, 2026
53f09ae
fix(windows): recognize installed VB-CABLE reliably
DeadMorose777 Aug 17, 2026
8383728
feat(windows): move virtual microphone setup into nodes
DeadMorose777 Aug 17, 2026
13309dc
docs(windows): add VB-CABLE UX screenshots
DeadMorose777 Aug 17, 2026
3776796
chore: merge upstream main
DeadMorose777 Aug 18, 2026
66031f4
chore(windows): remove pr concept assets
DeadMorose777 Aug 18, 2026
3569c90
refactor(windows): move virtual microphone setup to devices page
DeadMorose777 Aug 18, 2026
53d44ad
refactor(windows): remove unused uninstall command
DeadMorose777 Aug 18, 2026
a22aced
fix(windows): preserve elevated helper diagnostics
DeadMorose777 Aug 18, 2026
a4231e6
test(windows): support headless audio enumeration
DeadMorose777 Aug 18, 2026
ff933e2
docs(windows): clarify virtual microphone setup
DeadMorose777 Aug 18, 2026
cdfd9ed
fix(windows): reflect virtual cable ownership states
DeadMorose777 Aug 18, 2026
d003b46
fix(windows): select the standard cable endpoints
DeadMorose777 Aug 18, 2026
35609cc
fix(ci): keep generated plugin formats platform stable
DeadMorose777 Aug 18, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
41 changes: 41 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -56,3 +56,44 @@ jobs:

- name: Svelte / TypeScript check
run: bun run check

windows:
runs-on: windows-latest
env:
CMAKE_POLICY_VERSION_MINIMUM: '3.5'
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Setup Bun
uses: oven-sh/setup-bun@v2
with:
bun-version: latest

- name: Setup Rust toolchain
uses: dtolnay/rust-toolchain@stable

- name: Cache cargo build
uses: Swatinem/rust-cache@v2
with:
workspaces: src-tauri

- name: Install JS deps
run: bun install --frozen-lockfile

- name: Cargo test
working-directory: src-tauri
run: cargo test

- name: TS-RS bindings up to date
run: git diff --exit-code -- src/lib/modules/pipeline/generated

- name: Build Windows application
working-directory: src-tauri
run: cargo build --bin splitwave

- name: Svelte / TypeScript check
run: bun run check

- name: Build unsigned NSIS installer
run: bun run tauri build --bundles nsis --no-sign
24 changes: 22 additions & 2 deletions NOTICE
Original file line number Diff line number Diff line change
Expand Up @@ -146,7 +146,27 @@ licenses and are not distributed with Splitwave.


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
7. Dependency License Gating
7. VB-Audio VB-CABLE (Windows virtual microphone)
-----------------------------------------------

On Windows, Splitwave can install and manage the standard VB-CABLE virtual
audio driver from VB-Audio Software. VB-CABLE is a third-party donationware
component; it is not developed by Splitwave and is not covered by Splitwave's
MIT license.

VB-CABLE origin: https://www.vb-cable.com
VB-CABLE information: https://vb-audio.com/Cable/
Licensing terms: https://vb-audio.com/Services/licensing.htm

Splitwave downloads only the standard VB-CABLE package from VB-Audio's official
HTTPS host after an explicit user action. The user-facing setup identifies
VB-CABLE as donationware and provides the official information page. VB-Audio's
licensing terms may require a separate distribution or volume license for
professional deployments.


-----------------------------------------------------------------
8. Dependency License Gating
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

The Rust dependency tree is checked in CI with `cargo-deny` against
Expand All @@ -156,7 +176,7 @@ than reviewed after the fact.


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
8. Other Notable Dependencies
9. Other Notable Dependencies
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

The following components are used under permissive licenses
Expand Down
23 changes: 16 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,16 @@ Requires Windows 10 version 2004 or newer (for per-app capture) and the
(preinstalled on current Windows 10/11). Download the `.exe` installer from
[Releases](https://github.com/Horuse/Splitwave/releases/latest) and run it.

Virtual audio devices are not available on Windows.
To expose a Splitwave output as a microphone:

1. Open **Virtual devices** and choose **Install virtual microphone**.
2. Complete the VB-CABLE installer.
3. Restart Windows if Splitwave shows **Restart required**.
4. Select `CABLE Input` in a Speaker node.
5. Select `CABLE Output` as the microphone in the target app.

VB-CABLE is third-party donationware; see its
[official page](https://vb-audio.com/Cable/) for licensing and support.

## Platform support

Expand All @@ -56,7 +65,7 @@ Virtual audio devices are not available on Windows.
| Device volume control | ✅ | ✅ | ✅ |
| Recording: WAV / FLAC / AIFF / MP3 / Opus | ✅ | ✅ | ✅ |
| Recording: AAC (M4A) | ✅ | ❌ | ❌ |
| Virtual audio devices | ✅ AudioServerPlugin | ✅ PipeWire null-sinks | ❌ (no user-mode driver model) |
| Virtual audio devices | ✅ AudioServerPlugin | ✅ PipeWire null-sinks | ✅ fixed VB-CABLE microphone |
| Effects, metering, file playback | ✅ | ✅ | ✅ |
| CLAP plugins | ✅ | ✅ | ✅ |
| VST3 plugins | ✅ | ✅ X11 | ✅ |
Expand All @@ -80,14 +89,14 @@ Virtual audio devices are not available on Windows.
VST3 defines no Wayland embedding
- **Presets & templates:** shared effect presets with factory defaults, plus
ready-made pipeline templates in the create flow
- **Virtual devices:** create named virtual audio devices that appear system-wide.
Use them to capture loopback audio from any app or to feed processed audio into
apps that accept a microphone input (DAWs, Discord, etc.)
- **Virtual devices:** create named virtual audio devices that appear system-wide
on macOS and Linux. Windows uses the single fixed VB-Audio VB-CABLE pair as a
managed virtual microphone; it does not provide arbitrary named Windows devices.

System and per-app capture use **ScreenCaptureKit** on macOS, **PipeWire** on
Linux, and **WASAPI loopback** / the **Process Loopback API** on Windows. Virtual
devices are AudioServerPlugin drivers on macOS and PipeWire null-sinks on Linux;
Windows has no user-mode virtual-device model, so they are unavailable there.
devices are AudioServerPlugin drivers on macOS and PipeWire null-sinks on Linux.
Windows uses VB-Audio VB-CABLE through the existing WASAPI output path.

## Stack

Expand Down
Loading