UNPKG

1.4 kBJavaScriptView Raw
1import { SignalOperator } from "./SignalOperator.js";
2import { Multiply } from "./Multiply.js";
3import { WaveShaper } from "./WaveShaper.js";
4import { optionsFromArguments } from "../core/util/Defaults.js";
5/**
6 * GreaterThanZero outputs 1 when the input is strictly greater than zero
7 * @example
8 * return Tone.Offline(() => {
9 * const gt0 = new Tone.GreaterThanZero().toDestination();
10 * const sig = new Tone.Signal(0.5).connect(gt0);
11 * sig.setValueAtTime(-1, 0.05);
12 * }, 0.1, 1);
13 * @category Signal
14 */
15export class GreaterThanZero extends SignalOperator {
16 constructor() {
17 super(optionsFromArguments(GreaterThanZero.getDefaults(), arguments));
18 this.name = "GreaterThanZero";
19 this._thresh = this.output = new WaveShaper({
20 context: this.context,
21 length: 127,
22 mapping: (val) => {
23 if (val <= 0) {
24 return 0;
25 }
26 else {
27 return 1;
28 }
29 },
30 });
31 this._scale = this.input = new Multiply({
32 context: this.context,
33 value: 10000,
34 });
35 // connections
36 this._scale.connect(this._thresh);
37 }
38 dispose() {
39 super.dispose();
40 this._scale.dispose();
41 this._thresh.dispose();
42 return this;
43 }
44}
45//# sourceMappingURL=GreaterThanZero.js.map
\No newline at end of file