node-web-audio-api 0.14.0 → 0.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/LICENSE +1 -1
  3. package/README.md +35 -17
  4. package/index.cjs +1 -1
  5. package/index.mjs +2 -1
  6. package/js/AnalyserNode.js +135 -0
  7. package/js/AudioBufferSourceNode.js +105 -0
  8. package/js/AudioContext.js +60 -0
  9. package/js/AudioNode.mixin.js +121 -0
  10. package/js/AudioParam.js +132 -0
  11. package/js/AudioScheduledSourceNode.mixin.js +67 -0
  12. package/js/BaseAudioContext.mixin.js +140 -0
  13. package/js/BiquadFilterNode.js +75 -0
  14. package/js/ChannelMergerNode.js +51 -0
  15. package/js/ChannelSplitterNode.js +51 -0
  16. package/js/ConstantSourceNode.js +56 -0
  17. package/js/ConvolverNode.js +75 -0
  18. package/js/DelayNode.js +52 -0
  19. package/js/DynamicsCompressorNode.js +60 -0
  20. package/js/EventTarget.mixin.js +59 -0
  21. package/js/GainNode.js +52 -0
  22. package/js/IIRFilterNode.js +59 -0
  23. package/js/OfflineAudioContext.js +45 -0
  24. package/js/OscillatorNode.js +77 -0
  25. package/js/PannerNode.js +169 -0
  26. package/js/StereoPannerNode.js +52 -0
  27. package/js/WaveShaperNode.js +75 -0
  28. package/js/lib/errors.js +108 -0
  29. package/js/lib/utils.js +16 -0
  30. package/js/monkey-patch.js +67 -0
  31. package/node-web-audio-api.darwin-arm64.node +0 -0
  32. package/node-web-audio-api.darwin-x64.node +0 -0
  33. package/node-web-audio-api.linux-arm-gnueabihf.node +0 -0
  34. package/node-web-audio-api.linux-arm64-gnu.node +0 -0
  35. package/node-web-audio-api.linux-x64-gnu.node +0 -0
  36. package/node-web-audio-api.win32-arm64-msvc.node +0 -0
  37. package/node-web-audio-api.win32-x64-msvc.node +0 -0
  38. package/package.json +10 -6
  39. package/monkey-patch.js +0 -184
