timed-audio-buffer-source-node-audio-worklet 2.1.31 → 2.1.32

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 (26) hide show
  1. package/build/es2019/module.d.ts +1 -1
  2. package/build/es2019/module.d.ts.map +1 -1
  3. package/build/es2019/module.js +7 -4
  4. package/build/es2019/module.js.map +1 -1
  5. package/build/es2019/types/any-audio-worklet-node-options.d.ts +3 -0
  6. package/build/es2019/types/any-audio-worklet-node-options.d.ts.map +1 -0
  7. package/build/es2019/types/any-audio-worklet-node-options.js +2 -0
  8. package/build/es2019/types/any-audio-worklet-node-options.js.map +1 -0
  9. package/build/es2019/types/fixed-options.d.ts +1 -1
  10. package/build/es2019/types/fixed-options.d.ts.map +1 -1
  11. package/build/es2019/types/index.d.ts +2 -0
  12. package/build/es2019/types/index.d.ts.map +1 -1
  13. package/build/es2019/types/index.js +2 -0
  14. package/build/es2019/types/index.js.map +1 -1
  15. package/build/es2019/types/native-timed-audio-buffer-source-node-audio-worklet-node-options.d.ts +3 -3
  16. package/build/es2019/types/native-timed-audio-buffer-source-node-audio-worklet-node-options.d.ts.map +1 -1
  17. package/build/es2019/types/timed-audio-buffer-source-node-audio-worklet-node-options.d.ts +3 -3
  18. package/build/es2019/types/timed-audio-buffer-source-node-audio-worklet-node-options.d.ts.map +1 -1
  19. package/build/es5/bundle.js +22 -18
  20. package/package.json +1 -1
  21. package/src/module.ts +24 -17
  22. package/src/types/any-audio-worklet-node-options.ts +5 -0
  23. package/src/types/fixed-options.ts +1 -1
  24. package/src/types/index.ts +2 -0
  25. package/src/types/native-timed-audio-buffer-source-node-audio-worklet-node-options.ts +3 -3
  26. package/src/types/timed-audio-buffer-source-node-audio-worklet-node-options.ts +3 -3
