import type { ICopy, IReset } from "@thi.ng/api"; import { AGen } from "./agen.js"; /** * Generator of sine & cosine values of given frequency in the form of * `[sin,cos]` tuples. Start phase always zero. * * @remarks * Implementation based on a self-oscillating SVF (state-variable filter) * without using any trig functions. Therefore, ~30% faster, but precision only * useful for very low (< ~2Hz) frequencies. Due to floating point error * accumulation, phase & amplitude drift will occur for higher frequencies. * * References: * * - http://www.earlevel.com/main/2003/03/02/the-digital-state-variable-filter/ * * @param freq - normalized freq * @param amp - amplitude (default: 1) */ export declare class SinCos extends AGen implements ICopy, IReset { protected _freq: number; protected _amp: number; protected _f: number; protected _s: number; protected _c: number; constructor(_freq: number, _amp?: number); copy(): SinCos; reset(): this; next(): number[]; freq(): number; setFreq(freq: number): void; amp(): number; setAmp(amp: number): void; protected calcCoeffs(): void; } //# sourceMappingURL=sincos.d.ts.map