Added
- Persistent pipeline activation - the pipeline that was running when the app closed is remembered and starts again on launch. App Audio and Audio File sources that are not available yet are left out and reconnect automatically once they appear (#21).
- Device volume in dB - the hardware volume sliders on input and output nodes show their attenuation in decibels and follow changes made outside the app through native OS listeners on every platform (#20).
- Native audio on Linux - device volume is driven through libpulse and virtual devices through the PipeWire library instead of shelling out to
wpctl, pactl and pw-cli (#23). - End-to-end latency badge in the header - combines the input backlog, the graph's delay compensation and the adaptive output buffer into one live readout.
- System theme - the header theme toggle now cycles light, dark and system.
Changed
- Recording is paced by the wall clock, so file sources that decode faster than real time no longer over-run the encoder.
- Speaker ring fill adapts to the device's own buffer size, running at that latency instead of underrunning on large-buffer (PipeWire) setups.
Fixed
- Update checks work in sandboxed AppImage builds on Linux (bundled CA roots), and a missing build for the current OS/arch shows a friendly note instead of an error.
- Activating a pipeline from the list prompts for a missing recording file instead of failing.
- Pipeline name input sizes itself to its content and is capped at 64 characters.
- Virtual device page marks unsaved edits as dirty until applied.
- Log and snapshot lists no longer produce duplicate list keys (#18).
Full Changelog: https://github.com/Horuse/Splitwave/compare/v1.0.0...v1.1.0
Added
- Log viewer - Cmd/Ctrl+Shift+L opens an in-app log window in every build, showing engine and interface logs together with level filtering, search and one-click copy.
- Virtual device apply without root - device changes are picked up through a watched shared config instead of requiring elevated privileges.
- Plugin hosting - load your own plugins as effect nodes: CLAP and VST3 on every platform, Audio Unit on macOS. The plugin's own editor opens in a native window, its parameters are editable in the node itself, and its state is saved with the pipeline. Linux editors need an X11 session (XWayland included).
- Separate channel routing (#12) - each channel of a device gets its own handle, so you can wire, process and mix individual channels instead of fixed stereo pairs. Existing pipelines are migrated automatically.
- WebRTC, Net Sender and Net Receiver nodes (#10) - stream audio between machines and into WebRTC sessions.
- Mute hotkey - bind any key or combination to a Mute node and toggle it system-wide, even when Splitwave is in the background. Optionally a spoken cue confirms the switch on an output device of your choice, at its own volume.
- Spectrum analyzer node with per-channel FFT.
- De-esser node with presets, and a Declick node for removing clicks and crackle.
- Effect presets - save any effect's settings and reuse them anywhere, with factory presets included.
- Pipeline templates - start from a ready-made graph instead of an empty canvas.
- Settings window - theme, canvas behaviour, history depth, update checks and preset management in one place.
- Analyzer node now reports signal metrics and delivery profiles.
- Crashes are saved and shown on the next launch instead of vanishing with the window.
- Node icons and a refreshed modal design.
Changed
- Plugins receive the node's full channel width instead of being forced into stereo.
- Effect nodes got a visual pass.
- Device and application dropdowns rescan when opened, so a device plugged in
while the app was running shows up without pressing Rescan.
Fixed
- Cables that point at a channel a device does not have are now flagged, and edges left dangling blink with a warning on the node.
- Fan-out nodes are computed once and shared, monitoring included, instead of being processed per branch.
- Gain-reduction readouts no longer freeze, and the monitor backlog is bounded.
- Spectrum taps keep updating in monitor mode.
- Virtual devices can be applied while the engine is idle.
- Node previews render without a flow canvas open.
- macOS: the private CATap capture aggregate no longer shows up in device menus.
Full Changelog: https://github.com/Horuse/Splitwave/compare/v0.5.0...v1.0.0
Features
- Numeric readouts on sliders are now editable
- EQ faders snap in 0.1 dB steps for finer control.
Fixes
- Virtual audio device no longer produces garbled/distorted audio when used as a microphone, including when multiple apps capture it at once. Caused by a stream format mismatch; now resolved.
Full Changelog: https://github.com/Horuse/Splitwave/compare/v0.4.0...v0.5.0
Features
- Noise Suppressor now exposes advanced controls: a DeepFilterNet post-filter toggle and adjustable processing thresholds for finer denoise tuning
- New app icons and refreshed branding
Fixes
- Audio file playback no longer drops audio under bursty load - file sources keep their backlog instead of being trimmed
- "Reveal in folder" now works correctly for recordings, and transport buttons have tooltips
- Level meter readout now settles at the dB floor on silence instead of drifting to -∞
- "Check for Updates" now reports the actual failure cause instead of a bare "builder error", with a one-click button to copy the error
Full Changelog: https://github.com/Horuse/Splitwave/compare/v0.3.0...v0.4.0
What's Changed
- Add full Linux support (#2)
- Add Windows support (#4)
Linux and Windows support is experimental. Expect rough edges and bugs - please report any issues you encounter.
Features
- New Noise Suppressor node for speech denoising powered by DeepFilterNet3
Fixes
- Errors now show as toast notifications instead of in the header
- Lower and more stable microphone latency
- Correct output device selection for Bluetooth headsets with identical names
Full Changelog: https://github.com/Horuse/Splitwave/compare/v0.2.0...v0.3.0
New Features
- Multi-format audio file decoding - the Audio File node now plays back multiple formats, not just WAV.
- Audio File transport controls - added pause, stop, and skip.
- Input volume control - volume slider for App Audio, System Audio, and Audio File.
- Separate Monitor category - standalone meter nodes that work without an output connection.
Fixes
- Speaker: more reliable device selection - uses HalOutput by always enumerating devices.
- Speaker: output stream auto-recovery - the stream recovers when the system default device switches.
- Updater: correct modal behavior - the up-to-date modal now shows only on a manual menu check.
- Virtual device: devices.plist is set to 644 permissions so _coreaudiod can read it.
Documentation
- README: noted that screen recording permission must be re-granted after an update.
What's changed
- Fixed a crash that could occur when stopping audio capture
- Fixed audio recording stability issues
- macOS Intel (x86_64) is now supported alongside Apple Silicon
Full Changelog: https://github.com/Horuse/Splitwave/compare/v0.1.0...v0.1.1
Inputs
- Microphone
- System audio capture
- Per-app audio capture
- Audio file playback with loop and auto-stop
Outputs
- Speaker
- File recording: WAV, FLAC, AIFF, Opus, MP3, AAC
Effects
- Gain, Mute, Channel Balance
- EQ (10-band graphic)
- Compressor, Limiter, Noise Gate
- Saturator, Delay, Reverb
- Level Meter, LUFS Meter, Waveform
Routing
- Node graph: connect any input to any output through any chain of effects
- Hot reconcile: edit the graph while the pipeline is running without interrupting streams
Other
- Undo/redo, node copy/paste
- Pipeline snapshot history
- Auto-update
- Virtual audio driver
Full Changelog: https://github.com/Horuse/Splitwave/commits/v0.1.0