SoundFlow v1.1.1 Release Notes
This is a significant stability and performance release. We have addressed several edge-case bugs in the audio processing pipeline, improved performance for standard playback, and enhanced support for live audio streaming. The native library loading mechanism has also been completely overhauled for greater reliability across all supported platforms.
✨ Improvements & Performance Gains
- Optimized Playback at Normal Speed: The audio processing pipeline is now bypassed when playback speed is set to the default
1.0x
. This significantly reduces CPU overhead for standard playback, leading to better performance and lower resource consumption in common use cases. - More Robust Native Library Loading: The method for locating and loading the
miniaudio
native library has been rewritten for improved reliability. The system now first attempts to load the library using the operating system's standard search paths before falling back to the packagedruntimes
directory. This resolves potentialDllNotFoundException
errors in various deployment scenarios (e.g., framework-dependent vs. self-contained) and improves compatibility across Windows, macOS, and Linux.
🐛 Bug Fixes
-
Audio Core & Processing
- Corrected Mono Panning Logic: Fixed a flaw in how volume is calculated for mono sound sources during stereo panning. The new implementation uses a "constant power" formula, which prevents the noticeable dip in volume that previously occurred when a sound was panned to the center.
- Improved Seek Stability and Time-Stretching Reliability: Resolved a critical bug in the buffer management logic for the time-stretching engine (WSOLA) that could lead to an
ArgumentOutOfRangeException
during frequent seeks or specific playback speed changes. The input buffer is now correctly compacted and refilled, preventing potential audio artifacts, stuttering, or crashes during playback at speeds other than 1.0x, especially after seeking. - Prevented Audio Clipping Artifacts: Implemented a final safety check that clamps audio samples to the valid range (
-1.0
to1.0
) before they are sent to the output buffer. This prevents harsh digital distortion that could occur in rare edge cases of audio processing.
-
Network & Streaming
- Fixed Premature Stoppage of Live Streams: The playback engine now correctly handles audio streams of unknown or infinite length (e.g., HLS live radio). Previously, a temporary network buffer underrun could be misinterpreted as the end of the stream, causing playback to stop. The player will now correctly wait for more data, making live streaming reliable.
- Prevented Application Hangs on Stalled Network Streams: Introduced a timeout mechanism in the network data provider. If a stream provides no data for an extended period (~5 seconds), the player will gracefully stop waiting instead of hanging indefinitely. This improves the stability and responsiveness of the application when dealing with unreliable network connections.