1 | import { SignalOperator } from "./SignalOperator.js";
|
2 | import { Multiply } from "./Multiply.js";
|
3 | import { WaveShaper } from "./WaveShaper.js";
|
4 | import { optionsFromArguments } from "../core/util/Defaults.js";
|
5 |
|
6 |
|
7 |
|
8 |
|
9 |
|
10 |
|
11 |
|
12 |
|
13 |
|
14 |
|
15 | export 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 |
|
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 |
|
\ | No newline at end of file |