
The audio recorder & editor for streamers, podcasters and voice people.
One button to record. One click to sound like a studio. Locked to OBS.
โฌ Download for Windows / Linux / macOS ยท Website ยท User guide ยท Changelog
![]()
โถ Watch the StreamWave promo on YouTube ยท more demos on Del's YouTube channel
Most audio editors were designed for studios twenty years ago. StreamWave is built around how creators actually work: OBS is running, Discord is open, the mic is shared, and you want a clean voice track now without learning signal-processing jargon.
| ๐ฅ OBS sync | Connects to OBS 28+ over obs-websocket. Start/pause/stop together, scene changes become markers, multi-track OBS recordings are auto-imported as separate tracks (mic, desktop, Discord), and Send back to video puts your cleaned-up audio into a copy of the video without re-encoding the picture. Auto-reconnects if OBS restarts. |
| ๐ช Studio Sound | One click analyses your voice (noise floor, tone, sibilance, plosives, room echo, loudness) and builds a real, editable chain: noise reduction, optional AI denoise (RNNoise), EQ toward a voice curve, de-esser, compressor and -16 LUFS loudness through a peak-safe limiter. Subtle / Medium / Strong, with before/after. |
| โช Never miss a take | A rolling buffer (up to 60 s) keeps listening while armed. Said something great before you hit record? Save last 30 s. |
| ๐ Live effects | EQ, compressor, gate, noise reduction, de-esser, limiter, loudness, fades. Every slider and A/B toggle is heard instantly during playback, and export renders through the exact same engine, so what you hear is what you get (tested bit-for-bit). |
| ๐ Crash-safe recording | Takes are streamed to disk and the header is refreshed every half second. Power cut? Crash? The recording is repaired and offered back at the next start. Unplugged USB mic? The take so far is saved. |
| ๐ฆ All open formats | Import Audacity 3 projects (.aup3, read-only), WAV, FLAC, MP3, Ogg, Opus, AAC/M4A, AIFF and the audio inside MP4/MKV. Export WAV (16/24/32-bit float), FLAC, WavPack, MP3, Ogg Vorbis, Opus, WebM, MKA, with tags. |
| ๐ค Shared mic, always | StreamWave never takes exclusive control of your microphone. OBS, Discord and your browser keep working with the same mic at the same time. |
| โ๏ธ Non-destructive editing | Cut, copy, paste and delete with full undo history; your original files are never touched. Select across several tracks and edit them together, split (Ctrl+K) and join (Ctrl+J) clips. .twt project files with autosave and crash recovery. |
| ๐ Spectrogram view | Switch any track between waveform and spectrogram, with a log or linear frequency scale and Classic, Inferno or Greyscale colours. Good for spotting hum, hiss and plosives. |
| ๐ท Label tracks | Ctrl+B adds an editable text label at the cursor or selection. Export labels as Audacity-compatible text or turn them into markers/chapters. |
| ๐ฉบ Live mic check | Friendly warnings for clipping, too quiet, dead channel, DC offset and 50/60 Hz hum, before they ruin a recording. |
| ๐ก Safety track (new in 0.9.0) | Every recording is also written as a โ12 dB *_safety.wav copy in lock-step with the main file. Clipped a take? Boost the safety copy and rescue it. |
| ๐ Voice-triggered recording (new in 0.9.0) | Set a level threshold and hold time: recording starts when you speak and stops about 1.5 s after you stop. Handy for long streams and hands-free capture. |
| โ๏ธ Silence auto-trim (new in 0.9.0) | โ Silences finds the pauses on a track (noise floor + 8 dB, at least 250 ms, with padding so word tails survive), shows how many it found, and Trim N silences cuts them in one undoable step. |
| ๐ Per-clip gain & fades (new in 0.9.0) | Give the selected clips their own gain and fade in/out, non-destructively: duck music under a voiceover, smooth punch-ins, level a rant across takes. |
| ๐ค Batch export (new in 0.9.0) | Export every track as a 24-bit WAV into one folder in a single pass, each brought to โ14, โ16 or โ23 LUFS. |
| โถ Mix all plays every track together with its effects, so you can hear the whole project. Export is still one track at a time. | |
| ๐ Whisper transcription (new in 0.9.0) | Transcribe a track on your own computer with whisper.cpp and any ggml model, then click a line to play from there. No cloud. The Transcript panel can set whisper.cpp up for you (official download, checked) or shows the install command for your system. |
| ๐ฅ Multi-file import (new in 0.10.0) | Import or drop several files at once and choose: one after another on one track (each starting exactly where the last ends, at the cursor or 0:00) or one track per file, all lined up. Mixed formats and sample rates are fine, Cancel changes nothing, and one Ctrl+Z undoes it all. |
| Drag a clip by its title bar along the timeline or onto another track, even past the end. Ghost, target highlight and exact time readout while dragging; snaps to markers, clip edges and the cursor (Alt = free). Overlapping audio is refused. Positions are whole samples, so nothing drifts. | |
| โง Layering Effects (new in 0.10.0) | Give a single clip its own stack of effects: add, bypass, edit and drag (or Alt+โ/โ) to reorder. The list order is the processing order, running before the clip's gain/fades and the track effects. Each clip owns its stack; copies and split pieces get their own. Heard live, exported identically. |
| ๐ New hardware look (new in 0.11.0) | Dark brushed panels, knurled knobs with an amber tick ring, LED meters, pill buttons and LED toggles. Every effect has its own colour, and the rack, Layering Effects and effect dialogs all use knobs (drag, scroll or arrow keys; Shift = fine; double-click resets). |
| ๐ Timeline ruler & preview (new in 0.11.0) | A zoom-aware time ruler above the tracks with playhead, selection and markers (click or drag to move the cursor), and a preview strip of the whole track with START/END/SEL readouts, Zoom to selection and Fit. |
| ๐งฉ Effects Layer workspace (new in 0.11.0) | Switch the side panel to a big effects editor: a collapsible list of the track's effects and the current clip's layers, the signal flow, and colour-coded modules with large knobs, heard live. Settings brings the classic panel back as it was. |
| ๐ Crossfades & fade handles (new in 0.11.0) | Drag a clip's corner to fade it, or the โจฏ handle at a cut to crossfade two neighbouring clips (equal power or linear, length knob). Centred on the cut using spare audio, so nothing moves; plays exactly as it exports. Limits: neighbouring clips only, no master bus. |
| ๐ฏ Follow playhead (new in 0.11.1) | The timeline scrolls smoothly to keep the playhead in view while playing or recording. Toggle it with the FOLLOW LED, View โ Follow Playhead or F (on by default). Scrolling or dragging pauses it until the playhead is back in view or you press Play. |
| โก Instant Play / Stop (new in 0.11.1) | Play starts in about 30 ms: the output stays open in shared mode and unchanged audio isn't re-rendered. Stop fades out in 6 ms, so there's no click. New / Open / Close now stop playback of the old project first. |
| ๐ง Virtual output hint (new in 0.9.0) | StreamWave recognises virtual audio devices (VB-CABLE, VoiceMeeter, BlackHole on Mac) in the output list and explains how to send its sound into OBS, Discord or Zoom. The user guide has the setup steps. |
Real screenshots of StreamWave 0.11.0 on Linux (the Audacity import one is from 0.8.3), using a demo episode with self-generated voice and music. Click any image for full size.
| Windows | Linux | macOS | |
|---|---|---|---|
| System | Windows 10 or 11, 64-bit | 64-bit (x86_64), any modern distro | macOS 11 Big Sur or later, Apple Silicon (M1 and newer) or Intel: one universal app |
| Download | StreamWave_<version>_x64-setup.exe |
.deb (Debian/Ubuntu), .rpm (Fedora/openSUSE), .pkg.tar.zst (Arch) or StreamWave_<version>_amd64.AppImage (any distro) |
StreamWave_<version>_universal.dmg (or .app.zip) |
| FFmpeg (formats other than WAV) | included | from your distro | brew install ffmpeg |
| Updates | in-app | in-app for the AppImage; .deb/.rpm/Arch: install the new package (the app tells you) | manual for now, the app tells you and links here |
- Download
StreamWave_<version>_x64-setup.exefrom Releases. - Run it. It installs for everyone on the PC, so Windows asks for an administrator password. FFmpeg is included. Upgrades from the older per-user install move to Program Files on their own.
- SmartScreen: the installer isn't code-signed yet, so Windows may say "Windows protected your PC". Click More info โ Run anyway.
Pick the package for your distro from the latest release (<version> is e.g. 0.11.2):
| Distro | File | Install |
|---|---|---|
| Debian, Ubuntu, Mint, Pop!_OS | StreamWave-<version>-linux-x86_64.deb |
sudo apt install ./StreamWave-<version>-linux-x86_64.deb |
| Fedora, RHEL, openSUSE | StreamWave-<version>-linux-x86_64.rpm |
sudo dnf install ./StreamWave-<version>-linux-x86_64.rpm (openSUSE: sudo zypper install ./StreamWave-โฆrpm) |
| Arch, CachyOS, Manjaro, EndeavourOS | StreamWave-<version>-linux-x86_64.pkg.tar.zst |
sudo pacman -U ./StreamWave-<version>-linux-x86_64.pkg.tar.zst (or build it yourself from packaging/arch/streamwave-bin/PKGBUILD with makepkg -si) |
| Any distro | StreamWave_<version>_amd64.AppImage |
chmod +x StreamWave_*_amd64.AppImage && ./StreamWave_*_amd64.AppImage |
The packages add StreamWave to your app menu and the StreamWave command (streamwave on Arch too). The AppImage is the one that updates itself; with a .deb, .rpm or Arch package, Help โ Check for updates tells you about a new version and opens the download page, and you install the new package the same way (settings and projects are kept).
Install FFmpeg from your distro (sudo apt install ffmpeg, sudo dnf install ffmpeg-free, sudo pacman -S ffmpeg) for formats other than WAV and for OBS video files; the .deb and .rpm recommend it. Audio works through PipeWire, PulseAudio or JACK.
- Download
StreamWave_<version>_universal.dmg(or the.app.zip) from the latest release, open it and drag StreamWave into Applications. It's one universal app for Apple Silicon and Intel Macs. - First launch: the app isn't notarised by Apple yet, so a normal double-click is blocked the first time. Right-click (or Control-click) StreamWave in Applications, choose Open, then click Open again. After that it opens normally. On newer macOS (Sequoia 15 and later) there may be no Open button: click Done, then go to System Settings โ Privacy & Security, scroll down to "StreamWave" was blocked and click Open Anyway, then confirm.
- Allow microphone access when macOS asks (you can change it later in System Settings โ Privacy & Security โ Microphone).
- For MP3/FLAC/Opus export and OBS video import, install FFmpeg (
brew install ffmpeg). StreamWave finds Homebrew and MacPorts installs automatically.
From 0.6.0 on, StreamWave can update itself. Use Help โ Check for updatesโฆ (or the button in About). It shows what's new and only downloads when you click Download & install. A quiet check also runs at startup, at most once a day, and you can turn it off in Settings. Updates are signed and verified before they're installed.
The Windows installer and the AppImage can self-update. The .deb, .rpm and Arch packages can't: the check tells you about the new version and opens the download page, so install the new package over the old one. 0.5.x has no updater, so install 0.6.0 by hand once.
On Mac, updates are manual for now. The same check tells you when a new version is out and opens the download page; download the new .dmg and drag StreamWave into Applications to replace the old one. Your settings and projects are kept.
In OBS: Tools โ WebSocket Server Settings โ Enable WebSocket server, copy the password, and paste it into StreamWave's first-run setup (or the OBS panel).
Prerequisites: Rust (stable), Node.js 20+, and the Tauri prerequisites for your OS (Windows: Visual Studio Build Tools 2022 with "Desktop development with C++"; Linux: WebKitGTK 4.1, ALSA dev headers).
git clone https://github.com/postmanpat-303/StreamWave.git
cd StreamWave
npm install
npm run tauri dev # run with hot reload
npm test # frontend tests
cd src-tauri && cargo test --lib # audio engine & DSP tests
npm run tauri build # installers in src-tauri/target/release/bundleOptional cargo features: asio (Steinberg ASIO on Windows) and jack (Linux). See the user guide for ASIO setup, bundling FFmpeg, and all keyboard shortcuts. Release builds can be run by hand from GitHub Actions (.github/workflows/release.yml, Run workflow). They produce a draft release.
Linux packages (maintainers): scripts/package-linux.sh builds StreamWave-<version>-linux-x86_64.deb, .rpm and .pkg.tar.zst (Arch, via makepkg on the PKGBUILD) into dist-linux/, plus the signed updater AppImage when TAURI_SIGNING_PRIVATE_KEY is set. Needs rpmbuild and makepkg (Debian/Ubuntu: pacman-package-manager). Bump pkgver in the PKGBUILD with each release.
macOS (maintainers): the universal Mac app can only be built on a Mac or GitHub's macOS runners: run the Release workflow with platforms = macos and a draft tag, and it builds StreamWave_<version>_universal.dmg and .app.zip (scripts/package-macos.sh), smoke-tests them and attaches them to that draft release with updated SHA256SUMS.txt. Locally on a Mac: Xcode Command Line Tools, rustup target add aarch64-apple-darwin x86_64-apple-darwin, then scripts/package-macos.sh.
โ Never regenerate or rotate the updater key. Every installed StreamWave only accepts updates signed with the existing key (minisign ID 23E8AE653A1C054C). A new key in tauri.conf.json breaks in-app updates for every user, which is why src/lib/updaterKey.test.ts fails if the pubkey changes. Don't run npx tauri signer generate for this project; if the private key seems missing, ask Del rather than making a new one.
Updater signing (maintainers): release builds are signed for the in-app updater with a minisign key made by npx tauri signer generate. The public key is in src-tauri/tauri.conf.json (plugins.updater.pubkey). The private key is never committed. To build updater artifacts (.sig files) locally, set TAURI_SIGNING_PRIVATE_KEY (the key file path or its contents) and TAURI_SIGNING_PRIVATE_KEY_PASSWORD, then build with --config src-tauri/tauri.windows-installer.conf.json (Windows) or --config src-tauri/tauri.updater.conf.json (AppImage). Plain npm run tauri build doesn't need the key. For the GitHub release workflow, add both values as repository secrets with those names. Each release must attach a latest.json listing the windows-x86_64 setup .exe and linux-x86_64 AppImage with their signatures, because the app reads it from releases/latest/download/latest.json. It has no macOS entry: the Mac app reads the latest release from the GitHub API instead and links to the download page.
Stack: Tauri 2 ยท Rust (cpal, symphonia, hound, rtrb lock-free rings, obws, ebur128, rustfft, nnnoiseless) ยท Svelte 5 + TypeScript + Vite.
- Edit by text: transcribe locally, delete words in the transcript to cut the audio
- Voice / music separation: pull your voice out of a stream recording with game audio or music
- Auto-chapters: chapter markers from topic changes and OBS scenes, exported to YouTube timestamps
- VST3 / CLAP plugin hosting: use your favourite plugins in the live chain
- Multi-track mixdown export, free overlapping clips (3+ stacked), a master/output effect bus
- Follow playhead, near-instant Play/Stop, stop playback when switching projects (0.11.1)
- whisper.cpp setup in the Transcript panel: install command with Copy, Open terminal, "Set it up for me", "I already have it" (0.11.2)
- Hardware-style look, timeline ruler, selected-audio preview, Effects Layer workspace, crossfades (0.11.0)
- Multi-file import arrangement, clip moving across tracks, per-clip Layering Effects (0.10.0)
- In-app update check (0.6.0)
- Audacity 3 (
.aup3) project import (0.7.0) - Spectrogram view, multi-track selection, label tracks, split / join clips (0.8.0)
- Right-click menu with effects on a selection; browser menu and shortcuts switched off (0.8.1)
- macOS universal build, Apple Silicon and Intel (0.8.4)
- Code-signed Windows installer, notarised macOS build, Flatpak
Ideas welcome; please open an issue.
Will it fight OBS or Discord for my microphone? No. StreamWave only ever opens devices in shared mode (WASAPI shared on Windows; PipeWire/PulseAudio/JACK routes on Linux). Everything keeps working side by side.
Does it change my original recordings? Never. Edits and effects are stored in the project; the source files are only read.
What happens if it crashes while I'm recording? The recording is written continuously with a header that is refreshed twice a second. On the next start it is repaired and added back automatically.
Why is the installer flagged by SmartScreen? It isn't code-signed yet (certificates cost money). Click More info โ Run anyway. The source and the CI build are public, so you can check exactly what you're installing.
Do I need FFmpeg?
The Windows installer includes it. On Linux, install it from your distro. On Mac, brew install ffmpeg. Without FFmpeg you can still record, edit and export WAV.
Can StreamWave replace Audacity?
If you've used Audacity, you'll feel at home, with live effects, OBS sync and recordings that survive a crash.
For recording, cleaning up and editing voice, podcasts and stream audio, it can be all you need. It is not a full replacement, though. Audacity has many years of features StreamWave doesn't have: plug-in effects (VST, LV2, Nyquist), spectral editing (StreamWave shows a spectrogram but doesn't edit in it), macros, MIDI and a much larger set of built-in effects and analysis tools. StreamWave can select and edit several tracks together, move clips between them (0.10.0), crossfade neighbouring clips (0.11.0) and play them as a mix (0.9.0), but it exports one track at a time rather than mixing down a full multitrack session.
You can bring existing work across: File โ Import Audacity Projectโฆ (or drag an .aup3 onto the window) reads Audacity 3 projects. Tracks, names, clip positions and trims, the audio itself (16-bit, 24-bit and 32-bit float), track gain, pan, mute and solo, clip envelopes and labels (as markers) come across. Audacity effects and note/time tracks are skipped, and StreamWave tells you exactly what it left out. Your .aup3 file is opened read-only and never changed; the audio is copied into WAV files next to your StreamWave project (or into your recordings folder under Audacity imports if the project isn't saved yet).
Audacityยฎ is a trademark of its respective owners. StreamWave is an independent project and isn't affiliated with or endorsed by Audacity or Muse Group. The importer was written from scratch and contains no Audacity code.
Is there a Mac version? Yes, since 0.8.4: one universal app for Apple Silicon and Intel Macs, macOS 11 or later. It isn't notarised yet, so the first time, right-click the app and choose Open (on newer macOS: System Settings โ Privacy & Security โ Open Anyway). Updates are manual on Mac for now; the app tells you when there's a new version.
Is it really free? Yes, MIT-licensed, no accounts, no telemetry, everything runs locally.
StreamWave is free and built in spare time by Del (postmanpat). If it saves you time on stream, you can buy me a coffee (or donate via PayPal). Demos and promos for my apps are on YouTube. Thank you! Bug reports and ideas in Issues help just as much.
StreamWave is ยฉ 2026 Del (postmanpat) and released under the MIT Licence.
The Windows installer bundles FFmpeg (ffmpeg.exe, ffprobe.exe), an LGPL build from BtbN/FFmpeg-Builds, as separate, unmodified programs. FFmpeg is licensed under the GNU LGPL (not MIT). Its licence text and source links are installed in the licenses folder next to StreamWave, and you can replace those binaries with any other FFmpeg build. FFmpeg is a trademark of Fabrice Bellard. RNNoise (via nnnoiseless) is BSD-3-Clause; other Rust/npm dependencies keep their own permissive licences.
A big thank you to storytold, whose open-source PhotoCraft inspired the look of the Wave family icons, and whose ArtCraft Launcher inspired the upcoming Wave Hub. Open source at its best. Go give them a โญ!










