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.
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
- Individual filters for sounds are not supported on Web platform.
- freeverb supports only 2 channels. So using freeverb as global filter, the engine should be initializeded using the default 2 channels and when using it as sound filter it must be with 2 channels.
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),
);