react-native-audio-api 0.4.0 → 0.4.2

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 (83) hide show
  1. package/android/src/main/cpp/core/AudioPlayer.cpp +38 -11
  2. package/android/src/main/cpp/core/AudioPlayer.h +6 -2
  3. package/common/cpp/HostObjects/AnalyserNodeHostObject.h +19 -6
  4. package/common/cpp/HostObjects/AudioAPIInstallerHostObject.h +11 -3
  5. package/common/cpp/HostObjects/AudioBufferHostObject.h +6 -5
  6. package/common/cpp/HostObjects/AudioNodeHostObject.h +5 -0
  7. package/common/cpp/HostObjects/AudioParamHostObject.h +2 -1
  8. package/common/cpp/HostObjects/BaseAudioContextHostObject.h +4 -3
  9. package/common/cpp/core/AnalyserNode.cpp +56 -34
  10. package/common/cpp/core/AnalyserNode.h +51 -19
  11. package/common/cpp/core/AudioArray.cpp +14 -14
  12. package/common/cpp/core/AudioArray.h +16 -15
  13. package/common/cpp/core/AudioBuffer.cpp +12 -9
  14. package/common/cpp/core/AudioBuffer.h +9 -8
  15. package/common/cpp/core/AudioBufferSourceNode.cpp +25 -20
  16. package/common/cpp/core/AudioBufferSourceNode.h +1 -0
  17. package/common/cpp/core/AudioBus.cpp +22 -26
  18. package/common/cpp/core/AudioBus.h +24 -24
  19. package/common/cpp/core/AudioContext.cpp +41 -1
  20. package/common/cpp/core/AudioContext.h +17 -0
  21. package/common/cpp/core/AudioDecoder.h +2 -2
  22. package/common/cpp/core/AudioDestinationNode.cpp +1 -1
  23. package/common/cpp/core/AudioDestinationNode.h +2 -1
  24. package/common/cpp/core/AudioNode.cpp +22 -8
  25. package/common/cpp/core/AudioNode.h +10 -10
  26. package/common/cpp/core/AudioNodeManager.cpp +1 -3
  27. package/common/cpp/core/AudioNodeManager.h +1 -1
  28. package/common/cpp/core/AudioParam.cpp +6 -3
  29. package/common/cpp/core/AudioParam.h +2 -1
  30. package/common/cpp/core/AudioScheduledSourceNode.cpp +1 -1
  31. package/common/cpp/core/AudioScheduledSourceNode.h +1 -0
  32. package/common/cpp/core/BaseAudioContext.cpp +7 -43
  33. package/common/cpp/core/BaseAudioContext.h +10 -21
  34. package/common/cpp/core/BiquadFilterNode.cpp +13 -14
  35. package/common/cpp/core/Constants.h +26 -12
  36. package/common/cpp/core/GainNode.cpp +1 -1
  37. package/common/cpp/core/OscillatorNode.cpp +4 -3
  38. package/common/cpp/core/PeriodicWave.cpp +7 -6
  39. package/common/cpp/core/PeriodicWave.h +4 -4
  40. package/common/cpp/core/StereoPannerNode.cpp +4 -4
  41. package/common/cpp/jsi/JsiHostObject.h +1 -1
  42. package/common/cpp/jsi/JsiPromise.h +1 -0
  43. package/common/cpp/utils/AudioUtils.cpp +2 -2
  44. package/common/cpp/utils/AudioUtils.h +2 -2
  45. package/common/cpp/utils/Locker.h +2 -2
  46. package/common/cpp/utils/VectorMath.cpp +1 -1
  47. package/ios/core/AudioPlayer.h +3 -2
  48. package/ios/core/AudioPlayer.m +49 -15
  49. package/ios/core/IOSAudioPlayer.h +4 -2
  50. package/ios/core/IOSAudioPlayer.mm +47 -11
  51. package/lib/module/core/AnalyserNode.js +6 -0
  52. package/lib/module/core/AnalyserNode.js.map +1 -1
  53. package/lib/module/core/AudioContext.js +2 -2
  54. package/lib/module/core/AudioContext.js.map +1 -1
  55. package/lib/module/core/AudioNode.js +5 -5
  56. package/lib/module/core/AudioNode.js.map +1 -1
  57. package/lib/module/index.js +16 -6
  58. package/lib/module/index.js.map +1 -1
  59. package/lib/module/index.native.js +1 -1
  60. package/lib/module/index.native.js.map +1 -1
  61. package/lib/typescript/core/AnalyserNode.d.ts +3 -0
  62. package/lib/typescript/core/AnalyserNode.d.ts.map +1 -1
  63. package/lib/typescript/core/AudioContext.d.ts +1 -1
  64. package/lib/typescript/core/AudioContext.d.ts.map +1 -1
  65. package/lib/typescript/core/AudioNode.d.ts +2 -2
  66. package/lib/typescript/core/AudioNode.d.ts.map +1 -1
  67. package/lib/typescript/core/types.d.ts +1 -0
  68. package/lib/typescript/core/types.d.ts.map +1 -1
  69. package/lib/typescript/index.d.ts +6 -4
  70. package/lib/typescript/index.d.ts.map +1 -1
  71. package/lib/typescript/index.native.d.ts +1 -1
  72. package/lib/typescript/index.native.d.ts.map +1 -1
  73. package/lib/typescript/interfaces.d.ts +3 -2
  74. package/lib/typescript/interfaces.d.ts.map +1 -1
  75. package/package.json +1 -1
  76. package/src/core/AnalyserNode.ts +9 -0
  77. package/src/core/AudioContext.ts +2 -2
  78. package/src/core/AudioNode.ts +5 -5
  79. package/src/core/types.ts +2 -0
  80. package/src/index.native.ts +1 -0
  81. package/src/index.ts +26 -7
  82. package/src/interfaces.ts +3 -1
  83. package/src/specs/global.d.ts +1 -1
