From 2ef7f7c26559e9424c5c8724095f35bac6cccc19 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Antonio=20Rom=C3=A1n?= Date: Mon, 31 May 2021 14:43:23 +0200 Subject: [PATCH] feat(filters): added `channelMix` and `lowPass` (#27) --- src/types/OutgoingPayloads.ts | 53 +++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) diff --git a/src/types/OutgoingPayloads.ts b/src/types/OutgoingPayloads.ts index 947f9856..718bc454 100644 --- a/src/types/OutgoingPayloads.ts +++ b/src/types/OutgoingPayloads.ts @@ -189,6 +189,16 @@ export interface OutgoingFilterPayload extends BaseOutgoingPayload { * {@link https://en.wikipedia.org/wiki/Panning_(audio) Audio Panning}. */ rotation?: RotationOptions; + + /** + * The channel mix options. + */ + channelMix?: ChannelMixOptions; + + /** + * The low pass options. + */ + lowPass?: LowPassOptions; } /** @@ -323,3 +333,46 @@ export interface RotationOptions { */ rotationHz?: number; } + +/** + * Mixes both channels (left and right), with a configurable factor on how much each channel affects the other. + * With the defaults, both channels are kept independent from each other. + * @note Setting all factors to 0.5 means both channels get the same audio. + * @note This is not available in Lavalink v3.3. + */ +export interface ChannelMixOptions { + /** + * The left-to-left mix, modifies the volume in the left channel. + * @default 1.0 + */ + leftToLeft: number; + + /** + * The left-to-right mix, modifies how much of the left channel goes to the right one. + * @default 0.0 + */ + leftToRight: number; + + /** + * The right-to-left mix, modifies how much of the right channel goes to the left one. + * @default 0.0 + */ + rightToLeft: number; + + /** + * The right-to-right mix, modifies the volume in the right channel. + * @default 1.0 + */ + rightToRight: number; +} + +/** + * Supresses high frequencies given a frequency. + * @note This is not available in Lavalink v3.3. + */ +export interface LowPassOptions { + /** + * The amount of smoothing done. + */ + smoothing: number; +}