import type { Fn2 } from "@thi.ng/api"; import { AProc } from "./aproc.js"; export type WaveShaperFn = Fn2; /** * Customizable wave shaper for user defined shaping function supporting one * (optional, implementation specific) adjustable curve parameter. By default * uses {@link waveshapeTan} and supports configurable curvature. * Post-amplification is applied to the transformed result value (see remarks). * * @remarks * If `amp` is `true` (default), the curve will be normalized such that input * values in the `[-1,1]` range will be mapped to the same output interval. * * The following wave shaping functions are supplied by default: * * - {@link waveshapeTan} * - {@link waveshapeSigmoid} * - {@link waveshapeSin} * * [Interactive graph](https://www.desmos.com/calculator/hg4i7o836i) * * @param thresh - fold threshold * @param amp - post amplifier / autogain flag */ export declare const waveShaper: (thresh?: number, amp?: number | true, map?: WaveShaperFn) => WaveShaper; export declare class WaveShaper extends AProc { protected _coeff: number; protected _map: WaveShaperFn; protected _amp: number; protected _autoGain: boolean; constructor(_coeff?: number, amp?: number | true, _map?: WaveShaperFn); next(x: number): number; coeff(): number; setCoeff(t: number): void; amp(): number; setAmp(a: number): void; setAutoGain(): void; } export declare const waveshapeTan: WaveShaperFn; export declare const waveshapeSigmoid: WaveShaperFn; export declare const waveshapeSin: WaveShaperFn; //# sourceMappingURL=waveshaper.d.ts.map