Effects & Filters
Learn how to use audio effects and filters
Overview
flutter_soloud provides various audio effects and filters that can be applied globally to all sounds or individually to specific sound sources.
Individual filters for sounds are not supported on Web platform.
Available Filters
echo
- Echo/delay effectfreeverbFilter
- High quality reverb effectbiquadResonant
- Multi-mode filter (lowpass, highpass, bandpass)bassboost
- Low frequency enhancementequalizer
- Multi-band equalizerpitchShifter
- Change pitch without affecting speedflanger
- Classic modulation effectwaveShaper
- Audio distortion/wave shapinglimiter
- Peak volume controlcompressor
- Dynamic range compressionlofi
- Bit depth and sample rate reductionrobotize
- Voice modulation effect
Global Filters
Apply filters to all audio output:
// Initialize SoLoud with filters
await SoLoud.instance.init();
// Access filters through the filters property
final filters = SoLoud.instance.filters;
// Activate an effect
filters.echoFilter.activate();
// Configure parameters
filters.echoFilter.delay.value = 0.2;
filters.echoFilter.decay.value = 0.7;
Parameter Control
// Fade parameter over time
filters.echoFilter.delay.fadeFilterParameter(
to: 0.5,
time: Duration(milliseconds: 1000),
);
// Oscillate parameter
filters.echoFilter.decay.oscillateFilterParameter(
from: 0.2,
to: 0.8,
time: Duration(milliseconds: 2000),
);
Echo Effect
// Set up echo
filters.echoFilter.activate();
filters.echoFilter
..delay.value = 0.2 // 200ms delay
..decay.value = 0.7 // 70% decay
..filter.value = 1.0; // No filtering
Bass Boost
// Enhance low frequencies
filters.bassboostFilter.activate();
filters.bassboostFilter
..boost.value = 2.0; // Double bass
Lo-Fi Effect
// Add retro sound quality
filters.lofiFilter.activate();
filters.lofiFilter
..sampleRate.value = 8000 // 8kHz sampling
..bitDepth.value = 4; // 4-bit depth
Reverb
// Add space/room effect
filters.freeverbFilter.activate();
filters.freeverbFilter
..roomSize.value = 0.8 // Large room
..damping.value = 0.5 // Medium damping
..width.value = 1.0; // Full stereo width
Dynamic Effects
Create evolving soundscapes:
// Start with normal reverb
filters.freeverbFilter.activate();
filters.freeverbFilter.roomSize.value = 0.5;
// Gradually increase room size
filters.freeverbFilter.roomSize.fadeFilterParameter(
to: 0.9,
time: Duration(seconds: 3),
);
// Oscillate damping
filters.freeverbFilter.damping.oscillateFilterParameter(
from: 0.2,
to: 0.8,
time: Duration(milliseconds: 2000),
);