@@ -1,4 +1,4 @@
1
- import { ContextState, BiquadFilterType, OscillatorType, ChannelCountMode, ChannelInterpretation } from './core/types';
1
+ import { ContextState, BiquadFilterType, OscillatorType, ChannelCountMode, ChannelInterpretation, WindowType } from './core/types';
2
2
  export interface IBaseAudioContext {
3
3
  readonly destination: IAudioDestinationNode;
4
4
  readonly state: ContextState;
@@ -25,7 +25,7 @@ export interface IAudioNode {
25
25
  readonly channelCountMode: ChannelCountMode;
26
26
  readonly channelInterpretation: ChannelInterpretation;
27
27
  connect: (node: IAudioNode) => void;
28
- disconnect: (node: IAudioNode) => void;
28
+ disconnect: (node?: IAudioNode) => void;
29
29
  }
30
30
  export interface IGainNode extends IAudioNode {
31
31
  readonly gain: IAudioParam;
@@ -91,6 +91,7 @@ export interface IAnalyserNode extends IAudioNode {
91
91
  minDecibels: number;
92
92
  maxDecibels: number;
93
93
  smoothingTimeConstant: number;
94
+ window: WindowType;
94
95
  getFloatFrequencyData: (array: number[]) => void;
95
96
  getByteFrequencyData: (array: number[]) => void;
96
97
  getFloatTimeDomainData: (array: number[]) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../src/interfaces.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../src/interfaces.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-audio-api",
3
- "version": "0.4.0",
3
+ "version": "0.4.2",
4
4
  "description": "react-native-audio-api provides system for controlling audio in React Native environment compatible with Web Audio API specification",
5
5
  "main": "lib/commonjs/index",
6
6
  "module": "lib/module/index",
@@ -1,5 +1,6 @@
1
1
  import { IndexSizeError } from '../errors';
2
2
  import { IAnalyserNode } from '../interfaces';
3
+ import { WindowType } from './types';
3
4
  import AudioNode from './AudioNode';
4
5
 
5
6
  export default class AnalyserNode extends AudioNode {
@@ -63,6 +64,14 @@ export default class AnalyserNode extends AudioNode {
63
64
  (this.node as IAnalyserNode).smoothingTimeConstant = value;
64
65
  }
65
66
 
67
+ public get window(): WindowType {
68
+ return (this.node as IAnalyserNode).window;
69
+ }
70
+
71
+ public set window(value: WindowType) {
72
+ (this.node as IAnalyserNode).window = value;
73
+ }
74
+
66
75
  public get frequencyBinCount(): number {
67
76
  return (this.node as IAnalyserNode).frequencyBinCount;
68
77
  }
@@ -2,8 +2,8 @@ import { IAudioContext } from '../interfaces';
2
2
  import BaseAudioContext from './BaseAudioContext';
3
3
 
4
4
  export default class AudioContext extends BaseAudioContext {
5
- constructor() {
6
- super(global.__AudioAPIInstaller.createAudioContext());
5
+ constructor(sampleRate?: number) {
6
+ super(global.__AudioAPIInstaller.createAudioContext(sampleRate));
7
7
  }
8
8
 
9
9
  close(): void {
@@ -22,17 +22,17 @@ export default class AudioNode {
22
22
  this.channelInterpretation = this.node.channelInterpretation;
23
23
  }
24
24
 
25
- public connect(node: AudioNode): void {
26
- if (this.context !== node.context) {
25
+ public connect(destination: AudioNode): void {
26
+ if (this.context !== destination.context) {
27
27
  throw new InvalidAccessError(
28
28
  'The AudioNodes are from different BaseAudioContexts'
29
29
  );
30
30
  }
31
31
 
32
- this.node.connect(node.node);
32
+ this.node.connect(destination.node);
33
33
  }
34
34
 
35
- public disconnect(node: AudioNode): void {
36
- this.node.disconnect(node.node);
35
+ public disconnect(destination?: AudioNode): void {
36
+ this.node.disconnect(destination?.node);
37
37
  }
38
38
  }
package/src/core/types.ts CHANGED
@@ -24,3 +24,5 @@ export type OscillatorType =
24
24
  export interface PeriodicWaveConstraints {
25
25
  disableNormalization: boolean;
26
26
  }
27
+
28
+ export type WindowType = 'blackman' | 'hann';
@@ -23,4 +23,5 @@ export {
23
23
  ChannelCountMode,
24
24
  ChannelInterpretation,
25
25
  ContextState,
26
+ WindowType,
26
27
  } from './core/types';
package/src/index.ts CHANGED
@@ -1,4 +1,8 @@
1
- import { ContextState, PeriodicWaveConstraints } from './core/types';
1
+ import {
2
+ ContextState,
3
+ PeriodicWaveConstraints,
4
+ WindowType,
5
+ } from './core/types';
2
6
 
3
7
  export class AudioBuffer {
4
8
  readonly length: number;
@@ -97,16 +101,21 @@ export class AudioNode {
97
101
  this.channelInterpretation = this.node.channelInterpretation;
98
102
  }
99
103
 
100
- public connect(node: AudioNode): void {
101
- if (this.context !== node.context) {
104
+ public connect(destination: AudioNode): void {
105
+ if (this.context !== destination.context) {
102
106
  throw new Error('The AudioNodes are from different BaseAudioContexts');
103
107
  }
104
108
 
105
- this.node.connect(node.node);
109
+ this.node.connect(destination.node);
106
110
  }
107
111
 
108
- public disconnect(node: AudioNode): void {
109
- this.node.disconnect(node.node);
112
+ public disconnect(destination?: AudioNode): void {
113
+ if (destination === undefined) {
114
+ this.node.disconnect();
115
+ return;
116
+ }
117
+
118
+ this.node.disconnect(destination.node);
110
119
  }
111
120
  }
112
121
 
@@ -127,6 +136,16 @@ export class AnalyserNode extends AudioNode {
127
136
  this.smoothingTimeConstant = node.smoothingTimeConstant;
128
137
  }
129
138
 
139
+ public get window(): WindowType {
140
+ return 'blackman';
141
+ }
142
+
143
+ public set window(value: WindowType) {
144
+ console.log(
145
+ 'React Native Audio API: setting window is not supported on web'
146
+ );
147
+ }
148
+
130
149
  public getByteFrequencyData(array: number[]): void {
131
150
  (this.node as globalThis.AnalyserNode).getByteFrequencyData(
132
151
  new Uint8Array(array)
@@ -415,7 +434,7 @@ export class AudioContext {
415
434
  readonly destination: AudioDestinationNode;
416
435
  readonly sampleRate: number;
417
436
 
418
- constructor() {
437
+ constructor(_sampleRate?: number) {
419
438
  this.context = new window.AudioContext();
420
439
 
421
440
  this.sampleRate = this.context.sampleRate;
package/src/interfaces.ts CHANGED
@@ -4,6 +4,7 @@ import {
4
4
  OscillatorType,
5
5
  ChannelCountMode,
6
6
  ChannelInterpretation,
7
+ WindowType,
7
8
  } from './core/types';
8
9
 
9
10
  export interface IBaseAudioContext {
@@ -44,7 +45,7 @@ export interface IAudioNode {
44
45
  readonly channelInterpretation: ChannelInterpretation;
45
46
 
46
47
  connect: (node: IAudioNode) => void;
47
- disconnect: (node: IAudioNode) => void;
48
+ disconnect: (node?: IAudioNode) => void;
48
49
  }
49
50
 
50
51
  export interface IGainNode extends IAudioNode {
@@ -144,6 +145,7 @@ export interface IAnalyserNode extends IAudioNode {
144
145
  minDecibels: number;
145
146
  maxDecibels: number;
146
147
  smoothingTimeConstant: number;
148
+ window: WindowType;
147
149
 
148
150
  getFloatFrequencyData: (array: number[]) => void;
149
151
  getByteFrequencyData: (array: number[]) => void;
@@ -2,7 +2,7 @@
2
2
  import type { IAudioContext } from '../interfaces';
3
3
 
4
4
  type AudioAPIInstaller = {
5
- createAudioContext: () => IAudioContext;
5
+ createAudioContext: (sampleRate?: number) => IAudioContext;
6
6
  };
7
7
 
8
8
  declare global {