Skip to content

About

A VST plugin for production DAW's to stream high quality stereo audio over the web.

Resources

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

SessionStream — Your session. Anywhere.

Your DAW. Their browser. One link.

Share live stereo audio from your session with clients, collaborators, and students.
Free and open source. No listener account, plugin, or download.

Version 0.30 macOS 13.5 or newer Apple Silicon · VST3 and AU Windows 11 · Intel/AMD x64 and ARM64 AGPL-3.0 license

Get started · Installation & development · Website · Releases


SessionStream is a VST3 and Audio Units (AU) plugin for producers who teach, collaborate, or work on mixes remotely. Let someone hear changes as you make them, get feedback without another export, or check your mix on another device.

Share from your session

Generate an invite, control the outgoing level, and watch your stereo meters. Your DAW level stays unchanged.

SessionStream 0.30 plugin showing stereo meters, output gain, passcode and QR share controls

Listen from anywhere

Open the link and press Start listening. A live waveform, dB volume control with up to +6 dB boost, mute, and connection details are right there.

Browser listener playing stereo Opus audio with a waveform, volume slider, and connection metrics

Made for the feedback loop

What you get
Live stereo Low-delay WebRTC audio with stereo Opus at a requested 320 kbps / 48 kHz.
Independent stream gain Adjust what your listener hears without changing your track or master level.
Simple invitations Share a private link with up to eight listeners. Generate a new invitation to invalidate the previous one.
Browser playback Listeners install nothing. They get a waveform, a dB volume control with up to +6 dB boost, mute without disconnecting, and live audio and connection details.
Compatibility audio Automatic PCM fallback through the HTTPS tunnel when a direct WebRTC connection cannot be established.
Bundled engine The streaming engine and tunnel ship with the plugin. No separate Node install, Cloudflare login, or SessionStream subscription.

Quick start

Current build: 0.30 · macOS Apple Silicon + Windows 11 x64 / ARM64

Operating system Architecture Plugin formats Installer
macOS 13.5+ Apple Silicon VST3 + AU SessionStream-0.30-mac-arm64.pkg
Windows 11 Intel/AMD x64 + ARM64 VST3 SessionStream-0.30-windows-x64-arm64.exe

The Windows installer includes both plugin architectures. Windows ARM64 uses an x64 streaming helper under emulation. Intel Macs, Windows 10 and 32-bit x86 DAWs are not supported.

Save and close your DAW, install the package for your system, then reopen your DAW. See Releases for published installers, or build from source. Local installers are in artifacts/.

  1. Add the plugin. Put SessionStream on the track you want to share, or last on your Main/Master bus for the full mix.
  2. Generate a link. Click Generate share link and wait for it to become ready. First startup can take tens of seconds.
  3. Start streaming. Adjust Stream output, click Start streaming, and share the invite using Copy link.
  4. Let them listen. Your listener opens the link and presses Start listening.

Click Stop streaming to silence listeners; the same invite works when you start again. Keep your computer awake and online. Anyone with the full invite and any required passcode can listen, so share them with your intended listeners.

Optional access controls: enable Use passcode before generating a link. Listeners enter that code before they can receive audio. Generate QR code displays the invite inside the plugin; the code is generated locally and contains the link, without the passcode. Normal streaming status stays simple; the plugin shows a warning if a listener reports blocked playback or interrupted audio.

Turning the plugin off: disabling/bypassing or removing SessionStream releases its session. When the last enabled instance using the engine is gone, the background engine and tunnel shut down. Re-enable and generate/share a fresh link; cold startup can take tens of seconds again. Closing just the plugin window keeps the session active. See shutdown behavior for host differences and crash recovery.

DAW compatibility

Works with most DAWs that support VST3, plus AU hosts on macOS. Examples include Ableton Live, REAPER, FL Studio, Cubase and Studio One. Logic Pro uses AU. Pro Tools requires AAX, which is not included.

Use a native Apple Silicon DAW on macOS. On Windows, the plugin architecture must match the DAW: x64 hosts use the x64 binary, while native ARM64 hosts use the ARM64 binary.

Windows ARM64 in UTM with REAPER was tested successfully by the user, including playback and seeking after the fix. This confirms that VM setup; the loaded plugin architecture was not recorded. Other compatible DAWs, native ARM64 hosts and physical Windows performance have separate validation limits in the validation results.

