@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 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.16
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.16",
34
- date: "2023-07-21T03:58:24.313Z"
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 (!this.inRange(mix, 0, 1)) {
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 (!this.inRange(value, 1, 50)) {
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 (!this.inRange(value, 0, 100)) {
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 (!this.inRange(value, 0, 100)) {
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 (!this.inRange(freq, 20, 2e4)) {
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 (!this.inRange(q, 0, 10)) {
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. */
@@ -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.16
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.16",
33
- date: "2023-07-21T03:58:24.313Z"
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 (!this.inRange(mix, 0, 1)) {
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 (!this.inRange(value, 1, 50)) {
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 (!this.inRange(value, 0, 100)) {
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 (!this.inRange(value, 0, 100)) {
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 (!this.inRange(freq, 20, 2e4)) {
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 (!this.inRange(q, 0, 10)) {
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
- })(random, colordNoise, transducers);
352
+ })(thiNgrandom, thiNgcoloredNoise, thiNgtransducers);
@@ -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.16
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.random, global.colordNoise, global.transducers));
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.16",
36
- date: "2023-07-21T03:58:24.313Z"
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 (!this.inRange(mix, 0, 1)) {
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 (!this.inRange(value, 1, 50)) {
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 (!this.inRange(value, 0, 100)) {
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 (!this.inRange(value, 0, 100)) {
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 (!this.inRange(freq, 20, 2e4)) {
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 (!this.inRange(q, 0, 10)) {
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. */
@@ -0,0 +1,3 @@
1
+ import type MetaInterface from './interfaces/MetaInterface';
2
+ declare const meta: MetaInterface;
3
+ export default meta;
@@ -0,0 +1,6 @@
1
+ /** Impulse response noise generation algorithm */
2
+ declare const Noise: Record<NoiseType, string>;
3
+ /** Noise Type */
4
+ export type NoiseType = 'blue' | 'brown' | 'green' | 'pink' | 'red' | 'violet' | 'white';
5
+ /** Noise */
6
+ export default Noise;
@@ -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,7 @@
1
+ /** Meta Information Interface */
2
+ export default interface MetaInterface {
3
+ /** Version */
4
+ version: string;
5
+ /** Build Date */
6
+ date: string;
7
+ }
@@ -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.16",
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.18",
61
- "@thi.ng/transducers": "^8.4.7"
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.2",
65
+ "@types/node": "^20.4.8",
66
66
  "@typescript-eslint/eslint-plugin": "^5.62.0",
67
- "bootstrap": "^5.3.0",
68
- "eslint": "^8.45.0",
69
- "eslint-config-prettier": "^8.8.0",
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.27.5",
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.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.5",
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.3.1"
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
  }