@@ -0,0 +1,132 @@
1
+ // -------------------------------------------------------------------------- //
2
+ // -------------------------------------------------------------------------- //
3
+ // //
4
+ // //
5
+ // //
6
+ // ██╗ ██╗ █████╗ ██████╗ ███╗ ██╗██╗███╗ ██╗ ██████╗ //
7
+ // ██║ ██║██╔══██╗██╔══██╗████╗ ██║██║████╗ ██║██╔════╝ //
8
+ // ██║ █╗ ██║███████║██████╔╝██╔██╗ ██║██║██╔██╗ ██║██║ ███╗ //
9
+ // ██║███╗██║██╔══██║██╔══██╗██║╚██╗██║██║██║╚██╗██║██║ ██║ //
10
+ // ╚███╔███╔╝██║ ██║██║ ██║██║ ╚████║██║██║ ╚████║╚██████╔╝ //
11
+ // ╚══╝╚══╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═══╝╚═╝╚═╝ ╚═══╝ ╚═════╝ //
12
+ // //
13
+ // //
14
+ // - This file has been generated --------------------------- //
15
+ // //
16
+ // //
17
+ // -------------------------------------------------------------------------- //
18
+ // -------------------------------------------------------------------------- //
19
+
20
+ const { throwSanitizedError } = require('./lib/errors.js');
21
+
22
+ const kNativeAudioParam = Symbol('node-web-audio-api:audio-param');
23
+
24
+ class AudioParam {
25
+ constructor(nativeAudioParam) {
26
+ this[kNativeAudioParam] = nativeAudioParam;
27
+ }
28
+ // getters
29
+
30
+ get value() {
31
+ return this[kNativeAudioParam].value;
32
+ }
33
+
34
+ get automationRate() {
35
+ return this[kNativeAudioParam].automationRate;
36
+ }
37
+
38
+ get defaultValue() {
39
+ return this[kNativeAudioParam].defaultValue;
40
+ }
41
+
42
+ get minValue() {
43
+ return this[kNativeAudioParam].minValue;
44
+ }
45
+
46
+ get maxValue() {
47
+ return this[kNativeAudioParam].maxValue;
48
+ }
49
+
50
+ // setters
51
+
52
+ set value(value) {
53
+ try {
54
+ this[kNativeAudioParam].value = value;
55
+ } catch (err) {
56
+ throwSanitizedError(err);
57
+ }
58
+ }
59
+
60
+ set automationRate(value) {
61
+ try {
62
+ this[kNativeAudioParam].automationRate = value;
63
+ } catch (err) {
64
+ throwSanitizedError(err);
65
+ }
66
+ }
67
+
68
+ // methods
69
+
70
+ setValueAtTime(...args) {
71
+ try {
72
+ return this[kNativeAudioParam].setValueAtTime(...args);
73
+ } catch (err) {
74
+ throwSanitizedError(err);
75
+ }
76
+ }
77
+
78
+ linearRampToValueAtTime(...args) {
79
+ try {
80
+ return this[kNativeAudioParam].linearRampToValueAtTime(...args);
81
+ } catch (err) {
82
+ throwSanitizedError(err);
83
+ }
84
+ }
85
+
86
+ exponentialRampToValueAtTime(...args) {
87
+ try {
88
+ return this[kNativeAudioParam].exponentialRampToValueAtTime(...args);
89
+ } catch (err) {
90
+ throwSanitizedError(err);
91
+ }
92
+ }
93
+
94
+ setTargetAtTime(...args) {
95
+ try {
96
+ return this[kNativeAudioParam].setTargetAtTime(...args);
97
+ } catch (err) {
98
+ throwSanitizedError(err);
99
+ }
100
+ }
101
+
102
+ setValueCurveAtTime(...args) {
103
+ try {
104
+ return this[kNativeAudioParam].setValueCurveAtTime(...args);
105
+ } catch (err) {
106
+ throwSanitizedError(err);
107
+ }
108
+ }
109
+
110
+ cancelScheduledValues(...args) {
111
+ try {
112
+ return this[kNativeAudioParam].cancelScheduledValues(...args);
113
+ } catch (err) {
114
+ throwSanitizedError(err);
115
+ }
116
+ }
117
+
118
+ cancelAndHoldAtTime(...args) {
119
+ try {
120
+ return this[kNativeAudioParam].cancelAndHoldAtTime(...args);
121
+ } catch (err) {
122
+ throwSanitizedError(err);
123
+ }
124
+ }
125
+
126
+ }
127
+
128
+ module.exports.kNativeAudioParam = kNativeAudioParam;
129
+ module.exports.AudioParam = AudioParam;
130
+
131
+
132
+
@@ -0,0 +1,67 @@
1
+ // -------------------------------------------------------------------------- //
2
+ // -------------------------------------------------------------------------- //
3
+ // //
4
+ // //
5
+ // //
6
+ // ██╗ ██╗ █████╗ ██████╗ ███╗ ██╗██╗███╗ ██╗ ██████╗ //
7
+ // ██║ ██║██╔══██╗██╔══██╗████╗ ██║██║████╗ ██║██╔════╝ //
8
+ // ██║ █╗ ██║███████║██████╔╝██╔██╗ ██║██║██╔██╗ ██║██║ ███╗ //
9
+ // ██║███╗██║██╔══██║██╔══██╗██║╚██╗██║██║██║╚██╗██║██║ ██║ //
10
+ // ╚███╔███╔╝██║ ██║██║ ██║██║ ╚████║██║██║ ╚████║╚██████╔╝ //
11
+ // ╚══╝╚══╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═══╝╚═╝╚═╝ ╚═══╝ ╚═════╝ //
12
+ // //
13
+ // //
14
+ // - This file has been generated --------------------------- //
15
+ // //
16
+ // //
17
+ // -------------------------------------------------------------------------- //
18
+ // -------------------------------------------------------------------------- //
19
+
20
+ const { throwSanitizedError } = require('./lib/errors.js');
21
+
22
+ module.exports = (superclass) => {
23
+ class AudioScheduledSourceNode extends superclass {
24
+ constructor(...args) {
25
+ super(...args);
26
+ }
27
+ // getters
28
+
29
+ get onended() {
30
+ return super.onended;
31
+ }
32
+
33
+ // setters
34
+
35
+ set onended(value) {
36
+ try {
37
+ super.onended = value;
38
+ } catch (err) {
39
+ throwSanitizedError(err);
40
+ }
41
+ }
42
+
43
+ // methods - start / stop
44
+
45
+ start(...args) {
46
+ try {
47
+ return super.start(...args);
48
+ } catch (err) {
49
+ throwSanitizedError(err);
50
+ }
51
+ }
52
+
53
+ stop(...args) {
54
+ try {
55
+ return super.stop(...args);
56
+ } catch (err) {
57
+ throwSanitizedError(err);
58
+ }
59
+ }
60
+
61
+ }
62
+
63
+ return AudioScheduledSourceNode;
64
+ };
65
+
66
+
67
+
@@ -0,0 +1,140 @@
1
+ // -------------------------------------------------------------------------- //
2
+ // -------------------------------------------------------------------------- //
3
+ // //
4
+ // //
5
+ // //
6
+ // ██╗ ██╗ █████╗ ██████╗ ███╗ ██╗██╗███╗ ██╗ ██████╗ //
7
+ // ██║ ██║██╔══██╗██╔══██╗████╗ ██║██║████╗ ██║██╔════╝ //
8
+ // ██║ █╗ ██║███████║██████╔╝██╔██╗ ██║██║██╔██╗ ██║██║ ███╗ //
9
+ // ██║███╗██║██╔══██║██╔══██╗██║╚██╗██║██║██║╚██╗██║██║ ██║ //
10
+ // ╚███╔███╔╝██║ ██║██║ ██║██║ ╚████║██║██║ ╚████║╚██████╔╝ //
11
+ // ╚══╝╚══╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═══╝╚═╝╚═╝ ╚═══╝ ╚═════╝ //
12
+ // //
13
+ // //
14
+ // - This file has been generated --------------------------- //
15
+ // //
16
+ // //
17
+ // -------------------------------------------------------------------------- //
18
+ // -------------------------------------------------------------------------- //
19
+
20
+ const { isFunction } = require('./lib/utils.js');
21
+
22
+ module.exports = (superclass, bindings) => {
23
+ const {
24
+ AnalyserNode,
25
+ AudioBufferSourceNode,
26
+ BiquadFilterNode,
27
+ ChannelMergerNode,
28
+ ChannelSplitterNode,
29
+ ConstantSourceNode,
30
+ ConvolverNode,
31
+ DelayNode,
32
+ DynamicsCompressorNode,
33
+ GainNode,
34
+ IIRFilterNode,
35
+ OscillatorNode,
36
+ PannerNode,
37
+ StereoPannerNode,
38
+ WaveShaperNode,
39
+ } = bindings;
40
+
41
+ class BaseAudioContext extends superclass {
42
+ // This is not exactly what the spec says, but if we reject the promise
43
+ // when decodeErrorCallback is present the program will crash in an
44
+ // unexpected manner
45
+ // cf. https://webaudio.github.io/web-audio-api/#dom-baseaudiocontext-decodeaudiodata
46
+ decodeAudioData(audioData, decodeSuccessCallback, decodeErrorCallback) {
47
+ if (!(audioData instanceof ArrayBuffer)) {
48
+ throw new TypeError('Failed to execute "decodeAudioData": parameter 1 is not of type "ArrayBuffer"');
49
+ }
50
+
51
+ try {
52
+ const audioBuffer = super.decodeAudioData(audioData);
53
+
54
+ if (isFunction(decodeSuccessCallback)) {
55
+ decodeSuccessCallback(audioBuffer);
56
+ } else {
57
+ return Promise.resolve(audioBuffer);
58
+ }
59
+ } catch (err) {
60
+ if (isFunction(decodeErrorCallback)) {
61
+ decodeErrorCallback(err);
62
+ } else {
63
+ return Promise.reject(err);
64
+ }
65
+ }
66
+ }
67
+
68
+ // --------------------------------------------------------------------
69
+ // Factory Methods (use the patched AudioNodes)
70
+ // --------------------------------------------------------------------
71
+ createAnalyser() {
72
+ return new AnalyserNode(this);
73
+ }
74
+
75
+ createBufferSource() {
76
+ return new AudioBufferSourceNode(this);
77
+ }
78
+
79
+ createBiquadFilter() {
80
+ return new BiquadFilterNode(this);
81
+ }
82
+
83
+ createChannelMerger(numberOfInputs) {
84
+ const options = { numberOfInputs };
85
+ return new ChannelMergerNode(this, options);
86
+ }
87
+
88
+ createChannelSplitter(numberOfOutputs) {
89
+ const options = { numberOfOutputs };
90
+ return new ChannelSplitterNode(this, options);
91
+ }
92
+
93
+ createConstantSource() {
94
+ return new ConstantSourceNode(this);
95
+ }
96
+
97
+ createConvolver() {
98
+ return new ConvolverNode(this);
99
+ }
100
+
101
+ createDelay(maxDelayTime) {
102
+ const options = { maxDelayTime };
103
+ return new DelayNode(this, options);
104
+ }
105
+
106
+ createDynamicsCompressor() {
107
+ return new DynamicsCompressorNode(this);
108
+ }
109
+
110
+ createGain() {
111
+ return new GainNode(this);
112
+ }
113
+
114
+ createIIRFilter(feedforward, feedback) {
115
+ const options = { feedforward, feedback };
116
+ return new IIRFilterNode(this, options);
117
+ }
118
+
119
+ createOscillator() {
120
+ return new OscillatorNode(this);
121
+ }
122
+
123
+ createPanner() {
124
+ return new PannerNode(this);
125
+ }
126
+
127
+ createStereoPanner() {
128
+ return new StereoPannerNode(this);
129
+ }
130
+
131
+ createWaveShaper() {
132
+ return new WaveShaperNode(this);
133
+ }
134
+
135
+ }
136
+
137
+ return BaseAudioContext;
138
+ };
139
+
140
+
@@ -0,0 +1,75 @@
1
+ // -------------------------------------------------------------------------- //
2
+ // -------------------------------------------------------------------------- //
3
+ // //
4
+ // //
5
+ // //
6
+ // ██╗ ██╗ █████╗ ██████╗ ███╗ ██╗██╗███╗ ██╗ ██████╗ //
7
+ // ██║ ██║██╔══██╗██╔══██╗████╗ ██║██║████╗ ██║██╔════╝ //
8
+ // ██║ █╗ ██║███████║██████╔╝██╔██╗ ██║██║██╔██╗ ██║██║ ███╗ //
9
+ // ██║███╗██║██╔══██║██╔══██╗██║╚██╗██║██║██║╚██╗██║██║ ██║ //
10
+ // ╚███╔███╔╝██║ ██║██║ ██║██║ ╚████║██║██║ ╚████║╚██████╔╝ //
11
+ // ╚══╝╚══╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═══╝╚═╝╚═╝ ╚═══╝ ╚═════╝ //
12
+ // //
13
+ // //
14
+ // - This file has been generated --------------------------- //
15
+ // //
16
+ // //
17
+ // -------------------------------------------------------------------------- //
18
+ // -------------------------------------------------------------------------- //
19
+
20
+ // eslint-disable-next-line no-unused-vars
21
+ const { throwSanitizedError } = require('./lib/errors.js');
22
+ // eslint-disable-next-line no-unused-vars
23
+ const { AudioParam } = require('./AudioParam.js');
24
+ const EventTargetMixin = require('./EventTarget.mixin.js');
25
+ const AudioNodeMixin = require('./AudioNode.mixin.js');
26
+
27
+
28
+ module.exports = (NativeBiquadFilterNode) => {
29
+
30
+ const EventTarget = EventTargetMixin(NativeBiquadFilterNode);
31
+ const AudioNode = AudioNodeMixin(EventTarget);
32
+
33
+ class BiquadFilterNode extends AudioNode {
34
+ constructor(context, options) {
35
+ super(context, options);
36
+
37
+ this.frequency = new AudioParam(this.frequency);
38
+ this.detune = new AudioParam(this.detune);
39
+ this.Q = new AudioParam(this.Q);
40
+ this.gain = new AudioParam(this.gain);
41
+ }
42
+
43
+ // getters
44
+
45
+ get type() {
46
+ return super.type;
47
+ }
48
+
49
+ // setters
50
+
51
+ set type(value) {
52
+ try {
53
+ super.type = value;
54
+ } catch (err) {
55
+ throwSanitizedError(err);
56
+ }
57
+ }
58
+
59
+ // methods
60
+
61
+ getFrequencyResponse(...args) {
62
+ try {
63
+ return super.getFrequencyResponse(...args);
64
+ } catch (err) {
65
+ throwSanitizedError(err);
66
+ }
67
+ }
68
+
69
+ }
70
+
71
+ return BiquadFilterNode;
72
+ };
73
+
74
+
75
+
@@ -0,0 +1,51 @@
1
+ // -------------------------------------------------------------------------- //
2
+ // -------------------------------------------------------------------------- //
3
+ // //
4
+ // //
5
+ // //
6
+ // ██╗ ██╗ █████╗ ██████╗ ███╗ ██╗██╗███╗ ██╗ ██████╗ //
7
+ // ██║ ██║██╔══██╗██╔══██╗████╗ ██║██║████╗ ██║██╔════╝ //
8
+ // ██║ █╗ ██║███████║██████╔╝██╔██╗ ██║██║██╔██╗ ██║██║ ███╗ //
9
+ // ██║███╗██║██╔══██║██╔══██╗██║╚██╗██║██║██║╚██╗██║██║ ██║ //
10
+ // ╚███╔███╔╝██║ ██║██║ ██║██║ ╚████║██║██║ ╚████║╚██████╔╝ //
11
+ // ╚══╝╚══╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═══╝╚═╝╚═╝ ╚═══╝ ╚═════╝ //
12
+ // //
13
+ // //
14
+ // - This file has been generated --------------------------- //
15
+ // //
16
+ // //
17
+ // -------------------------------------------------------------------------- //
18
+ // -------------------------------------------------------------------------- //
19
+
20
+ // eslint-disable-next-line no-unused-vars
21
+ const { throwSanitizedError } = require('./lib/errors.js');
22
+ // eslint-disable-next-line no-unused-vars
23
+ const { AudioParam } = require('./AudioParam.js');
24
+ const EventTargetMixin = require('./EventTarget.mixin.js');
25
+ const AudioNodeMixin = require('./AudioNode.mixin.js');
26
+
27
+
28
+ module.exports = (NativeChannelMergerNode) => {
29
+
30
+ const EventTarget = EventTargetMixin(NativeChannelMergerNode);
31
+ const AudioNode = AudioNodeMixin(EventTarget);
32
+
33
+ class ChannelMergerNode extends AudioNode {
34
+ constructor(context, options) {
35
+ super(context, options);
36
+
37
+ }
38
+
39
+ // getters
40
+
41
+ // setters
42
+
43
+ // methods
44
+
45
+ }
46
+
47
+ return ChannelMergerNode;
48
+ };
49
+
50
+
51
+
@@ -0,0 +1,51 @@
1
+ // -------------------------------------------------------------------------- //
2
+ // -------------------------------------------------------------------------- //
3
+ // //
4
+ // //
5
+ // //
6
+ // ██╗ ██╗ █████╗ ██████╗ ███╗ ██╗██╗███╗ ██╗ ██████╗ //
7
+ // ██║ ██║██╔══██╗██╔══██╗████╗ ██║██║████╗ ██║██╔════╝ //
8
+ // ██║ █╗ ██║███████║██████╔╝██╔██╗ ██║██║██╔██╗ ██║██║ ███╗ //
9
+ // ██║███╗██║██╔══██║██╔══██╗██║╚██╗██║██║██║╚██╗██║██║ ██║ //
10
+ // ╚███╔███╔╝██║ ██║██║ ██║██║ ╚████║██║██║ ╚████║╚██████╔╝ //
11
+ // ╚══╝╚══╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═══╝╚═╝╚═╝ ╚═══╝ ╚═════╝ //
12
+ // //
13
+ // //
14
+ // - This file has been generated --------------------------- //
15
+ // //
16
+ // //
17
+ // -------------------------------------------------------------------------- //
18
+ // -------------------------------------------------------------------------- //
19
+
20
+ // eslint-disable-next-line no-unused-vars
21
+ const { throwSanitizedError } = require('./lib/errors.js');
22
+ // eslint-disable-next-line no-unused-vars
23
+ const { AudioParam } = require('./AudioParam.js');
24
+ const EventTargetMixin = require('./EventTarget.mixin.js');
25
+ const AudioNodeMixin = require('./AudioNode.mixin.js');
26
+
27
+
28
+ module.exports = (NativeChannelSplitterNode) => {
29
+
30
+ const EventTarget = EventTargetMixin(NativeChannelSplitterNode);
31
+ const AudioNode = AudioNodeMixin(EventTarget);
32
+
33
+ class ChannelSplitterNode extends AudioNode {
34
+ constructor(context, options) {
35
+ super(context, options);
36
+
37
+ }
38
+
39
+ // getters
40
+
41
+ // setters
42
+
43
+ // methods
44
+
45
+ }
46
+
47
+ return ChannelSplitterNode;
48
+ };
49
+
50
+
51
+
@@ -0,0 +1,56 @@
1
+ // -------------------------------------------------------------------------- //
2
+ // -------------------------------------------------------------------------- //
3
+ // //
4
+ // //
5
+ // //
6
+ // ██╗ ██╗ █████╗ ██████╗ ███╗ ██╗██╗███╗ ██╗ ██████╗ //
7
+ // ██║ ██║██╔══██╗██╔══██╗████╗ ██║██║████╗ ██║██╔════╝ //
8
+ // ██║ █╗ ██║███████║██████╔╝██╔██╗ ██║██║██╔██╗ ██║██║ ███╗ //
9
+ // ██║███╗██║██╔══██║██╔══██╗██║╚██╗██║██║██║╚██╗██║██║ ██║ //
10
+ // ╚███╔███╔╝██║ ██║██║ ██║██║ ╚████║██║██║ ╚████║╚██████╔╝ //
11
+ // ╚══╝╚══╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═══╝╚═╝╚═╝ ╚═══╝ ╚═════╝ //
12
+ // //
13
+ // //
14
+ // - This file has been generated --------------------------- //
15
+ // //
16
+ // //
17
+ // -------------------------------------------------------------------------- //
18
+ // -------------------------------------------------------------------------- //
19
+
20
+ // eslint-disable-next-line no-unused-vars
21
+ const { throwSanitizedError } = require('./lib/errors.js');
22
+ // eslint-disable-next-line no-unused-vars
23
+ const { AudioParam } = require('./AudioParam.js');
24
+ const EventTargetMixin = require('./EventTarget.mixin.js');
25
+ const AudioNodeMixin = require('./AudioNode.mixin.js');
26
+ const AudioScheduledSourceNodeMixin = require('./AudioScheduledSourceNode.mixin.js');
27
+
28
+ module.exports = (NativeConstantSourceNode) => {
29
+
30
+ const EventTarget = EventTargetMixin(NativeConstantSourceNode, ['ended']);
31
+ const AudioNode = AudioNodeMixin(EventTarget);
32
+ const AudioScheduledSourceNode = AudioScheduledSourceNodeMixin(AudioNode);
33
+
34
+ class ConstantSourceNode extends AudioScheduledSourceNode {
35
+ constructor(context, options) {
36
+ super(context, options);
37
+ // EventTargetMixin has been called so EventTargetMixin[kDispatchEvent] is
38
+ // bound to this, then we can safely finalize event target initialization
39
+ super.__initEventTarget__();
40
+
41
+ this.offset = new AudioParam(this.offset);
42
+ }
43
+
44
+ // getters
45
+
46
+ // setters
47
+
48
+ // methods
49
+
50
+ }
51
+
52
+ return ConstantSourceNode;
53
+ };
54
+
55
+
56
+
@@ -0,0 +1,75 @@
1
+ // -------------------------------------------------------------------------- //
2
+ // -------------------------------------------------------------------------- //
3
+ // //
4
+ // //
5
+ // //
6
+ // ██╗ ██╗ █████╗ ██████╗ ███╗ ██╗██╗███╗ ██╗ ██████╗ //
7
+ // ██║ ██║██╔══██╗██╔══██╗████╗ ██║██║████╗ ██║██╔════╝ //
8
+ // ██║ █╗ ██║███████║██████╔╝██╔██╗ ██║██║██╔██╗ ██║██║ ███╗ //
9
+ // ██║███╗██║██╔══██║██╔══██╗██║╚██╗██║██║██║╚██╗██║██║ ██║ //
10
+ // ╚███╔███╔╝██║ ██║██║ ██║██║ ╚████║██║██║ ╚████║╚██████╔╝ //
11
+ // ╚══╝╚══╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═══╝╚═╝╚═╝ ╚═══╝ ╚═════╝ //
12
+ // //
13
+ // //
14
+ // - This file has been generated --------------------------- //
15
+ // //
16
+ // //
17
+ // -------------------------------------------------------------------------- //
18
+ // -------------------------------------------------------------------------- //
19
+
20
+ // eslint-disable-next-line no-unused-vars
21
+ const { throwSanitizedError } = require('./lib/errors.js');
22
+ // eslint-disable-next-line no-unused-vars
23
+ const { AudioParam } = require('./AudioParam.js');
24
+ const EventTargetMixin = require('./EventTarget.mixin.js');
25
+ const AudioNodeMixin = require('./AudioNode.mixin.js');
26
+
27
+
28
+ module.exports = (NativeConvolverNode) => {
29
+
30
+ const EventTarget = EventTargetMixin(NativeConvolverNode);
31
+ const AudioNode = AudioNodeMixin(EventTarget);
32
+
33
+ class ConvolverNode extends AudioNode {
34
+ constructor(context, options) {
35
+ super(context, options);
36
+
37
+ }
38
+
39
+ // getters
40
+
41
+ get buffer() {
42
+ return super.buffer;
43
+ }
44
+
45
+ get normalize() {
46
+ return super.normalize;
47
+ }
48
+
49
+ // setters
50
+
51
+ set buffer(value) {
52
+ try {
53
+ super.buffer = value;
54
+ } catch (err) {
55
+ throwSanitizedError(err);
56
+ }
57
+ }
58
+
59
+ set normalize(value) {
60
+ try {
61
+ super.normalize = value;
62
+ } catch (err) {
63
+ throwSanitizedError(err);
64
+ }
65
+ }
66
+
67
+ // methods
68
+
69
+ }
70
+
71
+ return ConvolverNode;
72
+ };
73
+
74
+
75
+