Skip to content

Releases: Kylepossible/UxPlayEnhanced

UxPlayEnhanced v1.1.0

Choose a tag to compare

@Kylepossible Kylepossible released this 08 Aug 04:27
0c7fe58

UxPlayEnhanced v1.1.0

This is the finalized Windows release of the lightweight, audio-only, Bonjour-free AirPlay receiver.

Install

  1. Download UxPlayEnhanced-v1.1.0-win64.zip.
  2. Extract the entire ZIP.
  3. Run UxPlayEnhanced-Setup.cmd.

The setup installs the receiver, adds the required private-network firewall rules, creates a desktop shortcut, and starts the tray application.

Discovery reliability

  • Advertises on every usable IPv4 network interface instead of only the default route.
  • Detects interface changes and refreshes memberships on actual elapsed time.
  • Retries failed multicast joins and ignores adapters that cannot use multicast.
  • Replaces duplicate DNS-SD TXT keys correctly and sends valid goodbye records.

Audio

  • Audio-only operation remains the default; the video pipeline is disabled.
  • Standard lossless playback remains the default format.
  • Includes the previously approved startup-stutter mitigation.
  • Includes the existing high-quality audioresample quality=10 pipeline; no separate experimental resampler change was added for this release.

Tray and diagnostics

  • Caches status parsing in memory instead of rereading the log repeatedly.
  • Rotates logs at 5 MB with two backups.
  • Stores debug logs in the user's writable application-data folder.
  • Keeps song, codec, quality, bit depth, and sample-rate status available from the tray menu.

Installer and cleanup

  • Includes the complete Windows runtime dependency set, including xvidcore.dll.
  • Includes the GPL-3.0 license in the downloadable package.
  • Hardens uninstall cleanup so it only targets the registered UxPlayEnhanced installation.
  • Retries protected-file cleanup and reports when a restart is required instead of claiming premature success.

Verification

  • Native receiver and standalone tray builds completed successfully.
  • The extracted ZIP matched all 173 packaged files by SHA-256.
  • A real install under C:\Program Files\UxPlayEnhanced\app-1.1.0 matched all 171 installed payload files.
  • Desktop shortcut, firewall rules, registration, embedded mDNS advertisement, and receiver startup were verified.
  • Dependency inspection found no missing runtime DLLs.

SHA-256: 369439A7A6682D29A95C4512911E98CE39669451A70B7F60280113E17C70994A

UxPlayEnhanced v1.1.0-beta.1

Pre-release

Choose a tag to compare

@Kylepossible Kylepossible released this 07 Aug 21:15

Pre-release. Built from the beta branch, not master. Install it alongside 1.0.3 rather than over it — the installer uses a versioned directory (app-1.1.0-beta.1), so both can coexist.

Minor bump rather than patch: discovery behaviour and the tray's logging pipeline both change.

