node-web-audio-api 1.0.1 → 1.0.3

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.
package/CHANGELOG.md CHANGED
@@ -1,131 +1,139 @@
1
1
  # CHANGELOG
2
2
 
3
- ## v1.0.1 (17/01/2025)
3
+ ## v1.0.3 - 2025-03-06
4
+
5
+ - Improve typescript support
6
+
7
+ ## v1.0.2 - 2025-03-01
8
+
9
+ - Fix error handling when setting buffer in ABSN and Convolver
10
+
11
+ ## v1.0.1 - 2025-01-17
4
12
 
5
13
  - Update upstream crate to [v1.2.0](https://github.com/orottier/web-audio-api-rs/blob/main/CHANGELOG.md#version-120-2025-01-16)
6
14
 
7
- ## v1.0.0 (11/01/2025)
15
+ ## v1.0.0 - 2025-01-11
8
16
 
9
17
  - Align version with upstream crate
10
18
  - Refactor CI
11
19
 
12
- ## v0.21.5 (23/12/2024)
20
+ ## v0.21.5 - 2024-12-23
13
21
 
14
22
  - Fix: Use module import for `AudioWorklet#addModule`
15
23
  - Feat: Resolve `AudioWorkletNode` when installed in `node_modules`
16
24
  - Ensure support of `AudioWorkletNode` that use Web Assembly
17
25
 
18
- ## v0.21.4 (16/12/2024)
26
+ ## v0.21.4 - 2024-12-16
19
27
 
20
28
  - Update upstream crate to [v1.1.0](https://github.com/orottier/web-audio-api-rs/blob/main/CHANGELOG.md#version-110-2024-12-11)
21
29
 
22
- ## v0.21.3 (06/10/2024)
30
+ ## v0.21.3 - 2024-10-06
23
31
 
24
32
  - Fix typescript export
25
33
 
26
- ## v0.21.2 (20/09/2024)
34
+ ## v0.21.2 - 2024-09-20
27
35
 
28
36
  - Update upstream crate to [v1.0.1](https://github.com/orottier/web-audio-api-rs/blob/main/CHANGELOG.md#version-101-2024-09-18)
29
37
  - Fix: Make sure `AudioBuffer` returned by `OfflineContext` is valid
30
38
  - Fix: Allow contexts to be properly garbage collected
31
39
 
32
- ## v0.21.1 (10/06/2024)
40
+ ## v0.21.1 - 2024-06-10
33
41
 
34
42
  - Feat: Buffer pool for AudioWorketProcessor
35
43
  - Fix: Propagate `addModule` errors to main thread
36
44
  - Fix: Memory leak due to `onended` events
37
45
 
38
- ## v0.21.0 (17/05/2024)
46
+ ## v0.21.0 - 2024-05-17
39
47
 
40
48
  - Feat: Implement AudioWorkletNode
41
49
 
42
- ## v0.20.0 (29/04/2024)
50
+ ## v0.20.0 - 2024-04-29
43
51
 
44
52
  - Update upstream crate to [v0.44.0](https://github.com/orottier/web-audio-api-rs/blob/main/CHANGELOG.md#version-0440-2024-04-22)
45
53
  - Implement ScriptProcessorNode
46
54
  - Fix memory leak introduced in v0.19.0
47
55
  - Improve events compliance
48
56
 
49
- ## v0.19.0 (17/04/2024)
57
+ ## v0.19.0 - 2024-04-17
50
58
 
51
59
  - Update upstream crate to [1.0.0-rc.5](https://github.com/orottier/web-audio-api-rs/blob/main/CHANGELOG.md#version-0430--100-rc5-2024-04-15)
52
60
  - Provide JS facades with proper inheritance chain for all exposed interfaces
53
61
  - Implement all AudioNode connect / disconnect alternatives
54
62
  - Improve compliance and error handling
55
63
 
56
- ## v0.18.0 (13/03/2024)
64
+ ## v0.18.0 - 2024-03-13
57
65
 
58
66
  - Fix `MediaStreamAudioSourceNode`
59
67
 
60
- ## v0.17.0 (08/03/2024)
68
+ ## v0.17.0 - 2024-03-08
61
69
 
62
70
  - Update upstream crate to [1.0.0-rc.2](https://github.com/orottier/web-audio-api-rs/blob/main/CHANGELOG.md#version-100-rc2-2024-03-07)
63
71
  - Improve compliance and error handling
64
72
 
65
- ## v0.16.0 (09/02/2024)
73
+ ## v0.16.0 - 2024-02-09
66
74
 
67
75
  - Update upstream create to [v0.42.0](https://github.com/orottier/web-audio-api-rs/blob/main/CHANGELOG.md#version-0420-2024-02-05)
68
76
  - Improve Error handling
69
77
  - Add channelCount to media constraints
70
78
 
71
- ## v0.15.0 (16/01/2024)
79
+ ## v0.15.0 - 2024-01-16
72
80
 
73
81
  - Update upstream create to [v0.41.1](https://github.com/orottier/web-audio-api-rs/blob/main/CHANGELOG.md#version-0411-2024-01-11)
74
82
  - Better error handling
75
83
  - Implement online AudioContext and AudioScheduledSourceNode events
76
84
  - Test against wpt
77
85
 
78
- ## v0.14.0 (06/12/2023)
86
+ ## v0.14.0 - 2023-12-06
79
87
 
80
88
  - Update upstream create to [v0.38.0](https://github.com/orottier/web-audio-api-rs/blob/main/CHANGELOG.md#version-0380-2023-12-03)
81
89
  - Implement AudioListener
82
90
 
83
- ## v0.13.0 (08/11/2023)
91
+ ## v0.13.0 - 2023-11-08
84
92
 
85
93
  - Update upstream crate to [v0.36.1](https://github.com/orottier/web-audio-api-rs/blob/main/CHANGELOG.md#version-0361-2023-11-08)
86
94
  - Ship build for linux arm64
87
95
  - Typescript support
88
96
 
89
- ## v0.12.0 (04/09/2023)
97
+ ## v0.12.0 - 2023-09-04
90
98
 
91
99
  - Update upstream crate to [v0.33](https://github.com/orottier/web-audio-api-rs/blob/main/CHANGELOG.md#version-0330-2023-07-27)
92
100
 
93
- ## v0.11.0 (21/07/2023)
101
+ ## v0.11.0 - 2023-07-21
94
102
 
95
103
  - Update upstream crate to [v0.32](https://github.com/orottier/web-audio-api-rs/blob/main/CHANGELOG.md#version-0320-2023-07-16)
96
104
  - Implement AudioDestination API
97
105
  - Make decodeAudioData(arrayBuffer) API compliant (drop `load` helper)
98
106
 
99
- ## v0.10.0 (26/05/2023)
107
+ ## v0.10.0 - 2023-05-26
100
108
 
101
109
  - Update upstream crate to [v0.31](https://github.com/orottier/web-audio-api-rs/blob/main/CHANGELOG.md#version-0310-2023-06-25)
102
110
 
103
- ## v0.9.0 (08/06/2023)
111
+ ## v0.9.0 - 2023-06-08
104
112
 
105
113
  - Update upstream crate to [v0.30](https://github.com/orottier/web-audio-api-rs/blob/main/CHANGELOG.md#version-0300-2023-06-07)
106
114
 
107
- ## v0.8.0 (19/05/2023)
115
+ ## v0.8.0 - 2023-05-19
108
116
 
109
117
  - Implement MediaDevices enumerateDevices and getUserMedia
110
118
  - Use jack as default output if exists on linux
111
119
 
112
- ## v0.7.0 (23/02/2023)
120
+ ## v0.7.0 - 2023-02-23
113
121
 
114
122
  - Improve readme & doc
115
123
  - Fix AudioParam method names
116
124
 
117
- ## v0.6.0 (01/02/2023)
125
+ ## v0.6.0 - 2023-02-01
118
126
 
119
127
  - Basic support for mediaDevices & MediaStreamAudioSourceNode
120
128
  - Add bindings to ConvolverNode, AnalyserNode & Panner nodes
121
129
  - Update upstream crate to [v0.26](https://github.com/orottier/web-audio-api-rs/blob/main/CHANGELOG.md#version-0250-2022-11-06)
122
130
 
123
- ## v0.5.0 (19/12/2022)
131
+ ## v0.5.0 - 2022-12-19
124
132
 
125
133
  - Implement AudioParam#setValueCurveAtTime
126
134
  - Offline context constructor
127
135
 
128
- ## v0.4.0 (07/11/2022)
136
+ ## v0.4.0 - 2022-11-07
129
137
 
130
138
  - Implement offline audio context
131
139
  - Update upstream crate to [v0.24](https://github.com/orottier/web-audio-api-rs/blob/main/CHANGELOG.md#version-0240-2022-09-10)
package/README.md CHANGED
@@ -9,6 +9,8 @@ This library aims to provide an implementation that is both efficient and compli
9
9
  - see [`orottier/web-audio-api-rs`](https://github.com/orottier/web-audio-api-rs/) for the "real" audio guts
10
10
  - use [`napi-rs`](https://github.com/napi-rs/napi-rs/) for the Node.js bindings
11
11
 
12
+ For library authors who which to write components that run both in Node.js and the browser, we also provide [isomorphic-web-audio-api](https://github.com/ircam-ismm/isomorphic-web-audio-api)
13
+
12
14
  ## Install
13
15
 
14
16
  ```
package/index.d.ts CHANGED
@@ -1,25 +1,44 @@
1
1
  // Referencing the default lib web api typings
2
2
  /// <reference lib="dom" />
3
-
4
3
  declare module "node-web-audio-api" {
5
- export import AudioContext = globalThis.AudioContext;
6
- export import OfflineAudioContext = globalThis.OfflineAudioContext;
7
- export import AudioBuffer = globalThis.AudioBuffer;
8
- export import PeriodicWave = globalThis.PeriodicWave;
9
- export import MediaStreamAudioSourceNode = globalThis.MediaStreamAudioSourceNode;
10
- export import AnalyserNode = globalThis.AnalyserNode;
11
- export import AudioBufferSourceNode = globalThis.AudioBufferSourceNode;
12
- export import BiquadFilterNode = globalThis.BiquadFilterNode;
13
- export import ChannelMergerNode = globalThis.ChannelMergerNode;
14
- export import ChannelSplitterNode = globalThis.ChannelSplitterNode;
15
- export import ConstantSourceNode = globalThis.ConstantSourceNode;
16
- export import ConvolverNode = globalThis.ConvolverNode;
17
- export import DelayNode = globalThis.DelayNode;
18
- export import DynamicsCompressorNode = globalThis.DynamicsCompressorNode;
19
- export import GainNode = globalThis.GainNode;
20
- export import IIRFilterNode = globalThis.IIRFilterNode;
21
- export import OscillatorNode = globalThis.OscillatorNode;
22
- export import PannerNode = globalThis.PannerNode;
23
- export import StereoPannerNode = globalThis.StereoPannerNode;
24
- export import WaveShaperNode = globalThis.WaveShaperNode;
4
+ export import OfflineAudioCompletionEvent = globalThis.OfflineAudioCompletionEvent;
5
+ export import AudioProcessingEvent = globalThis.AudioProcessingEvent;
6
+ // not implemented in browsers yet
7
+ // export import AudioRenderCapacityEvent = globalThis.AudioRenderCapacityEvent;
8
+
9
+ export import BaseAudioContext = globalThis.BaseAudioContext;
10
+ export import AudioContext = globalThis.AudioContext;
11
+ export import OfflineAudioContext = globalThis.OfflineAudioContext;
12
+
13
+ export import AudioNode = globalThis.AudioNode;
14
+ export import AudioScheduledSourceNode = globalThis.AudioScheduledSourceNode;
15
+ export import AudioParam = globalThis.AudioParam;
16
+ export import AudioDestinationNode = globalThis.AudioDestinationNode;
17
+ export import AudioListener = globalThis.AudioListener;
18
+ export import AudioWorklet = globalThis.AudioWorklet;
19
+ export import AudioParamMap = globalThis.AudioParamMap;
20
+ // not implemented in browsers yet
21
+ // export import AudioRenderCapacity = globalThis.AudioRenderCapacity;
22
+
23
+ export import PeriodicWave = globalThis.PeriodicWave;
24
+ export import AudioBuffer = globalThis.AudioBuffer;
25
+
26
+ export import ScriptProcessorNode = globalThis.ScriptProcessorNode;
27
+ export import AudioWorkletNode = globalThis.AudioWorkletNode;
28
+ export import AnalyserNode = globalThis.AnalyserNode;
29
+ export import AudioBufferSourceNode = globalThis.AudioBufferSourceNode;
30
+ export import BiquadFilterNode = globalThis.BiquadFilterNode;
31
+ export import ChannelMergerNode = globalThis.ChannelMergerNode;
32
+ export import ChannelSplitterNode = globalThis.ChannelSplitterNode;
33
+ export import ConstantSourceNode = globalThis.ConstantSourceNode;
34
+ export import ConvolverNode = globalThis.ConvolverNode;
35
+ export import DelayNode = globalThis.DelayNode;
36
+ export import DynamicsCompressorNode = globalThis.DynamicsCompressorNode;
37
+ export import GainNode = globalThis.GainNode;
38
+ export import IIRFilterNode = globalThis.IIRFilterNode;
39
+ export import MediaStreamAudioSourceNode = globalThis.MediaStreamAudioSourceNode;
40
+ export import OscillatorNode = globalThis.OscillatorNode;
41
+ export import PannerNode = globalThis.PannerNode;
42
+ export import StereoPannerNode = globalThis.StereoPannerNode;
43
+ export import WaveShaperNode = globalThis.WaveShaperNode;
25
44
  }
@@ -179,7 +179,7 @@ module.exports = (jsExport, nativeBinding) => {
179
179
  if (value === null) {
180
180
  console.warn('Setting the \'buffer\' property on \'AudioBufferSourceNode\' to \'null\' is not supported yet');
181
181
  return;
182
- } else if (!(kNapiObj in value)) {
182
+ } else if (!(value instanceof jsExport.AudioBuffer)) {
183
183
  throw new TypeError('Failed to set the \'buffer\' property on \'AudioBufferSourceNode\': Failed to convert value to \'AudioBuffer\'');
184
184
  }
185
185
 
@@ -141,7 +141,7 @@ module.exports = (jsExport, nativeBinding) => {
141
141
  if (value === null) {
142
142
  console.warn('Setting the \'buffer\' property on \'ConvolverNode\' to \'null\' is not supported yet');
143
143
  return;
144
- } else if (!(kNapiObj in value)) {
144
+ } else if (!(value instanceof jsExport.AudioBuffer)) {
145
145
  throw new TypeError('Failed to set the \'buffer\' property on \'ConvolverNode\': Failed to convert value to \'AudioBuffer\'');
146
146
  }
147
147
 
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "node-web-audio-api",
3
- "version": "1.0.1",
3
+ "version": "1.0.3",
4
4
  "author": "Benjamin Matuszewski",
5
5
  "description": "Web Audio API implementation for Node.js",
6
6
  "exports": {