@@ -4,5 +4,5 @@ import { TAnyTimedAudioBufferSourceNodeAudioWorkletNodeOptions, TNativeTimedAudi
4
4
  export * from './interfaces/index';
5
5
  export * from './types/index';
6
6
  export declare const addTimedAudioBufferSourceNodeAudioWorkletModule: (addAudioWorkletModule: (url: string) => Promise<void>) => Promise<void>;
7
- export declare function createTimedAudioBufferSourceNodeAudioWorkletNode<T extends TContext | TNativeContext>(audioWorkletNodeConstructor: T extends TContext ? TAudioWorkletNodeConstructor : TNativeAudioWorkletNodeConstructor, context: T, createAudioBufferSourceNode: T extends TContext ? (context: TContext) => IAudioBufferSourceNode<TContext> : (context: TNativeContext) => TNativeAudioBufferSourceNode, options?: Partial<TAnyTimedAudioBufferSourceNodeAudioWorkletNodeOptions<T>>): T extends TContext ? ITimedAudioBufferSourceNodeAudioWorkletNode<T> : TNativeTimedAudioBufferSourceNodeAudioWorkletNode;
7
+ export declare function createTimedAudioBufferSourceNodeAudioWorkletNode<T extends TContext | TNativeContext>(audioWorkletNodeConstructor: T extends TContext ? TAudioWorkletNodeConstructor : TNativeAudioWorkletNodeConstructor, context: T, createAudioBufferSourceNode: T extends TContext ? (context: TContext) => IAudioBufferSourceNode<TContext> : (context: TNativeContext) => TNativeAudioBufferSourceNode, { buffer, timingObject: initialTimingObject, ...options }?: TAnyTimedAudioBufferSourceNodeAudioWorkletNodeOptions<T>): T extends TContext ? ITimedAudioBufferSourceNodeAudioWorkletNode<T> : TNativeTimedAudioBufferSourceNodeAudioWorkletNode;
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,EACH,sBAAsB,EAEtB,4BAA4B,EAC5B,QAAQ,EACR,4BAA4B,EAE5B,kCAAkC,EAClC,cAAc,EACjB,MAAM,4BAA4B,CAAC;AAKpC,OAAO,EAAE,2CAA2C,EAAE,MAAM,cAAc,CAAC;AAC3E,OAAO,EAAE,qDAAqD,EAAE,iDAAiD,EAAE,MAAM,SAAS,CAAC;AAOnI,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAI9B,eAAO,MAAM,+CAA+C,GAAU,uBAAuB,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,kBAQ1H,CAAC;AAKF,wBAAgB,gDAAgD,CAAC,CAAC,SAAS,QAAQ,GAAG,cAAc,EAChG,2BAA2B,EAAE,CAAC,SAAS,QAAQ,GAAG,4BAA4B,GAAG,kCAAkC,EACnH,OAAO,EAAE,CAAC,EACV,2BAA2B,EAAE,CAAC,SAAS,QAAQ,GACzC,CAAC,OAAO,EAAE,QAAQ,KAAK,sBAAsB,CAAC,QAAQ,CAAC,GACvD,CAAC,OAAO,EAAE,cAAc,KAAK,4BAA4B,EAC/D,OAAO,GAAE,OAAO,CAAC,qDAAqD,CAAC,CAAC,CAAC,CAAM,GAChF,CAAC,SAAS,QAAQ,GAAG,2CAA2C,CAAC,CAAC,CAAC,GAAG,iDAAiD,CA+DzH"}
1
+ {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../src/module.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,sBAAsB,EAEtB,4BAA4B,EAC5B,QAAQ,EACR,4BAA4B,EAE5B,kCAAkC,EAClC,cAAc,EACjB,MAAM,4BAA4B,CAAC;AAKpC,OAAO,EAAE,2CAA2C,EAAE,MAAM,cAAc,CAAC;AAC3E,OAAO,EAEH,qDAAqD,EAErD,iDAAiD,EACpD,MAAM,SAAS,CAAC;AAOjB,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAI9B,eAAO,MAAM,+CAA+C,GAAU,uBAAuB,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,kBAQ1H,CAAC;AAKF,wBAAgB,gDAAgD,CAAC,CAAC,SAAS,QAAQ,GAAG,cAAc,EAChG,2BAA2B,EAAE,CAAC,SAAS,QAAQ,GAAG,4BAA4B,GAAG,kCAAkC,EACnH,OAAO,EAAE,CAAC,EACV,2BAA2B,EAAE,CAAC,SAAS,QAAQ,GACzC,CAAC,OAAO,EAAE,QAAQ,KAAK,sBAAsB,CAAC,QAAQ,CAAC,GACvD,CAAC,OAAO,EAAE,cAAc,KAAK,4BAA4B,EAC/D,EAAE,MAAM,EAAE,YAAY,EAAE,mBAAmB,EAAE,GAAG,OAAO,EAAE,GAAE,qDAAqD,CAAC,CAAC,CAAM,GACzH,CAAC,SAAS,QAAQ,GAAG,2CAA2C,CAAC,CAAC,CAAC,GAAG,iDAAiD,CAiEzH"}
@@ -21,15 +21,14 @@ export const addTimedAudioBufferSourceNodeAudioWorkletModule = async (addAudioWo
21
21
  };
22
22
  const convertToContextFrame = createConvertToContextFrame(createPerformance());
23
23
  const subscribeToTimingObject = createSubscribeToTimingObject(createScheduleAudioBufferSourceNode(convertToContextFrame));
24
- export function createTimedAudioBufferSourceNodeAudioWorkletNode(audioWorkletNodeConstructor, context, createAudioBufferSourceNode, options = {}) {
24
+ export function createTimedAudioBufferSourceNodeAudioWorkletNode(audioWorkletNodeConstructor, context, createAudioBufferSourceNode, { buffer, timingObject: initialTimingObject, ...options } = {}) {
25
25
  var _a, _b;
26
- const { buffer = null } = options;
27
26
  if (buffer instanceof AudioBuffer && buffer.sampleRate !== context.sampleRate) {
28
27
  throw new TypeError('The AudioBuffer must have the same sampleRate as the AudioContext.');
29
28
  }
30
- let { timingObject = null } = options;
29
+ let timingObject = initialTimingObject !== null && initialTimingObject !== void 0 ? initialTimingObject : null;
31
30
  const { position = 0, timestamp = 0, velocity = 0 } = (_a = timingObject === null || timingObject === void 0 ? void 0 : timingObject.query()) !== null && _a !== void 0 ? _a : {};
32
- const audioWorkletNode = new audioWorkletNodeConstructor(context, 'timed-audio-buffer-source-node-audio-worklet-processor', {
31
+ const fixedOptions = {
33
32
  numberOfInputs: 1,
34
33
  numberOfOutputs: 1,
35
34
  outputChannelCount: [(_b = buffer === null || buffer === void 0 ? void 0 : buffer.numberOfChannels) !== null && _b !== void 0 ? _b : 1],
@@ -41,6 +40,10 @@ export function createTimedAudioBufferSourceNodeAudioWorkletNode(audioWorkletNod
41
40
  timestamp: convertToContextFrame(context, timestamp),
42
41
  velocity
43
42
  }
43
+ };
44
+ const audioWorkletNode = new audioWorkletNodeConstructor(context, 'timed-audio-buffer-source-node-audio-worklet-processor', {
45
+ ...options,
46
+ ...fixedOptions
44
47
  });
45
48
  let removeListener = null;
46
49
  Object.defineProperties(audioWorkletNode, {
@@ -1 +1 @@
1
- {"version":3,"file":"module.js","sourceRoot":"","sources":["../../src/module.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"module.js","sourceRoot":"","sources":["../../src/module.ts"],"names":[],"mappings":"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"}
@@ -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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=any-audio-worklet-node-options.js.map
@@ -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 = 'numberOfInputs' | 'numberOfOutputs' | 'outputChannelCount' | '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,gBAAgB,GAAG,iBAAiB,GAAG,oBAAoB,GAAG,kBAAkB,CAAC"}
@@ -1,4 +1,6 @@
1
+ export * from './any-audio-worklet-node-options';
1
2
  export * from './any-timed-audio-buffer-source-node-audio-worklet-node-options';
3
+ export * from './fixed-options';
2
4
  export * from './native-timed-audio-buffer-source-node-audio-worklet-node';
3
5
  export * from './native-timed-audio-buffer-source-node-audio-worklet-node-options';
4
6
  export * from './timed-audio-buffer-source-node-audio-worklet-node-options';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,iEAAiE,CAAC;AAChF,cAAc,4DAA4D,CAAC;AAC3E,cAAc,oEAAoE,CAAC;AACnF,cAAc,6DAA6D,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,kCAAkC,CAAC;AACjD,cAAc,iEAAiE,CAAC;AAChF,cAAc,iBAAiB,CAAC;AAChC,cAAc,4DAA4D,CAAC;AAC3E,cAAc,oEAAoE,CAAC;AACnF,cAAc,6DAA6D,CAAC"}
@@ -1,4 +1,6 @@
1
+ export * from './any-audio-worklet-node-options';
1
2
  export * from './any-timed-audio-buffer-source-node-audio-worklet-node-options';
3
+ export * from './fixed-options';
2
4
  export * from './native-timed-audio-buffer-source-node-audio-worklet-node';
3
5
  export * from './native-timed-audio-buffer-source-node-audio-worklet-node-options';
4
6
  export * from './timed-audio-buffer-source-node-audio-worklet-node-options';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,iEAAiE,CAAC;AAChF,cAAc,4DAA4D,CAAC;AAC3E,cAAc,oEAAoE,CAAC;AACnF,cAAc,6DAA6D,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,kCAAkC,CAAC;AACjD,cAAc,iEAAiE,CAAC;AAChF,cAAc,iBAAiB,CAAC;AAChC,cAAc,4DAA4D,CAAC;AAC3E,cAAc,oEAAoE,CAAC;AACnF,cAAc,6DAA6D,CAAC"}
@@ -1,8 +1,8 @@
1
1
  import { TNativeAudioBuffer, TNativeAudioWorkletNodeOptions } from 'standardized-audio-context';
2
2
  import { ITimingObject } from 'timing-object';
3
3
  import { TFixedOptions } from './fixed-options';
4
- export type TNativeTimedAudioBufferSourceNodeAudioWorkletNodeOptions = Omit<TNativeAudioWorkletNodeOptions, TFixedOptions> & {
5
- buffer: TNativeAudioBuffer;
6
- timingObject: ITimingObject;
4
+ export type TNativeTimedAudioBufferSourceNodeAudioWorkletNodeOptions = Partial<Omit<TNativeAudioWorkletNodeOptions, TFixedOptions>> & {
5
+ buffer?: TNativeAudioBuffer;
6
+ timingObject?: ITimingObject;
7
7
  };
8
8
  //# sourceMappingURL=native-timed-audio-buffer-source-node-audio-worklet-node-options.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"native-timed-audio-buffer-source-node-audio-worklet-node-options.d.ts","sourceRoot":"","sources":["../../../src/types/native-timed-audio-buffer-source-node-audio-worklet-node-options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,8BAA8B,EAAE,MAAM,4BAA4B,CAAC;AAChG,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,MAAM,MAAM,wDAAwD,GAAG,IAAI,CAAC,8BAA8B,EAAE,aAAa,CAAC,GAAG;IACzH,MAAM,EAAE,kBAAkB,CAAC;IAE3B,YAAY,EAAE,aAAa,CAAC;CAC/B,CAAC"}
1
+ {"version":3,"file":"native-timed-audio-buffer-source-node-audio-worklet-node-options.d.ts","sourceRoot":"","sources":["../../../src/types/native-timed-audio-buffer-source-node-audio-worklet-node-options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,8BAA8B,EAAE,MAAM,4BAA4B,CAAC;AAChG,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,MAAM,MAAM,wDAAwD,GAAG,OAAO,CAAC,IAAI,CAAC,8BAA8B,EAAE,aAAa,CAAC,CAAC,GAAG;IAClI,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAE5B,YAAY,CAAC,EAAE,aAAa,CAAC;CAChC,CAAC"}
@@ -1,8 +1,8 @@
1
1
  import { IAudioBuffer, IAudioWorkletNodeOptions } from 'standardized-audio-context';
2
2
  import { ITimingObject } from 'timing-object';
3
3
  import { TFixedOptions } from './fixed-options';
4
- export type TTimedAudioBufferSourceNodeAudioWorkletNodeOptions = Omit<IAudioWorkletNodeOptions, TFixedOptions> & {
5
- buffer: IAudioBuffer;
6
- timingObject: ITimingObject;
4
+ export type TTimedAudioBufferSourceNodeAudioWorkletNodeOptions = Partial<Omit<IAudioWorkletNodeOptions, TFixedOptions>> & {
5
+ buffer?: IAudioBuffer;
6
+ timingObject?: ITimingObject;
7
7
  };
8
8
  //# sourceMappingURL=timed-audio-buffer-source-node-audio-worklet-node-options.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"timed-audio-buffer-source-node-audio-worklet-node-options.d.ts","sourceRoot":"","sources":["../../../src/types/timed-audio-buffer-source-node-audio-worklet-node-options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACpF,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,MAAM,MAAM,kDAAkD,GAAG,IAAI,CAAC,wBAAwB,EAAE,aAAa,CAAC,GAAG;IAC7G,MAAM,EAAE,YAAY,CAAC;IAErB,YAAY,EAAE,aAAa,CAAC;CAC/B,CAAC"}
1
+ {"version":3,"file":"timed-audio-buffer-source-node-audio-worklet-node-options.d.ts","sourceRoot":"","sources":["../../../src/types/timed-audio-buffer-source-node-audio-worklet-node-options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACpF,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,MAAM,MAAM,kDAAkD,GAAG,OAAO,CAAC,IAAI,CAAC,wBAAwB,EAAE,aAAa,CAAC,CAAC,GAAG;IACtH,MAAM,CAAC,EAAE,YAAY,CAAC;IAEtB,YAAY,CAAC,EAAE,aAAa,CAAC;CAChC,CAAC"}
@@ -1,8 +1,8 @@
1
1
  (function (global, factory) {
2
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@babel/runtime/helpers/asyncToGenerator'), require('@babel/runtime/regenerator')) :
3
- typeof define === 'function' && define.amd ? define(['exports', '@babel/runtime/helpers/asyncToGenerator', '@babel/runtime/regenerator'], factory) :
4
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.timedAudioBufferSourceNodeAudioWorklet = {}, global._asyncToGenerator, global._regeneratorRuntime));
5
- })(this, (function (exports, _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.timedAudioBufferSourceNodeAudioWorklet = {}, global._defineProperty, global._objectWithoutProperties, global._asyncToGenerator, global._regeneratorRuntime));
5
+ })(this, (function (exports, _defineProperty, _objectWithoutProperties, _asyncToGenerator, _regeneratorRuntime) { 'use strict';
6
6
 
7
7
  var createConvertToContextFrame = function createConvertToContextFrame(performance) {
8
8
  return function (context, timestamp) {
@@ -75,6 +75,9 @@
75
75
  // This is the minified and stringified code of the timed-audio-buffer-source-node-audio-worklet-processor package.
76
76
  var worklet = "(()=>{var e={45(e,t,r){var o=r(738).default;e.exports=function(e,t){if(\"object\"!=o(e)||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||\"default\");if(\"object\"!=o(n))return n;throw new TypeError(\"@@toPrimitive must return a primitive value.\")}return(\"string\"===t?String:Number)(e)},e.exports.__esModule=!0,e.exports.default=e.exports},72(e){function t(r){return e.exports=t=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},e.exports.__esModule=!0,e.exports.default=e.exports,t(r)}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports},79(e){e.exports=function(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,o=Array(t);r<t;r++)o[r]=e[r];return o},e.exports.__esModule=!0,e.exports.default=e.exports},122(e,t,r){var o=r(79);e.exports=function(e,t){if(e){if(\"string\"==typeof e)return o(e,t);var r={}.toString.call(e).slice(8,-1);return\"Object\"===r&&e.constructor&&(r=e.constructor.name),\"Map\"===r||\"Set\"===r?Array.from(e):\"Arguments\"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?o(e,t):void 0}},e.exports.__esModule=!0,e.exports.default=e.exports},156(e){e.exports=function(e,t){var r=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=r){var o,n,u,s,p=[],i=!0,l=!1;try{if(u=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;i=!1}else for(;!(i=(o=u.call(r)).done)&&(p.push(o.value),p.length!==t);i=!0);}catch(e){l=!0,n=e}finally{try{if(!i&&null!=r.return&&(s=r.return(),Object(s)!==s))return}finally{if(l)throw n}}return p}},e.exports.__esModule=!0,e.exports.default=e.exports},383(e){e.exports=function(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")},e.exports.__esModule=!0,e.exports.default=e.exports},452(e,t,r){var o=r(738).default,n=r(475);e.exports=function(e,t){if(t&&(\"object\"==o(t)||\"function\"==typeof t))return t;if(void 0!==t)throw new TypeError(\"Derived constructors may only return object or undefined\");return n(e)},e.exports.__esModule=!0,e.exports.default=e.exports},475(e){e.exports=function(e){if(void 0===e)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return e},e.exports.__esModule=!0,e.exports.default=e.exports},511(e,t,r){var o=r(636);e.exports=function(e,t){if(\"function\"!=typeof t&&null!==t)throw new TypeError(\"Super expression must either be null or a function\");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,\"prototype\",{writable:!1}),t&&o(e,t)},e.exports.__esModule=!0,e.exports.default=e.exports},550(e){function t(){try{var r=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(r){}return(e.exports=t=function(){return!!r},e.exports.__esModule=!0,e.exports.default=e.exports)()}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports},579(e,t,r){var o=r(736);function n(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(e,o(n.key),n)}}e.exports=function(e,t,r){return t&&n(e.prototype,t),r&&n(e,r),Object.defineProperty(e,\"prototype\",{writable:!1}),e},e.exports.__esModule=!0,e.exports.default=e.exports},636(e){function t(r,o){return e.exports=t=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},e.exports.__esModule=!0,e.exports.default=e.exports,t(r,o)}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports},646(e,t,r){var o=r(550),n=r(636);e.exports=function(e,t,r){if(o())return Reflect.construct.apply(null,arguments);var u=[null];u.push.apply(u,t);var s=new(e.bind.apply(e,u));return r&&n(s,r.prototype),s},e.exports.__esModule=!0,e.exports.default=e.exports},691(e){e.exports=function(e){try{return-1!==Function.toString.call(e).indexOf(\"[native code]\")}catch(t){return\"function\"==typeof e}},e.exports.__esModule=!0,e.exports.default=e.exports},715(e,t,r){var o=r(987),n=r(156),u=r(122),s=r(752);e.exports=function(e,t){return o(e)||n(e,t)||u(e,t)||s()},e.exports.__esModule=!0,e.exports.default=e.exports},736(e,t,r){var o=r(738).default,n=r(45);e.exports=function(e){var t=n(e,\"string\");return\"symbol\"==o(t)?t:t+\"\"},e.exports.__esModule=!0,e.exports.default=e.exports},738(e){function t(r){return e.exports=t=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e},e.exports.__esModule=!0,e.exports.default=e.exports,t(r)}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports},752(e){e.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.\")},e.exports.__esModule=!0,e.exports.default=e.exports},783(e,t,r){!function(e,t,r,o,n,u,s,p){\"use strict\";function i(e,t,r){return t=u(t),n(e,l()?Reflect.construct(t,[],u(e).constructor):t.apply(e,r))}function l(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(l=function(){return!!e})()}var a=function(n){function u(e){var o,n,s=e.numberOfInputs,p=e.numberOfOutputs,l=e.outputChannelCount,a=e.processorOptions;r(this,u);var f=\"object\"===t(a)&&null!==a&&\"buffer\"in a?a.buffer:null;if(!(null===f||Array.isArray(f)&&f.every(function(e){return e instanceof Float32Array})))throw new Error(\"The buffer needs to be either null or an array with where each element is a Float32Array.\");if(1!==s)throw new Error(\"The numberOfInputs must be 1.\");if(1!==p)throw new Error(\"The numberOfOutputs must be 1.\");var c=null!==(n=null==f?void 0:f.length)&&void 0!==n?n:1;if(void 0===l||1!==l.length||c!==l[0])throw new Error(\"The outputChannelCount must match the number of channels of the buffer.\");var x=\"object\"===t(a)&&null!==a&&\"position\"in a?a.position:0;if(\"number\"!=typeof x)throw new Error('The position needs to be of type \"number\".');var d=\"object\"===t(a)&&null!==a&&\"timestamp\"in a?a.timestamp:0;if(\"number\"!=typeof d)throw new Error('The timestamp needs to be of type \"number\".');var y=\"object\"===t(a)&&null!==a&&\"velocity\"in a?a.velocity:0;if(\"number\"!=typeof y||![0,1].includes(y))throw new Error(\"The velocity needs to be either 0 or 1.\");return(o=i(this,u))._buffer=f,o._position=x,o._timestamp=d,o._velocity=y,o}return s(u,n),o(u,[{key:\"process\",value:function(t,r){var o=e(t,1)[0],n=e(r,1)[0];if((null==o?void 0:o.length)>0){var u=e(o,1)[0];u.length>1&&(this._position=Math.round(u[0]),this._timestamp=Math.round(u[1]),this._velocity=Math.round(u[2]))}if(null!==this._buffer)for(var s=this._buffer.length,p=0;p<s;p+=1)for(var i=this._buffer[p],l=n[p],a=0;a<128;a+=1){var f=this._position+(currentFrame-this._timestamp+a)*this._velocity;f>=0&&f<i.length&&(l[a]=i[f])}return!0}}])}(p(AudioWorkletProcessor));a.parameterDescriptors=[],registerProcessor(\"timed-audio-buffer-source-node-audio-worklet-processor\",a)}(r(715),r(738),r(383),r(579),r(452),r(72),r(511),r(837))},837(e,t,r){var o=r(72),n=r(636),u=r(691),s=r(646);function p(t){var r=\"function\"==typeof Map?new Map:void 0;return e.exports=p=function(e){if(null===e||!u(e))return e;if(\"function\"!=typeof e)throw new TypeError(\"Super expression must either be null or a function\");if(void 0!==r){if(r.has(e))return r.get(e);r.set(e,t)}function t(){return s(e,arguments,o(this).constructor)}return t.prototype=Object.create(e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),n(t,e)},e.exports.__esModule=!0,e.exports.default=e.exports,p(t)}e.exports=p,e.exports.__esModule=!0,e.exports.default=e.exports},987(e){e.exports=function(e){if(Array.isArray(e))return e},e.exports.__esModule=!0,e.exports.default=e.exports}},t={};function r(o){var n=t[o];if(void 0!==n)return n.exports;var u=t[o]={exports:{}};return e[o].call(u.exports,u,u.exports,r),u.exports}r.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},r.d=(e,t)=>{for(var o in t)r.o(t,o)&&!r.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{\"use strict\";r(783)})()})();"; // tslint:disable-line:max-line-length
77
77
 
78
+ var _excluded = ["buffer", "timingObject"];
79
+ 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; }
80
+ 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; }
78
81
  var blob = new Blob([worklet], {
79
82
  type: 'application/javascript; charset=utf-8'
80
83
  });
@@ -105,23 +108,23 @@
105
108
  var convertToContextFrame = createConvertToContextFrame(createPerformance());
106
109
  var subscribeToTimingObject = createSubscribeToTimingObject(createScheduleAudioBufferSourceNode(convertToContextFrame));
107
110
  function createTimedAudioBufferSourceNodeAudioWorkletNode(audioWorkletNodeConstructor, context, createAudioBufferSourceNode) {
108
- var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
111
+ var _ref2 = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {},
112
+ buffer = _ref2.buffer,
113
+ initialTimingObject = _ref2.timingObject,
114
+ options = _objectWithoutProperties(_ref2, _excluded);
109
115
  var _a, _b;
110
- var _options$buffer = options.buffer,
111
- buffer = _options$buffer === void 0 ? null : _options$buffer;
112
116
  if (buffer instanceof AudioBuffer && buffer.sampleRate !== context.sampleRate) {
113
117
  throw new TypeError('The AudioBuffer must have the same sampleRate as the AudioContext.');
114
118
  }
115
- var _options$timingObject = options.timingObject,
116
- timingObject = _options$timingObject === void 0 ? null : _options$timingObject;
117
- var _ref2 = (_a = timingObject === null || timingObject === void 0 ? void 0 : timingObject.query()) !== null && _a !== void 0 ? _a : {},
118
- _ref2$position = _ref2.position,
119
- position = _ref2$position === void 0 ? 0 : _ref2$position,
120
- _ref2$timestamp = _ref2.timestamp,
121
- timestamp = _ref2$timestamp === void 0 ? 0 : _ref2$timestamp,
122
- _ref2$velocity = _ref2.velocity,
123
- velocity = _ref2$velocity === void 0 ? 0 : _ref2$velocity;
124
- var audioWorkletNode = new audioWorkletNodeConstructor(context, 'timed-audio-buffer-source-node-audio-worklet-processor', {
119
+ var timingObject = initialTimingObject !== null && initialTimingObject !== void 0 ? initialTimingObject : null;
120
+ var _ref3 = (_a = timingObject === null || timingObject === void 0 ? void 0 : timingObject.query()) !== null && _a !== void 0 ? _a : {},
121
+ _ref3$position = _ref3.position,
122
+ position = _ref3$position === void 0 ? 0 : _ref3$position,
123
+ _ref3$timestamp = _ref3.timestamp,
124
+ timestamp = _ref3$timestamp === void 0 ? 0 : _ref3$timestamp,
125
+ _ref3$velocity = _ref3.velocity,
126
+ velocity = _ref3$velocity === void 0 ? 0 : _ref3$velocity;
127
+ var fixedOptions = {
125
128
  numberOfInputs: 1,
126
129
  numberOfOutputs: 1,
127
130
  outputChannelCount: [(_b = buffer === null || buffer === void 0 ? void 0 : buffer.numberOfChannels) !== null && _b !== void 0 ? _b : 1],
@@ -135,7 +138,8 @@
135
138
  timestamp: convertToContextFrame(context, timestamp),
136
139
  velocity: velocity
137
140
  }
138
- });
141
+ };
142
+ var audioWorkletNode = new audioWorkletNodeConstructor(context, 'timed-audio-buffer-source-node-audio-worklet-processor', _objectSpread(_objectSpread({}, options), fixedOptions));
139
143
  var removeListener = null;
140
144
  Object.defineProperties(audioWorkletNode, {
141
145
  port: {
package/package.json CHANGED
@@ -76,5 +76,5 @@
76
76
  "test:unit": "if [ \"$TYPE\" = \"\" -o \"$TYPE\" = \"unit\" ]; then npx vitest --config config/vitest/unit.ts; fi"
77
77
  },
78
78
  "types": "build/es2019/module.d.ts",
79
- "version": "2.1.31"
79
+ "version": "2.1.32"
80
80
  }
package/src/module.ts CHANGED
@@ -13,7 +13,12 @@ import { createPerformance } from './factories/performance';
13
13
  import { createScheduleAudioBufferSourceNode } from './factories/schedule-audio-buffer-source-node';
14
14
  import { createSubscribeToTimingObject } from './factories/subscribe-to-timing-object';
15
15
  import { ITimedAudioBufferSourceNodeAudioWorkletNode } from './interfaces';
16
- import { TAnyTimedAudioBufferSourceNodeAudioWorkletNodeOptions, TNativeTimedAudioBufferSourceNodeAudioWorkletNode } from './types';
16
+ import {
17
+ TAnyAudioWorkletNodeOptions,
18
+ TAnyTimedAudioBufferSourceNodeAudioWorkletNodeOptions,
19
+ TFixedOptions,
20
+ TNativeTimedAudioBufferSourceNodeAudioWorkletNode
21
+ } from './types';
17
22
  import { worklet } from './worklet/worklet';
18
23
 
19
24
  /*
@@ -44,38 +49,40 @@ export function createTimedAudioBufferSourceNodeAudioWorkletNode<T extends TCont
44
49
  createAudioBufferSourceNode: T extends TContext
45
50
  ? (context: TContext) => IAudioBufferSourceNode<TContext>
46
51
  : (context: TNativeContext) => TNativeAudioBufferSourceNode,
47
- options: Partial<TAnyTimedAudioBufferSourceNodeAudioWorkletNodeOptions<T>> = {}
52
+ { buffer, timingObject: initialTimingObject, ...options }: TAnyTimedAudioBufferSourceNodeAudioWorkletNodeOptions<T> = {}
48
53
  ): T extends TContext ? ITimedAudioBufferSourceNodeAudioWorkletNode<T> : TNativeTimedAudioBufferSourceNodeAudioWorkletNode {
49
54
  type TAnyAudioWorkletNode = T extends TContext ? IAudioWorkletNode<T> : TNativeAudioWorkletNode;
50
55
  type TAnyTimedAudioBufferSourceNodeAudioWorkletNode = T extends TContext
51
56
  ? ITimedAudioBufferSourceNodeAudioWorkletNode<T>
52
57
  : TNativeTimedAudioBufferSourceNodeAudioWorkletNode;
53
58
 
54
- const { buffer = null } = options;
55
-
56
59
  if (buffer instanceof AudioBuffer && buffer.sampleRate !== context.sampleRate) {
57
60
  throw new TypeError('The AudioBuffer must have the same sampleRate as the AudioContext.');
58
61
  }
59
62
 
60
- let { timingObject = null } = options;
63
+ let timingObject = initialTimingObject ?? null;
61
64
 
62
65
  const { position = 0, timestamp = 0, velocity = 0 } = timingObject?.query() ?? {};
66
+ const fixedOptions: Required<Pick<TAnyAudioWorkletNodeOptions<T>, TFixedOptions>> = {
67
+ numberOfInputs: 1,
68
+ numberOfOutputs: 1,
69
+ outputChannelCount: [buffer?.numberOfChannels ?? 1],
70
+ processorOptions: {
71
+ buffer:
72
+ buffer instanceof AudioBuffer
73
+ ? Array.from({ length: buffer.numberOfChannels }, (_, channel) => buffer.getChannelData(channel))
74
+ : null,
75
+ position,
76
+ timestamp: convertToContextFrame(context, timestamp),
77
+ velocity
78
+ }
79
+ };
63
80
  const audioWorkletNode: TAnyAudioWorkletNode = new (<any>audioWorkletNodeConstructor)(
64
81
  context,
65
82
  'timed-audio-buffer-source-node-audio-worklet-processor',
66
83
  {
67
- numberOfInputs: 1,
68
- numberOfOutputs: 1,
69
- outputChannelCount: [buffer?.numberOfChannels ?? 1],
70
- processorOptions: {
71
- buffer:
72
- buffer instanceof AudioBuffer
73
- ? Array.from({ length: buffer.numberOfChannels }, (_, channel) => buffer.getChannelData(channel))
74
- : null,
75
- position,
76
- timestamp: convertToContextFrame(context, timestamp),
77
- velocity
78
- }
84
+ ...options,
85
+ ...fixedOptions
79
86
  }
80
87
  );
81
88
 
@@ -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 = 'numberOfInputs' | 'numberOfOutputs' | 'outputChannelCount' | 'processorOptions';
@@ -1,4 +1,6 @@
1
+ export * from './any-audio-worklet-node-options';
1
2
  export * from './any-timed-audio-buffer-source-node-audio-worklet-node-options';
3
+ export * from './fixed-options';
2
4
  export * from './native-timed-audio-buffer-source-node-audio-worklet-node';
3
5
  export * from './native-timed-audio-buffer-source-node-audio-worklet-node-options';
4
6
  export * from './timed-audio-buffer-source-node-audio-worklet-node-options';
@@ -2,8 +2,8 @@ import { TNativeAudioBuffer, TNativeAudioWorkletNodeOptions } from 'standardized
2
2
  import { ITimingObject } from 'timing-object';
3
3
  import { TFixedOptions } from './fixed-options';
4
4
 
5
- export type TNativeTimedAudioBufferSourceNodeAudioWorkletNodeOptions = Omit<TNativeAudioWorkletNodeOptions, TFixedOptions> & {
6
- buffer: TNativeAudioBuffer;
5
+ export type TNativeTimedAudioBufferSourceNodeAudioWorkletNodeOptions = Partial<Omit<TNativeAudioWorkletNodeOptions, TFixedOptions>> & {
6
+ buffer?: TNativeAudioBuffer;
7
7
 
8
- timingObject: ITimingObject;
8
+ timingObject?: ITimingObject;
9
9
  };
@@ -2,8 +2,8 @@ import { IAudioBuffer, IAudioWorkletNodeOptions } from 'standardized-audio-conte
2
2
  import { ITimingObject } from 'timing-object';
3
3
  import { TFixedOptions } from './fixed-options';
4
4
 
5
- export type TTimedAudioBufferSourceNodeAudioWorkletNodeOptions = Omit<IAudioWorkletNodeOptions, TFixedOptions> & {
6
- buffer: IAudioBuffer;
5
+ export type TTimedAudioBufferSourceNodeAudioWorkletNodeOptions = Partial<Omit<IAudioWorkletNodeOptions, TFixedOptions>> & {
6
+ buffer?: IAudioBuffer;
7
7
 
8
- timingObject: ITimingObject;
8
+ timingObject?: ITimingObject;
9
9
  };