← Home
Download Switch to Italian

Changelog

History of updates and new features.

Experimental project, not security-audited. WFAS is a personal project by an engineering student. Its security features have not had any formal audit, so please do not rely on them for sensitive data or on untrusted networks. Read the full disclaimer

Want to stay updated? Subscribe to the release feeds: Desktop · Android.

v1.2

Desktop Android August 2026

Adds DLNA/UPnP streaming to smart TVs, Snapcast multiroom, QR Code pairing, USB cable streaming and improvements to the robustness of audio playback.

DLNA / UPnP Streaming

  • Play straight to TV & AV receivers: Stream audio to smart TVs, soundbars, and UPnP renderers without installing any app on them.
  • Automatic discovery via SSDP and per-device format negotiation (LPCM, WAV, MP3, AAC/ADTS).
  • Integrated hardware quirk profiles for Denon/Marantz/HEOS, Sonos, Samsung, LG webOS, and Yamaha MusicCast.
  • Watchdog monitoring to automatically re-issue playback if a renderer silently drops the stream.

Snapcast Multiroom Sync

  • Turn your device into a Snapcast audio server for synchronized, whole-home multiroom streaming.
  • Intended to work with Raspberry Pis, ESP32 boards, Home Assistant, and official Snapcast client apps.
  • Audio on TCP 1704 and JSON-RPC control on TCP 1705 with zero-configuration mDNS broadcast.
  • Codec support: PCM (uncompressed), FLAC (lossless), and Opus (low bandwidth).

QR Code Pairing & USB Streaming

  • QR pairing: Scan an on-screen QR code to pair with a freshly generated 256-bit ephemeral key (120s expiry, RAM-only, never saved to disk).
  • Renders ASCII QR directly in the CLI terminal (wfas pair invite --watch) for headless servers.
  • Streaming over USB: Connect the phone via USB tethering to avoid Wi-Fi congestion.
  • Dedicated USB jitter buffer (5–120 ms) and interface availability rules (Always, Not on USB, Never).

Audio robustness

  • Packet loss concealment: Crossfades across gaps instead of producing audible clicks.
  • Continuous clock drift resampling: Intended to prevent gradual buffer buildup and keep latency stable over long sessions.
  • Digital volume gain up to 200% with magnetic stops and clipping warnings.
  • Windows capture engine hardened against frame drops under heavy CPU load; mono capture fixed.

Rebuilt Window & Enhanced CLI

  • Redesigned Desktop interface with organized sections and live audio spectrum visualizer.
  • Groove mode: Melody extraction filter on visualizers for clean rhythm tracking.
  • "How to Connect" panel with 1-click endpoint copy for every active protocol.
  • Capture indicator showing live microphone/system capture with start, duration, and source logging.
  • Native system credential store integration (Windows DPAPI, macOS Keychain, Linux Keyring).
  • CLI manual with 9 browsable topics (--json), wfas devices diagnostic tool, and terminal Ask prompts.

Security & Compatibility

  • Fixes to authentication and local control paths found while reviewing the code myself (this was not a formal audit).
  • Wire protocol remains v2 compatible — Desktop 1.1 and Android 1.2 are intended to interoperate.
// Android Highlights

Automation Security & Breaking Changes

  • External command tokens: NFC tags, Tasker, MacroDroid, ADB, and wifiaudio:// commands now require an encrypted device token (disabled by default for safety).
  • Token can be regenerated at any time from the new Automation & Scripting screen.
  • Auto-connect now connects strictly to starred servers.

Mobile DLNA & Snapcast Server

  • Phone can act as a full Snapcast multiroom server or send audio to DLNA smart TVs and soundbars.
  • Home screen monitoring shows connected clients, volume, latency, active codec, and mDNS status.

Visual Spectrogram & Notifications

  • Background Spectrogram: Real-time visualizer across the full app UI (Bars & Peaks, Fluid Waves, and Groove mode).
  • OLED Dark Screen: Spectrogram ambient screensaver mode with double-tap to wake.
  • Rebuilt Notifications: 4 separate notification channels with inline volume slider, mute toggle, and clean removal on stream stop.

Diagnostics & Engine

  • Actionable connection dialogs identifying protocol mismatches and naming required updates.
  • Toggle to mute device while streaming (restores original volume on stop).
  • Updated Bouncy Castle to 1.78.1 and added Android ProfileInstaller for faster startup.

v1.1

Desktop Android July 2026

Adds optional encryption, WFAS Protocol v2 and a command-line interface.

Security & Encryption

  • New security modes: Off, Ask every time (Allow/Deny dialog), and Pre-shared Key.
  • Encryption: ChaCha20-Poly1305 encryption, intended to make network eavesdropping harder when a key is used (not audited).
  • Status badges in the discovery list (Encrypted, Key required, Waiting for approval).
  • Anti-replay protection on Multicast groups via monotonic session counters.

WFAS Protocol v2

  • Explicit protocol versioning with zero packet overhead.
  • "Update required" dialog with direct download links on client/server version mismatch.
  • Improved packet loss concealment using exact sequence and sample position filling.
  • New Packet size and Target latency settings for granular network control.

