v1.6.0
SWivid/F5-TTSv1.6.0Mar 7, 2026by github-actions[bot]
AI Summary
This release improves webcam handling and user experience with better device management, persistence, and stability fixes.
Key Highlights
- Added webcam device selector and persistence across restarts.
- Fixed webcam mirror checkbox functionality.
- Fixed device switch failures and deduplicated device lists.
- Improved audio input handling for non-f32 sample formats.
New Features
- Webcam device selector
- Webcam device persistence
Full Release Notes
### Added
- Acknowledgments section in README — credits for third-party libraries, algorithms, research, and fonts
- Updated README feature table — compute rasterizer, 23 effects, MFCC/chroma audio, webcam/depth layers, scene cues
- Webcam device selector — enumerate and switch between multiple cameras in webcam layer panel, obstacle panel, and layer add button
- Persist selected webcam device in settings (remembered across restarts)
- Preset save/restore resolves webcam by device name, with fallback to default
- Inline "Camera not available" indicator in webcam panel when capture is dead
### Changed
- Clean build: eliminated all 62 compiler warnings in phosphor-app (unused vars, dead code suppressions, borrow scope fix, removed dead `ParticleSourceRequest` enum and `recreate_draw_bind_groups` method)
- Suppressed 2 `unexpected_cfgs` warnings in vendored midir patch
### Fixed
- Webcam mirror checkbox now actually flips the image (was setting flag but shader never read it)
- Webcam device switch failure no longer kills the active capture — restores previous device on error
- Deduplicate webcam device list — Linux V4L2 exposes multiple nodes per physical camera (main, metadata, IR); now keeps only the lowest index per name
- Input device enumeration now works when native loopback (PulseAudio/WASAPI) is active — microphones and other input devices appear in the device selector dropdown
- Selecting a specific input device now correctly switches to cpal capture instead of re-entering the loopback path
- Deduplicate input device names (ALSA exposes multiple nodes per card with identical descriptions)
- Handle non-f32 sample formats (i16, i32) when opening input devices — fixes "Sample format 'f32' is not supported by hardware" error
- Suppress JACK client library stderr spam ("Cannot connect to server") via null error/info handlers on Linux
- Move device enumeration to background thread — eliminates ~200ms UI freeze from ALSA/JACK probing every scan cycle
## 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](https://ndi.video) for network video output
- **Video playback** (optional): `ffmpeg` on PATH for media layers
---
NDI® is a registered trademark of Vizrt NDI AB.