sautiflow 0.6.2
sautiflow: ^0.6.2 copied to clipboard
High-fidelity, cross-platform Dart/Flutter audio engine for audiophiles, powered by miniaudio and native C++ FFI.
Changelog #
0.6.2 #
Fix missing C++ headers in published package
0.6.1 #
- [Core] Added new
getPipelineState()API to query the true native C++ audio engine pipeline state. - Accurately tracks the flow from input source (sample rate, bit-depth format) -> internal DSP processing -> natively negotiated real hardware output format.
- [Apps/UI] Implemented the pipeline state viewer (Info Button) inside the Sautiplay app EQ Screen.
0.6.0 #
- [DSP Effects] Added new Stereo Widening feature using a hybrid Haas Effect + Mid/Side (M/S) Matrix algorithm.
- Exposes
setStereoWiden({required bool enabled, required double width, required double delayMs})directly inMiniAudioPlayerandIsolateAudioPlayer. - Enables professional, mono-compatible "wide soundstage" manipulation without destructive phase cancellation.
- Exposes
- [UI/Apps] Integrated fully functional "Stereo Stage" configuration knobs into the Example app and Sautiplay EQ screens.
- [Apps] Added persistent state saving for the Stereo Widening options in Sautiplay's SharedPreferences.
0.5.0 #
-
[Pitch & Spatialization] Added new advanced audio features natively using miniaudio:
- Added robust Pitch Control with
setPitch(double). - Added 3D Spatial Audio: Enable via
setSpatializationEnabled(bool)and position sound sources in a 3D environment viasetPosition(x,y,z),setDirection(), andsetVelocity(). - Configurable 3D Audio parameters: Doppler effect, attenuation models, rolloff factor, min/max gain, and distance thresholds.
- Added customizable Fading:
setFade(startVol, endVol, durationMs). - Added granular Playback Scheduling:
scheduleStartTimeInPcmFrames(time)andscheduleStopTimeInPcmFrames(time).
- Added robust Pitch Control with
-
[Example App] Updated the demonstration app with UI sliders to configure Pitch shifting and 3D Spatial Audio in real-time.
-
Integrated
libsamplerate(Secret Rabbit Code) for audiophile-grade audio resampling. -
Added extensive new resampling algorithms via Flutter FFI to the native C++ audio engine:
srcSincBestQualitysrcSincMediumQualitysrcSincFastestsrcZeroOrderHoldsrcLinear
-
Exposed the new algorithms in
MiniAudioPlayer.setEngineResampleAlgorithm(ResampleAlgorithm). -
Updated Windows and Android CMake build systems to natively compile
libsampleratealongsidefaad2andminiaudio. -
Added m4a AAC decoding support via
faad2. -
Enhanced example application with UI dropdown to dynamically change resampling algorithms on the fly.
0.4.0-dev #
- Added standalone object-oriented filter API wrapping miniaudio natively (
MiniaudioLpf1,MiniaudioLpf2,MiniaudioLpf,MiniaudioHpf1, etc). - Added standalone
MiniaudioBiquadfilter wrapping. - Added standalone
MiniaudioResamplerwith support for algorithms (linear,sinc) and dithering modes. - Added support for
s24ands32AudioFormats in the native engine mappings. - Re-architected C++ FFI to expose these standalone filters independently of the main
AudioEngineHandleplayer. - [Real-Time DSP] Injected custom
ma_lpf1,ma_hpf1, andma_biquadas native nodes in the main AudioEngineHandle data callback. - [Real-Time DSP] Exposed
setEngineResampleAlgorithmandsetEngineDitherModeto dynamically re-configure the global audio device. - Updated documentation and the example app to include interactive, real-time SLIDER and DROPDOWN controls for testing the native backend integrations.
0.3.0-dev #
- Started unified mixed multiband FX implementation.
- Added new public Dart model types for user-defined band chains:
EqBandType(peak,bandpass,notch,lowshelf,highshelf)EqBandConfig(per-bandfrequencyHz,q,gainDb,slope,enabled)
- Added
MiniAudioPlayerAPIs:initMultibandFx(bands, enabled: true)setMultibandFxBands(bands)setMultibandFxEnabled(enabled)clearMultibandFx()
- Wired new mixed multiband FX path through Dart FFI and native C/C++ ABI (
ae_set_multiband_fx_*). - Added initial realtime analyzer frame API for visualization pipelines:
- Native C ABI:
ae_set_analyzer_enabled,ae_configure_analyzer,ae_poll_analyzer_frame - Dart FFI +
MiniAudioPlayersurface:configureAnalyzer(frameSize: ...)setAnalyzerEnabled(enabled)getLatestAnalyzerFrame()analyzerStream
- Native C ABI:
- Added transition crossfade controls end-to-end:
setCrossfadeEnabled(bool)setCrossfadeDurationMs(int)(native clamp0..10000)
- Updated output sample-rate handling so
setOutputSampleRate(0)now applies native device rate mode.
0.2.0 #
- Added new miniaudio-powered FX APIs:
setBandpass(enabled, cutoffHz, q)setPeakEq(enabled, gainDb, q, frequencyHz)setNotch(enabled, q, frequencyHz)setLowshelf(enabled, gainDb, slope, frequencyHz)setHighshelf(enabled, gainDb, slope, frequencyHz)
- Wired new FX end-to-end across native engine, Dart FFI, and public
MiniAudioPlayerAPI. - Expanded example EQ screen with interactive controls for the new FX for easier testing.
- Updated documentation and feature lists to include the new filter/EQ set.
0.1.0 #
- Initial release of
sautiflow. - Cross-platform audio playback engine via miniaudio and Dart FFI.
- Playlist controls: play, pause, stop, seek, next, previous, jump, shuffle, loop.
- Audio effects support: gain, pan, EQ, reverb, low/high-pass, delay.
- Platform support: Android, iOS, macOS, Linux, and Windows.