mirror of
https://github.com/Tonejs/Tone.js
synced 2024-12-28 04:23:15 +00:00
8bc4deec2b
They each get their own .worklet.ts file which enables some typescript checking
24 lines
652 B
TypeScript
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);
|