Files
rsgp/src/lib/audio/processors/ExpFadeIn.ts
2025-10-13 17:35:47 +02:00

28 lines
684 B
TypeScript

import type { AudioProcessor } from './AudioProcessor';
export class ExpFadeIn implements AudioProcessor {
getName(): string {
return 'Fade In (Exp)';
}
getDescription(): string {
return 'Applies an exponential fade from silence to current level';
}
process(leftIn: Float32Array, rightIn: Float32Array): [Float32Array, Float32Array] {
const length = leftIn.length;
const leftOut = new Float32Array(length);
const rightOut = new Float32Array(length);
for (let i = 0; i < length; i++) {
const t = i / length;
const gain = 1.0 - Math.exp(-5.0 * t);
leftOut[i] = leftIn[i] * gain;
rightOut[i] = rightIn[i] * gain;
}
return [leftOut, rightOut];
}
}