Skip to content

V1.1.2

Choose a tag to compare

@LSXPrime LSXPrime released this 21 Jul 17:45
· 8 commits to master since this release

SoundFlow v1.1.2 Release Notes


Important Note for Users

This release, SoundFlow v1.1.2, is a critical maintenance patch specifically designed for users who are unable to upgrade to the new device-centric architecture introduced in SoundFlow v1.2.0.

If you can upgrade to v1.2.0, we strongly recommend doing so, as it represents a significant architectural leap with new features and further optimizations that supersede the fixes in this version. For all other users, v1.1.2 delivers a host of essential bug fixes and crucial stability improvements for the v1.1.x codebase.


This patch is packed with vital corrections that address core audio processing, memory management, and format conversion issues, significantly enhancing the stability and reliability of SoundFlow v1.1.x.

Key Highlights:

  • Critical Audio Recording Bug Fixed: Resolved a severe bug that previously resulted in garbled audio when recording to formats other than F32.
  • Massive Memory Consumption Reduction: Eliminated excessive memory usage for long audio files, reducing consumption from ~1GB to a mere ~20MB for a 15-minute file.
  • Enhanced Audio Processing Accuracy & Consistency: Corrected inaccuracies and inconsistencies in core FFT operations, leading to more reliable and precise audio analysis.
  • Comprehensive Audio Format Conversion Fixes: Implemented robust and accurate conversions for various PCM formats, addressing previous limitations and ensuring correct handling during capture and playback, including full 24-bit support.

🐛 Critical Bug Fixes & Stability Improvements

This release focuses heavily on resolving stability issues and correcting erroneous behavior across the audio engine.

  • Memory Management
    • Resolved Excessive Memory Usage: The NetworkDataProvider has been thoroughly refactored to eliminate memory leaks. This critical change resolves the issue of excessive memory consumption, drastically reducing the memory footprint (e.g., from ~1GB down to ~20MB for a 15-minute audio file).
  • Audio Core & FFT Processing
    • Corrected FFT Inconsistencies: Unified the FFT implementations across Scalar, SSE, and AVX paths in MathHelper to ensure consistent and predictable behavior regardless of the CPU instruction set used. These SIMD paths are now toggleable for easier debugging.
    • Fixed FFT Accuracy Issues: Enhanced the accuracy of Fast Fourier Transform (FFT) and Inverse FFT (IFFT) operations by improving window function generation, refining cosine approximations, and implementing proper IFFT scaling, resolving previous precision issues.
  • Audio Format Conversion & Recording
    • FIXED: Garbled Audio Recording: Corrected a critical audio format conversion bug that previously produced garbled or corrupted audio when recording to formats other than F32 (float 32-bit). Recording to all supported PCM formats (U8, S16, S24, S32) is now reliable and accurate.
    • Improved & Centralized Format Conversion Robustness:
      • Introduced a ProcessingDirection enum to provide clear guidance to the central ProcessAudio method, improving the predictability and control of audio flow.
      • Centralized buffer management and format conversion dispatch within ProcessAudio, now leveraging ArrayPool for efficient handling of temporary buffers, eliminating previous inefficiencies.
      • Replaced previous, less robust format-specific conversion methods with generic ConvertFloatTo<T> and ConvertFrom<T> for common integer PCM formats (U8, S16, S32), fixing inflexibility.
      • Added specific ConvertFloatToS24 and ConvertFromS24 methods, providing full and accurate support for 24-bit PCM, addressing a previous capability gap.
      • Resolved 8-bit Audio Quality Degradation: Added dithering to unsigned 8-bit (U8) input conversions to significantly improve audio quality and prevent quantization noise when down-converting.
      • Ensured full and reliable support for converting various PCM formats (S16, S24, S32, U8) to/from internal float buffers for both audio input (capture) and output (playback), addressing prior conversion limitations.

✨ Performance Enhancements

  • Optimized Core FFT Operations: Core FFT operations, including bit reversal and complex multiplication, have been optimized for improved processing performance and efficiency.

We encourage all users who can upgrade to SoundFlow v1.2.0 to do so to benefit from its new architecture and features. For those remaining on the v1.1.x branch, this update provides essential stability and performance enhancements.