Discovery

  • mDNS is advertised on every up IPv4 interface, not only the one routing toward the internet. A PC on Ethernet and Wi-Fi is now reachable from either network, an active VPN no longer hides the LAN, and a machine with no default route works instead of failing with failed to detect local IP address. Each interface advertises its own address, and the list is rechecked every 15 seconds so joining Wi-Fi or raising a VPN is picked up without a restart. (#5)
  • Goodbye packets now actually carry TTL 0. They were being sent with TTL 4500, so clients kept stale records after shutdown — the documented behaviour was never what shipped. (#5)
  • Duplicate TXT keys are replaced, not appended, matching Bonjour's TXTRecordSetValue. Previously a key set twice appeared twice, and clients use the first occurrence per RFC 6763 §6.4, so the later value was silently ignored. (#6)

Tray

  • The tray no longer re-reads and re-parses 128 KB of log for every menu entry, every second. UxPlay's output is piped in and folded into an in-memory snapshot as it arrives. (#4)
  • The log now rotates at 5 MB with two backups, so a long-running receiver cannot fill the disk. (#4)
  • Status: Audio error now clears when a new audio connection starts, rather than when the error scrolls out of the buffer. (#4)

Installer and scripts

  • The uninstaller no longer deletes the folder it is run from. It shipped inside the portable ZIP, so running it from an extracted download recursively deleted that download. It now resolves the target from the registry InstallLocation and refuses any path outside %ProgramFiles%\UxPlayEnhanced. (#3)
  • The debug launcher writes to %LOCALAPPDATA%\UxPlayEnhanced\Logs\ instead of next to the executable, which after installation is a Program Files path a normal user cannot write to — so debug sessions previously died before capturing anything. (#8)

Project

  • Licence corrected to GPL-3.0. UxPlay is GPL-3.0, not LGPL-2.1 as previously stated, and this project ships a patched uxplay.exe. (#2)
  • Building with USE_EMBEDDED_MDNS=OFF no longer fails on duplicate symbols after build.sh has run once. (#7)

Testing status

The C changes were compiled and linked with the project's MinGW64 toolchain, and interface enumeration, packet TTLs, TXT semantics, tray parsing, log rotation and the uninstaller path checks all have tests. The packaged uxplay.exe was smoke-tested and starts correctly, reporting the interface it advertises on.

Not yet tested: no live AirPlay session against a real device, and this was built on a machine with a single network interface, so the multi-interface path has not been exercised on real multi-homed hardware. That is the main thing worth trying if you are running this beta.

Corresponding source: the beta branch at tag v1.1.0-beta.1, plus the pinned lib/uxplay submodule commit.

UxPlayEnhanced v1.0.3

Choose a tag to compare

@Kylepossible Kylepossible released this 07 Aug 20:01
ecbc921

UxPlayEnhanced v1.0.3

This release fixes Windows upgrades that could fail with Access is denied
while replacing an executable or runtime DLL in Program Files.

Installer reliability

  • Installs each release into a versioned application directory, preventing
    antivirus behavior monitoring from blocking an upgrade by protecting an
    older executable.
  • Stops all running UxPlayEnhanced executables and waits until the product
    directory remains process-free before copying files.
  • Keeps hash-identical runtime files instead of overwriting them.
  • Retries changed files when Windows reports a transient lock and verifies
    installed files with SHA-256.
  • Keeps the desktop and Start menu shortcuts, firewall rules, uninstall entry,
    and application icon pointed at the active version.

Validation

  • Tested an upgrade while the legacy receiver was running.
  • Tested a second repair install while libx265-216.dll was deliberately held
    open against overwrite and deletion.
  • Verified all 169 installed package files by SHA-256, both firewall rules, the
    all-users desktop shortcut, the uninstall registry entry, and a normal tray
    launch after installation.

There are no audio-pipeline changes in this release.

UxPlayEnhanced v1.0.2

Choose a tag to compare

@Kylepossible Kylepossible released this 07 Aug 19:40

UxPlayEnhanced v1.0.2

This release improves ALAC startup playback, Windows resampling quality, and installer shortcut reliability.

Audio playback

  • Starts ALAC playback from the first real audio payload instead of accumulating frames until the first NTP sync and burst-draining them into GStreamer.
  • Explicitly requires packetlen > 44, excluding ALAC format-only and malformed short packets.
  • Resets the stream-local clock mapping when a new audio format starts.
  • Uses GStreamer audioresample quality=10 for maximum-quality 44.1 to 48 kHz conversion on Windows.

The resampler was benchmarked separately from the startup fix. Compared with GStreamer's default quality 4, quality 10 added approximately 2.18 ms of filter latency and increased the isolated resampling stage from about 0.11% to 0.22% of one CPU core on the build PC.

Installer

  • Creates the shortcut in the Windows all-users Desktop so it remains visible when setup is approved with a different administrator account.
  • Verifies that the shortcut exists and targets the installed UxPlayEnhanced.exe before reporting success.
  • Updates uninstall cleanup to remove the all-users Desktop shortcut.
  • Clarifies that setup does not delete the extracted release folder; setup files are intentionally not copied into Program Files.

Lossless compatibility

  • Documents that UxPlayEnhanced's 16-bit/44.1 kHz receiver profile is standard Lossless, not Hi-Res Lossless.
  • Notes the currently reported iOS 27 Developer Beta 3 behavior where AutoMix works with Lossless but not Hi-Res Lossless, while clearly identifying it as undocumented beta behavior that may change.

The package remains audio-only by default, Bonjour-free, portable, and includes xvidcore.dll plus all required runtime dependencies.

UxPlayEnhanced v1.0.1

Choose a tag to compare

@Kylepossible Kylepossible released this 07 Aug 19:19

UxPlayEnhanced v1.0.1

This maintenance release fixes Windows installation and tray diagnostics while keeping the default experience audio-only and Bonjour-free.

Fixed

  • Installer now removes Windows downloaded-file blocking from the extracted payload before launch.
  • Installer waits for administrator setup to finish and propagates failures correctly.
  • Firewall setup removes only conflicting block rules for the installed uxplay.exe, creates program-scoped TCP and UDP allow rules for Private/Public networks, and verifies them before reporting success.
  • Portable firewall setup now requests administrator access automatically and performs the same verification.
  • Logs now use %LOCALAPPDATA%\UxPlayEnhanced\Logs\UxPlayEnhanced.log instead of the protected Program Files directory.
  • View logs now opens the log explicitly in Notepad and no longer depends on a .log file association.

Improved

  • Tray information now distinguishes AirPlay Host from the connected AirPlay Client device.
  • Audio details use a compact format: codec, Lossless/Lossy quality, bit depth, sample rate, and channels.
  • Once-per-second playback progress is hidden in normal logs. Launch UxPlayEnhanced.exe --verbose to include it for troubleshooting.

The portable package includes xvidcore.dll and all required runtime dependencies; no Python, Bonjour, or separate installation is required for portable use.

UxPlayEnhanced v1.0.0

Choose a tag to compare

@Kylepossible Kylepossible released this 07 Aug 17:27

UxPlayEnhanced v1.0.0

A lightweight, audio-only, Bonjour-free AirPlay receiver for Windows, powered by FDH2/UxPlay.

Included

  • Self-elevating UxPlayEnhanced-Setup.cmd installer
  • Automatic TCP and UDP Windows Firewall rules
  • Desktop and Start-menu shortcuts plus Apps and Features uninstall entry
  • Standalone UxPlayEnhanced.exe tray application with no Python installation required
  • New high-contrast blue U/audio-wave icon
  • Audio-only startup by default (-vs 0)
  • Tray status, current song metadata, audio codec/quality, log viewer, restart, and quit
  • Stable native tray-menu hover behavior
  • Deduplicated metadata logging and readable lossless/lossy receiver-format output
  • Bundled xvidcore.dll and the required GStreamer/FFmpeg runtime

Extract the complete ZIP, then run UxPlayEnhanced-Setup.cmd.