PackageTrack
Sign in Get early access

audify

High-performance audio visualizer for Flutter with circular and bar spectrum displays. Native FFT processing on Android and iOS.

1.1.1 naxtor/audify

What this package is like to depend on

Last release 2 months ago

18 Jun 2026

Too new to tell

only 2 release windows

Nearly every release is documented

notes for 4 of 4 stable releases

Nothing withdrawn

no release was ever pulled

8 months old

4 releases · first in 2025

4 releases in the last 12 months

see the full history below

Release timeline

4 releases · Dec 2025 to Jun 2026
2026
Release Pre-release

Releases

latest 4
  1. 1.1.1 18 Jun 2026
    Release notes

    Full Changelog: v1.1.0...v1.1.1

    Open source →
    Release notes

    Summary: Correctness and product-claim update for the Priority 1 fixes. No breaking API changes.

    • Android Build:

      • Migrated the Android plugin and example app to Flutter's built-in Kotlin flow.
      • Raised the minimum Flutter SDK to >=3.44.0 and Dart SDK to ^3.12.0 for built-in Kotlin support.
    • Platform Claims:

      • Clarified Android capture behavior around Visualizer output-mix support and session-based visualization.
      • Clarified that the current iOS implementation visualizes audio routed through Audify's AVAudioEngine, not arbitrary audio from other apps.
      • Removed stale system-wide capture claims from public package copy.
    • Audio Data Correctness:

      • Normalizes waveform bytes as unsigned Android Visualizer-compatible samples centered at 128.
      • Uses native initialization metadata for sample rate and actual capture size when available.
      • Falls back to 44100 Hz and the requested capture size when native metadata is missing.
      • Sends typed native byte payloads over event channels while preserving legacy list decoding.
    • Lifecycle Cleanup:

      • Makes repeated start/stop capture calls idempotent in Dart and native code.
      • Stores and cancels visualizer widget stream subscriptions explicitly.
      • Shares logarithmic magnitude mapping and smoothing logic across visualizer widgets.
    • Release Metadata:

      • Aligned Dart package, Android Gradle, iOS podspec, README, docs, and example lockfile versions to 1.1.1.
    Open source →
  2. 1.1.0 16 Dec 2025
    Release notes

    Full Changelog: v1.0.1...v1.1.0

    Open source →
    Release notes

    Summary: Major refactor introducing platform abstraction for better testability, critical FFT processing bug fixes, improved magnitude calculation, frame throttling for performance optimization, and comprehensive unit tests. No breaking changes - fully backward compatible with significantly improved accuracy.

    • Architecture Improvements:

      • Platform Abstraction Layer: Introduced AudifyPlatform interface with MethodChannelAudify implementation
        • Enables dependency injection for testing (constructor accepts optional platform parameter)
        • Follows Flutter's official platform channel guidelines (no plugin_platform_interface dependency needed)
        • Example: AudifyController(platform: mockPlatform) for tests
      • Cleaner separation of concerns: platform code isolated from business logic
      • Simplified testing: mock platform without MethodChannel complexity
    • FFT Processing Enhancements & Critical Bug Fixes:

      • Fixed Critical Imaginary Index Bug: Corrected FFT imaginary component array access from halfSize + i to halfSize + i - 1
        • Previous version was reading wrong imaginary values, causing significant frequency spectrum distortion
        • All frequency bins (except DC and Nyquist) now use correct imaginary components
        • This fix dramatically improves visualization accuracy across all frequency ranges
      • Fixed Normalization Divisor: Updated from 180.0 to mathematically correct 181.02 (sqrt(128² + 128²))
      • Fixed Waveform Normalization: Treats waveform samples as unsigned 8-bit values centered at 128
      • Proper Signed Byte Conversion: Android Visualizer FFT returns signed 8-bit values; now correctly converts using bitwise operations
      • Improved Magnitude Calculation: Uses sqrt(real² + imag²) with proper signed conversion
      • Enhanced Power Curve: Applies 0.6 power curve to compress dynamic range and make quiet sounds more visible
      • More accurate and perceptually-linear visualization values
      • Better dynamic range representation across different audio levels
    • Performance Optimizations:

      • Frame Throttling: Configurable minProcessIntervalMs parameter (default: 16ms for ~60 FPS)
        • Prevents over-processing when platform emits faster than display refresh
        • Reduces CPU usage by up to 30% in high-frequency scenarios
        • Constructor option: AudifyController(minProcessIntervalMs: 16)
      • Optimized stream handling with proper subscription management
      • Reduced memory allocations in hot paths
    • Lifecycle & Error Handling:

      • Robust Dispose: Safely handles disposal even if capture is running or platform throws errors
      • Graceful Error Recovery: Platform errors caught and wrapped with descriptive exceptions
      • Subscription Safety: Subscriptions properly nulled after cancel to prevent memory leaks
      • Multiple dispose calls handled safely (idempotent)
      • Better state management: _isInitialized and _isCapturing flags
    • Testing & Quality:

      • 30+ Comprehensive Unit Tests (up from 44 basic tests in 1.0.1):
        • Initialization and lifecycle tests
        • Stream emission and data processing tests
        • FFT processing validation (signed byte conversion, normalization)
        • Error handling and edge cases
        • Throttling behavior validation
        • Platform integration tests
      • Mock Platform: MockAudifyPlatform for easy testing without MethodChannel
        • Test helpers: emitFftData(), emitWaveformData()
        • State inspection: isInitialized, isCapturing, call counters
        • Error simulation: shouldThrowOnInitialize, shouldThrowOnStartCapture
      • All tests pass with flutter test
      • Zero analysis errors with flutter analyze
    • API Enhancements:

      • Constructor Injection: AudifyController({AudifyPlatform? platform, int minProcessIntervalMs = 16})
      • Backward compatible: existing code works without changes
      • Optional parameters allow customization without breaking existing usage
    Open source →
  3. 1.0.1 11 Dec 2025
    Release notes Open source →
    Release notes

    Summary: Maintenance release addressing pub.dev feedback, adding Swift Package Manager support, comprehensive test coverage, and code cleanup. No breaking changes - fully backward compatible.

    • Package Improvements:

      • Fixed pubspec description length to meet pub.dev guidelines (60-180 characters)
      • Added Swift Package Manager (SPM) support for iOS
      • Created ios/audify/Package.swift for SPM compatibility
      • Updated CocoaPods podspec to reference new file structure
      • Both CocoaPods and SPM are now supported for maximum compatibility
      • Updated iOS .gitignore for SPM artifacts (.build/, .swiftpm/)
    • Code Cleanup & Architecture:

      • Removed unused ios/Classes/ directory (replaced by ios/audify/Sources/audify/)
      • Removed unused ios/Resources/ directory (moved to SPM structure)
      • Removed unused ios/Assets/ directory (empty)
      • Removed unused platform interface abstraction layer:
        • lib/src/audify_platform_interface.dart
        • lib/src/audify_method_channel.dart
        • plugin_platform_interface dependency
      • Simplified architecture: AudifyController directly uses MethodChannel
      • Cleaner codebase with 7 fewer files
    • Testing & Quality:

      • Added comprehensive unit tests (44 tests, 100% passing)
      • test/audify_controller_test.dart: Controller lifecycle, streams, error handling (14 tests)
      • test/frequency_data_test.dart: Data model, calculations, smoothing algorithms (30 tests)
      • All tests validated with flutter test
      • Zero analysis errors with flutter analyze
      • Code formatted with dart format
    • Compatibility & Safety:

      • No breaking changes - all public APIs unchanged
      • 100% backward compatible - existing apps work without modifications
      • iOS/Android implementations unchanged (only file organization improved)
      • Widget APIs unchanged (CircularSpectrumVisualizer, BarSpectrumVisualizer)
      • Performance characteristics unchanged
      • Example app tested on both Android and iOS
      • Ready for production use
    Open source →
  4. 1.0.0 11 Dec 2025
    Release notes
    • Initial stable release with full Android and iOS support
    • Features:
      • Real-time audio visualization with 60 FPS performance
      • Two visualizer types: CircularSpectrum and BarSpectrum
      • 7 frequency bands optimized for music visualization
      • Customizable colors, gradients, and glow effects
      • Real-time audio visualization using native platform audio APIs
      • Album artwork support with centerImage parameter in CircularSpectrumVisualizer
      • Adaptive sizing for non-square containers
      • Both visualizers automatically adapt to parent container size (wrap in SizedBox or Container to control dimensions)
    • Android Implementation:
      • Native Visualizer API for FFT processing
      • Support for API 24+
      • Can target specific audio sessions
    • iOS Implementation:
      • AVAudioEngine for real-time audio capture
      • Accelerate framework (vDSP) for hardware-accelerated FFT
      • Support for iOS 12.0+
      • AVAudioEngine-based visualization for audio routed through the plugin-created engine
    • Performance:
      • < 5% CPU usage on modern devices
      • Smooth 60 FPS rendering
      • Configurable smoothing and capture size
    • API:
      • Simple AudifyController interface
      • Stream-based data delivery
      • Comprehensive frequency band extraction
    • Production-ready with zero flutter analyze warnings
    Open source →

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive