Tone.js/Tone/effect/BitCrusher.worklet.ts
Yotam Mann 8bc4deec2b feat: updating the way that AudioWorkletProcessors are handled
They each get their own .worklet.ts file which enables some typescript checking
2020-04-29 16:38:58 -04:00

24 lines
652 B
TypeScript

import { SingleIOProcessor } from "../core/worklet/SingleIOProcessor.worklet";
import { registerProcessor } from "../core/worklet/WorkletGlobalScope";
export const workletName = "bit-crusher";
export default class BitCrusherWorklet extends SingleIOProcessor {
static get parameterDescriptors() {
return [{
name: "bits",
defaultValue: 12,
minValue: 1,
maxValue: 16
}];
}
generate(input: number, _channel: number, parameters: { [name: string]: number }) {
const step = Math.pow(0.5, parameters.bits - 1);
const val = step * Math.floor(input / step + 0.5);
return val;
}
}
registerProcessor(workletName, BitCrusherWorklet);