Tone.js/Tone/effect/BitCrusher.worklet.ts
2020-05-07 09:23:48 -04:00

26 lines
635 B
TypeScript

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