Overview
Discord Player provides over 40 preset audio filters powered by FFmpeg that can dramatically transform your audio playback. From bass boosts to nightcore, 8D audio to karaoke mode, these filters offer professional-grade audio manipulation.
Available Filters
Bass Filters
bassboost_low - Low bass boost (15 dB gain at 110 Hz)
bassboost - Standard bass boost (20 dB gain at 110 Hz)
bassboost_high - High bass boost (30 dB gain at 110 Hz)
subboost - Enhance sub-bass frequencies
Frequency Filters
Treble Boost high frequencies (5 dB treble gain)
Normalizer Audio compressor for consistent levels
Normalizer2 Dynamic audio normalizer with 101 dB gain
Spatial Effects
8D Audio Simulate 8D audio with pulsator effect (0.09 Hz)
Surrounding Create surround sound effect
Haas Haas effect for spatial audio
Pulsator Audio pulsator at 1 Hz
Modulation Effects
Filter Description FFmpeg Configuration phaser Phase shifting effect aphaser=in_gain=0.4tremolo Amplitude modulation tremolovibrato Pitch modulation vibrato=f=6.5flanger Flanging effect flanger
Stereo Effects
mono - Convert to mono audio
mstlr - Mid/Side to Left/Right conversion
mstrr - Mid/Side to Right/Right conversion
Chorus Effects
Time-Based Effects
nightcore - Speed up audio (1.25x rate, higher pitch)aresample = 48000 , asetrate = 48000 * 1.25
vaporwave - Slow down audio (0.8x rate, lower pitch)aresample = 48000 , asetrate = 48000 * 0.8
lofi - Lo-fi effect (0.9x rate with stereo enhancement)aresample = 48000 , asetrate = 48000 * 0.9 , extrastereo = m = 2.5 : c = disabled
reverse - Reverse audio playbackfadein - 10-second fade-in effect
Dynamic Range
Compressor Reduce dynamic range with multi-point compression curve
Expander Expand dynamic range with advanced attack settings
Soft Limiter Gentle limiting to prevent clipping
Mcompand Multi-band compander
Special Effects
Remove vocals using stereo tools
Audio gate for noise reduction
Reduce brightness of audio spectrum
Extreme volume effect (use with caution)
Remove silence from beginning
Usage
Apply Single Filter
await queue . filters . ffmpeg . setFilters ([ 'bassboost' ]);
Apply Multiple Filters
await queue . filters . ffmpeg . setFilters ([
'nightcore' ,
'bassboost' ,
'8D'
]);
Toggle Filters
// Toggle filters on/off
await queue . filters . ffmpeg . toggle ([ 'vaporwave' ]);
Using Filter Object
await queue . filters . ffmpeg . setFilters ({
bassboost: true ,
nightcore: true ,
normalizer: false
});
Enable All Filters
// Enable all available filters
await queue . filters . ffmpeg . setFilters ( true );
// Disable all filters
await queue . filters . ffmpeg . setFilters ( false );
Filter Management
Check Filter Status
// Check if filter is enabled
const isEnabled = queue . filters . ffmpeg . isEnabled ( 'bassboost' );
// Check if filter is disabled
const isDisabled = queue . filters . ffmpeg . isDisabled ( 'nightcore' );
// Validate filter name
const isValid = queue . filters . ffmpeg . isValidFilter ( '8D' );
Get Active Filters
// Get list of enabled filters
const enabled = queue . filters . ffmpeg . getFiltersEnabled ();
console . log ( 'Enabled:' , enabled ); // ['bassboost', 'nightcore']
// Get list of disabled filters
const disabled = queue . filters . ffmpeg . getFiltersDisabled ();
Export Filter Configuration
// Convert to array
const filterArray = queue . filters . ffmpeg . toArray ();
// Convert to JSON object
const filterObj = queue . filters . ffmpeg . toJSON ();
// Get FFmpeg string
const ffmpegArgs = queue . filters . ffmpeg . toString ();
Custom Filters
Define Single Filter
import { AudioFilters } from 'discord-player' ;
AudioFilters . define ( 'myfilter' , 'aecho=0.8:0.9:1000:0.3' );
// Use your custom filter
await queue . filters . ffmpeg . setFilters ([ 'myfilter' ]);
Define Multiple Filters
AudioFilters . defineBulk ([
{
name: 'deepbass' ,
value: 'bass=g=25:f=90:w=0.4'
},
{
name: 'crystalclear' ,
value: 'acompressor=threshold=0.089:ratio=9:attack=200:release=1000'
},
{
name: 'spacial' ,
value: 'aecho=0.8:0.88:60:0.4,chorus=0.5:0.9:50:0.4:0.25:2'
}
]);
await queue . filters . ffmpeg . setFilters ([ 'deepbass' , 'crystalclear' ]);
Advanced Usage
Set Default Filters
// Set filters without triggering replay
queue . filters . ffmpeg . setDefaults ([ 'bassboost' , 'normalizer' ]);
Access Raw Filter Values
import { AudioFilters } from 'discord-player' ;
// Get filter FFmpeg value
const filterValue = AudioFilters . get ( 'nightcore' );
console . log ( filterValue ); // 'aresample=48000,asetrate=48000*1.25'
// Check if filter exists
const exists = AudioFilters . has ( 'bassboost' );
// Get all filter names
const names = AudioFilters . names ;
console . log ( names ); // ['bassboost_low', 'bassboost', ...]
// Get filter count
console . log ( AudioFilters . length ); // 40+
// Add custom FFmpeg input arguments
queue . filters . ffmpeg . setInputArgs ([
'-af' , 'volume=1.5' ,
'-ar' , '44100'
]);
// Get current input args
const args = queue . filters . ffmpeg . inputArgs ;
// Get encoder args
const encoderArgs = queue . filters . ffmpeg . encoderArgs ;
// Get final combined args
const finalArgs = queue . filters . ffmpeg . args ;
Complete Filter List
Here’s a complete reference of all 40+ available filters:
const allFilters = [
'bassboost_low' ,
'bassboost' ,
'bassboost_high' ,
'8D' ,
'vaporwave' ,
'nightcore' ,
'phaser' ,
'tremolo' ,
'vibrato' ,
'reverse' ,
'treble' ,
'normalizer' ,
'normalizer2' ,
'surrounding' ,
'pulsator' ,
'subboost' ,
'karaoke' ,
'flanger' ,
'gate' ,
'haas' ,
'mcompand' ,
'mono' ,
'mstlr' ,
'mstrr' ,
'compressor' ,
'expander' ,
'softlimiter' ,
'chorus' ,
'chorus2d' ,
'chorus3d' ,
'fadein' ,
'dim' ,
'earrape' ,
'lofi' ,
'silenceremove'
];
Events
queue . on ( 'audioFiltersUpdate' , ( queue , oldFilters , newFilters ) => {
console . log ( 'Filters changed from:' , oldFilters );
console . log ( 'Filters changed to:' , newFilters );
});
Best Practices
Performance Considerations
Filters trigger audio stream replay and may cause brief playback interruption
Multiple filters can increase CPU usage
Some filters (like nightcore and vaporwave) affect playback duration
Tips
Test filters individually before combining
Use normalizer with heavy filters to maintain consistent volume
Some filters work better with specific audio types (e.g., karaoke with vocals)
Custom filters give you unlimited possibilities with FFmpeg
Equalizer 15-band equalizer configuration
Volume Control Manage playback volume
Stream Config Configure audio stream processing