@codexo/exojs 0.7.13 → 0.8.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.
- package/CHANGELOG.md +637 -124
- package/README.md +19 -19
- package/dist/esm/animation/Easing.js +13 -21
- package/dist/esm/animation/Easing.js.map +1 -1
- package/dist/esm/animation/Tween.d.ts +3 -3
- package/dist/esm/animation/Tween.js +7 -5
- package/dist/esm/animation/Tween.js.map +1 -1
- package/dist/esm/animation/TweenManager.js +1 -1
- package/dist/esm/animation/TweenManager.js.map +1 -1
- package/dist/esm/animation/types.js.map +1 -1
- package/dist/esm/audio/AbstractMedia.d.ts +1 -1
- package/dist/esm/audio/AbstractMedia.js +1 -1
- package/dist/esm/audio/AbstractMedia.js.map +1 -1
- package/dist/esm/audio/AudioAnalyser.d.ts +1 -1
- package/dist/esm/audio/AudioAnalyser.js +2 -2
- package/dist/esm/audio/AudioAnalyser.js.map +1 -1
- package/dist/esm/audio/AudioBus.d.ts +1 -1
- package/dist/esm/audio/AudioBus.js.map +1 -1
- package/dist/esm/audio/AudioFilter.js +3 -1
- package/dist/esm/audio/AudioFilter.js.map +1 -1
- package/dist/esm/audio/AudioListener.d.ts +1 -1
- package/dist/esm/audio/AudioListener.js +5 -3
- package/dist/esm/audio/AudioListener.js.map +1 -1
- package/dist/esm/audio/AudioManager.js.map +1 -1
- package/dist/esm/audio/BeatDetector.d.ts +4 -4
- package/dist/esm/audio/BeatDetector.js +68 -44
- package/dist/esm/audio/BeatDetector.js.map +1 -1
- package/dist/esm/audio/Envelope.d.ts +1 -1
- package/dist/esm/audio/Envelope.js +2 -2
- package/dist/esm/audio/Envelope.js.map +1 -1
- package/dist/esm/audio/Music.d.ts +1 -1
- package/dist/esm/audio/Music.js +1 -1
- package/dist/esm/audio/Music.js.map +1 -1
- package/dist/esm/audio/OscillatorSound.d.ts +2 -2
- package/dist/esm/audio/OscillatorSound.js.map +1 -1
- package/dist/esm/audio/Sound.d.ts +40 -2
- package/dist/esm/audio/Sound.js +69 -9
- package/dist/esm/audio/Sound.js.map +1 -1
- package/dist/esm/audio/audio-context.js +1 -1
- package/dist/esm/audio/audio-context.js.map +1 -1
- package/dist/esm/audio/crossFade.js +1 -1
- package/dist/esm/audio/crossFade.js.map +1 -1
- package/dist/esm/audio/dsp/mel.d.ts +2 -2
- package/dist/esm/audio/dsp/tempogram.d.ts +2 -2
- package/dist/esm/audio/filters/ChorusFilter.js +12 -4
- package/dist/esm/audio/filters/ChorusFilter.js.map +1 -1
- package/dist/esm/audio/filters/CompressorFilter.d.ts +9 -0
- package/dist/esm/audio/filters/CompressorFilter.js +11 -0
- package/dist/esm/audio/filters/CompressorFilter.js.map +1 -1
- package/dist/esm/audio/filters/DelayFilter.js.map +1 -1
- package/dist/esm/audio/filters/DuckingFilter.d.ts +1 -1
- package/dist/esm/audio/filters/DuckingFilter.js +13 -5
- package/dist/esm/audio/filters/DuckingFilter.js.map +1 -1
- package/dist/esm/audio/filters/EqualizerFilter.js.map +1 -1
- package/dist/esm/audio/filters/GranularFilter.js +30 -14
- package/dist/esm/audio/filters/GranularFilter.js.map +1 -1
- package/dist/esm/audio/filters/HighpassFilter.js.map +1 -1
- package/dist/esm/audio/filters/LowpassFilter.js.map +1 -1
- package/dist/esm/audio/filters/PitchShiftFilter.js +14 -10
- package/dist/esm/audio/filters/PitchShiftFilter.js.map +1 -1
- package/dist/esm/audio/filters/ReverbFilter.js.map +1 -1
- package/dist/esm/audio/filters/VocoderFilter.d.ts +2 -2
- package/dist/esm/audio/filters/VocoderFilter.js +20 -12
- package/dist/esm/audio/filters/VocoderFilter.js.map +1 -1
- package/dist/esm/audio/filters/WorkletFilter.js +5 -6
- package/dist/esm/audio/filters/WorkletFilter.js.map +1 -1
- package/dist/esm/audio/filters/index.d.ts +7 -7
- package/dist/esm/audio/index.d.ts +9 -9
- package/dist/esm/audio/worklet/registerWorklet.js +7 -3
- package/dist/esm/audio/worklet/registerWorklet.js.map +1 -1
- package/dist/esm/core/Application.d.ts +13 -13
- package/dist/esm/core/Application.js +24 -16
- package/dist/esm/core/Application.js.map +1 -1
- package/dist/esm/core/Bounds.d.ts +1 -1
- package/dist/esm/core/Bounds.js +1 -3
- package/dist/esm/core/Bounds.js.map +1 -1
- package/dist/esm/core/Clock.js +1 -1
- package/dist/esm/core/Clock.js.map +1 -1
- package/dist/esm/core/Color.js +2 -5
- package/dist/esm/core/Color.js.map +1 -1
- package/dist/esm/core/Scene.d.ts +10 -10
- package/dist/esm/core/Scene.js +1 -1
- package/dist/esm/core/Scene.js.map +1 -1
- package/dist/esm/core/SceneManager.d.ts +4 -4
- package/dist/esm/core/SceneManager.js +39 -33
- package/dist/esm/core/SceneManager.js.map +1 -1
- package/dist/esm/core/SceneNode.d.ts +8 -8
- package/dist/esm/core/SceneNode.js +39 -29
- package/dist/esm/core/SceneNode.js.map +1 -1
- package/dist/esm/core/Signal.d.ts +3 -3
- package/dist/esm/core/Signal.js +3 -3
- package/dist/esm/core/Signal.js.map +1 -1
- package/dist/esm/core/Time.js +6 -6
- package/dist/esm/core/Time.js.map +1 -1
- package/dist/esm/core/Timer.d.ts +1 -1
- package/dist/esm/core/Timer.js +1 -1
- package/dist/esm/core/Timer.js.map +1 -1
- package/dist/esm/core/capabilities.js +2 -4
- package/dist/esm/core/capabilities.js.map +1 -1
- package/dist/esm/core/index.d.ts +2 -2
- package/dist/esm/core/utils.d.ts +4 -4
- package/dist/esm/core/utils.js +10 -10
- package/dist/esm/core/utils.js.map +1 -1
- package/dist/esm/debug/BoundingBoxesLayer.d.ts +3 -3
- package/dist/esm/debug/BoundingBoxesLayer.js +6 -13
- package/dist/esm/debug/BoundingBoxesLayer.js.map +1 -1
- package/dist/esm/debug/DebugLayer.d.ts +1 -1
- package/dist/esm/debug/DebugLayer.js.map +1 -1
- package/dist/esm/debug/DebugOverlay.d.ts +2 -2
- package/dist/esm/debug/DebugOverlay.js +2 -2
- package/dist/esm/debug/DebugOverlay.js.map +1 -1
- package/dist/esm/debug/HitTestLayer.d.ts +3 -3
- package/dist/esm/debug/HitTestLayer.js +3 -10
- package/dist/esm/debug/HitTestLayer.js.map +1 -1
- package/dist/esm/debug/PerformanceLayer.d.ts +2 -2
- package/dist/esm/debug/PerformanceLayer.js +6 -6
- package/dist/esm/debug/PerformanceLayer.js.map +1 -1
- package/dist/esm/debug/PointerStackLayer.d.ts +3 -3
- package/dist/esm/debug/PointerStackLayer.js +3 -3
- package/dist/esm/debug/PointerStackLayer.js.map +1 -1
- package/dist/esm/debug/index.d.ts +3 -3
- package/dist/esm/debug/index.js +3 -3
- package/dist/esm/index.d.ts +1 -1
- package/dist/esm/index.js +106 -84
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/input/ArcadeStickGamepadMapping.js.map +1 -1
- package/dist/esm/input/GameCubeGamepadMapping.d.ts +1 -1
- package/dist/esm/input/GameCubeGamepadMapping.js +1 -1
- package/dist/esm/input/GameCubeGamepadMapping.js.map +1 -1
- package/dist/esm/input/Gamepad.d.ts +7 -7
- package/dist/esm/input/Gamepad.js +10 -6
- package/dist/esm/input/Gamepad.js.map +1 -1
- package/dist/esm/input/GamepadAxis.js +1 -1
- package/dist/esm/input/GamepadAxis.js.map +1 -1
- package/dist/esm/input/GamepadButton.js +1 -1
- package/dist/esm/input/GamepadButton.js.map +1 -1
- package/dist/esm/input/GamepadDefinitions.d.ts +4 -4
- package/dist/esm/input/GamepadDefinitions.js +12 -14
- package/dist/esm/input/GamepadDefinitions.js.map +1 -1
- package/dist/esm/input/GamepadMapping.d.ts +5 -5
- package/dist/esm/input/GamepadMapping.js.map +1 -1
- package/dist/esm/input/GamepadPromptLayouts.d.ts +2 -2
- package/dist/esm/input/GamepadPromptLayouts.js +8 -8
- package/dist/esm/input/GamepadPromptLayouts.js.map +1 -1
- package/dist/esm/input/GenericDualAnalogGamepadMapping.js.map +1 -1
- package/dist/esm/input/GestureRecognizer.d.ts +1 -1
- package/dist/esm/input/GestureRecognizer.js.map +1 -1
- package/dist/esm/input/InputBinding.d.ts +3 -3
- package/dist/esm/input/InputBinding.js.map +1 -1
- package/dist/esm/input/InputManager.d.ts +9 -9
- package/dist/esm/input/InputManager.js +25 -16
- package/dist/esm/input/InputManager.js.map +1 -1
- package/dist/esm/input/InteractionEvent.d.ts +1 -1
- package/dist/esm/input/InteractionEvent.js.map +1 -1
- package/dist/esm/input/InteractionManager.d.ts +2 -2
- package/dist/esm/input/InteractionManager.js +25 -16
- package/dist/esm/input/InteractionManager.js.map +1 -1
- package/dist/esm/input/JoyConLeftGamepadMapping.js.map +1 -1
- package/dist/esm/input/JoyConRightGamepadMapping.js.map +1 -1
- package/dist/esm/input/PlayStationGamepadMapping.d.ts +1 -1
- package/dist/esm/input/PlayStationGamepadMapping.js +1 -1
- package/dist/esm/input/PlayStationGamepadMapping.js.map +1 -1
- package/dist/esm/input/Pointer.d.ts +2 -2
- package/dist/esm/input/Pointer.js +6 -6
- package/dist/esm/input/Pointer.js.map +1 -1
- package/dist/esm/input/SteamControllerGamepadMapping.d.ts +1 -1
- package/dist/esm/input/SteamControllerGamepadMapping.js +1 -1
- package/dist/esm/input/SteamControllerGamepadMapping.js.map +1 -1
- package/dist/esm/input/SteamDeckGamepadMapping.js.map +1 -1
- package/dist/esm/input/SwitchProGamepadMapping.d.ts +1 -1
- package/dist/esm/input/SwitchProGamepadMapping.js +1 -1
- package/dist/esm/input/SwitchProGamepadMapping.js.map +1 -1
- package/dist/esm/input/XboxGamepadMapping.d.ts +1 -1
- package/dist/esm/input/XboxGamepadMapping.js +1 -1
- package/dist/esm/input/XboxGamepadMapping.js.map +1 -1
- package/dist/esm/input/index.d.ts +16 -16
- package/dist/esm/input/interaction-hooks.js.map +1 -1
- package/dist/esm/input/types.js.map +1 -1
- package/dist/esm/math/AbstractVector.js +8 -9
- package/dist/esm/math/AbstractVector.js.map +1 -1
- package/dist/esm/math/Circle.d.ts +5 -5
- package/dist/esm/math/Circle.js +33 -21
- package/dist/esm/math/Circle.js.map +1 -1
- package/dist/esm/math/Collision.d.ts +2 -2
- package/dist/esm/math/Collision.js.map +1 -1
- package/dist/esm/math/Ellipse.d.ts +5 -5
- package/dist/esm/math/Ellipse.js +28 -19
- package/dist/esm/math/Ellipse.js.map +1 -1
- package/dist/esm/math/Flags.d.ts +4 -4
- package/dist/esm/math/Flags.js.map +1 -1
- package/dist/esm/math/Interval.js.map +1 -1
- package/dist/esm/math/Line.d.ts +5 -5
- package/dist/esm/math/Line.js +23 -15
- package/dist/esm/math/Line.js.map +1 -1
- package/dist/esm/math/Matrix.js +14 -16
- package/dist/esm/math/Matrix.js.map +1 -1
- package/dist/esm/math/ObservableSize.js.map +1 -1
- package/dist/esm/math/ObservableVector.d.ts +1 -1
- package/dist/esm/math/ObservableVector.js.map +1 -1
- package/dist/esm/math/PolarVector.js.map +1 -1
- package/dist/esm/math/Polygon.d.ts +11 -11
- package/dist/esm/math/Polygon.js +37 -26
- package/dist/esm/math/Polygon.js.map +1 -1
- package/dist/esm/math/PolygonLike.d.ts +1 -1
- package/dist/esm/math/Quadtree.js +2 -8
- package/dist/esm/math/Quadtree.js.map +1 -1
- package/dist/esm/math/Random.js +5 -5
- package/dist/esm/math/Random.js.map +1 -1
- package/dist/esm/math/Rectangle.d.ts +4 -4
- package/dist/esm/math/Rectangle.js +59 -41
- package/dist/esm/math/Rectangle.js.map +1 -1
- package/dist/esm/math/Segment.d.ts +1 -1
- package/dist/esm/math/Segment.js +4 -4
- package/dist/esm/math/Segment.js.map +1 -1
- package/dist/esm/math/ShapeLike.d.ts +1 -1
- package/dist/esm/math/Size.js +1 -2
- package/dist/esm/math/Size.js.map +1 -1
- package/dist/esm/math/Vector.d.ts +4 -4
- package/dist/esm/math/Vector.js +19 -13
- package/dist/esm/math/Vector.js.map +1 -1
- package/dist/esm/math/collision-detection.d.ts +3 -3
- package/dist/esm/math/collision-detection.js +49 -49
- package/dist/esm/math/collision-detection.js.map +1 -1
- package/dist/esm/math/collision-primitives.d.ts +8 -8
- package/dist/esm/math/collision-primitives.js +27 -33
- package/dist/esm/math/collision-primitives.js.map +1 -1
- package/dist/esm/math/geometry.d.ts +3 -3
- package/dist/esm/math/geometry.js +55 -48
- package/dist/esm/math/geometry.js.map +1 -1
- package/dist/esm/math/index.d.ts +16 -16
- package/dist/esm/math/swept-collision.d.ts +3 -3
- package/dist/esm/math/swept-collision.js +5 -8
- package/dist/esm/math/swept-collision.js.map +1 -1
- package/dist/esm/math/triangulate.js +34 -24
- package/dist/esm/math/triangulate.js.map +1 -1
- package/dist/esm/math/utils.d.ts +2 -2
- package/dist/esm/math/utils.js +7 -7
- package/dist/esm/math/utils.js.map +1 -1
- package/dist/esm/particles/ParticleSystem.d.ts +181 -84
- package/dist/esm/particles/ParticleSystem.js +460 -147
- package/dist/esm/particles/ParticleSystem.js.map +1 -1
- package/dist/esm/particles/distributions/BoxArea.d.ts +17 -0
- package/dist/esm/particles/distributions/BoxArea.js +48 -0
- package/dist/esm/particles/distributions/BoxArea.js.map +1 -0
- package/dist/esm/particles/distributions/CircleArea.d.ts +19 -0
- package/dist/esm/particles/distributions/CircleArea.js +33 -0
- package/dist/esm/particles/distributions/CircleArea.js.map +1 -0
- package/dist/esm/particles/distributions/ConeDirection.d.ts +28 -0
- package/dist/esm/particles/distributions/ConeDirection.js +44 -0
- package/dist/esm/particles/distributions/ConeDirection.js.map +1 -0
- package/dist/esm/particles/distributions/Constant.d.ts +17 -0
- package/dist/esm/particles/distributions/Constant.js +35 -0
- package/dist/esm/particles/distributions/Constant.js.map +1 -0
- package/dist/esm/particles/distributions/Curve.d.ts +30 -0
- package/dist/esm/particles/distributions/Curve.js +53 -0
- package/dist/esm/particles/distributions/Curve.js.map +1 -0
- package/dist/esm/particles/distributions/Distribution.d.ts +45 -0
- package/dist/esm/particles/distributions/Gradient.d.ts +40 -0
- package/dist/esm/particles/distributions/Gradient.js +72 -0
- package/dist/esm/particles/distributions/Gradient.js.map +1 -0
- package/dist/esm/particles/distributions/LineSegment.d.ts +15 -0
- package/dist/esm/particles/distributions/LineSegment.js +27 -0
- package/dist/esm/particles/distributions/LineSegment.js.map +1 -0
- package/dist/esm/particles/distributions/Range.d.ts +12 -0
- package/dist/esm/particles/distributions/Range.js +19 -0
- package/dist/esm/particles/distributions/Range.js.map +1 -0
- package/dist/esm/particles/distributions/VectorRange.d.ts +20 -0
- package/dist/esm/particles/distributions/VectorRange.js +31 -0
- package/dist/esm/particles/distributions/VectorRange.js.map +1 -0
- package/dist/esm/particles/distributions/index.d.ts +12 -0
- package/dist/esm/particles/gpu/ParticleGpuState.d.ts +57 -0
- package/dist/esm/particles/gpu/ParticleGpuState.js +535 -0
- package/dist/esm/particles/gpu/ParticleGpuState.js.map +1 -0
- package/dist/esm/particles/index.d.ts +2 -10
- package/dist/esm/particles/modules/AlphaFadeOverLifetime.d.ts +24 -0
- package/dist/esm/particles/modules/AlphaFadeOverLifetime.js +60 -0
- package/dist/esm/particles/modules/AlphaFadeOverLifetime.js.map +1 -0
- package/dist/esm/particles/modules/ApplyForce.d.ts +20 -0
- package/dist/esm/particles/modules/ApplyForce.js +48 -0
- package/dist/esm/particles/modules/ApplyForce.js.map +1 -0
- package/dist/esm/particles/modules/AttractToPoint.d.ts +27 -0
- package/dist/esm/particles/modules/AttractToPoint.js +73 -0
- package/dist/esm/particles/modules/AttractToPoint.js.map +1 -0
- package/dist/esm/particles/modules/BurstSpawn.d.ts +53 -0
- package/dist/esm/particles/modules/BurstSpawn.js +94 -0
- package/dist/esm/particles/modules/BurstSpawn.js.map +1 -0
- package/dist/esm/particles/modules/ColorOverLifetime.d.ts +22 -0
- package/dist/esm/particles/modules/ColorOverLifetime.js +65 -0
- package/dist/esm/particles/modules/ColorOverLifetime.js.map +1 -0
- package/dist/esm/particles/modules/ColorOverSpeed.d.ts +27 -0
- package/dist/esm/particles/modules/ColorOverSpeed.js +86 -0
- package/dist/esm/particles/modules/ColorOverSpeed.js.map +1 -0
- package/dist/esm/particles/modules/DeathModule.d.ts +24 -0
- package/dist/esm/particles/modules/DeathModule.js +25 -0
- package/dist/esm/particles/modules/DeathModule.js.map +1 -0
- package/dist/esm/particles/modules/Drag.d.ts +20 -0
- package/dist/esm/particles/modules/Drag.js +43 -0
- package/dist/esm/particles/modules/Drag.js.map +1 -0
- package/dist/esm/particles/modules/OrbitalForce.d.ts +28 -0
- package/dist/esm/particles/modules/OrbitalForce.js +65 -0
- package/dist/esm/particles/modules/OrbitalForce.js.map +1 -0
- package/dist/esm/particles/modules/RateSpawn.d.ts +41 -0
- package/dist/esm/particles/modules/RateSpawn.js +76 -0
- package/dist/esm/particles/modules/RateSpawn.js.map +1 -0
- package/dist/esm/particles/modules/RepelFromPoint.d.ts +24 -0
- package/dist/esm/particles/modules/RepelFromPoint.js +76 -0
- package/dist/esm/particles/modules/RepelFromPoint.js.map +1 -0
- package/dist/esm/particles/modules/RotateOverLifetime.d.ts +20 -0
- package/dist/esm/particles/modules/RotateOverLifetime.js +41 -0
- package/dist/esm/particles/modules/RotateOverLifetime.js.map +1 -0
- package/dist/esm/particles/modules/ScaleOverLifetime.d.ts +26 -0
- package/dist/esm/particles/modules/ScaleOverLifetime.js +59 -0
- package/dist/esm/particles/modules/ScaleOverLifetime.js.map +1 -0
- package/dist/esm/particles/modules/SpawnModule.d.ts +30 -0
- package/dist/esm/particles/modules/SpawnModule.js +31 -0
- package/dist/esm/particles/modules/SpawnModule.js.map +1 -0
- package/dist/esm/particles/modules/SpawnOnDeath.d.ts +24 -0
- package/dist/esm/particles/modules/SpawnOnDeath.js +47 -0
- package/dist/esm/particles/modules/SpawnOnDeath.js.map +1 -0
- package/dist/esm/particles/modules/Turbulence.d.ts +30 -0
- package/dist/esm/particles/modules/Turbulence.js +122 -0
- package/dist/esm/particles/modules/Turbulence.js.map +1 -0
- package/dist/esm/particles/modules/UpdateModule.d.ts +95 -0
- package/dist/esm/particles/modules/UpdateModule.js +66 -0
- package/dist/esm/particles/modules/UpdateModule.js.map +1 -0
- package/dist/esm/particles/modules/VelocityOverLifetime.d.ts +30 -0
- package/dist/esm/particles/modules/VelocityOverLifetime.js +84 -0
- package/dist/esm/particles/modules/VelocityOverLifetime.js.map +1 -0
- package/dist/esm/particles/modules/WgslContribution.d.ts +81 -0
- package/dist/esm/particles/modules/WgslContribution.js +34 -0
- package/dist/esm/particles/modules/WgslContribution.js.map +1 -0
- package/dist/esm/particles/modules/index.d.ts +22 -0
- package/dist/esm/rendering/CallbackRenderPass.js.map +1 -1
- package/dist/esm/rendering/Container.d.ts +2 -2
- package/dist/esm/rendering/Container.js +10 -11
- package/dist/esm/rendering/Container.js.map +1 -1
- package/dist/esm/rendering/Drawable.js.map +1 -1
- package/dist/esm/rendering/RenderBackend.d.ts +6 -6
- package/dist/esm/rendering/RenderBackendType.js.map +1 -1
- package/dist/esm/rendering/RenderNode.d.ts +10 -10
- package/dist/esm/rendering/RenderNode.js +31 -31
- package/dist/esm/rendering/RenderNode.js.map +1 -1
- package/dist/esm/rendering/RenderStats.js.map +1 -1
- package/dist/esm/rendering/RenderTarget.d.ts +2 -2
- package/dist/esm/rendering/RenderTarget.js +5 -5
- package/dist/esm/rendering/RenderTarget.js.map +1 -1
- package/dist/esm/rendering/RenderTargetPass.d.ts +3 -3
- package/dist/esm/rendering/RenderTargetPass.js.map +1 -1
- package/dist/esm/rendering/Renderer.d.ts +2 -2
- package/dist/esm/rendering/RendererRegistry.d.ts +3 -3
- package/dist/esm/rendering/RendererRegistry.js +2 -3
- package/dist/esm/rendering/RendererRegistry.js.map +1 -1
- package/dist/esm/rendering/View.d.ts +3 -3
- package/dist/esm/rendering/View.js +17 -20
- package/dist/esm/rendering/View.js.map +1 -1
- package/dist/esm/rendering/filters/BlurFilter.d.ts +1 -1
- package/dist/esm/rendering/filters/BlurFilter.js +4 -9
- package/dist/esm/rendering/filters/BlurFilter.js.map +1 -1
- package/dist/esm/rendering/filters/ColorFilter.d.ts +1 -1
- package/dist/esm/rendering/filters/ColorFilter.js +3 -9
- package/dist/esm/rendering/filters/ColorFilter.js.map +1 -1
- package/dist/esm/rendering/filters/Filter.d.ts +1 -1
- package/dist/esm/rendering/filters/Filter.js.map +1 -1
- package/dist/esm/rendering/filters/LutFilter.d.ts +87 -0
- package/dist/esm/rendering/filters/LutFilter.js +261 -0
- package/dist/esm/rendering/filters/LutFilter.js.map +1 -0
- package/dist/esm/rendering/filters/WebGl2ShaderFilter.d.ts +2 -2
- package/dist/esm/rendering/filters/WebGl2ShaderFilter.js +7 -14
- package/dist/esm/rendering/filters/WebGl2ShaderFilter.js.map +1 -1
- package/dist/esm/rendering/filters/WebGpuShaderFilter.d.ts +1 -1
- package/dist/esm/rendering/filters/WebGpuShaderFilter.js +11 -10
- package/dist/esm/rendering/filters/WebGpuShaderFilter.js.map +1 -1
- package/dist/esm/rendering/index.d.ts +28 -27
- package/dist/esm/rendering/mesh/Mesh.d.ts +49 -1
- package/dist/esm/rendering/mesh/Mesh.js +3 -1
- package/dist/esm/rendering/mesh/Mesh.js.map +1 -1
- package/dist/esm/rendering/primitives/Graphics.d.ts +3 -3
- package/dist/esm/rendering/primitives/Graphics.js +12 -12
- package/dist/esm/rendering/primitives/Graphics.js.map +1 -1
- package/dist/esm/rendering/shader/Shader.js.map +1 -1
- package/dist/esm/rendering/shader/ShaderAttribute.js.map +1 -1
- package/dist/esm/rendering/shader/ShaderUniform.js.map +1 -1
- package/dist/esm/rendering/shader/upgradeFragmentShaderToGl300.js +6 -8
- package/dist/esm/rendering/shader/upgradeFragmentShaderToGl300.js.map +1 -1
- package/dist/esm/rendering/sprite/AnimatedSprite.d.ts +3 -3
- package/dist/esm/rendering/sprite/AnimatedSprite.js.map +1 -1
- package/dist/esm/rendering/sprite/Sprite.d.ts +4 -4
- package/dist/esm/rendering/sprite/Sprite.js +51 -35
- package/dist/esm/rendering/sprite/Sprite.js.map +1 -1
- package/dist/esm/rendering/sprite/Spritesheet.d.ts +5 -9
- package/dist/esm/rendering/sprite/Spritesheet.js +1 -1
- package/dist/esm/rendering/sprite/Spritesheet.js.map +1 -1
- package/dist/esm/rendering/text/DynamicGlyphAtlas.js +3 -9
- package/dist/esm/rendering/text/DynamicGlyphAtlas.js.map +1 -1
- package/dist/esm/rendering/text/Text.js +9 -9
- package/dist/esm/rendering/text/Text.js.map +1 -1
- package/dist/esm/rendering/text/TextLayout.d.ts +2 -2
- package/dist/esm/rendering/text/TextLayout.js.map +1 -1
- package/dist/esm/rendering/text/TextStyle.js.map +1 -1
- package/dist/esm/rendering/text/atlas-singleton.js.map +1 -1
- package/dist/esm/rendering/texture/RenderTexture.d.ts +1 -1
- package/dist/esm/rendering/texture/RenderTexture.js +4 -1
- package/dist/esm/rendering/texture/RenderTexture.js.map +1 -1
- package/dist/esm/rendering/texture/Sampler.js.map +1 -1
- package/dist/esm/rendering/texture/Texture.d.ts +2 -2
- package/dist/esm/rendering/texture/Texture.js +8 -5
- package/dist/esm/rendering/texture/Texture.js.map +1 -1
- package/dist/esm/rendering/types.js.map +1 -1
- package/dist/esm/rendering/utils.js.map +1 -1
- package/dist/esm/rendering/video/Video.d.ts +3 -3
- package/dist/esm/rendering/video/Video.js +7 -6
- package/dist/esm/rendering/video/Video.js.map +1 -1
- package/dist/esm/rendering/webgl2/AbstractWebGl2BatchedRenderer.d.ts +6 -6
- package/dist/esm/rendering/webgl2/AbstractWebGl2BatchedRenderer.js +7 -10
- package/dist/esm/rendering/webgl2/AbstractWebGl2BatchedRenderer.js.map +1 -1
- package/dist/esm/rendering/webgl2/AbstractWebGl2Renderer.d.ts +1 -1
- package/dist/esm/rendering/webgl2/AbstractWebGl2Renderer.js +1 -2
- package/dist/esm/rendering/webgl2/AbstractWebGl2Renderer.js.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2Backend.d.ts +11 -11
- package/dist/esm/rendering/webgl2/WebGl2Backend.js +19 -21
- package/dist/esm/rendering/webgl2/WebGl2Backend.js.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2MaskCompositor.d.ts +2 -2
- package/dist/esm/rendering/webgl2/WebGl2MaskCompositor.js +6 -8
- package/dist/esm/rendering/webgl2/WebGl2MaskCompositor.js.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2MeshRenderer.d.ts +7 -4
- package/dist/esm/rendering/webgl2/WebGl2MeshRenderer.js +110 -43
- package/dist/esm/rendering/webgl2/WebGl2MeshRenderer.js.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2ParticleRenderer.d.ts +10 -15
- package/dist/esm/rendering/webgl2/WebGl2ParticleRenderer.js +100 -79
- package/dist/esm/rendering/webgl2/WebGl2ParticleRenderer.js.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2RenderBuffer.d.ts +1 -1
- package/dist/esm/rendering/webgl2/WebGl2RenderBuffer.js.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2ShaderBlock.js.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2ShaderMappings.js.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2ShaderProgram.js +54 -22
- package/dist/esm/rendering/webgl2/WebGl2ShaderProgram.js.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2SpriteRenderer.d.ts +1 -1
- package/dist/esm/rendering/webgl2/WebGl2SpriteRenderer.js +11 -14
- package/dist/esm/rendering/webgl2/WebGl2SpriteRenderer.js.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2VertexArrayObject.d.ts +1 -1
- package/dist/esm/rendering/webgl2/WebGl2VertexArrayObject.js.map +1 -1
- package/dist/esm/rendering/webgl2/glsl/particle.vert.js +1 -1
- package/dist/esm/rendering/webgpu/AbstractWebGpuRenderer.d.ts +1 -1
- package/dist/esm/rendering/webgpu/AbstractWebGpuRenderer.js +1 -2
- package/dist/esm/rendering/webgpu/AbstractWebGpuRenderer.js.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuBackend.d.ts +7 -7
- package/dist/esm/rendering/webgpu/WebGpuBackend.js +44 -30
- package/dist/esm/rendering/webgpu/WebGpuBackend.js.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuBlendState.js.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuMaskCompositor.d.ts +2 -2
- package/dist/esm/rendering/webgpu/WebGpuMaskCompositor.js +1 -3
- package/dist/esm/rendering/webgpu/WebGpuMaskCompositor.js.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.d.ts +2 -2
- package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.js +25 -23
- package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.js.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuParticleRenderer.d.ts +10 -1
- package/dist/esm/rendering/webgpu/WebGpuParticleRenderer.js +204 -76
- package/dist/esm/rendering/webgpu/WebGpuParticleRenderer.js.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.d.ts +2 -2
- package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.js +45 -45
- package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.js.map +1 -1
- package/dist/esm/rendering/webgpu/compute/WebGpuComputePipeline.d.ts +52 -0
- package/dist/esm/rendering/webgpu/compute/WebGpuStorageBuffer.d.ts +29 -0
- package/dist/esm/rendering/webgpu/compute/index.d.ts +3 -0
- package/dist/esm/resources/AbstractAssetFactory.d.ts +1 -1
- package/dist/esm/resources/AbstractAssetFactory.js.map +1 -1
- package/dist/esm/resources/AssetManifest.d.ts +1 -1
- package/dist/esm/resources/AssetManifest.js +2 -2
- package/dist/esm/resources/AssetManifest.js.map +1 -1
- package/dist/esm/resources/CacheFirstStrategy.d.ts +2 -2
- package/dist/esm/resources/CacheFirstStrategy.js.map +1 -1
- package/dist/esm/resources/CacheStrategy.d.ts +1 -1
- package/dist/esm/resources/FactoryRegistry.d.ts +1 -1
- package/dist/esm/resources/FactoryRegistry.js +2 -3
- package/dist/esm/resources/FactoryRegistry.js.map +1 -1
- package/dist/esm/resources/IndexedDbDatabase.d.ts +1 -1
- package/dist/esm/resources/IndexedDbDatabase.js +11 -14
- package/dist/esm/resources/IndexedDbDatabase.js.map +1 -1
- package/dist/esm/resources/IndexedDbStore.d.ts +1 -1
- package/dist/esm/resources/IndexedDbStore.js +2 -7
- package/dist/esm/resources/IndexedDbStore.js.map +1 -1
- package/dist/esm/resources/Loader.d.ts +9 -9
- package/dist/esm/resources/Loader.js +48 -35
- package/dist/esm/resources/Loader.js.map +1 -1
- package/dist/esm/resources/NetworkOnlyStrategy.d.ts +2 -2
- package/dist/esm/resources/NetworkOnlyStrategy.js.map +1 -1
- package/dist/esm/resources/factories/BinaryFactory.js.map +1 -1
- package/dist/esm/resources/factories/FontFactory.js +1 -1
- package/dist/esm/resources/factories/FontFactory.js.map +1 -1
- package/dist/esm/resources/factories/ImageFactory.js +4 -4
- package/dist/esm/resources/factories/ImageFactory.js.map +1 -1
- package/dist/esm/resources/factories/JsonFactory.d.ts +1 -1
- package/dist/esm/resources/factories/JsonFactory.js +1 -1
- package/dist/esm/resources/factories/JsonFactory.js.map +1 -1
- package/dist/esm/resources/factories/MusicFactory.d.ts +1 -1
- package/dist/esm/resources/factories/MusicFactory.js +4 -4
- package/dist/esm/resources/factories/MusicFactory.js.map +1 -1
- package/dist/esm/resources/factories/SoundFactory.d.ts +1 -1
- package/dist/esm/resources/factories/SoundFactory.js +3 -3
- package/dist/esm/resources/factories/SoundFactory.js.map +1 -1
- package/dist/esm/resources/factories/SvgFactory.js +3 -3
- package/dist/esm/resources/factories/SvgFactory.js.map +1 -1
- package/dist/esm/resources/factories/TextFactory.js +1 -1
- package/dist/esm/resources/factories/TextFactory.js.map +1 -1
- package/dist/esm/resources/factories/TextureFactory.d.ts +1 -1
- package/dist/esm/resources/factories/TextureFactory.js +3 -3
- package/dist/esm/resources/factories/TextureFactory.js.map +1 -1
- package/dist/esm/resources/factories/VideoFactory.d.ts +2 -2
- package/dist/esm/resources/factories/VideoFactory.js +5 -5
- package/dist/esm/resources/factories/VideoFactory.js.map +1 -1
- package/dist/esm/resources/factories/VttFactory.d.ts +2 -2
- package/dist/esm/resources/factories/VttFactory.js +6 -6
- package/dist/esm/resources/factories/VttFactory.js.map +1 -1
- package/dist/esm/resources/factories/WasmFactory.js.map +1 -1
- package/dist/esm/resources/index.d.ts +11 -11
- package/dist/esm/resources/utils.js +30 -25
- package/dist/esm/resources/utils.js.map +1 -1
- package/dist/exo.esm.js +26438 -23869
- package/dist/exo.esm.js.map +1 -1
- package/package.json +15 -4
- package/dist/esm/particles/Particle.d.ts +0 -77
- package/dist/esm/particles/Particle.js +0 -143
- package/dist/esm/particles/Particle.js.map +0 -1
- package/dist/esm/particles/ParticleProperties.d.ts +0 -29
- package/dist/esm/particles/affectors/ColorAffector.d.ts +0 -30
- package/dist/esm/particles/affectors/ColorAffector.js +0 -55
- package/dist/esm/particles/affectors/ColorAffector.js.map +0 -1
- package/dist/esm/particles/affectors/ForceAffector.d.ts +0 -24
- package/dist/esm/particles/affectors/ForceAffector.js +0 -39
- package/dist/esm/particles/affectors/ForceAffector.js.map +0 -1
- package/dist/esm/particles/affectors/ParticleAffector.d.ts +0 -19
- package/dist/esm/particles/affectors/ScaleAffector.d.ts +0 -23
- package/dist/esm/particles/affectors/ScaleAffector.js +0 -38
- package/dist/esm/particles/affectors/ScaleAffector.js.map +0 -1
- package/dist/esm/particles/affectors/TorqueAffector.d.ts +0 -23
- package/dist/esm/particles/affectors/TorqueAffector.js +0 -37
- package/dist/esm/particles/affectors/TorqueAffector.js.map +0 -1
- package/dist/esm/particles/emitters/ParticleEmitter.d.ts +0 -19
- package/dist/esm/particles/emitters/ParticleOptions.d.ts +0 -62
- package/dist/esm/particles/emitters/ParticleOptions.js +0 -120
- package/dist/esm/particles/emitters/ParticleOptions.js.map +0 -1
- package/dist/esm/particles/emitters/UniversalEmitter.d.ts +0 -40
- package/dist/esm/particles/emitters/UniversalEmitter.js +0 -68
- package/dist/esm/particles/emitters/UniversalEmitter.js.map +0 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { Signal } from '../core/Signal.js';
|
|
2
1
|
import { isAudioContextReady, getAudioContext, onAudioContextReady } from './audio-context.js';
|
|
3
2
|
import { registerWorkletProcessor } from './worklet/registerWorklet.js';
|
|
3
|
+
import { Signal } from '../core/Signal.js';
|
|
4
4
|
|
|
5
5
|
// ---------------------------------------------------------------------------
|
|
6
6
|
// Worklet source (self-contained JavaScript, no imports)
|
|
@@ -756,24 +756,48 @@ class BeatDetector {
|
|
|
756
756
|
// -----------------------------------------------------------------------
|
|
757
757
|
// Stage 1 state accessors
|
|
758
758
|
// -----------------------------------------------------------------------
|
|
759
|
-
get tempo() {
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
get
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
get
|
|
766
|
-
|
|
759
|
+
get tempo() {
|
|
760
|
+
return this._tempo;
|
|
761
|
+
}
|
|
762
|
+
get beatPhase() {
|
|
763
|
+
return this._beatPhase;
|
|
764
|
+
}
|
|
765
|
+
get nextBeatTime() {
|
|
766
|
+
return this._nextBeatTime;
|
|
767
|
+
}
|
|
768
|
+
get confidence() {
|
|
769
|
+
return this._confidence;
|
|
770
|
+
}
|
|
771
|
+
get gridStability() {
|
|
772
|
+
return this._gridStability;
|
|
773
|
+
}
|
|
774
|
+
get rms() {
|
|
775
|
+
return this._rms;
|
|
776
|
+
}
|
|
777
|
+
get onsetStrength() {
|
|
778
|
+
return this._onsetStrength;
|
|
779
|
+
}
|
|
780
|
+
get bandEnergy() {
|
|
781
|
+
return this._bandEnergy;
|
|
782
|
+
}
|
|
767
783
|
get tempoCandidates() {
|
|
768
784
|
return this._tempoCandidates;
|
|
769
785
|
}
|
|
770
786
|
// -----------------------------------------------------------------------
|
|
771
787
|
// Stage 2 state accessors
|
|
772
788
|
// -----------------------------------------------------------------------
|
|
773
|
-
get barPosition() {
|
|
774
|
-
|
|
775
|
-
|
|
776
|
-
get
|
|
789
|
+
get barPosition() {
|
|
790
|
+
return this._barPosition;
|
|
791
|
+
}
|
|
792
|
+
get barLength() {
|
|
793
|
+
return this._barLength;
|
|
794
|
+
}
|
|
795
|
+
get timeSignature() {
|
|
796
|
+
return this._timeSignature;
|
|
797
|
+
}
|
|
798
|
+
get nextDownbeatTime() {
|
|
799
|
+
return this._nextDownbeatTime;
|
|
800
|
+
}
|
|
777
801
|
get lookahead() {
|
|
778
802
|
return this._lookahead;
|
|
779
803
|
}
|
|
@@ -821,39 +845,39 @@ class BeatDetector {
|
|
|
821
845
|
});
|
|
822
846
|
}
|
|
823
847
|
_onWorkletMessage(event) {
|
|
824
|
-
const
|
|
825
|
-
switch (
|
|
848
|
+
const message = event.data;
|
|
849
|
+
switch (message.type) {
|
|
826
850
|
case 'state':
|
|
827
|
-
this._tempo =
|
|
828
|
-
this._beatPhase =
|
|
829
|
-
this._nextBeatTime =
|
|
830
|
-
this._nextDownbeatTime =
|
|
831
|
-
this._confidence =
|
|
832
|
-
this._gridStability =
|
|
833
|
-
this._tempoCandidates = Object.freeze(
|
|
834
|
-
this._rms =
|
|
835
|
-
this._onsetStrength =
|
|
836
|
-
this._bandEnergy =
|
|
837
|
-
this._barPosition =
|
|
838
|
-
this._barLength =
|
|
839
|
-
this._timeSignature =
|
|
851
|
+
this._tempo = message.tempo ?? 0;
|
|
852
|
+
this._beatPhase = message.beatPhase ?? 0;
|
|
853
|
+
this._nextBeatTime = message.nextBeatTime ?? 0;
|
|
854
|
+
this._nextDownbeatTime = message.nextDownbeatTime ?? 0;
|
|
855
|
+
this._confidence = message.confidence ?? 0;
|
|
856
|
+
this._gridStability = message.gridStability ?? 0;
|
|
857
|
+
this._tempoCandidates = Object.freeze(message.tempoCandidates ?? []);
|
|
858
|
+
this._rms = message.rms ?? 0;
|
|
859
|
+
this._onsetStrength = message.onsetStrength ?? 0;
|
|
860
|
+
this._bandEnergy = message.bandEnergy ?? { low: 0, mid: 0, high: 0 };
|
|
861
|
+
this._barPosition = message.barPosition ?? 1;
|
|
862
|
+
this._barLength = message.barLength ?? 4;
|
|
863
|
+
this._timeSignature = message.timeSignature ?? { numerator: 4, denominator: 4 };
|
|
840
864
|
{
|
|
841
|
-
const
|
|
842
|
-
this._lookahead = Object.freeze(
|
|
843
|
-
if (
|
|
844
|
-
this.onBeatPredicted.dispatch(
|
|
865
|
+
const lookahead = message.lookahead ?? [];
|
|
866
|
+
this._lookahead = Object.freeze(lookahead);
|
|
867
|
+
if (lookahead.length > 0) {
|
|
868
|
+
this.onBeatPredicted.dispatch(lookahead[0]);
|
|
845
869
|
}
|
|
846
870
|
}
|
|
847
871
|
break;
|
|
848
872
|
case 'beat': {
|
|
849
873
|
const bi = {
|
|
850
|
-
audioTime:
|
|
851
|
-
tempo:
|
|
852
|
-
confidence:
|
|
853
|
-
beatPhase:
|
|
854
|
-
energy:
|
|
855
|
-
isDownbeat:
|
|
856
|
-
beatInBar:
|
|
874
|
+
audioTime: message.audioTime,
|
|
875
|
+
tempo: message.tempo,
|
|
876
|
+
confidence: message.confidence,
|
|
877
|
+
beatPhase: message.beatPhase,
|
|
878
|
+
energy: message.energy,
|
|
879
|
+
isDownbeat: message.isDownbeat,
|
|
880
|
+
beatInBar: message.beatInBar,
|
|
857
881
|
};
|
|
858
882
|
this.onBeat.dispatch(bi);
|
|
859
883
|
if (bi.isDownbeat)
|
|
@@ -861,14 +885,14 @@ class BeatDetector {
|
|
|
861
885
|
break;
|
|
862
886
|
}
|
|
863
887
|
case 'tempoChange':
|
|
864
|
-
this.onTempoChange.dispatch(
|
|
888
|
+
this.onTempoChange.dispatch(message.newTempo, message.oldTempo);
|
|
865
889
|
break;
|
|
866
890
|
case 'barStart': {
|
|
867
891
|
const info = {
|
|
868
|
-
audioTime:
|
|
869
|
-
tempo:
|
|
870
|
-
confidence:
|
|
871
|
-
barNumber:
|
|
892
|
+
audioTime: message.audioTime,
|
|
893
|
+
tempo: message.tempo,
|
|
894
|
+
confidence: message.confidence,
|
|
895
|
+
barNumber: message.barNumber,
|
|
872
896
|
};
|
|
873
897
|
this.onBarStart.dispatch(info);
|
|
874
898
|
break;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BeatDetector.js","sources":["../../../../src/audio/BeatDetector.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;AAoFA;AACA;AACA;AAEA,MAAM,WAAW,GAAG,qBAAqB;AAEzC,MAAM,yBAAyB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBAkoBb,WAAW,CAAA;CAC/B;AAED;AACA;AACA;AAEA;;;;;;;;;;;;;;;;;;;;AAoBG;MACU,YAAY,CAAA;;
|
|
1
|
+
{"version":3,"file":"BeatDetector.js","sources":["../../../../src/audio/BeatDetector.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -29,7 +29,7 @@ export declare class Envelope {
|
|
|
29
29
|
releaseMs: number;
|
|
30
30
|
constructor(options?: EnvelopeOptions);
|
|
31
31
|
/**
|
|
32
|
-
* Schedule attack → decay → sustain on the target gain
|
|
32
|
+
* Schedule attack → decay → sustain on the target gain parameter starting
|
|
33
33
|
* at `atTime` (audioContext.currentTime).
|
|
34
34
|
*/
|
|
35
35
|
trigger(gainParam: AudioParam, atTime: number): void;
|
|
@@ -24,7 +24,7 @@ class Envelope {
|
|
|
24
24
|
this.releaseMs = Math.max(0, options.releaseMs ?? 200);
|
|
25
25
|
}
|
|
26
26
|
/**
|
|
27
|
-
* Schedule attack → decay → sustain on the target gain
|
|
27
|
+
* Schedule attack → decay → sustain on the target gain parameter starting
|
|
28
28
|
* at `atTime` (audioContext.currentTime).
|
|
29
29
|
*/
|
|
30
30
|
trigger(gainParam, atTime) {
|
|
@@ -32,7 +32,7 @@ class Envelope {
|
|
|
32
32
|
const decayEnd = attackEnd + this.decayMs / 1000;
|
|
33
33
|
gainParam.cancelScheduledValues(atTime);
|
|
34
34
|
gainParam.setValueAtTime(0, atTime);
|
|
35
|
-
gainParam.linearRampToValueAtTime(1
|
|
35
|
+
gainParam.linearRampToValueAtTime(1, attackEnd);
|
|
36
36
|
gainParam.linearRampToValueAtTime(this.sustainLevel, decayEnd);
|
|
37
37
|
// Sustain held at sustainLevel until release()
|
|
38
38
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Envelope.js","sources":["../../../../src/audio/Envelope.ts"],"sourcesContent":[null],"names":[],"mappings":"AAWA;;;;;;;;;;;;;AAaG;MACU,QAAQ,CAAA;
|
|
1
|
+
{"version":3,"file":"Envelope.js","sources":["../../../../src/audio/Envelope.ts"],"sourcesContent":[null],"names":[],"mappings":"AAWA;;;;;;;;;;;;;AAaG;MACU,QAAQ,CAAA;AACZ,IAAA,QAAQ;AACR,IAAA,OAAO;AACP,IAAA,YAAY;AACZ,IAAA,SAAS;AAEhB,IAAA,WAAA,CAAmB,UAA2B,EAAE,EAAA;AAC9C,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC;AACnD,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,OAAO,IAAI,GAAG,CAAC;QAClD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,YAAY,IAAI,GAAG,CAAC,CAAC;AACzE,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,SAAS,IAAI,GAAG,CAAC;IACxD;AAEA;;;AAGG;IACI,OAAO,CAAC,SAAqB,EAAE,MAAc,EAAA;QAClD,MAAM,SAAS,GAAG,MAAM,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI;QAC/C,MAAM,QAAQ,GAAG,SAAS,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI;AAEhD,QAAA,SAAS,CAAC,qBAAqB,CAAC,MAAM,CAAC;AACvC,QAAA,SAAS,CAAC,cAAc,CAAC,CAAC,EAAE,MAAM,CAAC;AACnC,QAAA,SAAS,CAAC,uBAAuB,CAAC,CAAC,EAAE,SAAS,CAAC;QAC/C,SAAS,CAAC,uBAAuB,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC;;IAEhE;AAEA;;;AAGG;IACI,OAAO,CAAC,SAAqB,EAAE,MAAc,EAAA;QAC/B,MAAM,GAAG,IAAI,CAAC,SAAS,GAAG;AAE7C,QAAA,SAAS,CAAC,qBAAqB,CAAC,MAAM,CAAC;;AAEvC,QAAA,SAAS,CAAC,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,SAAS,GAAG,IAAI,GAAG,CAAC,CAAC;;IAEjE;;AAGA,IAAA,IAAW,eAAe,GAAA;QACxB,OAAO,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS;IACtD;IAEO,OAAO,GAAA;;IAEd;AACD;;;;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type { PlaybackOptions } from '@/core/types';
|
|
2
1
|
import { AbstractMedia } from '@/audio/AbstractMedia';
|
|
3
2
|
import type { AudioBus } from '@/audio/AudioBus';
|
|
3
|
+
import type { PlaybackOptions } from '@/core/types';
|
|
4
4
|
/**
|
|
5
5
|
* Streaming long-form audio backed by an `HTMLAudioElement`. Decoded
|
|
6
6
|
* lazily via the browser's media pipeline, so memory cost scales with
|
package/dist/esm/audio/Music.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { clamp } from '../math/utils.js';
|
|
2
1
|
import { AbstractMedia } from './AbstractMedia.js';
|
|
3
2
|
import { isAudioContextReady, getAudioContext, onAudioContextReady } from './audio-context.js';
|
|
4
3
|
import { getAudioManager } from './AudioManager.js';
|
|
4
|
+
import { clamp } from '../math/utils.js';
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* Streaming long-form audio backed by an `HTMLAudioElement`. Decoded
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Music.js","sources":["../../../../src/audio/Music.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;AAaA;;;;;;;;;;;AAWG;AACG,MAAO,KAAM,SAAQ,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"Music.js","sources":["../../../../src/audio/Music.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
+
import type { PlaybackOptions } from '@/core/types';
|
|
1
2
|
import { AbstractMedia } from './AbstractMedia';
|
|
3
|
+
import type { AudioBus } from './AudioBus';
|
|
2
4
|
import type { Envelope } from './Envelope';
|
|
3
5
|
import { SoundPoolStrategy } from './Sound';
|
|
4
|
-
import type { AudioBus } from './AudioBus';
|
|
5
|
-
import type { PlaybackOptions } from '@/core/types';
|
|
6
6
|
export type OscillatorType = 'sine' | 'square' | 'sawtooth' | 'triangle';
|
|
7
7
|
export interface OscillatorSoundOptions extends Partial<PlaybackOptions> {
|
|
8
8
|
frequency?: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OscillatorSound.js","sources":["../../../../src/audio/OscillatorSound.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"OscillatorSound.js","sources":["../../../../src/audio/OscillatorSound.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { Vector } from '@/math/Vector';
|
|
2
|
-
import type { PlaybackOptions } from '@/core/types';
|
|
3
1
|
import { AbstractMedia } from '@/audio/AbstractMedia';
|
|
4
2
|
import type { AudioBus } from '@/audio/AudioBus';
|
|
3
|
+
import type { PlaybackOptions } from '@/core/types';
|
|
4
|
+
import { Vector } from '@/math/Vector';
|
|
5
5
|
/**
|
|
6
6
|
* Eviction strategy used when the pool is full and a new play is requested.
|
|
7
7
|
*
|
|
@@ -32,12 +32,32 @@ export interface AudioSpriteClip {
|
|
|
32
32
|
end: number;
|
|
33
33
|
loop?: boolean;
|
|
34
34
|
}
|
|
35
|
+
/**
|
|
36
|
+
* Distance-attenuation model used by spatial sounds.
|
|
37
|
+
*
|
|
38
|
+
* Mirrors Web Audio's `PannerNode.distanceModel`:
|
|
39
|
+
* - `'linear'` — `v = 1 - rolloffFactor * (d - refDistance) / (maxDistance - refDistance)`,
|
|
40
|
+
* clamped to [0, 1]. Reaches silence at `maxDistance`.
|
|
41
|
+
* - `'inverse'` — `v = refDistance / (refDistance + rolloffFactor * (d - refDistance))`.
|
|
42
|
+
* Physically realistic; never reaches absolute silence.
|
|
43
|
+
* - `'exponential'` — `v = (d / refDistance) ^ -rolloffFactor`. Steepest near
|
|
44
|
+
* the listener; useful for very intimate sources.
|
|
45
|
+
*/
|
|
46
|
+
export type DistanceModel = 'linear' | 'inverse' | 'exponential';
|
|
35
47
|
/** Construction options for {@link Sound}. */
|
|
36
48
|
export interface SoundOptions extends Partial<PlaybackOptions> {
|
|
37
49
|
poolSize?: number;
|
|
38
50
|
poolStrategy?: SoundPoolStrategy;
|
|
39
51
|
priority?: number;
|
|
40
52
|
sprites?: Readonly<Record<string, AudioSpriteClip>>;
|
|
53
|
+
/** Distance-attenuation model. Default: `'linear'`. */
|
|
54
|
+
distanceModel?: DistanceModel;
|
|
55
|
+
/** Distance below which volume is at full strength. Default: `50`. */
|
|
56
|
+
refDistance?: number;
|
|
57
|
+
/** For the `'linear'` model: distance at which volume reaches zero. Default: `1000`. */
|
|
58
|
+
maxDistance?: number;
|
|
59
|
+
/** Falloff rate. Higher = steeper attenuation. Default: `1`. */
|
|
60
|
+
rolloffFactor?: number;
|
|
41
61
|
}
|
|
42
62
|
/** Per-call overrides for {@link Sound.play} and {@link Sound.playSprite}. */
|
|
43
63
|
export interface PlayOptions extends Partial<PlaybackOptions> {
|
|
@@ -82,9 +102,15 @@ export declare class Sound extends AbstractMedia {
|
|
|
82
102
|
private _position;
|
|
83
103
|
private _velocity;
|
|
84
104
|
private _pannerNode;
|
|
105
|
+
private _distanceModel;
|
|
106
|
+
private _refDistance;
|
|
107
|
+
private _maxDistance;
|
|
108
|
+
private _rolloffFactor;
|
|
85
109
|
get paused(): boolean;
|
|
86
110
|
set paused(paused: boolean);
|
|
87
111
|
get analyserTarget(): GainNode | null;
|
|
112
|
+
/** The underlying decoded audio data. Useful for sharing a single decoded buffer across multiple `Sound` instances. */
|
|
113
|
+
get audioBuffer(): AudioBuffer;
|
|
88
114
|
get poolSize(): number;
|
|
89
115
|
set poolSize(poolSize: number);
|
|
90
116
|
/**
|
|
@@ -110,6 +136,18 @@ export declare class Sound extends AbstractMedia {
|
|
|
110
136
|
x: number;
|
|
111
137
|
y: number;
|
|
112
138
|
} | Vector | null);
|
|
139
|
+
/** Distance-attenuation model. Applied immediately if a panner is already attached. */
|
|
140
|
+
get distanceModel(): DistanceModel;
|
|
141
|
+
set distanceModel(value: DistanceModel);
|
|
142
|
+
/** Reference distance — volume is at full strength at and below this distance. */
|
|
143
|
+
get refDistance(): number;
|
|
144
|
+
set refDistance(value: number);
|
|
145
|
+
/** Maximum distance for the `'linear'` model — volume reaches zero here. */
|
|
146
|
+
get maxDistance(): number;
|
|
147
|
+
set maxDistance(value: number);
|
|
148
|
+
/** Falloff steepness. Higher values attenuate faster with distance. */
|
|
149
|
+
get rolloffFactor(): number;
|
|
150
|
+
set rolloffFactor(value: number);
|
|
113
151
|
constructor(audioBuffer: AudioBuffer, options?: SoundOptions);
|
|
114
152
|
setVolume(value: number): this;
|
|
115
153
|
setLoop(loop: boolean): this;
|
package/dist/esm/audio/Sound.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { clamp } from '../math/utils.js';
|
|
2
|
-
import { Vector } from '../math/Vector.js';
|
|
3
1
|
import { AbstractMedia } from './AbstractMedia.js';
|
|
4
2
|
import { isAudioContextReady, getAudioContext, onAudioContextReady } from './audio-context.js';
|
|
5
3
|
import { getAudioManager } from './AudioManager.js';
|
|
4
|
+
import { clamp } from '../math/utils.js';
|
|
5
|
+
import { Vector } from '../math/Vector.js';
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
8
|
* Eviction strategy used when the pool is full and a new play is requested.
|
|
@@ -56,6 +56,10 @@ class Sound extends AbstractMedia {
|
|
|
56
56
|
_position = null;
|
|
57
57
|
_velocity = null;
|
|
58
58
|
_pannerNode = null;
|
|
59
|
+
_distanceModel = 'linear';
|
|
60
|
+
_refDistance = 50;
|
|
61
|
+
_maxDistance = 1000;
|
|
62
|
+
_rolloffFactor = 1;
|
|
59
63
|
get paused() {
|
|
60
64
|
return this._paused;
|
|
61
65
|
}
|
|
@@ -70,6 +74,10 @@ class Sound extends AbstractMedia {
|
|
|
70
74
|
get analyserTarget() {
|
|
71
75
|
return this._audioSetup?.gainNode ?? null;
|
|
72
76
|
}
|
|
77
|
+
/** The underlying decoded audio data. Useful for sharing a single decoded buffer across multiple `Sound` instances. */
|
|
78
|
+
get audioBuffer() {
|
|
79
|
+
return this._audioBuffer;
|
|
80
|
+
}
|
|
73
81
|
get poolSize() {
|
|
74
82
|
return this._poolSize;
|
|
75
83
|
}
|
|
@@ -139,6 +147,46 @@ class Sound extends AbstractMedia {
|
|
|
139
147
|
}
|
|
140
148
|
}
|
|
141
149
|
}
|
|
150
|
+
/** Distance-attenuation model. Applied immediately if a panner is already attached. */
|
|
151
|
+
get distanceModel() {
|
|
152
|
+
return this._distanceModel;
|
|
153
|
+
}
|
|
154
|
+
set distanceModel(value) {
|
|
155
|
+
this._distanceModel = value;
|
|
156
|
+
if (this._pannerNode !== null) {
|
|
157
|
+
this._pannerNode.distanceModel = value;
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
/** Reference distance — volume is at full strength at and below this distance. */
|
|
161
|
+
get refDistance() {
|
|
162
|
+
return this._refDistance;
|
|
163
|
+
}
|
|
164
|
+
set refDistance(value) {
|
|
165
|
+
this._refDistance = Math.max(0, value);
|
|
166
|
+
if (this._pannerNode !== null) {
|
|
167
|
+
this._pannerNode.refDistance = this._refDistance;
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
/** Maximum distance for the `'linear'` model — volume reaches zero here. */
|
|
171
|
+
get maxDistance() {
|
|
172
|
+
return this._maxDistance;
|
|
173
|
+
}
|
|
174
|
+
set maxDistance(value) {
|
|
175
|
+
this._maxDistance = Math.max(0, value);
|
|
176
|
+
if (this._pannerNode !== null) {
|
|
177
|
+
this._pannerNode.maxDistance = this._maxDistance;
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
/** Falloff steepness. Higher values attenuate faster with distance. */
|
|
181
|
+
get rolloffFactor() {
|
|
182
|
+
return this._rolloffFactor;
|
|
183
|
+
}
|
|
184
|
+
set rolloffFactor(value) {
|
|
185
|
+
this._rolloffFactor = Math.max(0, value);
|
|
186
|
+
if (this._pannerNode !== null) {
|
|
187
|
+
this._pannerNode.rolloffFactor = this._rolloffFactor;
|
|
188
|
+
}
|
|
189
|
+
}
|
|
142
190
|
constructor(audioBuffer, options = {}) {
|
|
143
191
|
super({
|
|
144
192
|
duration: audioBuffer.duration,
|
|
@@ -148,7 +196,7 @@ class Sound extends AbstractMedia {
|
|
|
148
196
|
muted: false,
|
|
149
197
|
});
|
|
150
198
|
this._audioBuffer = audioBuffer;
|
|
151
|
-
const { poolSize, poolStrategy, priority, sprites, ...playbackOptions } = options;
|
|
199
|
+
const { poolSize, poolStrategy, priority, sprites, distanceModel, refDistance, maxDistance, rolloffFactor, ...playbackOptions } = options;
|
|
152
200
|
this._poolSize = Math.max(1, Math.floor(poolSize ?? 8));
|
|
153
201
|
if (poolStrategy !== undefined) {
|
|
154
202
|
this._poolStrategy = poolStrategy;
|
|
@@ -156,6 +204,18 @@ class Sound extends AbstractMedia {
|
|
|
156
204
|
if (priority !== undefined) {
|
|
157
205
|
this._priority = priority;
|
|
158
206
|
}
|
|
207
|
+
if (distanceModel !== undefined) {
|
|
208
|
+
this._distanceModel = distanceModel;
|
|
209
|
+
}
|
|
210
|
+
if (refDistance !== undefined) {
|
|
211
|
+
this._refDistance = Math.max(0, refDistance);
|
|
212
|
+
}
|
|
213
|
+
if (maxDistance !== undefined) {
|
|
214
|
+
this._maxDistance = Math.max(0, maxDistance);
|
|
215
|
+
}
|
|
216
|
+
if (rolloffFactor !== undefined) {
|
|
217
|
+
this._rolloffFactor = Math.max(0, rolloffFactor);
|
|
218
|
+
}
|
|
159
219
|
if (Object.keys(playbackOptions).length > 0) {
|
|
160
220
|
this.applyOptions(playbackOptions);
|
|
161
221
|
}
|
|
@@ -274,7 +334,7 @@ class Sound extends AbstractMedia {
|
|
|
274
334
|
if (offset >= this.duration) {
|
|
275
335
|
return this;
|
|
276
336
|
}
|
|
277
|
-
const duration = loop ? undefined :
|
|
337
|
+
const duration = loop ? undefined : this.duration - offset;
|
|
278
338
|
this._enqueuePooledPlay({
|
|
279
339
|
offset,
|
|
280
340
|
duration,
|
|
@@ -307,7 +367,7 @@ class Sound extends AbstractMedia {
|
|
|
307
367
|
}
|
|
308
368
|
this._enqueuePooledPlay({
|
|
309
369
|
offset,
|
|
310
|
-
duration: loop ? undefined :
|
|
370
|
+
duration: loop ? undefined : clip.end - offset,
|
|
311
371
|
loop,
|
|
312
372
|
loopStart: clip.start,
|
|
313
373
|
loopEnd: clip.end,
|
|
@@ -401,10 +461,10 @@ class Sound extends AbstractMedia {
|
|
|
401
461
|
const ctx = this._audioSetup.audioContext;
|
|
402
462
|
const panner = ctx.createPanner();
|
|
403
463
|
panner.panningModel = 'equalpower';
|
|
404
|
-
panner.distanceModel =
|
|
405
|
-
panner.
|
|
406
|
-
panner.
|
|
407
|
-
panner.rolloffFactor =
|
|
464
|
+
panner.distanceModel = this._distanceModel;
|
|
465
|
+
panner.refDistance = this._refDistance;
|
|
466
|
+
panner.maxDistance = this._maxDistance;
|
|
467
|
+
panner.rolloffFactor = this._rolloffFactor;
|
|
408
468
|
this._pannerNode = panner;
|
|
409
469
|
// Re-route: gainNode → pannerNode → bus.inputNode
|
|
410
470
|
this._audioSetup.gainNode.disconnect();
|