@logue/reverb 0.4.6 → 0.5.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 (51) hide show
  1. package/README.md +85 -64
  2. package/dist/reverb.es.js +188 -0
  3. package/dist/reverb.umd.js +10 -0
  4. package/package.json +59 -45
  5. package/types/Meta.d.ts +4 -0
  6. package/types/Meta.d.ts.map +1 -0
  7. package/types/NoiseType.d.ts +14 -0
  8. package/types/NoiseType.d.ts.map +1 -0
  9. package/types/Reverb.d.ts +118 -0
  10. package/types/Reverb.d.ts.map +1 -0
  11. package/{src/interfaces/MetaInterface.ts → types/interfaces/MetaInterface.d.ts} +2 -3
  12. package/{dist → types}/interfaces/MetaInterface.d.ts.map +1 -1
  13. package/{src/interfaces/OptionInterface.ts → types/interfaces/OptionInterface.d.ts} +3 -5
  14. package/types/interfaces/OptionInterface.d.ts.map +1 -0
  15. package/.eslintignore +0 -4
  16. package/.eslintrc.js +0 -21
  17. package/.gitattributes +0 -1
  18. package/.prettierrc.js +0 -3
  19. package/bin/reverb.js +0 -434
  20. package/bin/reverb.js.map +0 -1
  21. package/bin/reverb.min.js +0 -2
  22. package/bin/reverb.min.js.LICENSE.txt +0 -11
  23. package/dist/Meta.d.ts +0 -4
  24. package/dist/Meta.d.ts.map +0 -1
  25. package/dist/Meta.js +0 -9
  26. package/dist/Meta.js.map +0 -1
  27. package/dist/NoiseType.d.ts +0 -7
  28. package/dist/NoiseType.d.ts.map +0 -1
  29. package/dist/NoiseType.js +0 -12
  30. package/dist/NoiseType.js.map +0 -1
  31. package/dist/Reverb.d.ts +0 -114
  32. package/dist/Reverb.d.ts.map +0 -1
  33. package/dist/Reverb.js +0 -333
  34. package/dist/Reverb.js.map +0 -1
  35. package/dist/interfaces/MetaInterface.d.ts +0 -10
  36. package/dist/interfaces/MetaInterface.js +0 -3
  37. package/dist/interfaces/MetaInterface.js.map +0 -1
  38. package/dist/interfaces/OptionInterface.d.ts +0 -27
  39. package/dist/interfaces/OptionInterface.d.ts.map +0 -1
  40. package/dist/interfaces/OptionInterface.js +0 -3
  41. package/dist/interfaces/OptionInterface.js.map +0 -1
  42. package/docs/demo.wav +0 -0
  43. package/docs/index.html +0 -377
  44. package/docs/localaudio.html +0 -718
  45. package/docs/reverb.js +0 -434
  46. package/docs/reverb.js.map +0 -1
  47. package/src/Meta.ts +0 -8
  48. package/src/NoiseType.ts +0 -7
  49. package/src/Reverb.ts +0 -368
  50. package/tsconfig.json +0 -32
  51. package/webpack.config.ts +0 -102
