Star ✨ on GitHub

Filters

API reference for the Filters class in Moonlink.js

Filters Class

Represents a set of audio filters that can be applied to a player's audio output.

player.filters

Methods

resetFiltersmethod

Reset Filters

Resets all filters to their default values.

Returns & Example

ReturnsFilters — The filters instance for method chaining

// Reset all filters to their default values
player.filters.resetFilters();

setVolumemethod

Set Volume

Sets the volume of the player.

Parameters
volumerequiredNumber
The volume level to set (Range: 0-100)

Returns & Example

ReturnsFilters — The filters instance for method chaining

// Set the volume to 80%
player.filters.setVolume(80);

setEqualizermethod

Set Equalizer

Applies an equalizer filter with specified frequency bands.

Parameters
bandsrequiredArray<Object>
Array of equalizer bands with band and gain properties
bandrequiredNumber
The band number (Range: 0-14)
gainrequiredNumber
The gain value (Range: -0.25 to 1.0)

Returns & Example

ReturnsFilters — The filters instance for method chaining

// Apply bass boost equalizer
player.filters.setEqualizer([
  { band: 0, gain: 0.6 }, // 25 Hz
  { band: 1, gain: 0.7 }, // 40 Hz
  { band: 2, gain: 0.8 }  // 63 Hz
]);

setKaraokemethod

Set Karaoke

Applies a karaoke filter that removes or reduces the vocal frequencies.

Parameters
levelNumber
1.0
The level of the karaoke effect
monoLevelNumber
1.0
The mono level of the karaoke effect
filterBandNumber
The filter band
filterWidthNumber
The filter width

Returns & Example

ReturnsFilters — The filters instance for method chaining

// Apply karaoke effect
player.filters.setKaraoke({
  level: 1.0,
  monoLevel: 1.0,
  filterBand: 220.0,
  filterWidth: 100.0
});

setTimescalemethod

Set Timescale

Applies a timescale filter to modify speed, pitch, and rate.

Parameters
speedNumber
1.0
The playback speed
pitchNumber
1.0
The audio pitch
rateNumber
1.0
The playback rate

Returns & Example

ReturnsFilters — The filters instance for method chaining

// Apply nightcore effect
player.filters.setTimescale({
  speed: 1.2,  // 20% faster
  pitch: 1.2,  // 20% higher pitch
  rate: 1.0    // Normal rate
});

setTremolomethod

Set Tremolo

Applies a tremolo filter that creates a volume oscillation effect.

Parameters
frequencyrequiredNumber
The frequency of oscillation in Hz
depthrequiredNumber
The depth of the effect (Range: 0-1)

Returns & Example

ReturnsFilters — The filters instance for method chaining

// Apply tremolo effect
player.filters.setTremolo({
  frequency: 4.0,  // 4 Hz oscillation
  depth: 0.75     // 75% depth
});

setVibratomethod

Set Vibrato

Applies a vibrato filter that creates a pitch oscillation effect.

Parameters
frequencyrequiredNumber
The frequency of oscillation in Hz
depthrequiredNumber
The depth of the effect (Range: 0-1)

Returns & Example

ReturnsFilters — The filters instance for method chaining

// Apply vibrato effect
player.filters.setVibrato({
  frequency: 4.0,  // 4 Hz oscillation
  depth: 0.75     // 75% depth
});

setRotationmethod

Set Rotation

Applies a rotation filter that creates a 3D audio rotation effect.

Parameters
rotationHzrequiredNumber
The rotation speed in Hz

Returns & Example

ReturnsFilters — The filters instance for method chaining

// Apply 8D audio effect
player.filters.setRotation({
  rotationHz: 0.2  // Slow rotation
});

setDistortionmethod

Set Distortion

Applies a distortion filter that adds harmonic distortion to the audio.

Parameters
sinOffsetNumber
0
The sin offset value
sinScaleNumber
1
The sin scale value
cosOffsetNumber
0
The cos offset value
cosScaleNumber
1
The cos scale value
tanOffsetNumber
0
The tan offset value
tanScaleNumber
1
The tan scale value
offsetNumber
0
The general offset value
scaleNumber
1
The general scale value

Returns & Example

ReturnsFilters — The filters instance for method chaining

// Apply distortion effect
player.filters.setDistortion({
  sinOffset: 0,    // Sin wave offset
  sinScale: 1,     // Sin wave scale
  cosOffset: 0,    // Cos wave offset
  cosScale: 1,     // Cos wave scale
  tanOffset: 0,    // Tan wave offset
  tanScale: 1,     // Tan wave scale
  offset: 0,       // General offset
  scale: 1         // General scale
});

