@codexo/exojs 0.6.11 → 0.7.11
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/CHANGELOG.md +1356 -0
- package/dist/esm/audio/AbstractMedia.d.ts +18 -0
- package/dist/esm/audio/AbstractMedia.js +66 -0
- package/dist/esm/audio/AbstractMedia.js.map +1 -1
- package/dist/esm/audio/AudioAnalyser.d.ts +62 -23
- package/dist/esm/audio/AudioAnalyser.js +261 -57
- package/dist/esm/audio/AudioAnalyser.js.map +1 -1
- package/dist/esm/audio/AudioBus.d.ts +45 -0
- package/dist/esm/audio/AudioBus.js +219 -0
- package/dist/esm/audio/AudioBus.js.map +1 -0
- package/dist/esm/audio/AudioFilter.d.ts +9 -0
- package/dist/esm/audio/AudioFilter.js +7 -0
- package/dist/esm/audio/AudioFilter.js.map +1 -0
- package/dist/esm/audio/AudioListener.d.ts +20 -0
- package/dist/esm/audio/AudioListener.js +86 -0
- package/dist/esm/audio/AudioListener.js.map +1 -0
- package/dist/esm/audio/AudioManager.d.ts +31 -0
- package/dist/esm/audio/AudioManager.js +102 -0
- package/dist/esm/audio/AudioManager.js.map +1 -0
- package/dist/esm/audio/BeatDetector.d.ts +121 -0
- package/dist/esm/audio/BeatDetector.js +936 -0
- package/dist/esm/audio/BeatDetector.js.map +1 -0
- package/dist/esm/audio/Envelope.d.ts +44 -0
- package/dist/esm/audio/Envelope.js +60 -0
- package/dist/esm/audio/Envelope.js.map +1 -0
- package/dist/esm/audio/Music.d.ts +8 -0
- package/dist/esm/audio/Music.js +33 -4
- package/dist/esm/audio/Music.js.map +1 -1
- package/dist/esm/audio/OscillatorSound.d.ts +98 -0
- package/dist/esm/audio/OscillatorSound.js +342 -0
- package/dist/esm/audio/OscillatorSound.js.map +1 -0
- package/dist/esm/audio/Sound.d.ts +94 -9
- package/dist/esm/audio/Sound.js +283 -117
- package/dist/esm/audio/Sound.js.map +1 -1
- package/dist/esm/audio/crossFade.d.ts +19 -0
- package/dist/esm/audio/crossFade.js +26 -0
- package/dist/esm/audio/crossFade.js.map +1 -0
- package/dist/esm/audio/dsp/fft.d.ts +22 -0
- package/dist/esm/audio/dsp/mel.d.ts +43 -0
- package/dist/esm/audio/dsp/tempogram.d.ts +51 -0
- package/dist/esm/audio/filters/ChorusFilter.d.ts +47 -0
- package/dist/esm/audio/filters/ChorusFilter.js +139 -0
- package/dist/esm/audio/filters/ChorusFilter.js.map +1 -0
- package/dist/esm/audio/filters/CompressorFilter.d.ts +31 -0
- package/dist/esm/audio/filters/CompressorFilter.js +97 -0
- package/dist/esm/audio/filters/CompressorFilter.js.map +1 -0
- package/dist/esm/audio/filters/DelayFilter.d.ts +23 -0
- package/dist/esm/audio/filters/DelayFilter.js +100 -0
- package/dist/esm/audio/filters/DelayFilter.js.map +1 -0
- package/dist/esm/audio/filters/DuckingFilter.d.ts +31 -0
- package/dist/esm/audio/filters/DuckingFilter.js +152 -0
- package/dist/esm/audio/filters/DuckingFilter.js.map +1 -0
- package/dist/esm/audio/filters/EqualizerFilter.d.ts +29 -0
- package/dist/esm/audio/filters/EqualizerFilter.js +94 -0
- package/dist/esm/audio/filters/EqualizerFilter.js.map +1 -0
- package/dist/esm/audio/filters/GranularFilter.d.ts +56 -0
- package/dist/esm/audio/filters/GranularFilter.js +170 -0
- package/dist/esm/audio/filters/GranularFilter.js.map +1 -0
- package/dist/esm/audio/filters/HighpassFilter.d.ts +19 -0
- package/dist/esm/audio/filters/HighpassFilter.js +62 -0
- package/dist/esm/audio/filters/HighpassFilter.js.map +1 -0
- package/dist/esm/audio/filters/LowpassFilter.d.ts +19 -0
- package/dist/esm/audio/filters/LowpassFilter.js +62 -0
- package/dist/esm/audio/filters/LowpassFilter.js.map +1 -0
- package/dist/esm/audio/filters/PitchShiftFilter.d.ts +42 -0
- package/dist/esm/audio/filters/PitchShiftFilter.js +130 -0
- package/dist/esm/audio/filters/PitchShiftFilter.js.map +1 -0
- package/dist/esm/audio/filters/ReverbFilter.d.ts +24 -0
- package/dist/esm/audio/filters/ReverbFilter.js +107 -0
- package/dist/esm/audio/filters/ReverbFilter.js.map +1 -0
- package/dist/esm/audio/filters/VocoderFilter.d.ts +38 -0
- package/dist/esm/audio/filters/VocoderFilter.js +163 -0
- package/dist/esm/audio/filters/VocoderFilter.js.map +1 -0
- package/dist/esm/audio/filters/WorkletFilter.d.ts +46 -0
- package/dist/esm/audio/filters/WorkletFilter.js +101 -0
- package/dist/esm/audio/filters/WorkletFilter.js.map +1 -0
- package/dist/esm/audio/filters/index.d.ts +12 -0
- package/dist/esm/audio/index.d.ts +15 -1
- package/dist/esm/audio/worklet/registerWorklet.d.ts +10 -0
- package/dist/esm/audio/worklet/registerWorklet.js +44 -0
- package/dist/esm/audio/worklet/registerWorklet.js.map +1 -0
- package/dist/esm/core/Application.d.ts +19 -0
- package/dist/esm/core/Application.js +76 -2
- package/dist/esm/core/Application.js.map +1 -1
- package/dist/esm/core/SceneNode.d.ts +9 -1
- package/dist/esm/core/SceneNode.js +44 -6
- package/dist/esm/core/SceneNode.js.map +1 -1
- package/dist/esm/core/Time.js +1 -1
- package/dist/esm/core/index.d.ts +0 -1
- package/dist/esm/debug/BoundingBoxesLayer.d.ts +18 -0
- package/dist/esm/debug/BoundingBoxesLayer.js +128 -0
- package/dist/esm/debug/BoundingBoxesLayer.js.map +1 -0
- package/dist/esm/debug/DebugLayer.d.ts +29 -0
- package/dist/esm/debug/DebugLayer.js +26 -0
- package/dist/esm/debug/DebugLayer.js.map +1 -0
- package/dist/esm/debug/DebugOverlay.d.ts +48 -0
- package/dist/esm/debug/DebugOverlay.js +117 -0
- package/dist/esm/debug/DebugOverlay.js.map +1 -0
- package/dist/esm/debug/HitTestLayer.d.ts +23 -0
- package/dist/esm/debug/HitTestLayer.js +109 -0
- package/dist/esm/debug/HitTestLayer.js.map +1 -0
- package/dist/esm/debug/PerformanceLayer.d.ts +21 -0
- package/dist/esm/debug/PerformanceLayer.js +175 -0
- package/dist/esm/debug/PerformanceLayer.js.map +1 -0
- package/dist/esm/debug/PointerStackLayer.d.ts +23 -0
- package/dist/esm/debug/PointerStackLayer.js +152 -0
- package/dist/esm/debug/PointerStackLayer.js.map +1 -0
- package/dist/esm/debug/index.d.ts +6 -0
- package/dist/esm/debug/index.js +7 -0
- package/dist/esm/debug/index.js.map +1 -0
- package/dist/esm/index.js +29 -2
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/input/InputManager.d.ts +10 -0
- package/dist/esm/input/InputManager.js +35 -5
- package/dist/esm/input/InputManager.js.map +1 -1
- package/dist/esm/input/InteractionEvent.d.ts +18 -0
- package/dist/esm/input/InteractionEvent.js +29 -0
- package/dist/esm/input/InteractionEvent.js.map +1 -0
- package/dist/esm/input/InteractionManager.d.ts +134 -0
- package/dist/esm/input/InteractionManager.js +546 -0
- package/dist/esm/input/InteractionManager.js.map +1 -0
- package/dist/esm/input/index.d.ts +2 -0
- package/dist/esm/input/interaction-hooks.d.ts +34 -0
- package/dist/esm/input/interaction-hooks.js +35 -0
- package/dist/esm/input/interaction-hooks.js.map +1 -0
- package/dist/esm/math/Circle.d.ts +12 -2
- package/dist/esm/math/Circle.js +82 -14
- package/dist/esm/math/Circle.js.map +1 -1
- package/dist/esm/math/Interval.js +1 -1
- package/dist/esm/math/ObservableVector.d.ts +2 -2
- package/dist/esm/math/ObservableVector.js +4 -2
- package/dist/esm/math/ObservableVector.js.map +1 -1
- package/dist/esm/math/Polygon.d.ts +15 -1
- package/dist/esm/math/Polygon.js +58 -6
- package/dist/esm/math/Polygon.js.map +1 -1
- package/dist/esm/math/Quadtree.d.ts +47 -0
- package/dist/esm/math/Quadtree.js +168 -0
- package/dist/esm/math/Quadtree.js.map +1 -0
- package/dist/esm/math/Random.js +1 -1
- package/dist/esm/math/Size.js +1 -1
- package/dist/esm/math/Vector.js +1 -1
- package/dist/esm/math/collision-detection.js +4 -1
- package/dist/esm/math/collision-detection.js.map +1 -1
- package/dist/esm/math/index.d.ts +2 -0
- package/dist/esm/math/swept-collision.d.ts +90 -0
- package/dist/esm/math/swept-collision.js +255 -0
- package/dist/esm/math/swept-collision.js.map +1 -0
- package/dist/esm/particles/ParticleSystem.js +1 -0
- package/dist/esm/particles/ParticleSystem.js.map +1 -1
- package/dist/esm/particles/affectors/TorqueAffector.js +1 -1
- package/dist/esm/rendering/Container.d.ts +1 -0
- package/dist/esm/rendering/Container.js +19 -0
- package/dist/esm/rendering/Container.js.map +1 -1
- package/dist/esm/rendering/RenderNode.d.ts +27 -0
- package/dist/esm/rendering/RenderNode.js +44 -0
- package/dist/esm/rendering/RenderNode.js.map +1 -1
- package/dist/esm/rendering/View.d.ts +6 -4
- package/dist/esm/rendering/View.js +12 -2
- package/dist/esm/rendering/View.js.map +1 -1
- package/dist/esm/rendering/filters/WebGl2ShaderFilter.d.ts +109 -0
- package/dist/esm/rendering/filters/WebGl2ShaderFilter.js +268 -0
- package/dist/esm/rendering/filters/WebGl2ShaderFilter.js.map +1 -0
- package/dist/esm/rendering/filters/WebGpuShaderFilter.d.ts +111 -0
- package/dist/esm/rendering/filters/WebGpuShaderFilter.js +397 -0
- package/dist/esm/rendering/filters/WebGpuShaderFilter.js.map +1 -0
- package/dist/esm/rendering/index.d.ts +3 -0
- package/dist/esm/rendering/mesh/Mesh.js +1 -0
- package/dist/esm/rendering/mesh/Mesh.js.map +1 -1
- package/dist/esm/rendering/shader/upgradeFragmentShaderToGl300.d.ts +34 -0
- package/dist/esm/rendering/shader/upgradeFragmentShaderToGl300.js +60 -0
- package/dist/esm/rendering/shader/upgradeFragmentShaderToGl300.js.map +1 -0
- package/dist/esm/rendering/sprite/Sprite.d.ts +6 -1
- package/dist/esm/rendering/sprite/Sprite.js +41 -19
- package/dist/esm/rendering/sprite/Sprite.js.map +1 -1
- package/dist/esm/rendering/video/Video.d.ts +4 -0
- package/dist/esm/rendering/video/Video.js +32 -4
- package/dist/esm/rendering/video/Video.js.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2Backend.d.ts +4 -4
- package/dist/esm/rendering/webgl2/WebGl2Backend.js +7 -16
- package/dist/esm/rendering/webgl2/WebGl2Backend.js.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuBackend.d.ts +10 -8
- package/dist/esm/rendering/webgpu/WebGpuBackend.js +30 -40
- package/dist/esm/rendering/webgpu/WebGpuBackend.js.map +1 -1
- package/dist/exo.esm.js +8021 -2459
- package/dist/exo.esm.js.map +1 -1
- package/package.json +14 -2
- package/dist/esm/core/Quadtree.d.ts +0 -20
- package/dist/esm/core/Quadtree.js +0 -86
- package/dist/esm/core/Quadtree.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OscillatorSound.js","sources":["../../../../src/audio/OscillatorSound.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,27 @@
|
|
|
1
|
+
import { Vector } from '@/math/Vector';
|
|
1
2
|
import type { PlaybackOptions } from '@/core/types';
|
|
2
3
|
import { AbstractMedia } from '@/audio/AbstractMedia';
|
|
4
|
+
import type { AudioBus } from '@/audio/AudioBus';
|
|
5
|
+
/**
|
|
6
|
+
* Eviction strategy used when the pool is full and a new play is requested.
|
|
7
|
+
*
|
|
8
|
+
* At the per-Sound level all pooled instances share the same priority, so
|
|
9
|
+
* `LowestPriority` degenerates to `FirstInFirstOut` in V1. The enum is
|
|
10
|
+
* forward-compatible with a future global voice manager that culls across
|
|
11
|
+
* multiple Sound instances.
|
|
12
|
+
*/
|
|
13
|
+
export declare enum SoundPoolStrategy {
|
|
14
|
+
/** Evict the oldest (first-started) source. Default. */
|
|
15
|
+
FirstInFirstOut = "fifo",
|
|
16
|
+
/** Evict the source closest to its natural end (shortest remaining time). */
|
|
17
|
+
LeastRecentlyUsed = "lru",
|
|
18
|
+
/**
|
|
19
|
+
* Evict the source with the lowest priority.
|
|
20
|
+
* Within a single Sound all instances share the same priority, so this
|
|
21
|
+
* degenerates to FirstInFirstOut in V1.
|
|
22
|
+
*/
|
|
23
|
+
LowestPriority = "priority"
|
|
24
|
+
}
|
|
3
25
|
export interface AudioSpriteClip {
|
|
4
26
|
start: number;
|
|
5
27
|
end: number;
|
|
@@ -7,8 +29,21 @@ export interface AudioSpriteClip {
|
|
|
7
29
|
}
|
|
8
30
|
export interface SoundOptions extends Partial<PlaybackOptions> {
|
|
9
31
|
poolSize?: number;
|
|
32
|
+
poolStrategy?: SoundPoolStrategy;
|
|
33
|
+
priority?: number;
|
|
10
34
|
sprites?: Readonly<Record<string, AudioSpriteClip>>;
|
|
11
35
|
}
|
|
36
|
+
export interface PlayOptions extends Partial<PlaybackOptions> {
|
|
37
|
+
bus?: AudioBus;
|
|
38
|
+
/**
|
|
39
|
+
* When `true`, all currently-playing instances of this sound are stopped
|
|
40
|
+
* before the new one starts (singleton-replace mode). Useful for
|
|
41
|
+
* non-overlapping playback such as UI confirmation chimes.
|
|
42
|
+
*
|
|
43
|
+
* Default: `false` (multi-instance / pooled mode).
|
|
44
|
+
*/
|
|
45
|
+
replace?: boolean;
|
|
46
|
+
}
|
|
12
47
|
export declare class Sound extends AbstractMedia {
|
|
13
48
|
private readonly _audioBuffer;
|
|
14
49
|
private readonly _pooledSources;
|
|
@@ -16,15 +51,40 @@ export declare class Sound extends AbstractMedia {
|
|
|
16
51
|
private readonly _sprites;
|
|
17
52
|
private _audioSetup;
|
|
18
53
|
private _paused;
|
|
19
|
-
private _startTime;
|
|
20
|
-
private _currentTime;
|
|
21
|
-
private _sourceNode;
|
|
22
54
|
private _poolSize;
|
|
55
|
+
private _poolStrategy;
|
|
56
|
+
private _priority;
|
|
57
|
+
private _position;
|
|
58
|
+
private _velocity;
|
|
59
|
+
private _pannerNode;
|
|
23
60
|
get paused(): boolean;
|
|
24
61
|
set paused(paused: boolean);
|
|
25
62
|
get analyserTarget(): GainNode | null;
|
|
26
63
|
get poolSize(): number;
|
|
27
64
|
set poolSize(poolSize: number);
|
|
65
|
+
/**
|
|
66
|
+
* The eviction strategy used when the pool is at capacity.
|
|
67
|
+
* @default SoundPoolStrategy.FirstInFirstOut
|
|
68
|
+
*/
|
|
69
|
+
get poolStrategy(): SoundPoolStrategy;
|
|
70
|
+
set poolStrategy(strategy: SoundPoolStrategy);
|
|
71
|
+
/**
|
|
72
|
+
* Sound priority. Used by the `LowestPriority` pool strategy.
|
|
73
|
+
* Higher values indicate higher priority (less likely to be evicted).
|
|
74
|
+
* @default 0
|
|
75
|
+
*/
|
|
76
|
+
get priority(): number;
|
|
77
|
+
set priority(value: number);
|
|
78
|
+
get position(): Vector | null;
|
|
79
|
+
set position(value: {
|
|
80
|
+
x: number;
|
|
81
|
+
y: number;
|
|
82
|
+
} | Vector | null);
|
|
83
|
+
get velocity(): Vector | null;
|
|
84
|
+
set velocity(value: {
|
|
85
|
+
x: number;
|
|
86
|
+
y: number;
|
|
87
|
+
} | Vector | null);
|
|
28
88
|
constructor(audioBuffer: AudioBuffer, options?: SoundOptions);
|
|
29
89
|
setVolume(value: number): this;
|
|
30
90
|
setLoop(loop: boolean): this;
|
|
@@ -37,20 +97,45 @@ export declare class Sound extends AbstractMedia {
|
|
|
37
97
|
defineSprite(name: string, clip: AudioSpriteClip): this;
|
|
38
98
|
hasSprite(name: string): boolean;
|
|
39
99
|
removeSprite(name: string): this;
|
|
40
|
-
|
|
41
|
-
|
|
100
|
+
/**
|
|
101
|
+
* Play this sound. By default, creates a new pooled instance allowing
|
|
102
|
+
* multiple concurrent plays up to `poolSize`. Pass `{ replace: true }` to
|
|
103
|
+
* stop all prior instances of this sound before starting a new one
|
|
104
|
+
* (singleton-replace mode — useful for non-overlapping playback like UI
|
|
105
|
+
* confirmation chimes).
|
|
106
|
+
*/
|
|
107
|
+
play(options?: PlayOptions): this;
|
|
42
108
|
playSprite(name: string, options?: Partial<PlaybackOptions>): this;
|
|
43
|
-
stopPooled(): this;
|
|
44
109
|
pause(options?: Partial<PlaybackOptions>): this;
|
|
110
|
+
protected _getAudioSetup(): {
|
|
111
|
+
audioContext: AudioContext;
|
|
112
|
+
gainNode: GainNode;
|
|
113
|
+
} | null;
|
|
114
|
+
protected _defaultBus(): AudioBus;
|
|
115
|
+
protected _disconnectFromBus(): void;
|
|
116
|
+
protected _connectToBus(): void;
|
|
45
117
|
destroy(): void;
|
|
46
|
-
|
|
118
|
+
/** Internal: called by AudioManager.update() once per frame for spatial sounds. */
|
|
119
|
+
_tickSpatial(): void;
|
|
120
|
+
private _setupSpatial;
|
|
121
|
+
private _teardownSpatial;
|
|
47
122
|
private setupWithAudioContext;
|
|
48
123
|
private _enqueuePooledPlay;
|
|
49
124
|
private _flushQueuedPooledPlays;
|
|
50
125
|
private _playPooledNow;
|
|
126
|
+
/**
|
|
127
|
+
* Pick the index within `_pooledSources` of the source to evict.
|
|
128
|
+
* The returned index is always valid (0 .. length-1).
|
|
129
|
+
*/
|
|
130
|
+
private _pickEvictionVictim;
|
|
131
|
+
/**
|
|
132
|
+
* Returns the index of the source with the smallest remaining playback
|
|
133
|
+
* time (i.e. closest to its natural end). Used for `LeastRecentlyUsed`.
|
|
134
|
+
*/
|
|
135
|
+
private _pickClosestToEnd;
|
|
51
136
|
private _trimPooledSources;
|
|
52
|
-
|
|
53
|
-
private
|
|
137
|
+
/** Stop all pooled sources immediately (used by `replace: true` and `pause()`). */
|
|
138
|
+
private _stopAllPooled;
|
|
54
139
|
private _stopSourceNode;
|
|
55
140
|
private _createBufferSourceNode;
|
|
56
141
|
}
|