package/dist/Reverb.d.ts DELETED
@@ -1,114 +0,0 @@
1
- import OptionInterface from './interfaces/OptionInterface';
2
- import { NoiseType } from './NoiseType';
3
- /**
4
- * JS reverb effect class
5
- *
6
- * @author Logue <logue@hotmail.co.jp>
7
- * @copyright 2019-2021 Masashi Yoshikawa <https://logue.dev/> All rights reserved.
8
- * @license MIT
9
- * @see {@link https://github.com/logue/Reverb.js}
10
- * {@link https://github.com/web-audio-components/simple-reverb}
11
- */
12
- export default class Reverb {
13
- /** Version strings */
14
- readonly version: string;
15
- /** Build date */
16
- readonly build: string;
17
- /** AudioContext */
18
- private readonly ctx;
19
- /** Wet Level (Reverberated node) */
20
- private readonly wetGainNode;
21
- /** Dry Level (Original sound node) */
22
- private readonly dryGainNode;
23
- /** Impulse response filter */
24
- private readonly filterNode;
25
- /** Convolution node for applying impulse response */
26
- private readonly convolverNode;
27
- /** Output nodse */
28
- private readonly outputNode;
29
- /** Option */
30
- private readonly _options;
31
- /** Connected flag */
32
- private isConnected;
33
- /**
34
- * constructor
35
- * @param ctx Root AudioContext
36
- * @param options Configure
37
- */
38
- constructor(ctx: AudioContext, options: OptionInterface | undefined);
39
- /**
40
- * Connect the node for the reverb effect to the original sound node.
41
- * @param sourceNode Input source node
42
- */
43
- connect(sourceNode: AudioNode): AudioNode;
44
- /**
45
- * Disconnect the reverb node
46
- * @param sourceNode Input source node
47
- */
48
- disconnect(sourceNode: AudioNode | undefined): AudioNode | undefined;
49
- /**
50
- * Dry/Wet ratio
51
- * @param mix
52
- */
53
- mix(mix: number): void;
54
- /**
55
- * Set Impulse Response time length (second)
56
- * @param value
57
- */
58
- time(value: number): void;
59
- /**
60
- * Impulse response decay rate.
61
- * @param value
62
- */
63
- decay(value: number): void;
64
- /**
65
- * Delay before reverberation starts
66
- * @param value time[ms]
67
- */
68
- delay(value: number): void;
69
- /**
70
- * Reverse the impulse response.
71
- * @param reverse
72
- */
73
- reverse(reverse: boolean): void;
74
- /**
75
- * Filter for impulse response
76
- * @param type
77
- */
78
- filterType(type: BiquadFilterType): void;
79
- /**
80
- * Filter frequency applied to impulse response
81
- * @param freq
82
- */
83
- filterFreq(freq: number): void;
84
- /**
85
- * Filter quality.
86
- * @param q
87
- */
88
- filterQ(q: number): void;
89
- /**
90
- * Inpulse Response Noise algorithm.
91
- * @param type
92
- */
93
- setNoise(type: NoiseType): void;
94
- /**
95
- * return true if in range, otherwise false
96
- * @private
97
- * @param x Target value
98
- * @param min Minimum value
99
- * @param max Maximum value
100
- * @return
101
- */
102
- private inRange;
103
- /**
104
- * Utility function for building an impulse response
105
- * from the module parameters.
106
- * @private
107
- */
108
- private buildImpulse;
109
- /**
110
- * Generate white noise
111
- */
112
- private static whiteNoise;
113
- }
114
- //# sourceMappingURL=Reverb.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Reverb.d.ts","sourceRoot":"","sources":["../src/Reverb.ts"],"names":[],"mappings":"AACA,OAAO,eAAe,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAC,SAAS,EAAC,MAAM,aAAa,CAAC;AAEtC;;;;;;;;GAQG;AACH,MAAM,CAAC,OAAO,OAAO,MAAM;IACzB,sBAAsB;IACtB,SAAgB,OAAO,EAAE,MAAM,CAAC;IAChC,iBAAiB;IACjB,SAAgB,KAAK,EAAE,MAAM,CAAC;IAC9B,mBAAmB;IACnB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAe;IACnC,oCAAoC;IACpC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAW;IACvC,sCAAsC;IACtC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAW;IACvC,8BAA8B;IAC9B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAmB;IAC9C,qDAAqD;IACrD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;IAC9C,mBAAmB;IACnB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAW;IACtC,aAAa;IACb,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkB;IAC3C,qBAAqB;IACrB,OAAO,CAAC,WAAW,CAAU;IAE7B;;;;OAIG;gBACS,GAAG,EAAE,YAAY,EAAE,OAAO,EAAE,eAAe,GAAG,SAAS;IAsBnE;;;OAGG;IACI,OAAO,CAAC,UAAU,EAAE,SAAS,GAAG,SAAS;IAsBhD;;;OAGG;IACI,UAAU,CAAC,UAAU,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS;IAe3E;;;OAGG;IACI,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAU7B;;;OAGG;IACI,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAWhC;;;OAGG;IACI,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAWjC;;;OAGG;IACI,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAWjC;;;OAGG;IACI,OAAO,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAQtC;;;OAGG;IACI,UAAU,CAAC,IAAI,EAAE,gBAAgB,GAAG,IAAI;IAK/C;;;OAGG;IACI,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAWrC;;;OAGG;IACI,OAAO,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;IAW/B;;;OAGG;IACI,QAAQ,CAAC,IAAI,EAAE,SAAS;IAM/B;;;;;;;OAOG;IACH,OAAO,CAAC,OAAO;IAIf;;;;OAIG;IACH,OAAO,CAAC,YAAY;IAoGpB;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,UAAU;CAI1B"}
package/dist/Reverb.js DELETED
@@ -1,333 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const Meta_1 = __importDefault(require("./Meta"));
7
- const NoiseType_1 = require("./NoiseType");
8
- /**
9
- * JS reverb effect class
10
- *
11
- * @author Logue <logue@hotmail.co.jp>
12
- * @copyright 2019-2021 Masashi Yoshikawa <https://logue.dev/> All rights reserved.
13
- * @license MIT
14
- * @see {@link https://github.com/logue/Reverb.js}
15
- * {@link https://github.com/web-audio-components/simple-reverb}
16
- */
17
- class Reverb {
18
- /** Version strings */
19
- version;
20
- /** Build date */
21
- build;
22
- /** AudioContext */
23
- ctx;
24
- /** Wet Level (Reverberated node) */
25
- wetGainNode;
26
- /** Dry Level (Original sound node) */
27
- dryGainNode;
28
- /** Impulse response filter */
29
- filterNode;
30
- /** Convolution node for applying impulse response */
31
- convolverNode;
32
- /** Output nodse */
33
- outputNode;
34
- /** Option */
35
- _options;
36
- /** Connected flag */
37
- isConnected;
38
- /**
39
- * constructor
40
- * @param ctx Root AudioContext
41
- * @param options Configure
42
- */
43
- constructor(ctx, options) {
44
- // バージョン情報など
45
- this.version = Meta_1.default.version;
46
- this.build = Meta_1.default.date;
47
- // マスターのAudioContextを取得
48
- this.ctx = ctx;
49
- // デフォルト値をマージ
50
- this._options = { ...optionDefaults, ...options };
51
- // 初期化
52
- this.wetGainNode = this.ctx.createGain();
53
- this.dryGainNode = this.ctx.createGain();
54
- this.filterNode = this.ctx.createBiquadFilter();
55
- this.convolverNode = this.ctx.createConvolver();
56
- this.outputNode = this.ctx.createGain();
57
- // 接続済みフラグを落とす
58
- this.isConnected = false;
59
- // インパルス応答を生成
60
- this.buildImpulse();
61
- // トライ/ウェットノードの量を調整
62
- this.mix(this._options.mix);
63
- }
64
- /**
65
- * Connect the node for the reverb effect to the original sound node.
66
- * @param sourceNode Input source node
67
- */
68
- connect(sourceNode) {
69
- if (this.isConnected && this._options.once) {
70
- // 接続済みだった場合、フラグを落としてそのまま出力ノードを返す
71
- this.isConnected = false;
72
- return this.outputNode;
73
- }
74
- // 畳み込みノードをウェットレベルに接続
75
- this.convolverNode.connect(this.filterNode);
76
- // フィルタノードをウェットレベルに接続
77
- this.filterNode.connect(this.wetGainNode);
78
- // 入力ノードを畳み込みノードに接続
79
- sourceNode.connect(this.convolverNode);
80
- // ドライレベルを出力ノードに接続
81
- sourceNode.connect(this.dryGainNode).connect(this.outputNode);
82
- // ウェットレベルを出力ノードに接続
83
- sourceNode.connect(this.wetGainNode).connect(this.outputNode);
84
- // 接続済みフラグを立てる
85
- this.isConnected = true;
86
- return this.outputNode;
87
- }
88
- /**
89
- * Disconnect the reverb node
90
- * @param sourceNode Input source node
91
- */
92
- disconnect(sourceNode) {
93
- // 初期状態ではノードがつながっていないためエラーになる
94
- if (this.isConnected) {
95
- // 畳み込みノードをウェットレベルから切断
96
- this.convolverNode.disconnect(this.filterNode);
97
- // フィルタノードをウェットレベルから切断
98
- this.filterNode.disconnect(this.wetGainNode);
99
- }
100
- // 接続済みフラグを解除
101
- this.isConnected = false;
102
- // そのままノードを返す(他のAPIに似せるため)
103
- return sourceNode;
104
- }
105
- /**
106
- * Dry/Wet ratio
107
- * @param mix
108
- */
109
- mix(mix) {
110
- if (!this.inRange(mix, 0, 1)) {
111
- throw new RangeError('Reverb.js: Dry/Wet ratio must be between 0 to 1.');
112
- }
113
- this._options.mix = mix;
114
- this.dryGainNode.gain.value = 1 - this._options.mix;
115
- this.wetGainNode.gain.value = this._options.mix;
116
- console.debug(`Reverb.js: Set dry/wet ratio to ${mix * 100}%`);
117
- }
118
- /**
119
- * Set Impulse Response time length (second)
120
- * @param value
121
- */
122
- time(value) {
123
- if (!this.inRange(value, 1, 50)) {
124
- throw new RangeError('Reverb.js: Time length of inpulse response must be less than 50sec.');
125
- }
126
- this._options.time = value;
127
- this.buildImpulse();
128
- console.info(`Reverb.js: Set inpulse response time length to ${value}sec.`);
129
- }
130
- /**
131
- * Impulse response decay rate.
132
- * @param value
133
- */
134
- decay(value) {
135
- if (!this.inRange(value, 0, 100)) {
136
- throw new RangeError('Reverb.js: Inpulse Response decay level must be less than 100.');
137
- }
138
- this._options.decay = value;
139
- this.buildImpulse();
140
- console.debug(`Reverb.js: Set inpulse response decay level to ${value}.`);
141
- }
142
- /**
143
- * Delay before reverberation starts
144
- * @param value time[ms]
145
- */
146
- delay(value) {
147
- if (!this.inRange(value, 0, 100)) {
148
- throw new RangeError('Reverb.js: Inpulse Response delay time must be less than 100.');
149
- }
150
- this._options.delay = value;
151
- this.buildImpulse();
152
- console.debug(`Reverb.js: Set inpulse response delay time to ${value}sec.`);
153
- }
154
- /**
155
- * Reverse the impulse response.
156
- * @param reverse
157
- */
158
- reverse(reverse) {
159
- this._options.reverse = reverse;
160
- this.buildImpulse();
161
- console.debug(`Reverb.js: Inpulse response is ${reverse ? '' : 'not '}reversed.`);
162
- }
163
- /**
164
- * Filter for impulse response
165
- * @param type
166
- */
167
- filterType(type) {
168
- this.filterNode.type = this._options.filterType = type;
169
- console.debug(`Set filter type to ${type}`);
170
- }
171
- /**
172
- * Filter frequency applied to impulse response
173
- * @param freq
174
- */
175
- filterFreq(freq) {
176
- if (!this.inRange(freq, 20, 5000)) {
177
- throw new RangeError('Reverb.js: Filter frequrncy must be between 20 and 5000.');
178
- }
179
- this._options.filterFreq = freq;
180
- this.filterNode.frequency.value = this._options.filterFreq;
181
- console.debug(`Set filter frequency to ${freq}Hz.`);
182
- }
183
- /**
184
- * Filter quality.
185
- * @param q
186
- */
187
- filterQ(q) {
188
- if (!this.inRange(q, 0, 10)) {
189
- throw new RangeError('Reverb.js: Filter quality value must be between 0 and 10.');
190
- }
191
- this._options.filterQ = q;
192
- this.filterNode.Q.value = this._options.filterQ;
193
- console.debug(`Set filter quality to ${q}.`);
194
- }
195
- /**
196
- * Inpulse Response Noise algorithm.
197
- * @param type
198
- */
199
- setNoise(type) {
200
- this._options.noise = type;
201
- this.buildImpulse();
202
- console.debug(`Set Noise type to ${type}.`);
203
- }
204
- /**
205
- * return true if in range, otherwise false
206
- * @private
207
- * @param x Target value
208
- * @param min Minimum value
209
- * @param max Maximum value
210
- * @return
211
- */
212
- inRange(x, min, max) {
213
- return (x - min) * (x - max) <= 0;
214
- }
215
- /**
216
- * Utility function for building an impulse response
217
- * from the module parameters.
218
- * @private
219
- */
220
- buildImpulse() {
221
- // インパルス応答生成ロジック
222
- /** サンプリングレート */
223
- const rate = this.ctx.sampleRate;
224
- /** インパルス応答の演奏時間 */
225
- const duration = Math.max(rate * this._options.time, 1);
226
- /** インパルス応答が始まるまでの遅延時間 */
227
- const delayDuration = rate * this._options.delay;
228
- /** インパルス応答バッファ(今の所ステレオのみ) */
229
- const impulse = this.ctx.createBuffer(2, duration, rate);
230
- /** 左チャンネル */
231
- const impulseL = new Float32Array(duration);
232
- /** 右チャンネル*/
233
- const impulseR = new Float32Array(duration);
234
- /** 一時計算用 */
235
- const b = [0, 0, 0, 0, 0, 0, 0];
236
- for (let i = 0; i < duration; i++) {
237
- /** @type {number} 減衰率 */
238
- let n = 0;
239
- if (i < delayDuration) {
240
- // Delay Effect
241
- impulseL[i] = 0;
242
- impulseR[i] = 0;
243
- n = this._options.reverse
244
- ? duration - (i - delayDuration)
245
- : i - delayDuration;
246
- }
247
- else {
248
- n = this._options.reverse ? duration - i : i;
249
- }
250
- switch (this._options.noise) {
251
- case NoiseType_1.NoiseType.PINK:
252
- // ピンクノイズ生成処理
253
- // http://noisehack.com/generate-noise-web-audio-api/
254
- b[0] = 0.99886 * b[0] + Reverb.whiteNoise() * 0.0555179;
255
- b[1] = 0.99332 * b[1] + Reverb.whiteNoise() * 0.0750759;
256
- b[2] = 0.969 * b[2] + Reverb.whiteNoise() * 0.153852;
257
- b[3] = 0.8665 * b[3] + Reverb.whiteNoise() * 0.3104856;
258
- b[4] = 0.55 * b[4] + Reverb.whiteNoise() * 0.5329522;
259
- b[5] = -0.7616 * b[5] - Reverb.whiteNoise() * 0.016898;
260
- impulseL[i] =
261
- b[0] +
262
- b[1] +
263
- b[2] +
264
- b[3] +
265
- b[4] +
266
- b[5] +
267
- b[6] +
268
- Reverb.whiteNoise() * 0.5362;
269
- impulseR[i] =
270
- b[0] +
271
- b[1] +
272
- b[2] +
273
- b[3] +
274
- b[4] +
275
- b[5] +
276
- b[6] +
277
- Reverb.whiteNoise() * 0.5362;
278
- // ゲイン補償処理
279
- impulseL[i] *= 0.11;
280
- impulseR[i] *= 0.11;
281
- b[6] = Reverb.whiteNoise() * 0.115926;
282
- break;
283
- case NoiseType_1.NoiseType.BROWN:
284
- // ブラウンノイズ生成処理
285
- impulseL[i] = (b[0] + 0.02 * Reverb.whiteNoise()) / 1.02;
286
- b[0] = impulseL[i];
287
- impulseR[i] = (b[1] + 0.02 * Reverb.whiteNoise()) / 1.02;
288
- b[1] = impulseR[i];
289
- // ゲイン補償処理
290
- impulseL[i] *= 3.5;
291
- impulseR[i] *= 3.5;
292
- break;
293
- case NoiseType_1.NoiseType.WHITE:
294
- default:
295
- // White Noise
296
- impulseL[i] = Reverb.whiteNoise();
297
- impulseR[i] = Reverb.whiteNoise();
298
- break;
299
- }
300
- // 音を減衰させる
301
- impulseL[i] *= (1 - n / duration) ** this._options.decay;
302
- impulseR[i] *= (1 - n / duration) ** this._options.decay;
303
- }
304
- // インパルス応答のバッファに生成したWaveTableを代入
305
- impulse.getChannelData(0).set(impulseL);
306
- impulse.getChannelData(1).set(impulseR);
307
- this.convolverNode.buffer = impulse;
308
- }
309
- /**
310
- * Generate white noise
311
- */
312
- static whiteNoise() {
313
- // TODO: この乱数は本当に偏り無いのだろうか?
314
- return Math.random() * 2 - 1;
315
- }
316
- }
317
- exports.default = Reverb;
318
- /**
319
- * デフォルト値
320
- */
321
- const optionDefaults = {
322
- noise: NoiseType_1.NoiseType.WHITE,
323
- decay: 2,
324
- delay: 0,
325
- reverse: false,
326
- time: 2,
327
- filterType: 'lowpass',
328
- filterFreq: 2200,
329
- filterQ: 1,
330
- mix: 0.5,
331
- once: false,
332
- };
333
- //# sourceMappingURL=Reverb.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Reverb.js","sourceRoot":"","sources":["../src/Reverb.ts"],"names":[],"mappings":"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"}
@@ -1,10 +0,0 @@
1
- /**
2
- * Meta Information Interface
3
- */
4
- export default interface MetaInterface {
5
- /** Version */
6
- version: string;
7
- /** Build Date */
8
- date: string;
9
- }
10
- //# sourceMappingURL=MetaInterface.d.ts.map
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=MetaInterface.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"MetaInterface.js","sourceRoot":"","sources":["../../src/interfaces/MetaInterface.ts"],"names":[],"mappings":""}
@@ -1,27 +0,0 @@
1
- import { NoiseType } from '../NoiseType';
2
- /**
3
- * Reverb Option
4
- */
5
- export default interface OptionInterface {
6
- /** Types of impulse response noise generation algorithms */
7
- noise: NoiseType;
8
- /** Decay */
9
- decay: number;
10
- /** Delay until impulse response is generated */
11
- delay: number;
12
- /** Filter frequency applied to impulse response[Hz] */
13
- filterFreq: number;
14
- /** Filter quality for impulse response */
15
- filterQ: number;
16
- /** Filter type for impulse response */
17
- filterType: BiquadFilterType;
18
- /** Dry/Wet ratio */
19
- mix: number;
20
- /** Invert the impulse response */
21
- reverse: boolean;
22
- /** Impulse response length */
23
- time: number;
24
- /** Prevents multiple effectors from being connected. */
25
- once: boolean;
26
- }
27
- //# sourceMappingURL=OptionInterface.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"OptionInterface.d.ts","sourceRoot":"","sources":["../../src/interfaces/OptionInterface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAEvC;;GAEG;AACH,MAAM,CAAC,OAAO,WAAW,eAAe;IACtC,4DAA4D;IAC5D,KAAK,EAAE,SAAS,CAAC;IACjB,YAAY;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,gDAAgD;IAChD,KAAK,EAAE,MAAM,CAAC;IACd,uDAAuD;IACvD,UAAU,EAAE,MAAM,CAAC;IACnB,0CAA0C;IAC1C,OAAO,EAAE,MAAM,CAAC;IAChB,uCAAuC;IACvC,UAAU,EAAE,gBAAgB,CAAC;IAC7B,oBAAoB;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,kCAAkC;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,8BAA8B;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,wDAAwD;IACxD,IAAI,EAAE,OAAO,CAAC;CACf"}
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=OptionInterface.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"OptionInterface.js","sourceRoot":"","sources":["../../src/interfaces/OptionInterface.ts"],"names":[],"mappings":""}
package/docs/demo.wav DELETED
Binary file