System & Settings

  • Linux: Native audio engine (libpulse-simple) without compile-time dependencies. Automatically mutes local speakers when capturing system audio.
  • Windows: Audio device selection based on WASAPI IDs instead of display names.
  • Windows Firewall helper button to automatically allow required UDP ports.
  • Migrated settings to a structured config file with transparent auto-migration.

Command Line Interface

  • New wfas executable for full CLI control (start server/client, discover, monitor).
  • Live audio spectrum visualizer right inside the terminal with selectable themes.
  • IPC communication to control an already running GUI instance from the terminal.
  • wfas config subcommand to read/write settings via CLI.
  • Integrated installer to add wfas to the system PATH (plus wfas.1 man page).

Onboarding & App Updates

  • New welcome screen and in-app "What's New" viewer on first run/update.
  • Automatic GitHub release checking with "Update available" dialogs.
  • Optional Ko-fi support popup shown after extensive use, with exponential backoff.
  • Dedicated welcome message for the first run of the CLI.
  • New "Open Source Licenses" section in settings.
// Android Highlights

Automation & Scripting

  • New Automation and Scripting section in settings to generate commands without opening the app manually.
  • Export actions (start, stop, connect) as Custom URIs (wifiaudio://) for NFC tags and shortcuts.
  • Export actions as Broadcast Intents compatible with Tasker, MacroDroid, or adb shell am broadcast.
  • Save actions as named presets that can be reused, edited, executed on the fly, or shared.

Playback & Battery

  • New Blackout screen function: dims the screen to save battery while audio continues to play (double tap to wake).
  • In-app hints for keeping the app in foreground and unlocked for better playback stability.

Improved Microphone

  • Automatically applies native Android Acoustic Echo Cancellation, Noise Suppression, and Automatic Gain Control to improve voice quality.
  • Early audio session preparation (prewarm) to reduce the delay when unmuting.

Settings & Interface

  • Reorganized settings screen: Audio, Security, Automation, Advanced, Info.
  • Extended explanation of why microphone permission is required for system audio capture (MediaProjection on Android 10+).
  • New informative note regarding VPNs (multicast discovery fails over VPN; suggests manual unicast IP).
  • New toggle for Haptic feedback on interactions.
  • Splash screen dynamic colors extended to Android 14+.
CORE

v1.0

Desktop Android May 24, 2026

Version 1.0: a native audio engine that removes the need for virtual drivers, and a change of license to EUPL 1.2.

Desktop

  • Native C audio engine (WASAPI on Windows, Core Audio tap on macOS), no more VB-Cable or BlackHole required
  • Microphone routing redesigned: Off / Virtual Microphone / Mix Into Stream, plus a mute button
  • System tray support with Start Minimized and Close to Tray options
  • Connection/disconnection sounds, smarter network interface detection
  • Linux: available as .tar, AppImage, and on the AUR

Android

  • Fixed a long-standing bug where the stream would silently stop playing audio
  • Holds a low-latency Wi-Fi lock during streaming, fixing stutter after ~30 seconds caused by the radio going to sleep
  • Packet loss now fades the last good audio frame instead of producing an audible click
  • Mic mute button mid-session; faster reconnect via an explicit disconnect message

Breaking wire protocol change (new 10-byte packet header), update Desktop and Android together. License changed from MIT to EUPL 1.2 on both.

v0.4.0-beta

Desktop Android April 3, 2026

Desktop

  • Package size reduced by roughly 70-80% through build optimization
  • Auto-launch on startup and instant server mode on launch
  • Auto-connect to a saved IP with a priority ranking system
  • Fixed "ghost server" entries lingering in discovery after the server closed

Android

  • Smart auto-connect to a saved IP with priority management
  • Two new Material You home screen widgets (Server / Client controller)
  • Two Quick Settings tiles: Server toggle and Auto-Connect trigger
  • App shortcuts via long-press on the home screen icon

WFAS handshake overhauled on both sides for more stable connections.

WFAS RTP HTTP

v0.3.0-beta

Desktop Android March 21, 2026

Both apps now support several protocols: native WFAS, RTP and HTTP/AAC.

Desktop

  • Full support for native WFAS, RTP, and HTTP streaming from one app
  • Built-in web server serves an AAC/Opus player to any browser on the LAN
  • Material You dynamic color engine
  • Network interface selection to bypass VPN routing issues

Android

  • Same WFAS / RTP / HTTP protocol choice, playable via VLC, Kodi, or any browser
  • New 3-page onboarding explaining each protocol
  • Full English and Italian localization

+ three Android technical patches (v0.3.1 – v0.3.3-beta, Mar 22–23) for IzzyOnDroid/F-Droid build compliance, no user-facing changes.

FFMPEG BUFFER

v0.2.0-beta

Desktop Android March 2026

Desktop, Mar 6

  • Replaced the JavaSound backend with FFmpeg for better stability
  • Linux: virtual audio cable creation fully automatic
  • Manual IP entry for networks that block auto-discovery

Android, Mar 1

  • Reworked audio buffer logic for lower latency
  • Server-side volume control from the UI or physical buttons
  • Manual IP connection option

Known limitation at the time: macOS support was still in rough shape on both apps.

v0.1.0-beta

Desktop Android Aug – Sep 2025

The first public beta of both apps.

  • Server mode (Unicast and Multicast) and Client mode over the local network
  • Automatic server discovery, with manual IP entry as a fallback
  • Configurable sample rate, bit depth, and buffer size