@logue/reverb 1.2.16 → 1.2.18
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/README.md +6 -0
- package/dist/Reverb.es.js +10 -10
- package/dist/Reverb.iife.js +11 -11
- package/dist/Reverb.umd.js +11 -11
- package/dist/src/Meta.d.ts +3 -0
- package/dist/src/NoiseType.d.ts +6 -0
- package/dist/{Reverb.d.ts → src/Reverb.d.ts} +1 -1
- package/dist/src/interfaces/MetaInterface.d.ts +7 -0
- package/dist/src/interfaces/OptionInterface.d.ts +39 -0
- package/package.json +14 -13
package/README.md
CHANGED
|
@@ -87,6 +87,12 @@ sourceNode.connect(ctx.destination);
|
|
|
87
87
|
sourceNode.play();
|
|
88
88
|
```
|
|
89
89
|
|
|
90
|
+
### CDN Usage
|
|
91
|
+
|
|
92
|
+
Not really intended for use with a CDN.
|
|
93
|
+
|
|
94
|
+
The dependent libraries [@thi.ng/colored-noise](https://www.jsdelivr.com/package/npm/@thi.ng/colored-noise), [@thi.ng/random](https://www.jsdelivr.com/package/npm/@thi.ng/random) and [@thi.ng/transducers](https://www.jsdelivr.com/package/npm/@thi.ng/transducers) need to be loaded separately.
|
|
95
|
+
|
|
90
96
|
## Reference
|
|
91
97
|
|
|
92
98
|
- [Web Audio API](https://www.w3.org/TR/webaudio/)
|
package/dist/Reverb.es.js
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* @author Logue <logue@hotmail.co.jp>
|
|
6
6
|
* @copyright 2019-2023 By Masashi Yoshikawa All rights reserved.
|
|
7
7
|
* @license MIT
|
|
8
|
-
* @version 1.2.
|
|
8
|
+
* @version 1.2.18
|
|
9
9
|
* @see {@link https://github.com/logue/Reverb.js}
|
|
10
10
|
*/
|
|
11
11
|
|
|
@@ -30,8 +30,8 @@ const defaults = {
|
|
|
30
30
|
};
|
|
31
31
|
|
|
32
32
|
const meta = {
|
|
33
|
-
version: "1.2.
|
|
34
|
-
date: "2023-
|
|
33
|
+
version: "1.2.18",
|
|
34
|
+
date: "2023-08-08T00:54:37.984Z"
|
|
35
35
|
};
|
|
36
36
|
|
|
37
37
|
const Noise = {
|
|
@@ -131,7 +131,7 @@ class Reverb {
|
|
|
131
131
|
* @param mix - Ratio (0~1)
|
|
132
132
|
*/
|
|
133
133
|
mix(mix) {
|
|
134
|
-
if (!
|
|
134
|
+
if (!Reverb.inRange(mix, 0, 1)) {
|
|
135
135
|
throw new RangeError("[Reverb.js] Dry/Wet ratio must be between 0 to 1.");
|
|
136
136
|
}
|
|
137
137
|
this.options.mix = mix;
|
|
@@ -144,7 +144,7 @@ class Reverb {
|
|
|
144
144
|
* @param value - IR length
|
|
145
145
|
*/
|
|
146
146
|
time(value) {
|
|
147
|
-
if (!
|
|
147
|
+
if (!Reverb.inRange(value, 1, 50)) {
|
|
148
148
|
throw new RangeError(
|
|
149
149
|
"[Reverb.js] Time length of inpulse response must be less than 50sec."
|
|
150
150
|
);
|
|
@@ -158,7 +158,7 @@ class Reverb {
|
|
|
158
158
|
* @param value - Decay value
|
|
159
159
|
*/
|
|
160
160
|
decay(value) {
|
|
161
|
-
if (!
|
|
161
|
+
if (!Reverb.inRange(value, 0, 100)) {
|
|
162
162
|
throw new RangeError(
|
|
163
163
|
"[Reverb.js] Inpulse Response decay level must be less than 100."
|
|
164
164
|
);
|
|
@@ -172,7 +172,7 @@ class Reverb {
|
|
|
172
172
|
* @param value - Time[ms]
|
|
173
173
|
*/
|
|
174
174
|
delay(value) {
|
|
175
|
-
if (!
|
|
175
|
+
if (!Reverb.inRange(value, 0, 100)) {
|
|
176
176
|
throw new RangeError(
|
|
177
177
|
"[Reverb.js] Inpulse Response delay time must be less than 100."
|
|
178
178
|
);
|
|
@@ -203,7 +203,7 @@ class Reverb {
|
|
|
203
203
|
* @param freq - Frequency
|
|
204
204
|
*/
|
|
205
205
|
filterFreq(freq) {
|
|
206
|
-
if (!
|
|
206
|
+
if (!Reverb.inRange(freq, 20, 2e4)) {
|
|
207
207
|
throw new RangeError(
|
|
208
208
|
"[Reverb.js] Filter frequrncy must be between 20 and 20000."
|
|
209
209
|
);
|
|
@@ -217,7 +217,7 @@ class Reverb {
|
|
|
217
217
|
* @param q - Quality
|
|
218
218
|
*/
|
|
219
219
|
filterQ(q) {
|
|
220
|
-
if (!
|
|
220
|
+
if (!Reverb.inRange(q, 0, 10)) {
|
|
221
221
|
throw new RangeError(
|
|
222
222
|
"[Reverb.js] Filter quality value must be between 0 and 10."
|
|
223
223
|
);
|
|
@@ -297,7 +297,7 @@ class Reverb {
|
|
|
297
297
|
* @param min - Minimum value
|
|
298
298
|
* @param max - Maximum value
|
|
299
299
|
*/
|
|
300
|
-
inRange(x, min, max) {
|
|
300
|
+
static inRange(x, min, max) {
|
|
301
301
|
return (x - min) * (x - max) <= 0;
|
|
302
302
|
}
|
|
303
303
|
/** Utility function for building an impulse response from the module parameters. */
|
package/dist/Reverb.iife.js
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* @author Logue <logue@hotmail.co.jp>
|
|
6
6
|
* @copyright 2019-2023 By Masashi Yoshikawa All rights reserved.
|
|
7
7
|
* @license MIT
|
|
8
|
-
* @version 1.2.
|
|
8
|
+
* @version 1.2.18
|
|
9
9
|
* @see {@link https://github.com/logue/Reverb.js}
|
|
10
10
|
*/
|
|
11
11
|
|
|
@@ -29,8 +29,8 @@ var Reverb = (function (random, coloredNoise, transducers) {
|
|
|
29
29
|
};
|
|
30
30
|
|
|
31
31
|
const meta = {
|
|
32
|
-
version: "1.2.
|
|
33
|
-
date: "2023-
|
|
32
|
+
version: "1.2.18",
|
|
33
|
+
date: "2023-08-08T00:54:37.984Z"
|
|
34
34
|
};
|
|
35
35
|
|
|
36
36
|
const Noise = {
|
|
@@ -130,7 +130,7 @@ var Reverb = (function (random, coloredNoise, transducers) {
|
|
|
130
130
|
* @param mix - Ratio (0~1)
|
|
131
131
|
*/
|
|
132
132
|
mix(mix) {
|
|
133
|
-
if (!
|
|
133
|
+
if (!Reverb.inRange(mix, 0, 1)) {
|
|
134
134
|
throw new RangeError("[Reverb.js] Dry/Wet ratio must be between 0 to 1.");
|
|
135
135
|
}
|
|
136
136
|
this.options.mix = mix;
|
|
@@ -143,7 +143,7 @@ var Reverb = (function (random, coloredNoise, transducers) {
|
|
|
143
143
|
* @param value - IR length
|
|
144
144
|
*/
|
|
145
145
|
time(value) {
|
|
146
|
-
if (!
|
|
146
|
+
if (!Reverb.inRange(value, 1, 50)) {
|
|
147
147
|
throw new RangeError(
|
|
148
148
|
"[Reverb.js] Time length of inpulse response must be less than 50sec."
|
|
149
149
|
);
|
|
@@ -157,7 +157,7 @@ var Reverb = (function (random, coloredNoise, transducers) {
|
|
|
157
157
|
* @param value - Decay value
|
|
158
158
|
*/
|
|
159
159
|
decay(value) {
|
|
160
|
-
if (!
|
|
160
|
+
if (!Reverb.inRange(value, 0, 100)) {
|
|
161
161
|
throw new RangeError(
|
|
162
162
|
"[Reverb.js] Inpulse Response decay level must be less than 100."
|
|
163
163
|
);
|
|
@@ -171,7 +171,7 @@ var Reverb = (function (random, coloredNoise, transducers) {
|
|
|
171
171
|
* @param value - Time[ms]
|
|
172
172
|
*/
|
|
173
173
|
delay(value) {
|
|
174
|
-
if (!
|
|
174
|
+
if (!Reverb.inRange(value, 0, 100)) {
|
|
175
175
|
throw new RangeError(
|
|
176
176
|
"[Reverb.js] Inpulse Response delay time must be less than 100."
|
|
177
177
|
);
|
|
@@ -202,7 +202,7 @@ var Reverb = (function (random, coloredNoise, transducers) {
|
|
|
202
202
|
* @param freq - Frequency
|
|
203
203
|
*/
|
|
204
204
|
filterFreq(freq) {
|
|
205
|
-
if (!
|
|
205
|
+
if (!Reverb.inRange(freq, 20, 2e4)) {
|
|
206
206
|
throw new RangeError(
|
|
207
207
|
"[Reverb.js] Filter frequrncy must be between 20 and 20000."
|
|
208
208
|
);
|
|
@@ -216,7 +216,7 @@ var Reverb = (function (random, coloredNoise, transducers) {
|
|
|
216
216
|
* @param q - Quality
|
|
217
217
|
*/
|
|
218
218
|
filterQ(q) {
|
|
219
|
-
if (!
|
|
219
|
+
if (!Reverb.inRange(q, 0, 10)) {
|
|
220
220
|
throw new RangeError(
|
|
221
221
|
"[Reverb.js] Filter quality value must be between 0 and 10."
|
|
222
222
|
);
|
|
@@ -296,7 +296,7 @@ var Reverb = (function (random, coloredNoise, transducers) {
|
|
|
296
296
|
* @param min - Minimum value
|
|
297
297
|
* @param max - Maximum value
|
|
298
298
|
*/
|
|
299
|
-
inRange(x, min, max) {
|
|
299
|
+
static inRange(x, min, max) {
|
|
300
300
|
return (x - min) * (x - max) <= 0;
|
|
301
301
|
}
|
|
302
302
|
/** Utility function for building an impulse response from the module parameters. */
|
|
@@ -349,4 +349,4 @@ var Reverb = (function (random, coloredNoise, transducers) {
|
|
|
349
349
|
|
|
350
350
|
return Reverb;
|
|
351
351
|
|
|
352
|
-
})(
|
|
352
|
+
})(thiNgrandom, thiNgcoloredNoise, thiNgtransducers);
|
package/dist/Reverb.umd.js
CHANGED
|
@@ -5,14 +5,14 @@
|
|
|
5
5
|
* @author Logue <logue@hotmail.co.jp>
|
|
6
6
|
* @copyright 2019-2023 By Masashi Yoshikawa All rights reserved.
|
|
7
7
|
* @license MIT
|
|
8
|
-
* @version 1.2.
|
|
8
|
+
* @version 1.2.18
|
|
9
9
|
* @see {@link https://github.com/logue/Reverb.js}
|
|
10
10
|
*/
|
|
11
11
|
|
|
12
12
|
(function (global, factory) {
|
|
13
13
|
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('@thi.ng/random'), require('@thi.ng/colored-noise'), require('@thi.ng/transducers')) :
|
|
14
14
|
typeof define === 'function' && define.amd ? define(['@thi.ng/random', '@thi.ng/colored-noise', '@thi.ng/transducers'], factory) :
|
|
15
|
-
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Reverb = factory(global.
|
|
15
|
+
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Reverb = factory(global.thiNgrandom, global.thiNgcoloredNoise, global.thiNgtransducers));
|
|
16
16
|
})(this, (function (random, coloredNoise, transducers) { 'use strict';
|
|
17
17
|
|
|
18
18
|
const defaults = {
|
|
@@ -32,8 +32,8 @@
|
|
|
32
32
|
};
|
|
33
33
|
|
|
34
34
|
const meta = {
|
|
35
|
-
version: "1.2.
|
|
36
|
-
date: "2023-
|
|
35
|
+
version: "1.2.18",
|
|
36
|
+
date: "2023-08-08T00:54:37.984Z"
|
|
37
37
|
};
|
|
38
38
|
|
|
39
39
|
const Noise = {
|
|
@@ -133,7 +133,7 @@
|
|
|
133
133
|
* @param mix - Ratio (0~1)
|
|
134
134
|
*/
|
|
135
135
|
mix(mix) {
|
|
136
|
-
if (!
|
|
136
|
+
if (!Reverb.inRange(mix, 0, 1)) {
|
|
137
137
|
throw new RangeError("[Reverb.js] Dry/Wet ratio must be between 0 to 1.");
|
|
138
138
|
}
|
|
139
139
|
this.options.mix = mix;
|
|
@@ -146,7 +146,7 @@
|
|
|
146
146
|
* @param value - IR length
|
|
147
147
|
*/
|
|
148
148
|
time(value) {
|
|
149
|
-
if (!
|
|
149
|
+
if (!Reverb.inRange(value, 1, 50)) {
|
|
150
150
|
throw new RangeError(
|
|
151
151
|
"[Reverb.js] Time length of inpulse response must be less than 50sec."
|
|
152
152
|
);
|
|
@@ -160,7 +160,7 @@
|
|
|
160
160
|
* @param value - Decay value
|
|
161
161
|
*/
|
|
162
162
|
decay(value) {
|
|
163
|
-
if (!
|
|
163
|
+
if (!Reverb.inRange(value, 0, 100)) {
|
|
164
164
|
throw new RangeError(
|
|
165
165
|
"[Reverb.js] Inpulse Response decay level must be less than 100."
|
|
166
166
|
);
|
|
@@ -174,7 +174,7 @@
|
|
|
174
174
|
* @param value - Time[ms]
|
|
175
175
|
*/
|
|
176
176
|
delay(value) {
|
|
177
|
-
if (!
|
|
177
|
+
if (!Reverb.inRange(value, 0, 100)) {
|
|
178
178
|
throw new RangeError(
|
|
179
179
|
"[Reverb.js] Inpulse Response delay time must be less than 100."
|
|
180
180
|
);
|
|
@@ -205,7 +205,7 @@
|
|
|
205
205
|
* @param freq - Frequency
|
|
206
206
|
*/
|
|
207
207
|
filterFreq(freq) {
|
|
208
|
-
if (!
|
|
208
|
+
if (!Reverb.inRange(freq, 20, 2e4)) {
|
|
209
209
|
throw new RangeError(
|
|
210
210
|
"[Reverb.js] Filter frequrncy must be between 20 and 20000."
|
|
211
211
|
);
|
|
@@ -219,7 +219,7 @@
|
|
|
219
219
|
* @param q - Quality
|
|
220
220
|
*/
|
|
221
221
|
filterQ(q) {
|
|
222
|
-
if (!
|
|
222
|
+
if (!Reverb.inRange(q, 0, 10)) {
|
|
223
223
|
throw new RangeError(
|
|
224
224
|
"[Reverb.js] Filter quality value must be between 0 and 10."
|
|
225
225
|
);
|
|
@@ -299,7 +299,7 @@
|
|
|
299
299
|
* @param min - Minimum value
|
|
300
300
|
* @param max - Maximum value
|
|
301
301
|
*/
|
|
302
|
-
inRange(x, min, max) {
|
|
302
|
+
static inRange(x, min, max) {
|
|
303
303
|
return (x - min) * (x - max) <= 0;
|
|
304
304
|
}
|
|
305
305
|
/** Utility function for building an impulse response from the module parameters. */
|
|
@@ -131,7 +131,7 @@ export default class Reverb {
|
|
|
131
131
|
* @param min - Minimum value
|
|
132
132
|
* @param max - Maximum value
|
|
133
133
|
*/
|
|
134
|
-
private inRange;
|
|
134
|
+
private static inRange;
|
|
135
135
|
/** Utility function for building an impulse response from the module parameters. */
|
|
136
136
|
private buildImpulse;
|
|
137
137
|
/**
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import type { INorm } from '@thi.ng/random';
|
|
2
|
+
import type { NoiseType } from '../NoiseType';
|
|
3
|
+
/** Reverb Option */
|
|
4
|
+
export default interface OptionInterface {
|
|
5
|
+
/**
|
|
6
|
+
* IR (Inpulse Response) colord noise algorithm (BLUE, GREEN, PINK, RED, VIOLET, WHITE)
|
|
7
|
+
* @see {@link https://github.com/thi-ng/umbrella/tree/develop/packages/colored-noise}
|
|
8
|
+
*/
|
|
9
|
+
noise: NoiseType;
|
|
10
|
+
/** IR source noise scale */
|
|
11
|
+
scale: number;
|
|
12
|
+
/** Number of IR source noise peaks */
|
|
13
|
+
peaks: number;
|
|
14
|
+
/**
|
|
15
|
+
* Randam noise algorythm
|
|
16
|
+
* @see {@link https://github.com/thi-ng/umbrella/tree/develop/packages/random}
|
|
17
|
+
*/
|
|
18
|
+
randomAlgorithm: INorm;
|
|
19
|
+
/** Decay */
|
|
20
|
+
decay: number;
|
|
21
|
+
/** Delay until impulse response is generated */
|
|
22
|
+
delay: number;
|
|
23
|
+
/** Filter frequency applied to impulse response[Hz] */
|
|
24
|
+
filterFreq: number;
|
|
25
|
+
/** Filter quality for impulse response */
|
|
26
|
+
filterQ: number;
|
|
27
|
+
/** Filter type for impulse response */
|
|
28
|
+
filterType: BiquadFilterType;
|
|
29
|
+
/** Dry/Wet ratio */
|
|
30
|
+
mix: number;
|
|
31
|
+
/** Invert the impulse response */
|
|
32
|
+
reverse?: boolean;
|
|
33
|
+
/** Impulse response length */
|
|
34
|
+
time: number;
|
|
35
|
+
/** Prevents multiple effectors from being connected. */
|
|
36
|
+
once: boolean;
|
|
37
|
+
}
|
|
38
|
+
/** Default Value */
|
|
39
|
+
export declare const defaults: OptionInterface;
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json.schemastore.org/package.json",
|
|
3
3
|
"name": "@logue/reverb",
|
|
4
|
-
"version": "1.2.
|
|
4
|
+
"version": "1.2.18",
|
|
5
5
|
"description": "JavaScript Reverb effect class",
|
|
6
6
|
"keywords": [
|
|
7
7
|
"webaudio",
|
|
@@ -29,12 +29,12 @@
|
|
|
29
29
|
],
|
|
30
30
|
"main": "dist/Reverb.umd.js",
|
|
31
31
|
"module": "dist/Reverb.es.js",
|
|
32
|
-
"types": "dist/Reverb.d.ts",
|
|
32
|
+
"types": "dist/src/Reverb.d.ts",
|
|
33
33
|
"exports": {
|
|
34
34
|
".": {
|
|
35
35
|
"import": "./dist/Reverb.es.js",
|
|
36
36
|
"require": "./dist/Reverb.umd.js",
|
|
37
|
-
"types": "./dist/Reverb.d.ts"
|
|
37
|
+
"types": "./dist/src/Reverb.d.ts"
|
|
38
38
|
}
|
|
39
39
|
},
|
|
40
40
|
"engines": {
|
|
@@ -57,21 +57,21 @@
|
|
|
57
57
|
"prepare": "husky install"
|
|
58
58
|
},
|
|
59
59
|
"dependencies": {
|
|
60
|
-
"@thi.ng/colored-noise": "^1.0.
|
|
61
|
-
"@thi.ng/transducers": "^8.
|
|
60
|
+
"@thi.ng/colored-noise": "^1.0.19",
|
|
61
|
+
"@thi.ng/transducers": "^8.5.0"
|
|
62
62
|
},
|
|
63
63
|
"devDependencies": {
|
|
64
64
|
"@tsconfig/node-lts": "^18.12.3",
|
|
65
|
-
"@types/node": "^20.4.
|
|
65
|
+
"@types/node": "^20.4.8",
|
|
66
66
|
"@typescript-eslint/eslint-plugin": "^5.62.0",
|
|
67
|
-
"bootstrap": "^5.3.
|
|
68
|
-
"eslint": "^8.
|
|
69
|
-
"eslint-config-prettier": "^
|
|
67
|
+
"bootstrap": "^5.3.1",
|
|
68
|
+
"eslint": "^8.46.0",
|
|
69
|
+
"eslint-config-prettier": "^9.0.0",
|
|
70
70
|
"eslint-config-standard-with-typescript": "latest",
|
|
71
71
|
"eslint-import-resolver-alias": "^1.1.2",
|
|
72
72
|
"eslint-import-resolver-typescript": "^3.5.5",
|
|
73
73
|
"eslint-plugin-html": "^7.1.0",
|
|
74
|
-
"eslint-plugin-import": "^2.
|
|
74
|
+
"eslint-plugin-import": "^2.28.0",
|
|
75
75
|
"eslint-plugin-n": "^16.0.1",
|
|
76
76
|
"eslint-plugin-promise": "^6.1.1",
|
|
77
77
|
"eslint-plugin-tsdoc": "^0.2.17",
|
|
@@ -79,14 +79,14 @@
|
|
|
79
79
|
"husky": "^8.0.3",
|
|
80
80
|
"lint-staged": "^13.2.3",
|
|
81
81
|
"npm-run-all": "^4.1.5",
|
|
82
|
-
"prettier": "^3.0.
|
|
82
|
+
"prettier": "^3.0.1",
|
|
83
83
|
"rimraf": "^5.0.1",
|
|
84
84
|
"rollup-plugin-visualizer": "^5.9.2",
|
|
85
85
|
"typescript": "latest",
|
|
86
|
-
"vite": "^4.4.
|
|
86
|
+
"vite": "^4.4.9",
|
|
87
87
|
"vite-plugin-banner": "^0.7.0",
|
|
88
88
|
"vite-plugin-checker": "^0.6.1",
|
|
89
|
-
"vite-plugin-dts": "^3.
|
|
89
|
+
"vite-plugin-dts": "^3.5.1"
|
|
90
90
|
},
|
|
91
91
|
"husky": {
|
|
92
92
|
"hooks": {
|
|
@@ -100,6 +100,7 @@
|
|
|
100
100
|
"resolutions": {
|
|
101
101
|
"http-cache-semantics": "^4.1.1",
|
|
102
102
|
"json5": "^2.2.3",
|
|
103
|
+
"semver": "^7.5.2",
|
|
103
104
|
"yaml": "^2.2.2"
|
|
104
105
|
}
|
|
105
106
|
}
|