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 effect SoLoud documentation
- freeverbFilter- High quality reverb effect SoLoud documentation
- biquadResonant- Multi-mode filter (lowpass, highpass, bandpass) SoLoud documentation
- bassboost- Low frequency enhancement SoLoud documentation
- equalizer- Multi-band equalizer SoLoud sources
- flanger- Classic modulation effect SoLoud documentation
- waveShaper- Audio distortion/wave shaping SoLoud documentation
- lofi- Bit depth and sample rate reduction SoLoud documentation
- robotize- Voice modulation effect SoLoud documentation
- pitchShifter- Change pitch without affecting speed flutter_soloud source
- compressor- Dynamic range compression flutter_soloud source
- limiter- Peak volume control flutter_soloud source
- 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),
);