Troubleshooting: open the plugin's … → Troubleshooting → Copy diagnostics menu. It copies version, OS, plugin architecture/format and connection state, without private links, passcodes or tokens. … → Compatibility shows the supported systems and formats.

Installation and system approval

Save and close your DAW before installing or updating. The macOS installer places the plugins and their bundled runtime in:

  • VST3: ~/Library/Audio/Plug-Ins/VST3/SessionStream.vst3
  • AU: ~/Library/Audio/Plug-Ins/Components/SessionStream.component

Windows installs VST3 into C:\Program Files\Common Files\VST3\SessionStream.vst3; see the Windows guide.

Reopen your DAW and rescan plugins if needed. This macOS build is ad-hoc signed; the installer is unsigned and not notarized. Downloaded copies may require System Settings → Privacy & Security → Open Anyway.

See the installation guide for details.

How it works

Your DAW → SessionStream → WebRTC stereo audio → Their browser
                │
                └── Temporary HTTPS invite via Cloudflare Quick Tunnel

The plugin sends a copy of your audio while your DAW signal passes through unchanged. WebRTC attempts direct audio delivery; compatibility mode sends PCM through the tunnel when needed. Streaming starts off when a saved project opens, and offline exports are never transmitted.

Audio quality and connection limits

The default Opus stream is high-quality compressed audio. Supported DAW source rates are 44.1, 48, 88.2, 96, 176.4, and 192 kHz; WebRTC audio uses 48 kHz. Latency depends on sender buffering, both connections, and listener buffering.

Compatibility mode uses more bandwidth and usually adds delay. One plugin owns an active session at a time. End-to-end latency, long sessions, physical Safari/iOS playback, and real client WAN WebRTC connections remain unverified; see the recorded validation.

See quality and connections for technical details and optional TURN configuration.

Temporary links and Cloudflare terms

SessionStream uses TryCloudflare Quick Tunnels to expose its listener page and connection signaling through a temporary trycloudflare.com address. No Cloudflare account or domain is needed.

The address changes when a new tunnel is created and stops working when the tunnel closes. Quick Tunnels are for testing and development, with no uptime guarantee. This build is experimental; dependable production hosting needs a different tunnel or hosting setup.

TryCloudflare use is governed by Cloudflare's Website and Online Services Terms of Use and Privacy Policy. Share only audio you have permission to transmit, respect service limits, and avoid unlawful or abusive use. Cloudflare can modify, restrict, or discontinue the service. Review the full terms, including their content-rights provisions; this overview does not replace them.

Build from source

Windows x64 and ARM64 port, installer, build instructions, and validation limits: Windows guide.

Build on an Apple Silicon Mac running macOS 13.5+, with native Node.js 24+ / npm, CMake 3.22+, Xcode Command Line Tools, and cloudflared. These are developer prerequisites; people installing the PKG need none of them.

If needed, install Command Line Tools with xcode-select --install. With Homebrew installed, set up the remaining tools:

brew install node@24 cmake cloudflared
export PATH="$(brew --prefix node@24)/bin:$PATH"

From the repository root (the folder containing package.json):

npm ci
npm test
npm run build:plugin
npm run build:installer

The first build requires internet access to download JUCE 8.0.12 and the bundled Node v24.3.0 runtime. It verifies those downloads, bundles the native WebRTC addon and your installed cloudflared, then ad-hoc signs VST3, AU, and a development standalone app. The PKG contains VST3 and AU and is written to artifacts/SessionStream-0.30-mac-arm64.pkg; checksums are in artifacts/SHA256SUMS.txt.

To install your build locally, save and close your DAW, then run npm run install:plugin or open the PKG. If cloudflared is outside your PATH, set CLOUDFLARED_PATH to its full executable path before building.

Use npm run package:source to create a clean source ZIP for GitHub. Keep compiled installers and plugin ZIPs in GitHub Releases; downloaded dependencies, build products, local state, and logs are excluded from source control.

For build details, tests, and troubleshooting, see development notes.

Documentation

Guide Contents
Installation & development Setup, plugin controls, listener playback, updates, and source builds
Validation results Recorded checks, release checksums, and remaining verification limits
Third-party licenses Dependencies and bundled runtime notices

Built by loyahdev · AGPL-3.0
An independent project, unaffiliated with Waves, Audiomovers, or Cloudflare.

About

A VST plugin for production DAW's to stream high quality stereo audio over the web.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages