@codexo/exojs 0.13.0 → 0.14.0
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 +133 -6
- package/README.md +80 -63
- package/dist/esm/animation/Tween.js +1 -1
- package/dist/esm/animation/Tween.js.map +1 -1
- package/dist/esm/animation/TweenManager.d.ts +9 -5
- package/dist/esm/animation/TweenManager.d.ts.map +1 -1
- package/dist/esm/animation/TweenManager.js +14 -8
- package/dist/esm/animation/TweenManager.js.map +1 -1
- package/dist/esm/animation/index.d.ts +6 -4
- package/dist/esm/animation/index.d.ts.map +1 -1
- package/dist/esm/audio/AudioBus.d.ts +12 -12
- package/dist/esm/audio/AudioBus.js +29 -29
- package/dist/esm/audio/AudioEffect.d.ts +18 -0
- package/dist/esm/audio/AudioEffect.d.ts.map +1 -0
- package/dist/esm/audio/AudioEffect.js +16 -0
- package/dist/esm/audio/AudioEffect.js.map +1 -0
- package/dist/esm/audio/AudioGenerator.d.ts +91 -0
- package/dist/esm/audio/AudioGenerator.d.ts.map +1 -0
- package/dist/esm/audio/AudioGenerator.js +165 -0
- package/dist/esm/audio/AudioGenerator.js.map +1 -0
- package/dist/esm/audio/AudioGeneratorVoice.d.ts +52 -0
- package/dist/esm/audio/AudioGeneratorVoice.d.ts.map +1 -0
- package/dist/esm/audio/AudioGeneratorVoice.js +141 -0
- package/dist/esm/audio/AudioGeneratorVoice.js.map +1 -0
- package/dist/esm/audio/AudioInput.d.ts +39 -0
- package/dist/esm/audio/AudioInput.d.ts.map +1 -0
- package/dist/esm/audio/AudioInput.js +53 -0
- package/dist/esm/audio/AudioInput.js.map +1 -0
- package/dist/esm/audio/AudioManager.d.ts +72 -34
- package/dist/esm/audio/AudioManager.d.ts.map +1 -1
- package/dist/esm/audio/AudioManager.js +97 -51
- package/dist/esm/audio/AudioManager.js.map +1 -1
- package/dist/esm/audio/AudioStream.d.ts +49 -0
- package/dist/esm/audio/AudioStream.d.ts.map +1 -0
- package/dist/esm/audio/AudioStream.js +109 -0
- package/dist/esm/audio/AudioStream.js.map +1 -0
- package/dist/esm/audio/AudioStreamVoice.d.ts +61 -0
- package/dist/esm/audio/AudioStreamVoice.d.ts.map +1 -0
- package/dist/esm/audio/AudioStreamVoice.js +137 -0
- package/dist/esm/audio/AudioStreamVoice.js.map +1 -0
- package/dist/esm/audio/BaseVoice.d.ts +111 -0
- package/dist/esm/audio/BaseVoice.d.ts.map +1 -0
- package/dist/esm/audio/BaseVoice.js +298 -0
- package/dist/esm/audio/BaseVoice.js.map +1 -0
- package/dist/esm/audio/BiquadEffect.d.ts +53 -0
- package/dist/esm/audio/BiquadEffect.d.ts.map +1 -0
- package/dist/esm/audio/BiquadEffect.js +110 -0
- package/dist/esm/audio/BiquadEffect.js.map +1 -0
- package/dist/esm/audio/InputVoice.d.ts +41 -0
- package/dist/esm/audio/InputVoice.d.ts.map +1 -0
- package/dist/esm/audio/InputVoice.js +85 -0
- package/dist/esm/audio/InputVoice.js.map +1 -0
- package/dist/esm/audio/NoopVoice.d.ts +29 -0
- package/dist/esm/audio/NoopVoice.d.ts.map +1 -0
- package/dist/esm/audio/NoopVoice.js +52 -0
- package/dist/esm/audio/NoopVoice.js.map +1 -0
- package/dist/esm/audio/Playable.d.ts +135 -0
- package/dist/esm/audio/Playable.d.ts.map +1 -0
- package/dist/esm/audio/Sound.d.ts +64 -69
- package/dist/esm/audio/Sound.d.ts.map +1 -1
- package/dist/esm/audio/Sound.js +176 -377
- package/dist/esm/audio/Sound.js.map +1 -1
- package/dist/esm/audio/SoundVoice.d.ts +63 -0
- package/dist/esm/audio/SoundVoice.d.ts.map +1 -0
- package/dist/esm/audio/SoundVoice.js +168 -0
- package/dist/esm/audio/SoundVoice.js.map +1 -0
- package/dist/esm/audio/{filters/WorkletFilter.d.ts → WorkletEffect.d.ts} +3 -3
- package/dist/esm/audio/WorkletEffect.d.ts.map +1 -0
- package/dist/esm/audio/{filters/WorkletFilter.js → WorkletEffect.js} +6 -6
- package/dist/esm/audio/WorkletEffect.js.map +1 -0
- package/dist/esm/audio/audio-context.js +1 -1
- package/dist/esm/audio/audio-context.js.map +1 -1
- package/dist/esm/audio/crossFade.d.ts +22 -13
- package/dist/esm/audio/crossFade.d.ts.map +1 -1
- package/dist/esm/audio/crossFade.js +21 -13
- package/dist/esm/audio/crossFade.js.map +1 -1
- package/dist/esm/audio/filters/HighpassFilter.d.ts +2 -2
- package/dist/esm/audio/filters/HighpassFilter.js +2 -2
- package/dist/esm/audio/filters/LowpassFilter.d.ts +2 -2
- package/dist/esm/audio/filters/LowpassFilter.js +2 -2
- package/dist/esm/audio/filters/index.d.ts +0 -10
- package/dist/esm/audio/filters/index.d.ts.map +1 -1
- package/dist/esm/audio/index.d.ts +13 -15
- package/dist/esm/audio/index.d.ts.map +1 -1
- package/dist/esm/core/Application.d.ts +127 -10
- package/dist/esm/core/Application.d.ts.map +1 -1
- package/dist/esm/core/Application.js +226 -25
- package/dist/esm/core/Application.js.map +1 -1
- package/dist/esm/core/BuildInfo.js +2 -2
- package/dist/esm/core/Color.d.ts +6 -4
- package/dist/esm/core/Color.d.ts.map +1 -1
- package/dist/esm/core/Color.js +19 -15
- package/dist/esm/core/Color.js.map +1 -1
- package/dist/esm/core/DisposalScope.d.ts +50 -0
- package/dist/esm/core/DisposalScope.d.ts.map +1 -0
- package/dist/esm/core/DisposalScope.js +86 -0
- package/dist/esm/core/DisposalScope.js.map +1 -0
- package/dist/esm/core/Perf.d.ts +10 -22
- package/dist/esm/core/Perf.d.ts.map +1 -1
- package/dist/esm/core/Perf.js +15 -8
- package/dist/esm/core/Perf.js.map +1 -1
- package/dist/esm/core/Registry.d.ts +64 -0
- package/dist/esm/core/Registry.d.ts.map +1 -0
- package/dist/esm/core/Registry.js +79 -0
- package/dist/esm/core/Registry.js.map +1 -0
- package/dist/esm/core/Scene.d.ts +69 -21
- package/dist/esm/core/Scene.d.ts.map +1 -1
- package/dist/esm/core/Scene.js +109 -16
- package/dist/esm/core/Scene.js.map +1 -1
- package/dist/esm/core/SceneManager.d.ts +22 -60
- package/dist/esm/core/SceneManager.d.ts.map +1 -1
- package/dist/esm/core/SceneManager.js +68 -153
- package/dist/esm/core/SceneManager.js.map +1 -1
- package/dist/esm/core/SceneNode.d.ts +43 -2
- package/dist/esm/core/SceneNode.d.ts.map +1 -1
- package/dist/esm/core/SceneNode.js +101 -12
- package/dist/esm/core/SceneNode.js.map +1 -1
- package/dist/esm/core/Signal.js.map +1 -1
- package/dist/esm/core/Stage.d.ts +42 -0
- package/dist/esm/core/Stage.d.ts.map +1 -0
- package/dist/esm/core/System.d.ts +22 -0
- package/dist/esm/core/System.d.ts.map +1 -0
- package/dist/esm/core/SystemRegistry.d.ts +35 -0
- package/dist/esm/core/SystemRegistry.d.ts.map +1 -0
- package/dist/esm/core/SystemRegistry.js +104 -0
- package/dist/esm/core/SystemRegistry.js.map +1 -0
- package/dist/esm/core/Time.d.ts +15 -0
- package/dist/esm/core/Time.d.ts.map +1 -1
- package/dist/esm/core/Time.js +25 -0
- package/dist/esm/core/Time.js.map +1 -1
- package/dist/esm/core/dev.d.ts +9 -4
- package/dist/esm/core/dev.d.ts.map +1 -1
- package/dist/esm/core/dev.js +5 -0
- package/dist/esm/core/dev.js.map +1 -1
- package/dist/esm/core/index.d.ts +26 -15
- package/dist/esm/core/index.d.ts.map +1 -1
- package/dist/esm/core/letterbox.d.ts +25 -0
- package/dist/esm/core/letterbox.d.ts.map +1 -0
- package/dist/esm/core/letterbox.js +26 -0
- package/dist/esm/core/letterbox.js.map +1 -0
- package/dist/esm/core/serialization/NodeSerializer.d.ts +71 -0
- package/dist/esm/core/serialization/NodeSerializer.d.ts.map +1 -0
- package/dist/esm/core/serialization/Prefab.d.ts +49 -0
- package/dist/esm/core/serialization/Prefab.d.ts.map +1 -0
- package/dist/esm/core/serialization/Prefab.js +61 -0
- package/dist/esm/core/serialization/Prefab.js.map +1 -0
- package/dist/esm/core/serialization/SerializationRegistry.d.ts +95 -0
- package/dist/esm/core/serialization/SerializationRegistry.d.ts.map +1 -0
- package/dist/esm/core/serialization/SerializationRegistry.js +108 -0
- package/dist/esm/core/serialization/SerializationRegistry.js.map +1 -0
- package/dist/esm/core/serialization/commonFields.d.ts +20 -0
- package/dist/esm/core/serialization/commonFields.d.ts.map +1 -0
- package/dist/esm/core/serialization/commonFields.js +149 -0
- package/dist/esm/core/serialization/commonFields.js.map +1 -0
- package/dist/esm/core/serialization/coreSerializers.d.ts +9 -0
- package/dist/esm/core/serialization/coreSerializers.d.ts.map +1 -0
- package/dist/esm/core/serialization/coreSerializers.js +101 -0
- package/dist/esm/core/serialization/coreSerializers.js.map +1 -0
- package/dist/esm/core/serialization/index.d.ts +6 -0
- package/dist/esm/core/serialization/index.d.ts.map +1 -0
- package/dist/esm/core/serialization/read.d.ts +65 -0
- package/dist/esm/core/serialization/read.d.ts.map +1 -0
- package/dist/esm/core/serialization/read.js +48 -0
- package/dist/esm/core/serialization/read.js.map +1 -0
- package/dist/esm/core/serialization/renderingSerializers.d.ts +7 -0
- package/dist/esm/core/serialization/renderingSerializers.d.ts.map +1 -0
- package/dist/esm/core/serialization/renderingSerializers.js +311 -0
- package/dist/esm/core/serialization/renderingSerializers.js.map +1 -0
- package/dist/esm/core/serialization/serialize.d.ts +56 -0
- package/dist/esm/core/serialization/serialize.d.ts.map +1 -0
- package/dist/esm/core/serialization/serialize.js +144 -0
- package/dist/esm/core/serialization/serialize.js.map +1 -0
- package/dist/esm/core/serialization/serializerHelpers.d.ts +46 -0
- package/dist/esm/core/serialization/serializerHelpers.d.ts.map +1 -0
- package/dist/esm/core/serialization/serializerHelpers.js +161 -0
- package/dist/esm/core/serialization/serializerHelpers.js.map +1 -0
- package/dist/esm/core/serialization/types.d.ts +49 -0
- package/dist/esm/core/serialization/types.d.ts.map +1 -0
- package/dist/esm/core/serialization/types.js +9 -0
- package/dist/esm/core/serialization/types.js.map +1 -0
- package/dist/esm/core/serialization/uiSerializers.d.ts +7 -0
- package/dist/esm/core/serialization/uiSerializers.d.ts.map +1 -0
- package/dist/esm/core/serialization/uiSerializers.js +206 -0
- package/dist/esm/core/serialization/uiSerializers.js.map +1 -0
- package/dist/esm/core/types.d.ts +1 -1
- package/dist/esm/core/types.d.ts.map +1 -1
- package/dist/esm/core/utils.d.ts +1 -16
- package/dist/esm/core/utils.d.ts.map +1 -1
- package/dist/esm/core/utils.js +2 -100
- package/dist/esm/core/utils.js.map +1 -1
- package/dist/esm/debug/PerformanceLayer.js +8 -9
- package/dist/esm/debug/PerformanceLayer.js.map +1 -1
- package/dist/esm/debug/PointerStackLayer.d.ts.map +1 -1
- package/dist/esm/debug/PointerStackLayer.js +9 -6
- package/dist/esm/debug/PointerStackLayer.js.map +1 -1
- package/dist/esm/debug/RenderPassInspectorLayer.d.ts.map +1 -1
- package/dist/esm/debug/RenderPassInspectorLayer.js +19 -12
- package/dist/esm/debug/RenderPassInspectorLayer.js.map +1 -1
- package/dist/esm/extensions/Extension.d.ts +39 -4
- package/dist/esm/extensions/Extension.d.ts.map +1 -1
- package/dist/esm/extensions/materialize.d.ts +9 -1
- package/dist/esm/extensions/materialize.d.ts.map +1 -1
- package/dist/esm/extensions/materialize.js +17 -2
- package/dist/esm/extensions/materialize.js.map +1 -1
- package/dist/esm/extensions/snapshot.d.ts +2 -1
- package/dist/esm/extensions/snapshot.d.ts.map +1 -1
- package/dist/esm/extensions/snapshot.js +8 -0
- package/dist/esm/extensions/snapshot.js.map +1 -1
- package/dist/esm/index.d.ts +2 -1
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +34 -59
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/input/FocusManager.d.ts +59 -0
- package/dist/esm/input/FocusManager.d.ts.map +1 -0
- package/dist/esm/input/FocusManager.js +175 -0
- package/dist/esm/input/FocusManager.js.map +1 -0
- package/dist/esm/input/Gamepad.d.ts.map +1 -1
- package/dist/esm/input/Gamepad.js +8 -4
- package/dist/esm/input/Gamepad.js.map +1 -1
- package/dist/esm/input/GamepadAxis.js +2 -2
- package/dist/esm/input/GamepadDefinitions.d.ts.map +1 -1
- package/dist/esm/input/GamepadDefinitions.js +6 -2
- package/dist/esm/input/GamepadDefinitions.js.map +1 -1
- package/dist/esm/input/GestureRecognizer.d.ts +1 -2
- package/dist/esm/input/GestureRecognizer.d.ts.map +1 -1
- package/dist/esm/input/GestureRecognizer.js +1 -3
- package/dist/esm/input/GestureRecognizer.js.map +1 -1
- package/dist/esm/input/InputBinding.js +3 -3
- package/dist/esm/input/InputBinding.js.map +1 -1
- package/dist/esm/input/InputManager.d.ts +7 -2
- package/dist/esm/input/InputManager.d.ts.map +1 -1
- package/dist/esm/input/InputManager.js +35 -21
- package/dist/esm/input/InputManager.js.map +1 -1
- package/dist/esm/input/InteractionManager.d.ts +67 -2
- package/dist/esm/input/InteractionManager.d.ts.map +1 -1
- package/dist/esm/input/InteractionManager.js +165 -41
- package/dist/esm/input/InteractionManager.js.map +1 -1
- package/dist/esm/input/KeyEvent.d.ts +25 -0
- package/dist/esm/input/KeyEvent.d.ts.map +1 -0
- package/dist/esm/input/KeyEvent.js +32 -0
- package/dist/esm/input/KeyEvent.js.map +1 -0
- package/dist/esm/input/Pointer.d.ts +21 -4
- package/dist/esm/input/Pointer.d.ts.map +1 -1
- package/dist/esm/input/Pointer.js +54 -15
- package/dist/esm/input/Pointer.js.map +1 -1
- package/dist/esm/input/index.d.ts +3 -1
- package/dist/esm/input/index.d.ts.map +1 -1
- package/dist/esm/math/AbstractVector.d.ts.map +1 -1
- package/dist/esm/math/AbstractVector.js +7 -2
- package/dist/esm/math/AbstractVector.js.map +1 -1
- package/dist/esm/math/Circle.d.ts.map +1 -1
- package/dist/esm/math/Circle.js +5 -1
- package/dist/esm/math/Circle.js.map +1 -1
- package/dist/esm/math/Line.d.ts +1 -1
- package/dist/esm/math/Line.d.ts.map +1 -1
- package/dist/esm/math/Line.js +1 -1
- package/dist/esm/math/Line.js.map +1 -1
- package/dist/esm/math/Matrix.d.ts.map +1 -1
- package/dist/esm/math/Matrix.js +6 -1
- package/dist/esm/math/Matrix.js.map +1 -1
- package/dist/esm/math/ObservableVector.d.ts +26 -8
- package/dist/esm/math/ObservableVector.d.ts.map +1 -1
- package/dist/esm/math/ObservableVector.js +24 -16
- package/dist/esm/math/ObservableVector.js.map +1 -1
- package/dist/esm/math/Polygon.d.ts +5 -0
- package/dist/esm/math/Polygon.d.ts.map +1 -1
- package/dist/esm/math/Polygon.js +27 -3
- package/dist/esm/math/Polygon.js.map +1 -1
- package/dist/esm/math/Random.d.ts +9 -9
- package/dist/esm/math/Random.d.ts.map +1 -1
- package/dist/esm/math/Random.js +46 -46
- package/dist/esm/math/Random.js.map +1 -1
- package/dist/esm/math/Rectangle.d.ts +11 -4
- package/dist/esm/math/Rectangle.d.ts.map +1 -1
- package/dist/esm/math/Rectangle.js +12 -6
- package/dist/esm/math/Rectangle.js.map +1 -1
- package/dist/esm/math/Vector.d.ts +1 -1
- package/dist/esm/math/Vector.d.ts.map +1 -1
- package/dist/esm/math/Vector.js +1 -1
- package/dist/esm/math/Vector.js.map +1 -1
- package/dist/esm/math/collision-detection.d.ts +42 -0
- package/dist/esm/math/collision-detection.d.ts.map +1 -1
- package/dist/esm/math/collision-detection.js +54 -4
- package/dist/esm/math/collision-detection.js.map +1 -1
- package/dist/esm/math/collision-primitives.d.ts.map +1 -1
- package/dist/esm/math/collision-primitives.js +4 -0
- package/dist/esm/math/collision-primitives.js.map +1 -1
- package/dist/esm/math/geometry.d.ts +26 -0
- package/dist/esm/math/geometry.d.ts.map +1 -1
- package/dist/esm/math/geometry.js +89 -2
- package/dist/esm/math/geometry.js.map +1 -1
- package/dist/esm/math/index.d.ts +7 -5
- package/dist/esm/math/index.d.ts.map +1 -1
- package/dist/esm/math/swept-collision.d.ts +13 -0
- package/dist/esm/math/swept-collision.d.ts.map +1 -1
- package/dist/esm/math/swept-collision.js +15 -1
- package/dist/esm/math/swept-collision.js.map +1 -1
- package/dist/esm/math/triangulate.d.ts.map +1 -1
- package/dist/esm/math/triangulate.js +9 -1
- package/dist/esm/math/triangulate.js.map +1 -1
- package/dist/esm/math/utils.d.ts +20 -0
- package/dist/esm/math/utils.d.ts.map +1 -1
- package/dist/esm/math/utils.js +18 -15
- package/dist/esm/math/utils.js.map +1 -1
- package/dist/esm/renderer-sdk.d.ts +2 -0
- package/dist/esm/renderer-sdk.d.ts.map +1 -1
- package/dist/esm/{rendering.js → renderer-sdk.js} +1 -1
- package/dist/esm/renderer-sdk.js.map +1 -0
- package/dist/esm/rendering/CallbackRenderPass.js +1 -1
- package/dist/esm/rendering/CallbackRenderPass.js.map +1 -1
- package/dist/esm/rendering/Container.d.ts +3 -0
- package/dist/esm/rendering/Container.d.ts.map +1 -1
- package/dist/esm/rendering/Container.js +28 -5
- package/dist/esm/rendering/Container.js.map +1 -1
- package/dist/esm/rendering/Drawable.d.ts +24 -0
- package/dist/esm/rendering/Drawable.d.ts.map +1 -1
- package/dist/esm/rendering/Drawable.js +54 -0
- package/dist/esm/rendering/Drawable.js.map +1 -1
- package/dist/esm/rendering/GpuResourceAccountant.d.ts +65 -0
- package/dist/esm/rendering/GpuResourceAccountant.d.ts.map +1 -0
- package/dist/esm/rendering/GpuResourceAccountant.js +130 -0
- package/dist/esm/rendering/GpuResourceAccountant.js.map +1 -0
- package/dist/esm/rendering/RenderBackend.d.ts +15 -1
- package/dist/esm/rendering/RenderBackend.d.ts.map +1 -1
- package/dist/esm/rendering/RenderBatch.d.ts +55 -0
- package/dist/esm/rendering/RenderBatch.d.ts.map +1 -0
- package/dist/esm/rendering/RenderBatch.js +107 -0
- package/dist/esm/rendering/RenderBatch.js.map +1 -0
- package/dist/esm/rendering/RenderNode.d.ts +50 -10
- package/dist/esm/rendering/RenderNode.d.ts.map +1 -1
- package/dist/esm/rendering/RenderNode.js +113 -20
- package/dist/esm/rendering/RenderNode.js.map +1 -1
- package/dist/esm/rendering/RenderNodePass.js +2 -2
- package/dist/esm/rendering/RenderNodePass.js.map +1 -1
- package/dist/esm/rendering/RenderStats.d.ts +39 -0
- package/dist/esm/rendering/RenderStats.d.ts.map +1 -1
- package/dist/esm/rendering/RenderStats.js +14 -0
- package/dist/esm/rendering/RenderStats.js.map +1 -1
- package/dist/esm/rendering/RendererRegistry.d.ts.map +1 -1
- package/dist/esm/rendering/RendererRegistry.js +20 -23
- package/dist/esm/rendering/RendererRegistry.js.map +1 -1
- package/dist/esm/rendering/RenderingContext.d.ts +88 -4
- package/dist/esm/rendering/RenderingContext.d.ts.map +1 -1
- package/dist/esm/rendering/RenderingContext.js +107 -5
- package/dist/esm/rendering/RenderingContext.js.map +1 -1
- package/dist/esm/rendering/TransformBuffer.d.ts.map +1 -1
- package/dist/esm/rendering/TransformBuffer.js +2 -0
- package/dist/esm/rendering/TransformBuffer.js.map +1 -1
- package/dist/esm/rendering/View.d.ts +47 -15
- package/dist/esm/rendering/View.d.ts.map +1 -1
- package/dist/esm/rendering/View.js +44 -27
- package/dist/esm/rendering/View.js.map +1 -1
- package/dist/esm/rendering/filters/WebGpuShaderFilter.d.ts.map +1 -1
- package/dist/esm/rendering/filters/WebGpuShaderFilter.js +3 -1
- package/dist/esm/rendering/filters/WebGpuShaderFilter.js.map +1 -1
- package/dist/esm/rendering/geometry/Geometry.d.ts.map +1 -1
- package/dist/esm/rendering/geometry/Geometry.js +4 -2
- package/dist/esm/rendering/geometry/Geometry.js.map +1 -1
- package/dist/esm/rendering/gradient/Gradient.d.ts.map +1 -1
- package/dist/esm/rendering/gradient/Gradient.js +7 -2
- package/dist/esm/rendering/gradient/Gradient.js.map +1 -1
- package/dist/esm/rendering/material/MaterialKey.d.ts.map +1 -1
- package/dist/esm/rendering/material/MaterialKey.js +2 -0
- package/dist/esm/rendering/material/MaterialKey.js.map +1 -1
- package/dist/esm/rendering/material/ShaderSource.js +6 -0
- package/dist/esm/rendering/material/ShaderSource.js.map +1 -1
- package/dist/esm/rendering/mesh/ImmediateMesh.d.ts +48 -0
- package/dist/esm/rendering/mesh/ImmediateMesh.d.ts.map +1 -0
- package/dist/esm/rendering/mesh/ImmediateMesh.js +85 -0
- package/dist/esm/rendering/mesh/ImmediateMesh.js.map +1 -0
- package/dist/esm/rendering/mesh/Mesh.d.ts +29 -6
- package/dist/esm/rendering/mesh/Mesh.d.ts.map +1 -1
- package/dist/esm/rendering/mesh/Mesh.js +40 -13
- package/dist/esm/rendering/mesh/Mesh.js.map +1 -1
- package/dist/esm/rendering/pixelSnap.d.ts.map +1 -1
- package/dist/esm/rendering/pixelSnap.js +1 -0
- package/dist/esm/rendering/pixelSnap.js.map +1 -1
- package/dist/esm/rendering/plan/RenderCommand.d.ts +31 -9
- package/dist/esm/rendering/plan/RenderCommand.d.ts.map +1 -1
- package/dist/esm/rendering/plan/RenderCommand.js +23 -21
- package/dist/esm/rendering/plan/RenderCommand.js.map +1 -1
- package/dist/esm/rendering/plan/RenderEffectExecutor.d.ts.map +1 -1
- package/dist/esm/rendering/plan/RenderEffectExecutor.js +1 -0
- package/dist/esm/rendering/plan/RenderEffectExecutor.js.map +1 -1
- package/dist/esm/rendering/plan/RenderInstruction.d.ts +7 -37
- package/dist/esm/rendering/plan/RenderInstruction.d.ts.map +1 -1
- package/dist/esm/rendering/plan/RenderPlanBuilder.d.ts +17 -2
- package/dist/esm/rendering/plan/RenderPlanBuilder.d.ts.map +1 -1
- package/dist/esm/rendering/plan/RenderPlanBuilder.js +132 -46
- package/dist/esm/rendering/plan/RenderPlanBuilder.js.map +1 -1
- package/dist/esm/rendering/plan/RenderPlanOptimizer.d.ts.map +1 -1
- package/dist/esm/rendering/plan/RenderPlanOptimizer.js +31 -4
- package/dist/esm/rendering/plan/RenderPlanOptimizer.js.map +1 -1
- package/dist/esm/rendering/plan/RenderPlanPlayer.d.ts.map +1 -1
- package/dist/esm/rendering/plan/RenderPlanPlayer.js +54 -17
- package/dist/esm/rendering/plan/RenderPlanPlayer.js.map +1 -1
- package/dist/esm/rendering/plan/RenderScope.d.ts +16 -10
- package/dist/esm/rendering/plan/RenderScope.d.ts.map +1 -1
- package/dist/esm/rendering/primitives/Graphics.d.ts +6 -0
- package/dist/esm/rendering/primitives/Graphics.d.ts.map +1 -1
- package/dist/esm/rendering/primitives/Graphics.js +17 -1
- package/dist/esm/rendering/primitives/Graphics.js.map +1 -1
- package/dist/esm/rendering/{index.d.ts → public.d.ts} +5 -35
- package/dist/esm/rendering/public.d.ts.map +1 -0
- package/dist/esm/rendering/shader/ShaderAttribute.d.ts.map +1 -1
- package/dist/esm/rendering/shader/ShaderAttribute.js +2 -0
- package/dist/esm/rendering/shader/ShaderAttribute.js.map +1 -1
- package/dist/esm/rendering/sprite/AnimatedSprite.d.ts +11 -0
- package/dist/esm/rendering/sprite/AnimatedSprite.d.ts.map +1 -1
- package/dist/esm/rendering/sprite/AnimatedSprite.js +24 -2
- package/dist/esm/rendering/sprite/AnimatedSprite.js.map +1 -1
- package/dist/esm/rendering/sprite/NineSliceSprite.d.ts.map +1 -1
- package/dist/esm/rendering/sprite/NineSliceSprite.js +10 -11
- package/dist/esm/rendering/sprite/NineSliceSprite.js.map +1 -1
- package/dist/esm/rendering/sprite/RepeatingSprite.d.ts.map +1 -1
- package/dist/esm/rendering/sprite/RepeatingSprite.js +1 -3
- package/dist/esm/rendering/sprite/RepeatingSprite.js.map +1 -1
- package/dist/esm/rendering/sprite/Sprite.d.ts.map +1 -1
- package/dist/esm/rendering/sprite/Sprite.js +30 -3
- package/dist/esm/rendering/sprite/Sprite.js.map +1 -1
- package/dist/esm/rendering/sprite/nineSlice.d.ts.map +1 -1
- package/dist/esm/rendering/sprite/nineSlice.js +12 -18
- package/dist/esm/rendering/sprite/nineSlice.js.map +1 -1
- package/dist/esm/rendering/sprite/repeatingSpritePlan.d.ts.map +1 -1
- package/dist/esm/rendering/sprite/repeatingSpritePlan.js +2 -2
- package/dist/esm/rendering/sprite/repeatingSpritePlan.js.map +1 -1
- package/dist/esm/rendering/text/BitmapText.d.ts +2 -0
- package/dist/esm/rendering/text/BitmapText.d.ts.map +1 -1
- package/dist/esm/rendering/text/BitmapText.js +4 -0
- package/dist/esm/rendering/text/BitmapText.js.map +1 -1
- package/dist/esm/rendering/text/GlyphAtlas.d.ts.map +1 -1
- package/dist/esm/rendering/text/GlyphAtlas.js +2 -1
- package/dist/esm/rendering/text/GlyphAtlas.js.map +1 -1
- package/dist/esm/rendering/text/GlyphAtlasPool.d.ts +8 -1
- package/dist/esm/rendering/text/GlyphAtlasPool.d.ts.map +1 -1
- package/dist/esm/rendering/text/GlyphAtlasPool.js +9 -12
- package/dist/esm/rendering/text/GlyphAtlasPool.js.map +1 -1
- package/dist/esm/rendering/text/GlyphSdf.d.ts.map +1 -1
- package/dist/esm/rendering/text/GlyphSdf.js +5 -1
- package/dist/esm/rendering/text/GlyphSdf.js.map +1 -1
- package/dist/esm/rendering/text/HTMLText.d.ts.map +1 -1
- package/dist/esm/rendering/text/HTMLText.js +1 -0
- package/dist/esm/rendering/text/HTMLText.js.map +1 -1
- package/dist/esm/rendering/text/Text.d.ts +17 -6
- package/dist/esm/rendering/text/Text.d.ts.map +1 -1
- package/dist/esm/rendering/text/Text.js +7 -12
- package/dist/esm/rendering/text/Text.js.map +1 -1
- package/dist/esm/rendering/text/TextLayout.d.ts.map +1 -1
- package/dist/esm/rendering/text/TextLayout.js +4 -18
- package/dist/esm/rendering/text/TextLayout.js.map +1 -1
- package/dist/esm/rendering/texture/DataTexture.js +2 -2
- package/dist/esm/rendering/texture/DataTexture.js.map +1 -1
- package/dist/esm/rendering/texture/Texture.d.ts +6 -0
- package/dist/esm/rendering/texture/Texture.d.ts.map +1 -1
- package/dist/esm/rendering/texture/Texture.js +8 -0
- package/dist/esm/rendering/texture/Texture.js.map +1 -1
- package/dist/esm/rendering/texture/TextureRegion.d.ts.map +1 -1
- package/dist/esm/rendering/texture/TextureRegion.js.map +1 -1
- package/dist/esm/rendering/texture/repeat.d.ts.map +1 -1
- package/dist/esm/rendering/texture/repeat.js +2 -2
- package/dist/esm/rendering/texture/repeat.js.map +1 -1
- package/dist/esm/rendering/types.d.ts +11 -0
- package/dist/esm/rendering/types.d.ts.map +1 -1
- package/dist/esm/rendering/types.js +11 -0
- package/dist/esm/rendering/types.js.map +1 -1
- package/dist/esm/rendering/video/Video.d.ts +7 -3
- package/dist/esm/rendering/video/Video.d.ts.map +1 -1
- package/dist/esm/rendering/video/Video.js +7 -3
- package/dist/esm/rendering/video/Video.js.map +1 -1
- package/dist/esm/rendering/webgl2/AbstractWebGl2BatchedRenderer.d.ts.map +1 -1
- package/dist/esm/rendering/webgl2/AbstractWebGl2BatchedRenderer.js +2 -2
- package/dist/esm/rendering/webgl2/AbstractWebGl2BatchedRenderer.js.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2Backend.d.ts +21 -2
- package/dist/esm/rendering/webgl2/WebGl2Backend.d.ts.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2Backend.js +106 -6
- package/dist/esm/rendering/webgl2/WebGl2Backend.js.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2MaskCompositor.d.ts.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2MaskCompositor.js +2 -2
- package/dist/esm/rendering/webgl2/WebGl2MaskCompositor.js.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2MeshRenderer.d.ts +17 -0
- package/dist/esm/rendering/webgl2/WebGl2MeshRenderer.d.ts.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2MeshRenderer.js +122 -38
- package/dist/esm/rendering/webgl2/WebGl2MeshRenderer.js.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2NineSliceSpriteRenderer.d.ts.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2NineSliceSpriteRenderer.js +2 -1
- package/dist/esm/rendering/webgl2/WebGl2NineSliceSpriteRenderer.js.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2RenderBuffer.d.ts +16 -1
- package/dist/esm/rendering/webgl2/WebGl2RenderBuffer.d.ts.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2RenderBuffer.js +32 -1
- package/dist/esm/rendering/webgl2/WebGl2RenderBuffer.js.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2RepeatingSpriteRenderer.d.ts.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2RepeatingSpriteRenderer.js +15 -11
- package/dist/esm/rendering/webgl2/WebGl2RepeatingSpriteRenderer.js.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2ShaderBlock.d.ts.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2ShaderBlock.js +14 -3
- package/dist/esm/rendering/webgl2/WebGl2ShaderBlock.js.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2ShaderMappings.js +3 -3
- package/dist/esm/rendering/webgl2/WebGl2ShaderMappings.js.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2ShaderProgram.d.ts.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2ShaderProgram.js +11 -2
- package/dist/esm/rendering/webgl2/WebGl2ShaderProgram.js.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2SpriteRenderer.d.ts.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2SpriteRenderer.js +7 -2
- package/dist/esm/rendering/webgl2/WebGl2SpriteRenderer.js.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2StencilClipper.d.ts.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2StencilClipper.js +3 -2
- package/dist/esm/rendering/webgl2/WebGl2StencilClipper.js.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2TextRenderer.d.ts.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2TextRenderer.js +10 -4
- package/dist/esm/rendering/webgl2/WebGl2TextRenderer.js.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuBackend.d.ts +18 -2
- package/dist/esm/rendering/webgpu/WebGpuBackend.d.ts.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuBackend.js +91 -10
- package/dist/esm/rendering/webgpu/WebGpuBackend.js.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuBlendState.d.ts.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuBlendState.js +3 -0
- package/dist/esm/rendering/webgpu/WebGpuBlendState.js.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.d.ts +13 -0
- package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.d.ts.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.js +102 -24
- package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.js.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuNineSliceSpriteRenderer.d.ts.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuNineSliceSpriteRenderer.js +6 -1
- package/dist/esm/rendering/webgpu/WebGpuNineSliceSpriteRenderer.js.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuRepeatingSpriteRenderer.d.ts.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuRepeatingSpriteRenderer.js +19 -9
- package/dist/esm/rendering/webgpu/WebGpuRepeatingSpriteRenderer.js.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.d.ts.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.js +8 -4
- package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.js.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuStencilClipper.d.ts.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuStencilClipper.js +1 -0
- package/dist/esm/rendering/webgpu/WebGpuStencilClipper.js.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuTextRenderer.d.ts.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuTextRenderer.js +19 -7
- package/dist/esm/rendering/webgpu/WebGpuTextRenderer.js.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuTransformStorage.d.ts +13 -2
- package/dist/esm/rendering/webgpu/WebGpuTransformStorage.d.ts.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuTransformStorage.js +22 -2
- package/dist/esm/rendering/webgpu/WebGpuTransformStorage.js.map +1 -1
- package/dist/esm/rendering/webgpu/compute/WebGpuComputePipeline.js +1 -1
- package/dist/esm/rendering/webgpu/compute/WebGpuComputePipeline.js.map +1 -1
- package/dist/esm/rendering/webgpu/compute/WebGpuStorageBuffer.d.ts +7 -0
- package/dist/esm/rendering/webgpu/compute/WebGpuStorageBuffer.d.ts.map +1 -1
- package/dist/esm/rendering/webgpu/compute/WebGpuStorageBuffer.js +8 -0
- package/dist/esm/rendering/webgpu/compute/WebGpuStorageBuffer.js.map +1 -1
- package/dist/esm/resources/Asset.d.ts +1 -1
- package/dist/esm/resources/Asset.d.ts.map +1 -1
- package/dist/esm/resources/Asset.js +0 -2
- package/dist/esm/resources/Asset.js.map +1 -1
- package/dist/esm/resources/AssetContainer.d.ts +75 -0
- package/dist/esm/resources/AssetContainer.d.ts.map +1 -0
- package/dist/esm/resources/AssetContainer.js +100 -0
- package/dist/esm/resources/AssetContainer.js.map +1 -0
- package/dist/esm/resources/AssetDefinitions.d.ts +3 -3
- package/dist/esm/resources/AssetDefinitions.d.ts.map +1 -1
- package/dist/esm/resources/Assets.d.ts.map +1 -1
- package/dist/esm/resources/Assets.js +0 -1
- package/dist/esm/resources/Assets.js.map +1 -1
- package/dist/esm/resources/FactoryRegistry.d.ts.map +1 -1
- package/dist/esm/resources/FactoryRegistry.js +14 -23
- package/dist/esm/resources/FactoryRegistry.js.map +1 -1
- package/dist/esm/resources/IndexedDbDatabase.d.ts.map +1 -1
- package/dist/esm/resources/IndexedDbDatabase.js +8 -1
- package/dist/esm/resources/IndexedDbDatabase.js.map +1 -1
- package/dist/esm/resources/IndexedDbKeyValueStore.d.ts +37 -0
- package/dist/esm/resources/IndexedDbKeyValueStore.d.ts.map +1 -0
- package/dist/esm/resources/IndexedDbKeyValueStore.js +58 -0
- package/dist/esm/resources/IndexedDbKeyValueStore.js.map +1 -0
- package/dist/esm/resources/KeyValueStore.d.ts +31 -0
- package/dist/esm/resources/KeyValueStore.d.ts.map +1 -0
- package/dist/esm/resources/Loader.d.ts +42 -2
- package/dist/esm/resources/Loader.d.ts.map +1 -1
- package/dist/esm/resources/Loader.js +92 -7
- package/dist/esm/resources/Loader.js.map +1 -1
- package/dist/esm/resources/MemoryStore.d.ts +17 -0
- package/dist/esm/resources/MemoryStore.d.ts.map +1 -0
- package/dist/esm/resources/MemoryStore.js +30 -0
- package/dist/esm/resources/MemoryStore.js.map +1 -0
- package/dist/esm/resources/WebStorageStore.d.ts +40 -0
- package/dist/esm/resources/WebStorageStore.d.ts.map +1 -0
- package/dist/esm/resources/WebStorageStore.js +84 -0
- package/dist/esm/resources/WebStorageStore.js.map +1 -0
- package/dist/esm/resources/coreAssetBindings.d.ts.map +1 -1
- package/dist/esm/resources/coreAssetBindings.js +16 -5
- package/dist/esm/resources/coreAssetBindings.js.map +1 -1
- package/dist/esm/resources/factories/BmFontFactory.js +4 -4
- package/dist/esm/resources/factories/BmFontFactory.js.map +1 -1
- package/dist/esm/resources/factories/MusicFactory.d.ts +9 -9
- package/dist/esm/resources/factories/MusicFactory.d.ts.map +1 -1
- package/dist/esm/resources/factories/MusicFactory.js +7 -7
- package/dist/esm/resources/factories/MusicFactory.js.map +1 -1
- package/dist/esm/resources/factories/SoundFactory.js +2 -2
- package/dist/esm/resources/factories/SoundFactory.js.map +1 -1
- package/dist/esm/resources/factories/SubtitleFactory.d.ts +11 -1
- package/dist/esm/resources/factories/SubtitleFactory.d.ts.map +1 -1
- package/dist/esm/resources/factories/SubtitleFactory.js +13 -9
- package/dist/esm/resources/factories/SubtitleFactory.js.map +1 -1
- package/dist/esm/resources/index.d.ts +51 -34
- package/dist/esm/resources/index.d.ts.map +1 -1
- package/dist/esm/resources/utils.js +4 -4
- package/dist/esm/resources/utils.js.map +1 -1
- package/dist/esm/ui/Button.d.ts +54 -0
- package/dist/esm/ui/Button.d.ts.map +1 -0
- package/dist/esm/ui/Button.js +139 -0
- package/dist/esm/ui/Button.js.map +1 -0
- package/dist/esm/ui/Label.d.ts +17 -0
- package/dist/esm/ui/Label.d.ts.map +1 -0
- package/dist/esm/ui/Label.js +37 -0
- package/dist/esm/ui/Label.js.map +1 -0
- package/dist/esm/ui/Panel.d.ts +38 -0
- package/dist/esm/ui/Panel.d.ts.map +1 -0
- package/dist/esm/ui/Panel.js +61 -0
- package/dist/esm/ui/Panel.js.map +1 -0
- package/dist/esm/ui/ProgressBar.d.ts +37 -0
- package/dist/esm/ui/ProgressBar.d.ts.map +1 -0
- package/dist/esm/ui/ProgressBar.js +76 -0
- package/dist/esm/ui/ProgressBar.js.map +1 -0
- package/dist/esm/ui/Stack.d.ts +34 -0
- package/dist/esm/ui/Stack.d.ts.map +1 -0
- package/dist/esm/ui/Stack.js +69 -0
- package/dist/esm/ui/Stack.js.map +1 -0
- package/dist/esm/ui/UIRoot.d.ts +31 -0
- package/dist/esm/ui/UIRoot.d.ts.map +1 -0
- package/dist/esm/ui/UIRoot.js +49 -0
- package/dist/esm/ui/UIRoot.js.map +1 -0
- package/dist/esm/ui/Widget.d.ts +45 -0
- package/dist/esm/ui/Widget.d.ts.map +1 -0
- package/dist/esm/ui/Widget.js +113 -0
- package/dist/esm/ui/Widget.js.map +1 -0
- package/dist/esm/ui/index.d.ts +13 -0
- package/dist/esm/ui/index.d.ts.map +1 -0
- package/dist/exo.debug.esm.js +1 -948
- package/dist/exo.debug.esm.js.map +1 -1
- package/dist/exo.esm.js +1 -40945
- package/dist/exo.esm.js.map +1 -1
- package/package.json +24 -13
- package/dist/esm/audio/AbstractMedia.d.ts +0 -75
- package/dist/esm/audio/AbstractMedia.d.ts.map +0 -1
- package/dist/esm/audio/AbstractMedia.js +0 -179
- package/dist/esm/audio/AbstractMedia.js.map +0 -1
- package/dist/esm/audio/AudioAnalyser.d.ts +0 -128
- package/dist/esm/audio/AudioAnalyser.d.ts.map +0 -1
- package/dist/esm/audio/AudioAnalyser.js +0 -473
- package/dist/esm/audio/AudioAnalyser.js.map +0 -1
- package/dist/esm/audio/AudioFilter.d.ts +0 -17
- package/dist/esm/audio/AudioFilter.d.ts.map +0 -1
- package/dist/esm/audio/AudioFilter.js +0 -15
- package/dist/esm/audio/AudioFilter.js.map +0 -1
- package/dist/esm/audio/BeatDetector.d.ts +0 -207
- package/dist/esm/audio/BeatDetector.d.ts.map +0 -1
- package/dist/esm/audio/BeatDetector.js +0 -424
- package/dist/esm/audio/BeatDetector.js.map +0 -1
- package/dist/esm/audio/Media.d.ts +0 -37
- package/dist/esm/audio/Media.d.ts.map +0 -1
- package/dist/esm/audio/Music.d.ts +0 -42
- package/dist/esm/audio/Music.d.ts.map +0 -1
- package/dist/esm/audio/Music.js +0 -164
- package/dist/esm/audio/Music.js.map +0 -1
- package/dist/esm/audio/OscillatorSound.d.ts +0 -100
- package/dist/esm/audio/OscillatorSound.d.ts.map +0 -1
- package/dist/esm/audio/OscillatorSound.js +0 -346
- package/dist/esm/audio/OscillatorSound.js.map +0 -1
- package/dist/esm/audio/dsp/fft.d.ts +0 -23
- package/dist/esm/audio/dsp/fft.d.ts.map +0 -1
- package/dist/esm/audio/dsp/mel.d.ts +0 -44
- package/dist/esm/audio/dsp/mel.d.ts.map +0 -1
- package/dist/esm/audio/dsp/mel.js +0 -70
- package/dist/esm/audio/dsp/mel.js.map +0 -1
- package/dist/esm/audio/dsp/tempogram.d.ts +0 -52
- package/dist/esm/audio/dsp/tempogram.d.ts.map +0 -1
- package/dist/esm/audio/filters/ChorusFilter.d.ts +0 -54
- package/dist/esm/audio/filters/ChorusFilter.d.ts.map +0 -1
- package/dist/esm/audio/filters/ChorusFilter.js +0 -155
- package/dist/esm/audio/filters/ChorusFilter.js.map +0 -1
- package/dist/esm/audio/filters/CompressorFilter.d.ts +0 -54
- package/dist/esm/audio/filters/CompressorFilter.d.ts.map +0 -1
- package/dist/esm/audio/filters/CompressorFilter.js +0 -123
- package/dist/esm/audio/filters/CompressorFilter.js.map +0 -1
- package/dist/esm/audio/filters/DelayFilter.d.ts +0 -36
- package/dist/esm/audio/filters/DelayFilter.d.ts.map +0 -1
- package/dist/esm/audio/filters/DelayFilter.js +0 -114
- package/dist/esm/audio/filters/DelayFilter.js.map +0 -1
- package/dist/esm/audio/filters/DuckingFilter.d.ts +0 -45
- package/dist/esm/audio/filters/DuckingFilter.d.ts.map +0 -1
- package/dist/esm/audio/filters/DuckingFilter.js +0 -172
- package/dist/esm/audio/filters/DuckingFilter.js.map +0 -1
- package/dist/esm/audio/filters/EqualizerFilter.d.ts +0 -51
- package/dist/esm/audio/filters/EqualizerFilter.d.ts.map +0 -1
- package/dist/esm/audio/filters/EqualizerFilter.js +0 -138
- package/dist/esm/audio/filters/EqualizerFilter.js.map +0 -1
- package/dist/esm/audio/filters/GranularFilter.d.ts +0 -63
- package/dist/esm/audio/filters/GranularFilter.d.ts.map +0 -1
- package/dist/esm/audio/filters/GranularFilter.js +0 -107
- package/dist/esm/audio/filters/GranularFilter.js.map +0 -1
- package/dist/esm/audio/filters/PitchShiftFilter.d.ts +0 -45
- package/dist/esm/audio/filters/PitchShiftFilter.d.ts.map +0 -1
- package/dist/esm/audio/filters/PitchShiftFilter.js +0 -66
- package/dist/esm/audio/filters/PitchShiftFilter.js.map +0 -1
- package/dist/esm/audio/filters/ReverbFilter.d.ts +0 -38
- package/dist/esm/audio/filters/ReverbFilter.d.ts.map +0 -1
- package/dist/esm/audio/filters/ReverbFilter.js +0 -122
- package/dist/esm/audio/filters/ReverbFilter.js.map +0 -1
- package/dist/esm/audio/filters/VocoderFilter.d.ts +0 -50
- package/dist/esm/audio/filters/VocoderFilter.d.ts.map +0 -1
- package/dist/esm/audio/filters/VocoderFilter.js +0 -94
- package/dist/esm/audio/filters/VocoderFilter.js.map +0 -1
- package/dist/esm/audio/filters/WorkletFilter.d.ts.map +0 -1
- package/dist/esm/audio/filters/WorkletFilter.js.map +0 -1
- package/dist/esm/audio/worklets/beat-detector.worklet.d.ts +0 -2
- package/dist/esm/audio/worklets/beat-detector.worklet.d.ts.map +0 -1
- package/dist/esm/audio/worklets/beat-detector.worklet.js +0 -647
- package/dist/esm/audio/worklets/beat-detector.worklet.js.map +0 -1
- package/dist/esm/audio/worklets/granular.worklet.d.ts +0 -2
- package/dist/esm/audio/worklets/granular.worklet.d.ts.map +0 -1
- package/dist/esm/audio/worklets/granular.worklet.js +0 -89
- package/dist/esm/audio/worklets/granular.worklet.js.map +0 -1
- package/dist/esm/audio/worklets/pitch-shift.worklet.d.ts +0 -2
- package/dist/esm/audio/worklets/pitch-shift.worklet.d.ts.map +0 -1
- package/dist/esm/audio/worklets/pitch-shift.worklet.js +0 -74
- package/dist/esm/audio/worklets/pitch-shift.worklet.js.map +0 -1
- package/dist/esm/audio/worklets/vocoder.worklet.d.ts +0 -2
- package/dist/esm/audio/worklets/vocoder.worklet.d.ts.map +0 -1
- package/dist/esm/audio/worklets/vocoder.worklet.js +0 -92
- package/dist/esm/audio/worklets/vocoder.worklet.js.map +0 -1
- package/dist/esm/input/internal/interactionManagerRegistry.d.ts +0 -10
- package/dist/esm/input/internal/interactionManagerRegistry.d.ts.map +0 -1
- package/dist/esm/input/internal/interactionManagerRegistry.js +0 -10
- package/dist/esm/input/internal/interactionManagerRegistry.js.map +0 -1
- package/dist/esm/rendering/index.d.ts.map +0 -1
- package/dist/esm/rendering/plan/RenderInstruction.js +0 -45
- package/dist/esm/rendering/plan/RenderInstruction.js.map +0 -1
- package/dist/esm/rendering.d.ts +0 -29
- package/dist/esm/rendering.d.ts.map +0 -1
- package/dist/esm/rendering.js.map +0 -1
- package/dist/esm/resources/JsonStore.d.ts +0 -19
- package/dist/esm/resources/JsonStore.d.ts.map +0 -1
- package/dist/esm/resources/JsonStore.js +0 -62
- package/dist/esm/resources/JsonStore.js.map +0 -1
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { AudioEffect } from './AudioEffect';
|
|
2
|
+
/** Construction options for {@link BiquadEffect}. */
|
|
3
|
+
export interface BiquadEffectOptions {
|
|
4
|
+
/** Filter response. Default `'lowpass'`. */
|
|
5
|
+
type?: BiquadFilterType;
|
|
6
|
+
/** Center / cutoff frequency in Hz. Range 0..nyquist. Default 1000. */
|
|
7
|
+
frequency?: number;
|
|
8
|
+
/** Quality factor (resonance / bandwidth). Default 1. */
|
|
9
|
+
resonance?: number;
|
|
10
|
+
/** Gain in dB — only used by `peaking`, `lowshelf`, `highshelf`. Default 0. */
|
|
11
|
+
gain?: number;
|
|
12
|
+
/** Fine frequency offset in cents. Default 0. */
|
|
13
|
+
detune?: number;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Native biquad filter effect backed by a single `BiquadFilterNode` — the most
|
|
17
|
+
* common audio-shaping need, covering `lowpass` / `highpass` / `bandpass` /
|
|
18
|
+
* `notch` / `peaking` / `lowshelf` / `highshelf` / `allpass` via one `type`
|
|
19
|
+
* parameter. Insert it on an {@link AudioBus} (`bus.addEffect`) or a
|
|
20
|
+
* {@link Voice} (`voice.addEffect`).
|
|
21
|
+
*
|
|
22
|
+
* The single node serves as both {@link inputNode} and {@link outputNode}.
|
|
23
|
+
*/
|
|
24
|
+
export declare class BiquadEffect extends AudioEffect {
|
|
25
|
+
private _node;
|
|
26
|
+
private _type;
|
|
27
|
+
private _frequency;
|
|
28
|
+
private _resonance;
|
|
29
|
+
private _gain;
|
|
30
|
+
private _detune;
|
|
31
|
+
private readonly _onAudioContextReady;
|
|
32
|
+
constructor(options?: BiquadEffectOptions);
|
|
33
|
+
get inputNode(): AudioNode;
|
|
34
|
+
get outputNode(): AudioNode;
|
|
35
|
+
/** Filter response type. */
|
|
36
|
+
get type(): BiquadFilterType;
|
|
37
|
+
set type(value: BiquadFilterType);
|
|
38
|
+
/** Center / cutoff frequency in Hz. */
|
|
39
|
+
get frequency(): number;
|
|
40
|
+
set frequency(value: number);
|
|
41
|
+
/** Quality factor (resonance / bandwidth). */
|
|
42
|
+
get resonance(): number;
|
|
43
|
+
set resonance(value: number);
|
|
44
|
+
/** Gain in dB — applies to `peaking`, `lowshelf`, and `highshelf` types. */
|
|
45
|
+
get gain(): number;
|
|
46
|
+
set gain(value: number);
|
|
47
|
+
/** Fine frequency offset in cents. */
|
|
48
|
+
get detune(): number;
|
|
49
|
+
set detune(value: number);
|
|
50
|
+
destroy(): void;
|
|
51
|
+
private _setup;
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=BiquadEffect.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BiquadEffect.d.ts","sourceRoot":"","sources":["../../../src/audio/BiquadEffect.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,qDAAqD;AACrD,MAAM,WAAW,mBAAmB;IAClC,4CAA4C;IAC5C,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACxB,uEAAuE;IACvE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yDAAyD;IACzD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,+EAA+E;IAC/E,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,iDAAiD;IACjD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;GAQG;AACH,qBAAa,YAAa,SAAQ,WAAW;IAC3C,OAAO,CAAC,KAAK,CAAiC;IAC9C,OAAO,CAAC,KAAK,CAAmB;IAChC,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAGnC;gBAEiB,OAAO,GAAE,mBAAwB;IAepD,IAAW,SAAS,IAAI,SAAS,CAGhC;IAED,IAAW,UAAU,IAAI,SAAS,CAGjC;IAED,4BAA4B;IAC5B,IAAW,IAAI,IAAI,gBAAgB,CAElC;IAED,IAAW,IAAI,CAAC,KAAK,EAAE,gBAAgB,EAGtC;IAED,uCAAuC;IACvC,IAAW,SAAS,IAAI,MAAM,CAE7B;IAED,IAAW,SAAS,CAAC,KAAK,EAAE,MAAM,EAGjC;IAED,8CAA8C;IAC9C,IAAW,SAAS,IAAI,MAAM,CAE7B;IAED,IAAW,SAAS,CAAC,KAAK,EAAE,MAAM,EAGjC;IAED,4EAA4E;IAC5E,IAAW,IAAI,IAAI,MAAM,CAExB;IAED,IAAW,IAAI,CAAC,KAAK,EAAE,MAAM,EAG5B;IAED,sCAAsC;IACtC,IAAW,MAAM,IAAI,MAAM,CAE1B;IAED,IAAW,MAAM,CAAC,KAAK,EAAE,MAAM,EAG9B;IAEe,OAAO,IAAI,IAAI;IAM/B,OAAO,CAAC,MAAM;CASf"}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import { onAudioContextReady, isAudioContextReady, getAudioContext } from './audio-context.js';
|
|
2
|
+
import { AudioEffect } from './AudioEffect.js';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Native biquad filter effect backed by a single `BiquadFilterNode` — the most
|
|
6
|
+
* common audio-shaping need, covering `lowpass` / `highpass` / `bandpass` /
|
|
7
|
+
* `notch` / `peaking` / `lowshelf` / `highshelf` / `allpass` via one `type`
|
|
8
|
+
* parameter. Insert it on an {@link AudioBus} (`bus.addEffect`) or a
|
|
9
|
+
* {@link Voice} (`voice.addEffect`).
|
|
10
|
+
*
|
|
11
|
+
* The single node serves as both {@link inputNode} and {@link outputNode}.
|
|
12
|
+
*/
|
|
13
|
+
class BiquadEffect extends AudioEffect {
|
|
14
|
+
_node = null;
|
|
15
|
+
_type;
|
|
16
|
+
_frequency;
|
|
17
|
+
_resonance;
|
|
18
|
+
_gain;
|
|
19
|
+
_detune;
|
|
20
|
+
_onAudioContextReady = (ctx) => {
|
|
21
|
+
onAudioContextReady.remove(this._onAudioContextReady);
|
|
22
|
+
this._setup(ctx);
|
|
23
|
+
};
|
|
24
|
+
constructor(options = {}) {
|
|
25
|
+
super();
|
|
26
|
+
this._type = options.type ?? 'lowpass';
|
|
27
|
+
this._frequency = options.frequency ?? 1000;
|
|
28
|
+
this._resonance = options.resonance ?? 1;
|
|
29
|
+
this._gain = options.gain ?? 0;
|
|
30
|
+
this._detune = options.detune ?? 0;
|
|
31
|
+
if (isAudioContextReady()) {
|
|
32
|
+
this._setup(getAudioContext());
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
onAudioContextReady.add(this._onAudioContextReady);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
get inputNode() {
|
|
39
|
+
if (!this._node)
|
|
40
|
+
throw new Error('BiquadEffect not yet initialized.');
|
|
41
|
+
return this._node;
|
|
42
|
+
}
|
|
43
|
+
get outputNode() {
|
|
44
|
+
if (!this._node)
|
|
45
|
+
throw new Error('BiquadEffect not yet initialized.');
|
|
46
|
+
return this._node;
|
|
47
|
+
}
|
|
48
|
+
/** Filter response type. */
|
|
49
|
+
get type() {
|
|
50
|
+
return this._type;
|
|
51
|
+
}
|
|
52
|
+
set type(value) {
|
|
53
|
+
this._type = value;
|
|
54
|
+
if (this._node)
|
|
55
|
+
this._node.type = value;
|
|
56
|
+
}
|
|
57
|
+
/** Center / cutoff frequency in Hz. */
|
|
58
|
+
get frequency() {
|
|
59
|
+
return this._frequency;
|
|
60
|
+
}
|
|
61
|
+
set frequency(value) {
|
|
62
|
+
this._frequency = value;
|
|
63
|
+
if (this._node)
|
|
64
|
+
this._node.frequency.setTargetAtTime(value, this._node.context.currentTime, 0.01);
|
|
65
|
+
}
|
|
66
|
+
/** Quality factor (resonance / bandwidth). */
|
|
67
|
+
get resonance() {
|
|
68
|
+
return this._resonance;
|
|
69
|
+
}
|
|
70
|
+
set resonance(value) {
|
|
71
|
+
this._resonance = value;
|
|
72
|
+
if (this._node)
|
|
73
|
+
this._node.Q.setTargetAtTime(value, this._node.context.currentTime, 0.01);
|
|
74
|
+
}
|
|
75
|
+
/** Gain in dB — applies to `peaking`, `lowshelf`, and `highshelf` types. */
|
|
76
|
+
get gain() {
|
|
77
|
+
return this._gain;
|
|
78
|
+
}
|
|
79
|
+
set gain(value) {
|
|
80
|
+
this._gain = value;
|
|
81
|
+
if (this._node)
|
|
82
|
+
this._node.gain.setTargetAtTime(value, this._node.context.currentTime, 0.01);
|
|
83
|
+
}
|
|
84
|
+
/** Fine frequency offset in cents. */
|
|
85
|
+
get detune() {
|
|
86
|
+
return this._detune;
|
|
87
|
+
}
|
|
88
|
+
set detune(value) {
|
|
89
|
+
this._detune = value;
|
|
90
|
+
if (this._node)
|
|
91
|
+
this._node.detune.setTargetAtTime(value, this._node.context.currentTime, 0.01);
|
|
92
|
+
}
|
|
93
|
+
destroy() {
|
|
94
|
+
onAudioContextReady.remove(this._onAudioContextReady);
|
|
95
|
+
this._node?.disconnect();
|
|
96
|
+
this._node = null;
|
|
97
|
+
}
|
|
98
|
+
_setup(ctx) {
|
|
99
|
+
const node = ctx.createBiquadFilter();
|
|
100
|
+
node.type = this._type;
|
|
101
|
+
node.frequency.setValueAtTime(this._frequency, ctx.currentTime);
|
|
102
|
+
node.Q.setValueAtTime(this._resonance, ctx.currentTime);
|
|
103
|
+
node.gain.setValueAtTime(this._gain, ctx.currentTime);
|
|
104
|
+
node.detune.setValueAtTime(this._detune, ctx.currentTime);
|
|
105
|
+
this._node = node;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
export { BiquadEffect };
|
|
110
|
+
//# sourceMappingURL=BiquadEffect.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BiquadEffect.js","sources":["../../../../src/audio/BiquadEffect.ts"],"sourcesContent":[null],"names":[],"mappings":";;;AAiBA;;;;;;;;AAQG;AACG,MAAO,YAAa,SAAQ,WAAW,CAAA;IACnC,KAAK,GAA4B,IAAI;AACrC,IAAA,KAAK;AACL,IAAA,UAAU;AACV,IAAA,UAAU;AACV,IAAA,KAAK;AACL,IAAA,OAAO;AACE,IAAA,oBAAoB,GAAG,CAAC,GAAiB,KAAU;AAClE,QAAA,mBAAmB,CAAC,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC;AACrD,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;AAClB,IAAA,CAAC;AAED,IAAA,WAAA,CAAmB,UAA+B,EAAE,EAAA;AAClD,QAAA,KAAK,EAAE;QACP,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,IAAI,IAAI,SAAS;QACtC,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,SAAS,IAAI,IAAI;QAC3C,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,SAAS,IAAI,CAAC;QACxC,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,IAAI,IAAI,CAAC;QAC9B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC;QAElC,IAAI,mBAAmB,EAAE,EAAE;AACzB,YAAA,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;QAChC;aAAO;AACL,YAAA,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,oBAAoB,CAAC;QACpD;IACF;AAEA,IAAA,IAAW,SAAS,GAAA;QAClB,IAAI,CAAC,IAAI,CAAC,KAAK;AAAE,YAAA,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC;QACrE,OAAO,IAAI,CAAC,KAAK;IACnB;AAEA,IAAA,IAAW,UAAU,GAAA;QACnB,IAAI,CAAC,IAAI,CAAC,KAAK;AAAE,YAAA,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC;QACrE,OAAO,IAAI,CAAC,KAAK;IACnB;;AAGA,IAAA,IAAW,IAAI,GAAA;QACb,OAAO,IAAI,CAAC,KAAK;IACnB;IAEA,IAAW,IAAI,CAAC,KAAuB,EAAA;AACrC,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;QAClB,IAAI,IAAI,CAAC,KAAK;AAAE,YAAA,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,KAAK;IACzC;;AAGA,IAAA,IAAW,SAAS,GAAA;QAClB,OAAO,IAAI,CAAC,UAAU;IACxB;IAEA,IAAW,SAAS,CAAC,KAAa,EAAA;AAChC,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK;QACvB,IAAI,IAAI,CAAC,KAAK;AAAE,YAAA,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC;IACnG;;AAGA,IAAA,IAAW,SAAS,GAAA;QAClB,OAAO,IAAI,CAAC,UAAU;IACxB;IAEA,IAAW,SAAS,CAAC,KAAa,EAAA;AAChC,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK;QACvB,IAAI,IAAI,CAAC,KAAK;AAAE,YAAA,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC;IAC3F;;AAGA,IAAA,IAAW,IAAI,GAAA;QACb,OAAO,IAAI,CAAC,KAAK;IACnB;IAEA,IAAW,IAAI,CAAC,KAAa,EAAA;AAC3B,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;QAClB,IAAI,IAAI,CAAC,KAAK;AAAE,YAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC;IAC9F;;AAGA,IAAA,IAAW,MAAM,GAAA;QACf,OAAO,IAAI,CAAC,OAAO;IACrB;IAEA,IAAW,MAAM,CAAC,KAAa,EAAA;AAC7B,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK;QACpB,IAAI,IAAI,CAAC,KAAK;AAAE,YAAA,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC;IAChG;IAEgB,OAAO,GAAA;AACrB,QAAA,mBAAmB,CAAC,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC;AACrD,QAAA,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE;AACxB,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI;IACnB;AAEQ,IAAA,MAAM,CAAC,GAAiB,EAAA;AAC9B,QAAA,MAAM,IAAI,GAAG,GAAG,CAAC,kBAAkB,EAAE;AACrC,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK;AACtB,QAAA,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,WAAW,CAAC;AAC/D,QAAA,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,WAAW,CAAC;AACvD,QAAA,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,WAAW,CAAC;AACrD,QAAA,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,WAAW,CAAC;AACzD,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI;IACnB;AACD;;;;"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import type { AudioBus } from './AudioBus';
|
|
2
|
+
import { BaseVoice, type BaseVoiceInit } from './BaseVoice';
|
|
3
|
+
import { Sound } from './Sound';
|
|
4
|
+
/** Construction parameters for {@link InputVoice}. */
|
|
5
|
+
export interface InputVoiceInit extends BaseVoiceInit {
|
|
6
|
+
sourceNode: MediaStreamAudioSourceNode;
|
|
7
|
+
stream: MediaStream;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Live control handle for an {@link AudioInput} (microphone / WebRTC stream),
|
|
11
|
+
* created via {@link AudioManager.open}. Unlike a {@link Playable} voice it is
|
|
12
|
+
* **analysis-only by default** — its output is not routed to a bus, so it never
|
|
13
|
+
* causes feedback. Tap it for visualisation/beat-detection (`new AudioAnalyser({
|
|
14
|
+
* source: inputVoice })`), opt into monitoring with {@link InputVoice.routeTo},
|
|
15
|
+
* or capture it with {@link InputVoice.record}.
|
|
16
|
+
*
|
|
17
|
+
* A live stream cannot be seeked, paused, looped, or rate-shifted, so it only
|
|
18
|
+
* mixes in {@link Spatializable} (via {@link BaseVoice}) on top of the base
|
|
19
|
+
* Voice surface (volume / fade / stop / effects / output tap / bus).
|
|
20
|
+
*
|
|
21
|
+
* @internal
|
|
22
|
+
*/
|
|
23
|
+
export declare class InputVoice extends BaseVoice {
|
|
24
|
+
private readonly _sourceNode;
|
|
25
|
+
private readonly _stream;
|
|
26
|
+
constructor(init: InputVoiceInit);
|
|
27
|
+
/**
|
|
28
|
+
* Make the live input audible by routing it to a bus (monitoring). Use
|
|
29
|
+
* sparingly — routing a microphone to the speakers risks feedback.
|
|
30
|
+
*/
|
|
31
|
+
routeTo(bus: AudioBus): this;
|
|
32
|
+
/**
|
|
33
|
+
* Record `durationMs` of the live input and resolve with a playable
|
|
34
|
+
* {@link Sound}. Uses `MediaRecorder` under the hood, then decodes the
|
|
35
|
+
* captured blob into an `AudioBuffer`.
|
|
36
|
+
*/
|
|
37
|
+
record(durationMs: number): Promise<Sound>;
|
|
38
|
+
protected _routeThroughPanner(panner: PannerNode): void;
|
|
39
|
+
protected _teardownSource(): void;
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=InputVoice.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InputVoice.d.ts","sourceRoot":"","sources":["../../../src/audio/InputVoice.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC,sDAAsD;AACtD,MAAM,WAAW,cAAe,SAAQ,aAAa;IACnD,UAAU,EAAE,0BAA0B,CAAC;IACvC,MAAM,EAAE,WAAW,CAAC;CACrB;AAED;;;;;;;;;;;;;GAaG;AACH,qBAAa,UAAW,SAAQ,SAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA6B;IACzD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAc;gBAEnB,IAAI,EAAE,cAAc;IAQvC;;;OAGG;IACI,OAAO,CAAC,GAAG,EAAE,QAAQ,GAAG,IAAI;IAQnC;;;;OAIG;IACU,MAAM,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;cAgCpC,mBAAmB,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI;cAM7C,eAAe,IAAI,IAAI;CAG3C"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { decodeAudioData } from './audio-context.js';
|
|
2
|
+
import { BaseVoice } from './BaseVoice.js';
|
|
3
|
+
import { Sound } from './Sound.js';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Live control handle for an {@link AudioInput} (microphone / WebRTC stream),
|
|
7
|
+
* created via {@link AudioManager.open}. Unlike a {@link Playable} voice it is
|
|
8
|
+
* **analysis-only by default** — its output is not routed to a bus, so it never
|
|
9
|
+
* causes feedback. Tap it for visualisation/beat-detection (`new AudioAnalyser({
|
|
10
|
+
* source: inputVoice })`), opt into monitoring with {@link InputVoice.routeTo},
|
|
11
|
+
* or capture it with {@link InputVoice.record}.
|
|
12
|
+
*
|
|
13
|
+
* A live stream cannot be seeked, paused, looped, or rate-shifted, so it only
|
|
14
|
+
* mixes in {@link Spatializable} (via {@link BaseVoice}) on top of the base
|
|
15
|
+
* Voice surface (volume / fade / stop / effects / output tap / bus).
|
|
16
|
+
*
|
|
17
|
+
* @internal
|
|
18
|
+
*/
|
|
19
|
+
class InputVoice extends BaseVoice {
|
|
20
|
+
_sourceNode;
|
|
21
|
+
_stream;
|
|
22
|
+
constructor(init) {
|
|
23
|
+
// Analysis-only: do not connect to the bus until routeTo() is called.
|
|
24
|
+
super({ ...init, autoConnect: false });
|
|
25
|
+
this._sourceNode = init.sourceNode;
|
|
26
|
+
this._stream = init.stream;
|
|
27
|
+
this._sourceNode.connect(this._output);
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Make the live input audible by routing it to a bus (monitoring). Use
|
|
31
|
+
* sparingly — routing a microphone to the speakers risks feedback.
|
|
32
|
+
*/
|
|
33
|
+
routeTo(bus) {
|
|
34
|
+
if (this._ended)
|
|
35
|
+
return this;
|
|
36
|
+
this._tail().disconnect();
|
|
37
|
+
this._bus = bus;
|
|
38
|
+
this._connectOutput();
|
|
39
|
+
return this;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Record `durationMs` of the live input and resolve with a playable
|
|
43
|
+
* {@link Sound}. Uses `MediaRecorder` under the hood, then decodes the
|
|
44
|
+
* captured blob into an `AudioBuffer`.
|
|
45
|
+
*/
|
|
46
|
+
async record(durationMs) {
|
|
47
|
+
const recorder = new MediaRecorder(this._stream);
|
|
48
|
+
const chunks = [];
|
|
49
|
+
recorder.addEventListener('dataavailable', event => {
|
|
50
|
+
if (event.data.size > 0)
|
|
51
|
+
chunks.push(event.data);
|
|
52
|
+
});
|
|
53
|
+
return new Promise((resolve, reject) => {
|
|
54
|
+
recorder.addEventListener('stop', () => {
|
|
55
|
+
void (async () => {
|
|
56
|
+
try {
|
|
57
|
+
const blob = new Blob(chunks, { type: recorder.mimeType || 'audio/webm' });
|
|
58
|
+
const buffer = await decodeAudioData(await blob.arrayBuffer());
|
|
59
|
+
resolve(new Sound(buffer));
|
|
60
|
+
}
|
|
61
|
+
catch (error) {
|
|
62
|
+
reject(error instanceof Error ? error : new Error(String(error)));
|
|
63
|
+
}
|
|
64
|
+
})();
|
|
65
|
+
});
|
|
66
|
+
recorder.addEventListener('error', () => reject(new Error('Recording failed.')));
|
|
67
|
+
recorder.start();
|
|
68
|
+
setTimeout(() => {
|
|
69
|
+
if (recorder.state !== 'inactive')
|
|
70
|
+
recorder.stop();
|
|
71
|
+
}, Math.max(0, durationMs));
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
_routeThroughPanner(panner) {
|
|
75
|
+
this._sourceNode.disconnect();
|
|
76
|
+
this._sourceNode.connect(panner);
|
|
77
|
+
panner.connect(this._output);
|
|
78
|
+
}
|
|
79
|
+
_teardownSource() {
|
|
80
|
+
this._sourceNode.disconnect();
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
export { InputVoice };
|
|
85
|
+
//# sourceMappingURL=InputVoice.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InputVoice.js","sources":["../../../../src/audio/InputVoice.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;AAWA;;;;;;;;;;;;;AAaG;AACG,MAAO,UAAW,SAAQ,SAAS,CAAA;AACtB,IAAA,WAAW;AACX,IAAA,OAAO;AAExB,IAAA,WAAA,CAAmB,IAAoB,EAAA;;QAErC,KAAK,CAAC,EAAE,GAAG,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;AACtC,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU;AAClC,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM;QAC1B,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;IACxC;AAEA;;;AAGG;AACI,IAAA,OAAO,CAAC,GAAa,EAAA;QAC1B,IAAI,IAAI,CAAC,MAAM;AAAE,YAAA,OAAO,IAAI;AAC5B,QAAA,IAAI,CAAC,KAAK,EAAE,CAAC,UAAU,EAAE;AACzB,QAAA,IAAI,CAAC,IAAI,GAAG,GAAG;QACf,IAAI,CAAC,cAAc,EAAE;AACrB,QAAA,OAAO,IAAI;IACb;AAEA;;;;AAIG;IACI,MAAM,MAAM,CAAC,UAAkB,EAAA;QACpC,MAAM,QAAQ,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC;QAChD,MAAM,MAAM,GAAW,EAAE;AAEzB,QAAA,QAAQ,CAAC,gBAAgB,CAAC,eAAe,EAAE,KAAK,IAAG;AACjD,YAAA,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC;AAAE,gBAAA,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;AAClD,QAAA,CAAC,CAAC;QAEF,OAAO,IAAI,OAAO,CAAQ,CAAC,OAAO,EAAE,MAAM,KAAI;AAC5C,YAAA,QAAQ,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAK;gBACrC,KAAK,CAAC,YAA0B;AAC9B,oBAAA,IAAI;AACF,wBAAA,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,QAAQ,IAAI,YAAY,EAAE,CAAC;wBAC1E,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;AAC9D,wBAAA,OAAO,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC;oBAC5B;oBAAE,OAAO,KAAK,EAAE;wBACd,MAAM,CAAC,KAAK,YAAY,KAAK,GAAG,KAAK,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;oBACnE;gBACF,CAAC,GAAG;AACN,YAAA,CAAC,CAAC;AACF,YAAA,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,MAAM,CAAC,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC;YAEhF,QAAQ,CAAC,KAAK,EAAE;YAChB,UAAU,CACR,MAAK;AACH,gBAAA,IAAI,QAAQ,CAAC,KAAK,KAAK,UAAU;oBAAE,QAAQ,CAAC,IAAI,EAAE;YACpD,CAAC,EACD,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC,CACxB;AACH,QAAA,CAAC,CAAC;IACJ;AAEmB,IAAA,mBAAmB,CAAC,MAAkB,EAAA;AACvD,QAAA,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE;AAC7B,QAAA,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC;AAChC,QAAA,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;IAC9B;IAEmB,eAAe,GAAA;AAChC,QAAA,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE;IAC/B;AACD;;;;"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { Signal } from '#core/Signal';
|
|
2
|
+
import type { AudioBus } from './AudioBus';
|
|
3
|
+
import type { AudioEffect } from './AudioEffect';
|
|
4
|
+
import type { Voice } from './Playable';
|
|
5
|
+
/**
|
|
6
|
+
* An already-ended {@link Voice} returned for degenerate play calls — a seek
|
|
7
|
+
* offset past the asset's duration, or a generator played before the
|
|
8
|
+
* `AudioContext` is unlocked. All controls are inert; `ended` is `true` from
|
|
9
|
+
* the start and {@link NoopVoice.onEnd} never fires.
|
|
10
|
+
*
|
|
11
|
+
* @internal
|
|
12
|
+
*/
|
|
13
|
+
export declare class NoopVoice implements Voice {
|
|
14
|
+
readonly onEnd: Signal<[]>;
|
|
15
|
+
private readonly _bus;
|
|
16
|
+
private _output;
|
|
17
|
+
constructor(bus: AudioBus);
|
|
18
|
+
get ended(): boolean;
|
|
19
|
+
get output(): AudioNode;
|
|
20
|
+
get volume(): number;
|
|
21
|
+
set volume(_value: number);
|
|
22
|
+
get bus(): AudioBus;
|
|
23
|
+
set bus(_bus: AudioBus);
|
|
24
|
+
fade(_to: number, _ms: number): void;
|
|
25
|
+
stop(_fadeMs?: number): void;
|
|
26
|
+
addEffect(_effect: AudioEffect): this;
|
|
27
|
+
removeEffect(_effect: AudioEffect): this;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=NoopVoice.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NoopVoice.d.ts","sourceRoot":"","sources":["../../../src/audio/NoopVoice.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAGtC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAExC;;;;;;;GAOG;AACH,qBAAa,SAAU,YAAW,KAAK;IACrC,SAAgB,KAAK,aAAgB;IACrC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAW;IAChC,OAAO,CAAC,OAAO,CAA0B;gBAEtB,GAAG,EAAE,QAAQ;IAIhC,IAAW,KAAK,IAAI,OAAO,CAE1B;IAED,IAAW,MAAM,IAAI,SAAS,CAE7B;IAED,IAAW,MAAM,IAAI,MAAM,CAE1B;IAED,IAAW,MAAM,CAAC,MAAM,EAAE,MAAM,EAE/B;IAED,IAAW,GAAG,IAAI,QAAQ,CAEzB;IAED,IAAW,GAAG,CAAC,IAAI,EAAE,QAAQ,EAE5B;IAEM,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI;IAIpC,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI;IAI5B,SAAS,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI;IAIrC,YAAY,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI;CAGhD"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { Signal } from '../core/Signal.js';
|
|
2
|
+
import { getAudioContext } from './audio-context.js';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* An already-ended {@link Voice} returned for degenerate play calls — a seek
|
|
6
|
+
* offset past the asset's duration, or a generator played before the
|
|
7
|
+
* `AudioContext` is unlocked. All controls are inert; `ended` is `true` from
|
|
8
|
+
* the start and {@link NoopVoice.onEnd} never fires.
|
|
9
|
+
*
|
|
10
|
+
* @internal
|
|
11
|
+
*/
|
|
12
|
+
class NoopVoice {
|
|
13
|
+
onEnd = new Signal();
|
|
14
|
+
_bus;
|
|
15
|
+
_output = null;
|
|
16
|
+
constructor(bus) {
|
|
17
|
+
this._bus = bus;
|
|
18
|
+
}
|
|
19
|
+
get ended() {
|
|
20
|
+
return true;
|
|
21
|
+
}
|
|
22
|
+
get output() {
|
|
23
|
+
return (this._output ??= getAudioContext().createGain());
|
|
24
|
+
}
|
|
25
|
+
get volume() {
|
|
26
|
+
return 0;
|
|
27
|
+
}
|
|
28
|
+
set volume(_value) {
|
|
29
|
+
// inert — the voice already ended
|
|
30
|
+
}
|
|
31
|
+
get bus() {
|
|
32
|
+
return this._bus;
|
|
33
|
+
}
|
|
34
|
+
set bus(_bus) {
|
|
35
|
+
// inert — the voice already ended
|
|
36
|
+
}
|
|
37
|
+
fade(_to, _ms) {
|
|
38
|
+
// inert — the voice already ended
|
|
39
|
+
}
|
|
40
|
+
stop(_fadeMs) {
|
|
41
|
+
// inert — the voice already ended
|
|
42
|
+
}
|
|
43
|
+
addEffect(_effect) {
|
|
44
|
+
return this;
|
|
45
|
+
}
|
|
46
|
+
removeEffect(_effect) {
|
|
47
|
+
return this;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
export { NoopVoice };
|
|
52
|
+
//# sourceMappingURL=NoopVoice.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NoopVoice.js","sources":["../../../../src/audio/NoopVoice.ts"],"sourcesContent":[null],"names":[],"mappings":";;;AAOA;;;;;;;AAOG;MACU,SAAS,CAAA;AACJ,IAAA,KAAK,GAAG,IAAI,MAAM,EAAE;AACnB,IAAA,IAAI;IACb,OAAO,GAAqB,IAAI;AAExC,IAAA,WAAA,CAAmB,GAAa,EAAA;AAC9B,QAAA,IAAI,CAAC,IAAI,GAAG,GAAG;IACjB;AAEA,IAAA,IAAW,KAAK,GAAA;AACd,QAAA,OAAO,IAAI;IACb;AAEA,IAAA,IAAW,MAAM,GAAA;QACf,QAAQ,IAAI,CAAC,OAAO,KAAK,eAAe,EAAE,CAAC,UAAU,EAAE;IACzD;AAEA,IAAA,IAAW,MAAM,GAAA;AACf,QAAA,OAAO,CAAC;IACV;IAEA,IAAW,MAAM,CAAC,MAAc,EAAA;;IAEhC;AAEA,IAAA,IAAW,GAAG,GAAA;QACZ,OAAO,IAAI,CAAC,IAAI;IAClB;IAEA,IAAW,GAAG,CAAC,IAAc,EAAA;;IAE7B;IAEO,IAAI,CAAC,GAAW,EAAE,GAAW,EAAA;;IAEpC;AAEO,IAAA,IAAI,CAAC,OAAgB,EAAA;;IAE5B;AAEO,IAAA,SAAS,CAAC,OAAoB,EAAA;AACnC,QAAA,OAAO,IAAI;IACb;AAEO,IAAA,YAAY,CAAC,OAAoB,EAAA;AACtC,QAAA,OAAO,IAAI;IACb;AACD;;;;"}
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
import type { SceneNode } from '#core/SceneNode';
|
|
2
|
+
import type { Signal } from '#core/Signal';
|
|
3
|
+
import type { Vector } from '#math/Vector';
|
|
4
|
+
import type { AudioBus } from './AudioBus';
|
|
5
|
+
import type { AudioEffect } from './AudioEffect';
|
|
6
|
+
import type { AudioManager } from './AudioManager';
|
|
7
|
+
/**
|
|
8
|
+
* A live playback instance in the audio graph with a control surface.
|
|
9
|
+
*
|
|
10
|
+
* A Voice is created by playing a {@link Playable} via {@link AudioManager.play}
|
|
11
|
+
* (and, later, by opening an `AudioInput`). Each `play()` returns an independent
|
|
12
|
+
* Voice, so overlapping concurrent playback of the same asset is just multiple
|
|
13
|
+
* Voices.
|
|
14
|
+
*
|
|
15
|
+
* Concrete voices mix in the capability interfaces ({@link Seekable},
|
|
16
|
+
* {@link Pausable}, {@link Loopable}, {@link RatePitched}, {@link Spatializable})
|
|
17
|
+
* for whatever their backing Web Audio node actually supports — narrow with a
|
|
18
|
+
* capability check (`'seek' in voice`) before using one.
|
|
19
|
+
*/
|
|
20
|
+
export interface Voice {
|
|
21
|
+
/**
|
|
22
|
+
* Stop playback and release this voice's resources. Pass `fadeMs` to ramp
|
|
23
|
+
* the volume to zero over that many milliseconds before stopping; omit (or
|
|
24
|
+
* pass `0`) to stop immediately. Idempotent — calling again is a no-op.
|
|
25
|
+
*/
|
|
26
|
+
stop(fadeMs?: number): void;
|
|
27
|
+
/** Playback volume in the range [0, 1]. Bus volume (0..2) can amplify beyond this. */
|
|
28
|
+
volume: number;
|
|
29
|
+
/**
|
|
30
|
+
* Ramp the volume to `to` (clamped to [0, 1]) over `ms` milliseconds without
|
|
31
|
+
* stopping. Use {@link Voice.stop} with a fade argument to fade out and stop.
|
|
32
|
+
*/
|
|
33
|
+
fade(to: number, ms: number): void;
|
|
34
|
+
/** `true` once playback has ended naturally or been stopped. */
|
|
35
|
+
readonly ended: boolean;
|
|
36
|
+
/** Fires once when this voice ends (natural end or {@link Voice.stop}). */
|
|
37
|
+
readonly onEnd: Signal;
|
|
38
|
+
/**
|
|
39
|
+
* The voice's output node — the last node before the {@link AudioBus}. Use it
|
|
40
|
+
* as a parallel tap for an analyser, or (later) as the insertion point for
|
|
41
|
+
* per-voice effects.
|
|
42
|
+
*/
|
|
43
|
+
readonly output: AudioNode;
|
|
44
|
+
/** The {@link AudioBus} this voice routes into. Reassign to reroute live. */
|
|
45
|
+
bus: AudioBus;
|
|
46
|
+
/**
|
|
47
|
+
* Insert a per-voice {@link AudioEffect} into this voice's output chain
|
|
48
|
+
* (after the volume gain, before the bus). Effects are applied in insertion
|
|
49
|
+
* order.
|
|
50
|
+
*/
|
|
51
|
+
addEffect(effect: AudioEffect): this;
|
|
52
|
+
/** Remove a previously added per-voice effect. The caller still owns it and must `destroy()` it. */
|
|
53
|
+
removeEffect(effect: AudioEffect): this;
|
|
54
|
+
}
|
|
55
|
+
/** A voice whose playhead can be read and moved. */
|
|
56
|
+
export interface Seekable {
|
|
57
|
+
/** Current playback position in seconds. */
|
|
58
|
+
time: number;
|
|
59
|
+
/** Total duration in seconds (`Infinity` for open-ended sources). */
|
|
60
|
+
readonly duration: number;
|
|
61
|
+
/** Move the playhead to `t` seconds. */
|
|
62
|
+
seek(t: number): void;
|
|
63
|
+
}
|
|
64
|
+
/** A voice that can be paused and resumed in place. */
|
|
65
|
+
export interface Pausable {
|
|
66
|
+
pause(): void;
|
|
67
|
+
resume(): void;
|
|
68
|
+
readonly paused: boolean;
|
|
69
|
+
}
|
|
70
|
+
/** A voice whose source can loop. */
|
|
71
|
+
export interface Loopable {
|
|
72
|
+
loop: boolean;
|
|
73
|
+
}
|
|
74
|
+
/** A voice with rate / pitch controls. */
|
|
75
|
+
export interface RatePitched {
|
|
76
|
+
/** Playback rate multiplier (1 = normal). */
|
|
77
|
+
playbackRate: number;
|
|
78
|
+
/** Fine pitch offset in cents. */
|
|
79
|
+
detune: number;
|
|
80
|
+
}
|
|
81
|
+
/** A voice that can be positioned in 2D space and optionally track a node. */
|
|
82
|
+
export interface Spatializable {
|
|
83
|
+
/** World-space position of the source, or `null` when not spatialized. */
|
|
84
|
+
position: Vector | null;
|
|
85
|
+
/**
|
|
86
|
+
* Track a {@link SceneNode}: the voice reads the node's global translation
|
|
87
|
+
* each frame. Pass `null` to stop following and fall back to
|
|
88
|
+
* {@link Spatializable.position}.
|
|
89
|
+
*/
|
|
90
|
+
follow(node: SceneNode | null): void;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Per-play overrides passed to {@link AudioManager.play}.
|
|
94
|
+
*/
|
|
95
|
+
export interface PlayOptions {
|
|
96
|
+
/** Route this play through a specific {@link AudioBus}. */
|
|
97
|
+
bus?: AudioBus;
|
|
98
|
+
/** Override volume for this play instance. Range [0, 1]. */
|
|
99
|
+
volume?: number;
|
|
100
|
+
/** Override looping for this play instance. */
|
|
101
|
+
loop?: boolean;
|
|
102
|
+
/** Override playback rate for this play instance. */
|
|
103
|
+
playbackRate?: number;
|
|
104
|
+
/** Override pitch detune (cents) for this play instance. */
|
|
105
|
+
detune?: number;
|
|
106
|
+
/** Seek offset in seconds before starting playback. */
|
|
107
|
+
time?: number;
|
|
108
|
+
/** Start muted (volume 0). */
|
|
109
|
+
muted?: boolean;
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Implemented by audio assets ({@link Sound}, {@link AudioStream},
|
|
113
|
+
* {@link AudioGenerator}) to support manager-driven playback via
|
|
114
|
+
* {@link AudioManager.play}.
|
|
115
|
+
*
|
|
116
|
+
* Assets are **data descriptors** — they hold the audio data and default
|
|
117
|
+
* playback parameters. The playback machinery lives in the {@link Voice}
|
|
118
|
+
* returned by `_createVoice`; the manager is injected at play time, so assets
|
|
119
|
+
* never reach for a global.
|
|
120
|
+
*
|
|
121
|
+
* @internal - `_createVoice` is a low-level hook; consumers should call
|
|
122
|
+
* `audioManager.play(asset)` instead of calling `_createVoice` directly.
|
|
123
|
+
*/
|
|
124
|
+
export interface Playable {
|
|
125
|
+
/**
|
|
126
|
+
* Create and start a new playback instance. Called by
|
|
127
|
+
* {@link AudioManager.play}; do not call directly.
|
|
128
|
+
*
|
|
129
|
+
* @param manager - The owning {@link AudioManager} (provides bus hierarchy).
|
|
130
|
+
* @param options - Per-play overrides.
|
|
131
|
+
* @returns A {@link Voice} handle for the new instance.
|
|
132
|
+
*/
|
|
133
|
+
_createVoice(manager: AudioManager, options: PlayOptions): Voice;
|
|
134
|
+
}
|
|
135
|
+
//# sourceMappingURL=Playable.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Playable.d.ts","sourceRoot":"","sources":["../../../src/audio/Playable.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAE3C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEnD;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,KAAK;IACpB;;;;OAIG;IACH,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,sFAAsF;IACtF,MAAM,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,gEAAgE;IAChE,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,2EAA2E;IAC3E,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB;;;;OAIG;IACH,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,6EAA6E;IAC7E,GAAG,EAAE,QAAQ,CAAC;IACd;;;;OAIG;IACH,SAAS,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,CAAC;IACrC,oGAAoG;IACpG,YAAY,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,CAAC;CACzC;AAED,oDAAoD;AACpD,MAAM,WAAW,QAAQ;IACvB,4CAA4C;IAC5C,IAAI,EAAE,MAAM,CAAC;IACb,qEAAqE;IACrE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,wCAAwC;IACxC,IAAI,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAED,uDAAuD;AACvD,MAAM,WAAW,QAAQ;IACvB,KAAK,IAAI,IAAI,CAAC;IACd,MAAM,IAAI,IAAI,CAAC;IACf,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;CAC1B;AAED,qCAAqC;AACrC,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,OAAO,CAAC;CACf;AAED,0CAA0C;AAC1C,MAAM,WAAW,WAAW;IAC1B,6CAA6C;IAC7C,YAAY,EAAE,MAAM,CAAC;IACrB,kCAAkC;IAClC,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,8EAA8E;AAC9E,MAAM,WAAW,aAAa;IAC5B,0EAA0E;IAC1E,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB;;;;OAIG;IACH,MAAM,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI,GAAG,IAAI,CAAC;CACtC;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,2DAA2D;IAC3D,GAAG,CAAC,EAAE,QAAQ,CAAC;IACf,4DAA4D;IAC5D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,+CAA+C;IAC/C,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,qDAAqD;IACrD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,4DAA4D;IAC5D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,uDAAuD;IACvD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,8BAA8B;IAC9B,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,QAAQ;IACvB;;;;;;;OAOG;IACH,YAAY,CAAC,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,WAAW,GAAG,KAAK,CAAC;CAClE"}
|