setChannelMixmethod

Set Channel Mix

Applies a channel mix filter that allows mixing between stereo channels.

Parameters
leftToLeftNumber
1
Left to left channel mix (Range: 0-1)
leftToRightNumber
0
Left to right channel mix (Range: 0-1)
rightToLeftNumber
0
Right to left channel mix (Range: 0-1)
rightToRightNumber
1
Right to right channel mix (Range: 0-1)

Returns & Example

ReturnsFilters — The filters instance for method chaining

// Swap stereo channels
player.filters.setChannelMix({
  leftToLeft: 0,    // Mute left to left
  leftToRight: 1,   // Full left to right
  rightToLeft: 1,   // Full right to left
  rightToRight: 0   // Mute right to right
});

setLowPassmethod

Set Low Pass

Applies a low pass filter that allows low frequencies to pass while attenuating high frequencies.

Parameters
smoothingrequiredNumber
The smoothing factor (Range: 1-50)

Returns & Example

ReturnsFilters — The filters instance for method chaining

// Apply low pass filter
player.filters.setLowPass({
  smoothing: 20  // Moderate smoothing
});

setHighPassmethod

Set High Pass

Applies a high pass filter that allows high frequencies to pass while attenuating low frequencies. Requires lavadspx capability.

Parameters
cutoffFrequencyrequiredNumber
The cutoff frequency in Hz (must be > 0).
boostFactorNumber
The boost factor (must be > 0.0).

Returns & Example

ReturnsFilters — The filters instance for method chaining

// Apply high pass filter
player.filters.setHighPass({
  cutoffFrequency: 1000, // Cutoff at 1000 Hz
  boostFactor: 1.5
});

setLowPassDSPXmethod

Set Low Pass (DSPX)

Applies a low pass filter with DSPX-specific parameters. Requires lavadspx capability.

Parameters
cutoffFrequencyrequiredNumber
The cutoff frequency in Hz (must be > 0).
boostFactorNumber
The boost factor (must be > 0.0).

Returns & Example

ReturnsFilters — The filters instance for method chaining

// Apply DSPX low pass filter
player.filters.setLowPassDSPX({
  cutoffFrequency: 200, // Cutoff at 200 Hz
  boostFactor: 1.2
});

setNormalizationmethod

Set Normalization

Applies a normalization filter to adjust audio amplitude. Requires lavadspx capability.

Parameters
maxAmplitudeNumber
The maximum amplitude (Range: 0.0-1.0).
adaptiveboolean
Whether to use adaptive normalization.

Returns & Example

ReturnsFilters — The filters instance for method chaining

// Apply normalization
player.filters.setNormalization({
  maxAmplitude: 0.8,
  adaptive: true
});

setEchomethod

Set Echo

Applies an echo filter. Requires lavadspx capability.

Parameters
echoLengthNumber
The length of the echo in seconds (must be > 0.0).
decayNumber
The decay rate of the echo (Range: 0.0-1.0).

Returns & Example

ReturnsFilters — The filters instance for method chaining

// Apply echo effect
player.filters.setEcho({
  echoLength: 0.5, // 0.5 seconds echo
  decay: 0.7
});

Filter Presets

Bass Boost

Enhances bass frequencies for heavier sound impact.

Example

player.filters.setEqualizer([
  { band: 0, gain: 0.6 },   // 25 Hz - Sub-bass
  { band: 1, gain: 0.7 },   // 40 Hz - Deep bass
  { band: 2, gain: 0.8 },   // 63 Hz - Bass
  { band: 3, gain: 0.55 },  // 100 Hz - Upper bass
  { band: 4, gain: 0.25 }   // 160 Hz - Lower midrange
]);

Nightcore

Creates a faster, higher-pitched sound.

Example

player.filters.setTimescale({
  speed: 1.2,  // 20% faster
  pitch: 1.2,  // 20% higher
  rate: 1.0    // Normal rate
});

8D Audio

Creates a rotating sound effect.

Example

player.filters.setRotation({
  rotationHz: 0.2  // Slow rotation for immersion
});

Performance Tips

Resource Management

Optimize filter usage to maintain performance.

Guidelines

  • Limit Active Filters
    • Apply only necessary filters
    • Each filter increases CPU usage
  • Use Presets
    • Prefer tested preset combinations
    • Avoid excessive parameter customization
  • Monitor Resources
    • Track Lavalink server CPU usage
    • Adjust filter usage based on load
Remember to test combinations and monitor server performance.