limiter-audio-worklet 1.1.119 → 1.1.120
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/build/es2019/module.d.ts +1 -1
- package/build/es2019/module.d.ts.map +1 -1
- package/build/es2019/module.js +7 -5
- package/build/es2019/module.js.map +1 -1
- package/build/es2019/types/any-audio-worklet-node-options.d.ts +3 -0
- package/build/es2019/types/any-audio-worklet-node-options.d.ts.map +1 -0
- package/build/es2019/types/any-audio-worklet-node-options.js +2 -0
- package/build/es2019/types/any-audio-worklet-node-options.js.map +1 -0
- package/build/es2019/types/fixed-options.d.ts +1 -1
- package/build/es2019/types/fixed-options.d.ts.map +1 -1
- package/build/es2019/types/index.d.ts +2 -0
- package/build/es2019/types/index.d.ts.map +1 -1
- package/build/es2019/types/index.js +2 -0
- package/build/es2019/types/index.js.map +1 -1
- package/build/es2019/types/limiter-audio-worklet-node-options.d.ts +2 -2
- package/build/es2019/types/limiter-audio-worklet-node-options.d.ts.map +1 -1
- package/build/es2019/types/native-limiter-audio-worklet-node-options.d.ts +2 -2
- package/build/es2019/types/native-limiter-audio-worklet-node-options.d.ts.map +1 -1
- package/build/es5/bundle.js +13 -10
- package/package.json +2 -2
- package/src/module.ts +8 -6
- package/src/types/any-audio-worklet-node-options.ts +5 -0
- package/src/types/fixed-options.ts +1 -1
- package/src/types/index.ts +2 -0
- package/src/types/limiter-audio-worklet-node-options.ts +2 -2
- package/src/types/native-limiter-audio-worklet-node-options.ts +2 -2
package/build/es2019/module.d.ts
CHANGED
|
@@ -4,5 +4,5 @@ import { TAnyLimiterAudioWorkletNodeOptions, TNativeLimiterAudioWorkletNode } fr
|
|
|
4
4
|
export * from './interfaces/index';
|
|
5
5
|
export * from './types/index';
|
|
6
6
|
export declare const addLimiterAudioWorkletModule: (addAudioWorkletModule: (url: string) => Promise<void>) => Promise<void>;
|
|
7
|
-
export declare function createLimiterAudioWorkletNode<T extends TContext | TNativeContext>(audioWorkletNodeConstructor: T extends TContext ? TAudioWorkletNodeConstructor : TNativeAudioWorkletNodeConstructor, context: T, options?:
|
|
7
|
+
export declare function createLimiterAudioWorkletNode<T extends TContext | TNativeContext>(audioWorkletNodeConstructor: T extends TContext ? TAudioWorkletNodeConstructor : TNativeAudioWorkletNodeConstructor, context: T, { attack, ...options }?: TAnyLimiterAudioWorkletNodeOptions<T>): T extends TContext ? ILimiterAudioWorkletNode<T> : TNativeLimiterAudioWorkletNode;
|
|
8
8
|
//# sourceMappingURL=module.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../src/module.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,4BAA4B,EAC5B,QAAQ,EAER,kCAAkC,EAClC,cAAc,EACjB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,
|
|
1
|
+
{"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../src/module.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,4BAA4B,EAC5B,QAAQ,EAER,kCAAkC,EAClC,cAAc,EACjB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,EAA+B,kCAAkC,EAAiB,8BAA8B,EAAE,MAAM,SAAS,CAAC;AAOzI,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAI9B,eAAO,MAAM,4BAA4B,GAAU,uBAAuB,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,kBAQvG,CAAC;AAEF,wBAAgB,6BAA6B,CAAC,CAAC,SAAS,QAAQ,GAAG,cAAc,EAC7E,2BAA2B,EAAE,CAAC,SAAS,QAAQ,GAAG,4BAA4B,GAAG,kCAAkC,EACnH,OAAO,EAAE,CAAC,EACV,EAAE,MAAU,EAAE,GAAG,OAAO,EAAE,GAAE,kCAAkC,CAAC,CAAC,CAAM,GACvE,CAAC,SAAS,QAAQ,GAAG,wBAAwB,CAAC,CAAC,CAAC,GAAG,8BAA8B,CA0BnF"}
|
package/build/es2019/module.js
CHANGED
|
@@ -15,16 +15,18 @@ export const addLimiterAudioWorkletModule = async (addAudioWorkletModule) => {
|
|
|
15
15
|
URL.revokeObjectURL(url);
|
|
16
16
|
}
|
|
17
17
|
};
|
|
18
|
-
export function createLimiterAudioWorkletNode(audioWorkletNodeConstructor, context, options = {}) {
|
|
19
|
-
const
|
|
20
|
-
const audioWorkletNode = new audioWorkletNodeConstructor(context, 'limiter-audio-worklet-processor', {
|
|
21
|
-
...options,
|
|
18
|
+
export function createLimiterAudioWorkletNode(audioWorkletNodeConstructor, context, { attack = 0, ...options } = {}) {
|
|
19
|
+
const fixedOptions = {
|
|
22
20
|
channelCountMode: 'explicit',
|
|
23
21
|
numberOfInputs: 1,
|
|
24
22
|
numberOfOutputs: 1,
|
|
25
|
-
|
|
23
|
+
processorOptions: {
|
|
26
24
|
attack
|
|
27
25
|
}
|
|
26
|
+
};
|
|
27
|
+
const audioWorkletNode = new audioWorkletNodeConstructor(context, 'limiter-audio-worklet-processor', {
|
|
28
|
+
...options,
|
|
29
|
+
...fixedOptions
|
|
28
30
|
});
|
|
29
31
|
Object.defineProperties(audioWorkletNode, {
|
|
30
32
|
port: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.js","sourceRoot":"","sources":["../../src/module.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAE5C;;;GAGG;AACH,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAE9B,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,IAAI,EAAE,uCAAuC,EAAE,CAAC,CAAC;AAEpF,MAAM,CAAC,MAAM,4BAA4B,GAAG,KAAK,EAAE,qBAAqD,EAAE,EAAE;IACxG,MAAM,GAAG,GAAG,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;IAEtC,IAAI,CAAC;QACD,MAAM,qBAAqB,CAAC,GAAG,CAAC,CAAC;IACrC,CAAC;YAAS,CAAC;QACP,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,UAAU,6BAA6B,CACzC,2BAAmH,EACnH,OAAU,EACV,
|
|
1
|
+
{"version":3,"file":"module.js","sourceRoot":"","sources":["../../src/module.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAE5C;;;GAGG;AACH,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAE9B,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,IAAI,EAAE,uCAAuC,EAAE,CAAC,CAAC;AAEpF,MAAM,CAAC,MAAM,4BAA4B,GAAG,KAAK,EAAE,qBAAqD,EAAE,EAAE;IACxG,MAAM,GAAG,GAAG,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;IAEtC,IAAI,CAAC;QACD,MAAM,qBAAqB,CAAC,GAAG,CAAC,CAAC;IACrC,CAAC;YAAS,CAAC;QACP,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,UAAU,6BAA6B,CACzC,2BAAmH,EACnH,OAAU,EACV,EAAE,MAAM,GAAG,CAAC,EAAE,GAAG,OAAO,KAA4C,EAAE;IAKtE,MAAM,YAAY,GAAkE;QAChF,gBAAgB,EAAE,UAAU;QAC5B,cAAc,EAAE,CAAC;QACjB,eAAe,EAAE,CAAC;QAClB,gBAAgB,EAAE;YACd,MAAM;SACT;KACJ,CAAC;IACF,MAAM,gBAAgB,GAAyB,IAAU,2BAA4B,CAAC,OAAO,EAAE,iCAAiC,EAAE;QAC9H,GAAG,OAAO;QACV,GAAG,YAAY;KAClB,CAAC,CAAC;IAEH,MAAM,CAAC,gBAAgB,CAAC,gBAAgB,EAAE;QACtC,IAAI,EAAE;YACF,GAAG;gBACC,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;YAChF,CAAC;SACJ;KACJ,CAAC,CAAC;IAEH,OAAoC,gBAAgB,CAAC;AACzD,CAAC"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { IAudioWorkletNodeOptions, TAnyContext, TContext, TNativeAudioWorkletNodeOptions } from 'standardized-audio-context';
|
|
2
|
+
export type TAnyAudioWorkletNodeOptions<T extends TAnyContext> = T extends TContext ? IAudioWorkletNodeOptions : TNativeAudioWorkletNodeOptions;
|
|
3
|
+
//# sourceMappingURL=any-audio-worklet-node-options.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"any-audio-worklet-node-options.d.ts","sourceRoot":"","sources":["../../../src/types/any-audio-worklet-node-options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,WAAW,EAAE,QAAQ,EAAE,8BAA8B,EAAE,MAAM,4BAA4B,CAAC;AAE7H,MAAM,MAAM,2BAA2B,CAAC,CAAC,SAAS,WAAW,IAAI,CAAC,SAAS,QAAQ,GAC7E,wBAAwB,GACxB,8BAA8B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"any-audio-worklet-node-options.js","sourceRoot":"","sources":["../../../src/types/any-audio-worklet-node-options.ts"],"names":[],"mappings":""}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export type TFixedOptions = 'channelCountMode' | 'numberOfInputs' | 'numberOfOutputs';
|
|
1
|
+
export type TFixedOptions = 'channelCountMode' | 'numberOfInputs' | 'numberOfOutputs' | 'processorOptions';
|
|
2
2
|
//# sourceMappingURL=fixed-options.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fixed-options.d.ts","sourceRoot":"","sources":["../../../src/types/fixed-options.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GAAG,kBAAkB,GAAG,gBAAgB,GAAG,iBAAiB,CAAC"}
|
|
1
|
+
{"version":3,"file":"fixed-options.d.ts","sourceRoot":"","sources":["../../../src/types/fixed-options.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GAAG,kBAAkB,GAAG,gBAAgB,GAAG,iBAAiB,GAAG,kBAAkB,CAAC"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
+
export * from './any-audio-worklet-node-options';
|
|
1
2
|
export * from './any-limiter-audio-worklet-node-options';
|
|
3
|
+
export * from './fixed-options';
|
|
2
4
|
export * from './native-limiter-audio-worklet-node';
|
|
3
5
|
export * from './native-limiter-audio-worklet-node-options';
|
|
4
6
|
export * from './limiter-audio-worklet-node-options';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,0CAA0C,CAAC;AACzD,cAAc,qCAAqC,CAAC;AACpD,cAAc,6CAA6C,CAAC;AAC5D,cAAc,sCAAsC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,kCAAkC,CAAC;AACjD,cAAc,0CAA0C,CAAC;AACzD,cAAc,iBAAiB,CAAC;AAChC,cAAc,qCAAqC,CAAC;AACpD,cAAc,6CAA6C,CAAC;AAC5D,cAAc,sCAAsC,CAAC"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
+
export * from './any-audio-worklet-node-options';
|
|
1
2
|
export * from './any-limiter-audio-worklet-node-options';
|
|
3
|
+
export * from './fixed-options';
|
|
2
4
|
export * from './native-limiter-audio-worklet-node';
|
|
3
5
|
export * from './native-limiter-audio-worklet-node-options';
|
|
4
6
|
export * from './limiter-audio-worklet-node-options';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,0CAA0C,CAAC;AACzD,cAAc,qCAAqC,CAAC;AACpD,cAAc,6CAA6C,CAAC;AAC5D,cAAc,sCAAsC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,kCAAkC,CAAC;AACjD,cAAc,0CAA0C,CAAC;AACzD,cAAc,iBAAiB,CAAC;AAChC,cAAc,qCAAqC,CAAC;AACpD,cAAc,6CAA6C,CAAC;AAC5D,cAAc,sCAAsC,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { IAudioWorkletNodeOptions } from 'standardized-audio-context';
|
|
2
2
|
import { TFixedOptions } from './fixed-options';
|
|
3
|
-
export type TLimiterAudioWorkletNodeOptions = Omit<IAudioWorkletNodeOptions, TFixedOptions
|
|
4
|
-
attack
|
|
3
|
+
export type TLimiterAudioWorkletNodeOptions = Partial<Omit<IAudioWorkletNodeOptions, TFixedOptions>> & {
|
|
4
|
+
attack?: number;
|
|
5
5
|
};
|
|
6
6
|
//# sourceMappingURL=limiter-audio-worklet-node-options.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"limiter-audio-worklet-node-options.d.ts","sourceRoot":"","sources":["../../../src/types/limiter-audio-worklet-node-options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,MAAM,MAAM,+BAA+B,GAAG,IAAI,CAAC,wBAAwB,EAAE,aAAa,CAAC,GAAG;
|
|
1
|
+
{"version":3,"file":"limiter-audio-worklet-node-options.d.ts","sourceRoot":"","sources":["../../../src/types/limiter-audio-worklet-node-options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,MAAM,MAAM,+BAA+B,GAAG,OAAO,CAAC,IAAI,CAAC,wBAAwB,EAAE,aAAa,CAAC,CAAC,GAAG;IACnG,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { TNativeAudioWorkletNodeOptions } from 'standardized-audio-context';
|
|
2
2
|
import { TFixedOptions } from './fixed-options';
|
|
3
|
-
export type TNativeLimiterAudioWorkletNodeOptions = Omit<TNativeAudioWorkletNodeOptions, TFixedOptions
|
|
4
|
-
attack
|
|
3
|
+
export type TNativeLimiterAudioWorkletNodeOptions = Partial<Omit<TNativeAudioWorkletNodeOptions, TFixedOptions>> & {
|
|
4
|
+
attack?: number;
|
|
5
5
|
};
|
|
6
6
|
//# sourceMappingURL=native-limiter-audio-worklet-node-options.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"native-limiter-audio-worklet-node-options.d.ts","sourceRoot":"","sources":["../../../src/types/native-limiter-audio-worklet-node-options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,8BAA8B,EAAE,MAAM,4BAA4B,CAAC;AAC5E,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,MAAM,MAAM,qCAAqC,GAAG,IAAI,CAAC,8BAA8B,EAAE,aAAa,CAAC,GAAG;
|
|
1
|
+
{"version":3,"file":"native-limiter-audio-worklet-node-options.d.ts","sourceRoot":"","sources":["../../../src/types/native-limiter-audio-worklet-node-options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,8BAA8B,EAAE,MAAM,4BAA4B,CAAC;AAC5E,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,MAAM,MAAM,qCAAqC,GAAG,OAAO,CAAC,IAAI,CAAC,8BAA8B,EAAE,aAAa,CAAC,CAAC,GAAG;IAC/G,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC"}
|
package/build/es5/bundle.js
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
(function (global, factory) {
|
|
2
|
-
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@babel/runtime/helpers/defineProperty'), require('@babel/runtime/helpers/asyncToGenerator'), require('@babel/runtime/regenerator')) :
|
|
3
|
-
typeof define === 'function' && define.amd ? define(['exports', '@babel/runtime/helpers/defineProperty', '@babel/runtime/helpers/asyncToGenerator', '@babel/runtime/regenerator'], factory) :
|
|
4
|
-
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.limiterAudioWorklet = {}, global._defineProperty, global._asyncToGenerator, global._regeneratorRuntime));
|
|
5
|
-
})(this, (function (exports, _defineProperty, _asyncToGenerator, _regeneratorRuntime) { 'use strict';
|
|
2
|
+
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@babel/runtime/helpers/defineProperty'), require('@babel/runtime/helpers/objectWithoutProperties'), require('@babel/runtime/helpers/asyncToGenerator'), require('@babel/runtime/regenerator')) :
|
|
3
|
+
typeof define === 'function' && define.amd ? define(['exports', '@babel/runtime/helpers/defineProperty', '@babel/runtime/helpers/objectWithoutProperties', '@babel/runtime/helpers/asyncToGenerator', '@babel/runtime/regenerator'], factory) :
|
|
4
|
+
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.limiterAudioWorklet = {}, global._defineProperty, global._objectWithoutProperties, global._asyncToGenerator, global._regeneratorRuntime));
|
|
5
|
+
})(this, (function (exports, _defineProperty, _objectWithoutProperties, _asyncToGenerator, _regeneratorRuntime) { 'use strict';
|
|
6
6
|
|
|
7
7
|
// This is the minified and stringified code of the limiter-audio-worklet-processor package.
|
|
8
8
|
var worklet = "(()=>{var t={45(t,e,r){var o=r(738).default;t.exports=function(t,e){if(\"object\"!=o(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var n=r.call(t,e||\"default\");if(\"object\"!=o(n))return n;throw new TypeError(\"@@toPrimitive must return a primitive value.\")}return(\"string\"===e?String:Number)(t)},t.exports.__esModule=!0,t.exports.default=t.exports},72(t){function e(r){return t.exports=e=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},t.exports.__esModule=!0,t.exports.default=t.exports,e(r)}t.exports=e,t.exports.__esModule=!0,t.exports.default=t.exports},79(t){t.exports=function(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,o=Array(e);r<e;r++)o[r]=t[r];return o},t.exports.__esModule=!0,t.exports.default=t.exports},122(t,e,r){var o=r(79);t.exports=function(t,e){if(t){if(\"string\"==typeof t)return o(t,e);var r={}.toString.call(t).slice(8,-1);return\"Object\"===r&&t.constructor&&(r=t.constructor.name),\"Map\"===r||\"Set\"===r?Array.from(t):\"Arguments\"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?o(t,e):void 0}},t.exports.__esModule=!0,t.exports.default=t.exports},156(t){t.exports=function(t,e){var r=null==t?null:\"undefined\"!=typeof Symbol&&t[Symbol.iterator]||t[\"@@iterator\"];if(null!=r){var o,n,s,u,i=[],f=!0,a=!1;try{if(s=(r=r.call(t)).next,0===e){if(Object(r)!==r)return;f=!1}else for(;!(f=(o=s.call(r)).done)&&(i.push(o.value),i.length!==e);f=!0);}catch(t){a=!0,n=t}finally{try{if(!f&&null!=r.return&&(u=r.return(),Object(u)!==u))return}finally{if(a)throw n}}return i}},t.exports.__esModule=!0,t.exports.default=t.exports},383(t){t.exports=function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")},t.exports.__esModule=!0,t.exports.default=t.exports},452(t,e,r){var o=r(738).default,n=r(475);t.exports=function(t,e){if(e&&(\"object\"==o(e)||\"function\"==typeof e))return e;if(void 0!==e)throw new TypeError(\"Derived constructors may only return object or undefined\");return n(t)},t.exports.__esModule=!0,t.exports.default=t.exports},475(t){t.exports=function(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t},t.exports.__esModule=!0,t.exports.default=t.exports},511(t,e,r){var o=r(636);t.exports=function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,\"prototype\",{writable:!1}),e&&o(t,e)},t.exports.__esModule=!0,t.exports.default=t.exports},550(t){function e(){try{var r=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(r){}return(t.exports=e=function(){return!!r},t.exports.__esModule=!0,t.exports.default=t.exports)()}t.exports=e,t.exports.__esModule=!0,t.exports.default=t.exports},579(t,e,r){var o=r(736);function n(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,o(n.key),n)}}t.exports=function(t,e,r){return e&&n(t.prototype,e),r&&n(t,r),Object.defineProperty(t,\"prototype\",{writable:!1}),t},t.exports.__esModule=!0,t.exports.default=t.exports},605(t,e,r){!function(t,e,r,o,n,s,u,i){\"use strict\";var f=function(){function t(e){if(r(this,t),this._buffer=e,this._firstIndex=0,this._isEmpty=!0,this._lastIndex=0,0===this._buffer.length)throw new Error(\"The given buffer is too small.\")}return o(t,[{key:\"size\",get:function(){return this._isEmpty?0:this._lastIndex<this._firstIndex?this._buffer.length-this._firstIndex+this._lastIndex+1:this._lastIndex-this._firstIndex+1}},{key:\"first\",value:function(){return this._throwIfEmpty(),this._buffer[this._firstIndex]}},{key:\"last\",value:function(){return this._throwIfEmpty(),this._buffer[this._lastIndex]}},{key:\"pop\",value:function(){this._throwIfEmpty(),this._firstIndex===this._lastIndex?this._isEmpty=!0:this._lastIndex=this._decrementIndex(this._lastIndex)}},{key:\"shift\",value:function(){this._throwIfEmpty(),this._firstIndex===this._lastIndex?this._isEmpty=!0:this._firstIndex=this._incrementIndex(this._firstIndex)}},{key:\"unshift\",value:function(t){if(this._isEmpty)this._buffer[this._firstIndex]=t,this._isEmpty=!1;else{var e=this._decrementIndex(this._firstIndex);if(e===this._lastIndex)throw new Error(\"Deque is full.\");this._buffer[e]=t,this._firstIndex=e}}},{key:\"_decrementIndex\",value:function(t){return 0===t?this._buffer.length-1:t-1}},{key:\"_incrementIndex\",value:function(t){return(t+1)%this._buffer.length}},{key:\"_throwIfEmpty\",value:function(){if(this._isEmpty)throw new Error(\"Deque is empty.\")}}])}(),a=function(t,e,r){var o=r+e.length;if(o<=t.length)return e.set(new Float32Array(t.buffer,t.byteOffset+r*e.BYTES_PER_ELEMENT,e.length)),o===t.length?0:o;var n=o-t.length,s=t.length-r;return e.set(new Float32Array(t.buffer,t.byteOffset+r*e.BYTES_PER_ELEMENT,s)),e.set(new Float32Array(t.buffer,t.byteOffset,n),s),n},l=function(t,e,r){var o=r+e.length;if(o<=t.length)return t.set(e,r),o===t.length?0:o;var n=o-t.length,s=t.length-r;return t.set(new Float32Array(e.buffer,e.byteOffset,s),r),t.set(new Float32Array(e.buffer,e.byteOffset+s*e.BYTES_PER_ELEMENT,n)),n};function p(t,e,r){return e=s(e),n(t,c()?Reflect.construct(e,[],s(t).constructor):e.apply(t,r))}function c(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(t){}return(c=function(){return!!t})()}var h=.5,x=Math.exp(-1/(sampleRate*h)),d=Math.pow(10,-.1),_=function(t,e,r,o){for(var n=t[127],s=0;s<128;s+=1){var u=(r+s)%e.length,i=Math.abs(e[u]),f=void 0,a=void 0;if(null!==o){for(;o.size>0&&i>=Math.abs(e[o.first()]);)o.shift();(0===o.size||i<Math.abs(e[o.first()]))&&o.unshift(u);var l=(r+s+128)%e.length;o.last()===l&&o.pop();var p=o.last();f=Math.abs(e[p]),a=p<u?u-p+1:u+e.length-p+1}else f=i,a=1;var c=n-f;n<f?n-=c/a:n=f+x*c,t[s]=n}},y=function(n){function s(t){var o,n=t.channelCount,u=t.channelCountMode,i=t.numberOfInputs,a=t.numberOfOutputs,l=t.outputChannelCount,c=t.processorOptions;r(this,s);var h=\"object\"===e(c)&&null!==c&&\"attack\"in c?c.attack:0;if(\"number\"!=typeof h)throw new Error('The attack needs to be of type \"number\".');if(h<0)throw new Error(\"The attack can't be negative.\");if(\"explicit\"!==u)throw new Error('The channelCountMode needs to be \"explicit\".');if(1!==i)throw new Error(\"The numberOfInputs must be 1.\");if(1!==a)throw new Error(\"The numberOfOutputs must be 1.\");if(void 0===l||n!==l[0])throw new Error(\"The channelCount must be the same as the outputChannelCount of the first output.\");o=p(this,s);var x=sampleRate*h,d=Math.round(x),_=d+128;return o._constantMemoryDeques=0===d?null:Array.from({length:n},function(){return new f(new Uint16Array(d+1))}),o._delayBuffers=Array.from({length:n},function(){return new Float32Array(_)}),o._envelopeBuffers=Array.from({length:n},function(){return new Float32Array(128)}),o._writeOffset=0,o}return u(s,n),o(s,[{key:\"process\",value:function(e,r){for(var o=t(e,1)[0],n=t(r,1)[0],s=o.length,u=this._writeOffset,i=0;i<s;i+=1){var f=null===this._constantMemoryDeques?null:this._constantMemoryDeques[i],p=this._delayBuffers[i],c=this._envelopeBuffers[i],h=o[i],x=n[i];this._writeOffset=l(p,h,u),_(c,p,u,f),a(p,x,this._writeOffset);for(var y=0;y<128;y+=1){var b=Math.min(1,d/c[y]);x[y]*=b}}return!0}}])}(i(AudioWorkletProcessor));y.parameterDescriptors=[],registerProcessor(\"limiter-audio-worklet-processor\",y)}(r(715),r(738),r(383),r(579),r(452),r(72),r(511),r(837))},636(t){function e(r,o){return t.exports=e=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},t.exports.__esModule=!0,t.exports.default=t.exports,e(r,o)}t.exports=e,t.exports.__esModule=!0,t.exports.default=t.exports},646(t,e,r){var o=r(550),n=r(636);t.exports=function(t,e,r){if(o())return Reflect.construct.apply(null,arguments);var s=[null];s.push.apply(s,e);var u=new(t.bind.apply(t,s));return r&&n(u,r.prototype),u},t.exports.__esModule=!0,t.exports.default=t.exports},691(t){t.exports=function(t){try{return-1!==Function.toString.call(t).indexOf(\"[native code]\")}catch(e){return\"function\"==typeof t}},t.exports.__esModule=!0,t.exports.default=t.exports},715(t,e,r){var o=r(987),n=r(156),s=r(122),u=r(752);t.exports=function(t,e){return o(t)||n(t,e)||s(t,e)||u()},t.exports.__esModule=!0,t.exports.default=t.exports},736(t,e,r){var o=r(738).default,n=r(45);t.exports=function(t){var e=n(t,\"string\");return\"symbol\"==o(e)?e:e+\"\"},t.exports.__esModule=!0,t.exports.default=t.exports},738(t){function e(r){return t.exports=e=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t},t.exports.__esModule=!0,t.exports.default=t.exports,e(r)}t.exports=e,t.exports.__esModule=!0,t.exports.default=t.exports},752(t){t.exports=function(){throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")},t.exports.__esModule=!0,t.exports.default=t.exports},837(t,e,r){var o=r(72),n=r(636),s=r(691),u=r(646);function i(e){var r=\"function\"==typeof Map?new Map:void 0;return t.exports=i=function(t){if(null===t||!s(t))return t;if(\"function\"!=typeof t)throw new TypeError(\"Super expression must either be null or a function\");if(void 0!==r){if(r.has(t))return r.get(t);r.set(t,e)}function e(){return u(t,arguments,o(this).constructor)}return e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),n(e,t)},t.exports.__esModule=!0,t.exports.default=t.exports,i(e)}t.exports=i,t.exports.__esModule=!0,t.exports.default=t.exports},987(t){t.exports=function(t){if(Array.isArray(t))return t},t.exports.__esModule=!0,t.exports.default=t.exports}},e={};function r(o){var n=e[o];if(void 0!==n)return n.exports;var s=e[o]={exports:{}};return t[o].call(s.exports,s,s.exports,r),s.exports}r.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return r.d(e,{a:e}),e},r.d=(t,e)=>{for(var o in e)r.o(e,o)&&!r.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:e[o]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),(()=>{\"use strict\";r(605)})()})();"; // tslint:disable-line:max-line-length
|
|
9
9
|
|
|
10
|
+
var _excluded = ["attack"];
|
|
10
11
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
11
12
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
12
13
|
var blob = new Blob([worklet], {
|
|
@@ -37,17 +38,19 @@
|
|
|
37
38
|
};
|
|
38
39
|
}();
|
|
39
40
|
function createLimiterAudioWorkletNode(audioWorkletNodeConstructor, context) {
|
|
40
|
-
var
|
|
41
|
-
|
|
42
|
-
attack =
|
|
43
|
-
|
|
41
|
+
var _ref2 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},
|
|
42
|
+
_ref2$attack = _ref2.attack,
|
|
43
|
+
attack = _ref2$attack === void 0 ? 0 : _ref2$attack,
|
|
44
|
+
options = _objectWithoutProperties(_ref2, _excluded);
|
|
45
|
+
var fixedOptions = {
|
|
44
46
|
channelCountMode: 'explicit',
|
|
45
47
|
numberOfInputs: 1,
|
|
46
48
|
numberOfOutputs: 1,
|
|
47
|
-
|
|
49
|
+
processorOptions: {
|
|
48
50
|
attack: attack
|
|
49
51
|
}
|
|
50
|
-
}
|
|
52
|
+
};
|
|
53
|
+
var audioWorkletNode = new audioWorkletNodeConstructor(context, 'limiter-audio-worklet-processor', _objectSpread(_objectSpread({}, options), fixedOptions));
|
|
51
54
|
Object.defineProperties(audioWorkletNode, {
|
|
52
55
|
port: {
|
|
53
56
|
get: function get() {
|
package/package.json
CHANGED
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
"tslint-config-holy-grail": "^56.0.6",
|
|
47
47
|
"typescript": "^5.9.3",
|
|
48
48
|
"vitest": "^4.0.16",
|
|
49
|
-
"webpack": "^5.104.
|
|
49
|
+
"webpack": "^5.104.1",
|
|
50
50
|
"webpack-cli": "^6.0.1"
|
|
51
51
|
},
|
|
52
52
|
"files": [
|
|
@@ -75,5 +75,5 @@
|
|
|
75
75
|
"test:unit": "if [ \"$TYPE\" = \"\" -o \"$TYPE\" = \"unit\" ]; then npx vitest --config config/vitest/unit.ts; fi"
|
|
76
76
|
},
|
|
77
77
|
"types": "build/es2019/module.d.ts",
|
|
78
|
-
"version": "1.1.
|
|
78
|
+
"version": "1.1.120"
|
|
79
79
|
}
|
package/src/module.ts
CHANGED
|
@@ -7,7 +7,7 @@ import {
|
|
|
7
7
|
TNativeContext
|
|
8
8
|
} from 'standardized-audio-context';
|
|
9
9
|
import { ILimiterAudioWorkletNode } from './interfaces';
|
|
10
|
-
import { TAnyLimiterAudioWorkletNodeOptions, TNativeLimiterAudioWorkletNode } from './types';
|
|
10
|
+
import { TAnyAudioWorkletNodeOptions, TAnyLimiterAudioWorkletNodeOptions, TFixedOptions, TNativeLimiterAudioWorkletNode } from './types';
|
|
11
11
|
import { worklet } from './worklet/worklet';
|
|
12
12
|
|
|
13
13
|
/*
|
|
@@ -32,20 +32,22 @@ export const addLimiterAudioWorkletModule = async (addAudioWorkletModule: (url:
|
|
|
32
32
|
export function createLimiterAudioWorkletNode<T extends TContext | TNativeContext>(
|
|
33
33
|
audioWorkletNodeConstructor: T extends TContext ? TAudioWorkletNodeConstructor : TNativeAudioWorkletNodeConstructor,
|
|
34
34
|
context: T,
|
|
35
|
-
options:
|
|
35
|
+
{ attack = 0, ...options }: TAnyLimiterAudioWorkletNodeOptions<T> = {}
|
|
36
36
|
): T extends TContext ? ILimiterAudioWorkletNode<T> : TNativeLimiterAudioWorkletNode {
|
|
37
37
|
type TAnyAudioWorkletNode = T extends TContext ? IAudioWorkletNode<T> : TNativeAudioWorkletNode;
|
|
38
38
|
type TAnyLimiterAudioWorkletNode = T extends TContext ? ILimiterAudioWorkletNode<T> : TNativeLimiterAudioWorkletNode;
|
|
39
39
|
|
|
40
|
-
const
|
|
41
|
-
const audioWorkletNode: TAnyAudioWorkletNode = new (<any>audioWorkletNodeConstructor)(context, 'limiter-audio-worklet-processor', {
|
|
42
|
-
...options,
|
|
40
|
+
const fixedOptions: Required<Pick<TAnyAudioWorkletNodeOptions<T>, TFixedOptions>> = {
|
|
43
41
|
channelCountMode: 'explicit',
|
|
44
42
|
numberOfInputs: 1,
|
|
45
43
|
numberOfOutputs: 1,
|
|
46
|
-
|
|
44
|
+
processorOptions: {
|
|
47
45
|
attack
|
|
48
46
|
}
|
|
47
|
+
};
|
|
48
|
+
const audioWorkletNode: TAnyAudioWorkletNode = new (<any>audioWorkletNodeConstructor)(context, 'limiter-audio-worklet-processor', {
|
|
49
|
+
...options,
|
|
50
|
+
...fixedOptions
|
|
49
51
|
});
|
|
50
52
|
|
|
51
53
|
Object.defineProperties(audioWorkletNode, {
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { IAudioWorkletNodeOptions, TAnyContext, TContext, TNativeAudioWorkletNodeOptions } from 'standardized-audio-context';
|
|
2
|
+
|
|
3
|
+
export type TAnyAudioWorkletNodeOptions<T extends TAnyContext> = T extends TContext
|
|
4
|
+
? IAudioWorkletNodeOptions
|
|
5
|
+
: TNativeAudioWorkletNodeOptions;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export type TFixedOptions = 'channelCountMode' | 'numberOfInputs' | 'numberOfOutputs';
|
|
1
|
+
export type TFixedOptions = 'channelCountMode' | 'numberOfInputs' | 'numberOfOutputs' | 'processorOptions';
|
package/src/types/index.ts
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
|
+
export * from './any-audio-worklet-node-options';
|
|
1
2
|
export * from './any-limiter-audio-worklet-node-options';
|
|
3
|
+
export * from './fixed-options';
|
|
2
4
|
export * from './native-limiter-audio-worklet-node';
|
|
3
5
|
export * from './native-limiter-audio-worklet-node-options';
|
|
4
6
|
export * from './limiter-audio-worklet-node-options';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { IAudioWorkletNodeOptions } from 'standardized-audio-context';
|
|
2
2
|
import { TFixedOptions } from './fixed-options';
|
|
3
3
|
|
|
4
|
-
export type TLimiterAudioWorkletNodeOptions = Omit<IAudioWorkletNodeOptions, TFixedOptions
|
|
5
|
-
attack
|
|
4
|
+
export type TLimiterAudioWorkletNodeOptions = Partial<Omit<IAudioWorkletNodeOptions, TFixedOptions>> & {
|
|
5
|
+
attack?: number;
|
|
6
6
|
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { TNativeAudioWorkletNodeOptions } from 'standardized-audio-context';
|
|
2
2
|
import { TFixedOptions } from './fixed-options';
|
|
3
3
|
|
|
4
|
-
export type TNativeLimiterAudioWorkletNodeOptions = Omit<TNativeAudioWorkletNodeOptions, TFixedOptions
|
|
5
|
-
attack
|
|
4
|
+
export type TNativeLimiterAudioWorkletNodeOptions = Partial<Omit<TNativeAudioWorkletNodeOptions, TFixedOptions>> & {
|
|
5
|
+
attack?: number;
|
|
6
6
|
};
|