Skip to content

v0.3.11

Choose a tag to compare

@github-actions github-actions released this 28 Feb 02:47
· 426 commits to main since this release

Added

  • Async preset loading — presets with media/video layers decode in a background thread, keeping current content playing; atomic swap on completion with pulsing status bar indicator and preset button highlight
  • Generation-based cancellation for rapid MIDI preset cycling (only final preset applies)

Fixed

  • Webcam layer preset ordering — loading a preset with a webcam layer no longer appends it to the end of the stack; webcam content is now placed in-place at its correct index, preventing extra stray layers and layer count growth on repeated save/load cycles
  • Webcam decode panic hardening — backoff (50ms sleep) after corrupted frame decode panics to avoid hammering a broken camera; auto-stop capture thread after 10 consecutive panics with user-visible error log
  • Log GPU present mode and available modes on startup for easier driver issue diagnosis
  • Clippy never_loop lint — replace while+break with match drain-and-retry in preset loader, unblocking CI for v0.3.11 release

Downloads

Platform File Notes
macOS .dmg Universal binary (Apple Silicon + Intel)
Linux x86_64 .tar.gz glibc 2.35+ (Ubuntu 22.04+, Debian 12+)
Windows x64 .zip Windows 10+

Getting started

macOS: Open the DMG, drag Phosphor.app to Applications (or run directly). Signed and notarized.

Linux / Windows: Extract, run phosphor from the extracted directory. The assets/ folder must be next to the binary.

Requirements

  • GPU: Vulkan (Linux/Windows) or Metal (macOS)
  • Audio: Built-in mic or line-in for audio-reactive visuals
  • NDI® (optional): NDI® SDK runtime for network video output
  • Video playback (optional): ffmpeg on PATH for media layers

NDI® is a registered trademark of Vizrt NDI AB.