tone 14.8.27
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 +313 -0
- package/LICENSE.md +21 -0
- package/README.md +255 -0
- package/Tone/classes.ts +7 -0
- package/Tone/component/analysis/Analyser.test.ts +78 -0
- package/Tone/component/analysis/Analyser.ts +168 -0
- package/Tone/component/analysis/DCMeter.test.ts +34 -0
- package/Tone/component/analysis/DCMeter.ts +38 -0
- package/Tone/component/analysis/FFT.test.ts +83 -0
- package/Tone/component/analysis/FFT.ts +92 -0
- package/Tone/component/analysis/Follower.test.ts +111 -0
- package/Tone/component/analysis/Follower.ts +85 -0
- package/Tone/component/analysis/Meter.test.ts +91 -0
- package/Tone/component/analysis/Meter.ts +123 -0
- package/Tone/component/analysis/MeterBase.ts +45 -0
- package/Tone/component/analysis/Waveform.test.ts +49 -0
- package/Tone/component/analysis/Waveform.ts +57 -0
- package/Tone/component/channel/Channel.test.ts +77 -0
- package/Tone/component/channel/Channel.ts +178 -0
- package/Tone/component/channel/CrossFade.test.ts +57 -0
- package/Tone/component/channel/CrossFade.ts +143 -0
- package/Tone/component/channel/Merge.test.ts +59 -0
- package/Tone/component/channel/Merge.ts +62 -0
- package/Tone/component/channel/MidSideMerge.test.ts +28 -0
- package/Tone/component/channel/MidSideMerge.ts +105 -0
- package/Tone/component/channel/MidSideSplit.test.ts +79 -0
- package/Tone/component/channel/MidSideSplit.ts +90 -0
- package/Tone/component/channel/Mono.test.ts +43 -0
- package/Tone/component/channel/Mono.ts +55 -0
- package/Tone/component/channel/MultibandSplit.test.ts +66 -0
- package/Tone/component/channel/MultibandSplit.ts +166 -0
- package/Tone/component/channel/PanVol.test.ts +58 -0
- package/Tone/component/channel/PanVol.ts +110 -0
- package/Tone/component/channel/Panner.test.ts +86 -0
- package/Tone/component/channel/Panner.ts +89 -0
- package/Tone/component/channel/Panner3D.test.ts +77 -0
- package/Tone/component/channel/Panner3D.ts +234 -0
- package/Tone/component/channel/Recorder.test.ts +119 -0
- package/Tone/component/channel/Recorder.ts +162 -0
- package/Tone/component/channel/Solo.test.ts +138 -0
- package/Tone/component/channel/Solo.ts +148 -0
- package/Tone/component/channel/Split.test.ts +62 -0
- package/Tone/component/channel/Split.ts +51 -0
- package/Tone/component/channel/Volume.test.ts +129 -0
- package/Tone/component/channel/Volume.ts +109 -0
- package/Tone/component/dynamics/Compressor.test.ts +85 -0
- package/Tone/component/dynamics/Compressor.ts +163 -0
- package/Tone/component/dynamics/Gate.test.ts +72 -0
- package/Tone/component/dynamics/Gate.ts +110 -0
- package/Tone/component/dynamics/Limiter.test.ts +43 -0
- package/Tone/component/dynamics/Limiter.ts +78 -0
- package/Tone/component/dynamics/MidSideCompressor.test.ts +59 -0
- package/Tone/component/dynamics/MidSideCompressor.ts +87 -0
- package/Tone/component/dynamics/MultibandCompressor.test.ts +54 -0
- package/Tone/component/dynamics/MultibandCompressor.ts +130 -0
- package/Tone/component/envelope/AmplitudeEnvelope.test.ts +92 -0
- package/Tone/component/envelope/AmplitudeEnvelope.ts +65 -0
- package/Tone/component/envelope/Envelope.test.ts +834 -0
- package/Tone/component/envelope/Envelope.ts +623 -0
- package/Tone/component/envelope/FrequencyEnvelope.test.ts +92 -0
- package/Tone/component/envelope/FrequencyEnvelope.ts +134 -0
- package/Tone/component/filter/BiquadFilter.test.ts +94 -0
- package/Tone/component/filter/BiquadFilter.ts +158 -0
- package/Tone/component/filter/Convolver.test.ts +106 -0
- package/Tone/component/filter/Convolver.ts +134 -0
- package/Tone/component/filter/EQ3.test.ts +60 -0
- package/Tone/component/filter/EQ3.ts +163 -0
- package/Tone/component/filter/FeedbackCombFilter.test.ts +80 -0
- package/Tone/component/filter/FeedbackCombFilter.ts +105 -0
- package/Tone/component/filter/FeedbackCombFilter.worklet.ts +39 -0
- package/Tone/component/filter/Filter.test.ts +114 -0
- package/Tone/component/filter/Filter.ts +202 -0
- package/Tone/component/filter/LowpassCombFilter.test.ts +75 -0
- package/Tone/component/filter/LowpassCombFilter.ts +100 -0
- package/Tone/component/filter/OnePoleFilter.test.ts +90 -0
- package/Tone/component/filter/OnePoleFilter.ts +146 -0
- package/Tone/component/filter/PhaseShiftAllpass.test.ts +71 -0
- package/Tone/component/filter/PhaseShiftAllpass.ts +81 -0
- package/Tone/component/index.ts +39 -0
- package/Tone/core/Global.ts +73 -0
- package/Tone/core/Tone.ts +107 -0
- package/Tone/core/clock/Clock.test.ts +663 -0
- package/Tone/core/clock/Clock.ts +317 -0
- package/Tone/core/clock/TickParam.test.ts +15 -0
- package/Tone/core/clock/TickParam.ts +271 -0
- package/Tone/core/clock/TickSignal.test.ts +455 -0
- package/Tone/core/clock/TickSignal.ts +94 -0
- package/Tone/core/clock/TickSource.test.ts +655 -0
- package/Tone/core/clock/TickSource.ts +338 -0
- package/Tone/core/clock/Ticker.test.ts +86 -0
- package/Tone/core/clock/Ticker.ts +149 -0
- package/Tone/core/clock/Transport.test.ts +972 -0
- package/Tone/core/clock/Transport.ts +731 -0
- package/Tone/core/clock/TransportEvent.test.ts +45 -0
- package/Tone/core/clock/TransportEvent.ts +105 -0
- package/Tone/core/clock/TransportRepeatEvent.test.ts +43 -0
- package/Tone/core/clock/TransportRepeatEvent.ts +150 -0
- package/Tone/core/context/AbstractParam.ts +260 -0
- package/Tone/core/context/AudioContext.ts +60 -0
- package/Tone/core/context/BaseContext.ts +162 -0
- package/Tone/core/context/Context.test.ts +358 -0
- package/Tone/core/context/Context.ts +628 -0
- package/Tone/core/context/ContextInitialization.ts +42 -0
- package/Tone/core/context/Delay.test.ts +105 -0
- package/Tone/core/context/Delay.ts +103 -0
- package/Tone/core/context/Destination.test.ts +76 -0
- package/Tone/core/context/Destination.ts +128 -0
- package/Tone/core/context/DummyContext.test.ts +47 -0
- package/Tone/core/context/DummyContext.ts +201 -0
- package/Tone/core/context/Gain.test.ts +75 -0
- package/Tone/core/context/Gain.ts +90 -0
- package/Tone/core/context/Listener.test.ts +22 -0
- package/Tone/core/context/Listener.ts +117 -0
- package/Tone/core/context/Offline.test.ts +79 -0
- package/Tone/core/context/Offline.ts +65 -0
- package/Tone/core/context/OfflineContext.test.ts +64 -0
- package/Tone/core/context/OfflineContext.ts +118 -0
- package/Tone/core/context/Param.test.ts +607 -0
- package/Tone/core/context/Param.ts +541 -0
- package/Tone/core/context/ToneAudioBuffer.test.ts +360 -0
- package/Tone/core/context/ToneAudioBuffer.ts +412 -0
- package/Tone/core/context/ToneAudioBuffers.test.ts +159 -0
- package/Tone/core/context/ToneAudioBuffers.ts +167 -0
- package/Tone/core/context/ToneAudioNode.test.ts +345 -0
- package/Tone/core/context/ToneAudioNode.ts +396 -0
- package/Tone/core/context/ToneWithContext.ts +205 -0
- package/Tone/core/index.ts +38 -0
- package/Tone/core/type/Conversions.test.ts +34 -0
- package/Tone/core/type/Conversions.ts +78 -0
- package/Tone/core/type/Frequency.test.ts +220 -0
- package/Tone/core/type/Frequency.ts +249 -0
- package/Tone/core/type/Midi.test.ts +137 -0
- package/Tone/core/type/Midi.ts +82 -0
- package/Tone/core/type/NoteUnits.ts +36 -0
- package/Tone/core/type/Ticks.test.ts +190 -0
- package/Tone/core/type/Ticks.ts +69 -0
- package/Tone/core/type/Time.test.ts +181 -0
- package/Tone/core/type/Time.ts +156 -0
- package/Tone/core/type/TimeBase.ts +324 -0
- package/Tone/core/type/TransportTime.test.ts +184 -0
- package/Tone/core/type/TransportTime.ts +34 -0
- package/Tone/core/type/Units.ts +204 -0
- package/Tone/core/util/AdvancedTypeCheck.ts +40 -0
- package/Tone/core/util/Debug.test.ts +74 -0
- package/Tone/core/util/Debug.ts +63 -0
- package/Tone/core/util/Decorator.ts +51 -0
- package/Tone/core/util/Defaults.ts +123 -0
- package/Tone/core/util/Draw.test.ts +72 -0
- package/Tone/core/util/Draw.ts +125 -0
- package/Tone/core/util/Emitter.test.ts +109 -0
- package/Tone/core/util/Emitter.ts +125 -0
- package/Tone/core/util/Interface.ts +45 -0
- package/Tone/core/util/IntervalTimeline.test.ts +465 -0
- package/Tone/core/util/IntervalTimeline.ts +569 -0
- package/Tone/core/util/Math.ts +40 -0
- package/Tone/core/util/StateTimeline.test.ts +103 -0
- package/Tone/core/util/StateTimeline.ts +96 -0
- package/Tone/core/util/Timeline.test.ts +606 -0
- package/Tone/core/util/Timeline.ts +399 -0
- package/Tone/core/util/TimelineValue.test.ts +29 -0
- package/Tone/core/util/TimelineValue.ts +56 -0
- package/Tone/core/util/TypeCheck.ts +65 -0
- package/Tone/core/util/global.d.ts +7 -0
- package/Tone/core/worklet/DelayLine.worklet.ts +49 -0
- package/Tone/core/worklet/SingleIOProcessor.worklet.ts +73 -0
- package/Tone/core/worklet/ToneAudioWorklet.ts +76 -0
- package/Tone/core/worklet/ToneAudioWorkletProcessor.worklet.ts +35 -0
- package/Tone/core/worklet/WorkletGlobalScope.ts +26 -0
- package/Tone/effect/AutoFilter.test.ts +113 -0
- package/Tone/effect/AutoFilter.ts +102 -0
- package/Tone/effect/AutoPanner.test.ts +90 -0
- package/Tone/effect/AutoPanner.ts +63 -0
- package/Tone/effect/AutoWah.test.ts +61 -0
- package/Tone/effect/AutoWah.ts +208 -0
- package/Tone/effect/BitCrusher.test.ts +42 -0
- package/Tone/effect/BitCrusher.ts +129 -0
- package/Tone/effect/BitCrusher.worklet.ts +27 -0
- package/Tone/effect/Chebyshev.test.ts +49 -0
- package/Tone/effect/Chebyshev.ts +123 -0
- package/Tone/effect/Chorus.test.ts +87 -0
- package/Tone/effect/Chorus.ts +225 -0
- package/Tone/effect/Distortion.test.ts +41 -0
- package/Tone/effect/Distortion.ts +98 -0
- package/Tone/effect/Effect.ts +88 -0
- package/Tone/effect/FeedbackDelay.test.ts +75 -0
- package/Tone/effect/FeedbackDelay.ts +73 -0
- package/Tone/effect/FeedbackEffect.ts +68 -0
- package/Tone/effect/Freeverb.test.ts +45 -0
- package/Tone/effect/Freeverb.ts +137 -0
- package/Tone/effect/FrequencyShifter.test.ts +55 -0
- package/Tone/effect/FrequencyShifter.ts +155 -0
- package/Tone/effect/JCReverb.test.ts +41 -0
- package/Tone/effect/JCReverb.ts +130 -0
- package/Tone/effect/LFOEffect.ts +115 -0
- package/Tone/effect/MidSideEffect.ts +93 -0
- package/Tone/effect/Phaser.test.ts +44 -0
- package/Tone/effect/Phaser.ts +187 -0
- package/Tone/effect/PingPongDelay.test.ts +41 -0
- package/Tone/effect/PingPongDelay.ts +105 -0
- package/Tone/effect/PitchShift.test.ts +66 -0
- package/Tone/effect/PitchShift.ts +218 -0
- package/Tone/effect/Reverb.test.ts +75 -0
- package/Tone/effect/Reverb.ts +145 -0
- package/Tone/effect/StereoEffect.ts +99 -0
- package/Tone/effect/StereoFeedbackEffect.ts +91 -0
- package/Tone/effect/StereoWidener.test.ts +41 -0
- package/Tone/effect/StereoWidener.ts +112 -0
- package/Tone/effect/StereoXFeedbackEffect.ts +37 -0
- package/Tone/effect/Tremolo.test.ts +88 -0
- package/Tone/effect/Tremolo.ts +191 -0
- package/Tone/effect/Vibrato.test.ts +52 -0
- package/Tone/effect/Vibrato.ts +104 -0
- package/Tone/effect/index.ts +18 -0
- package/Tone/event/Loop.test.ts +334 -0
- package/Tone/event/Loop.ts +210 -0
- package/Tone/event/Part.test.ts +848 -0
- package/Tone/event/Part.ts +473 -0
- package/Tone/event/Pattern.test.ts +137 -0
- package/Tone/event/Pattern.ts +121 -0
- package/Tone/event/PatternGenerator.test.ts +95 -0
- package/Tone/event/PatternGenerator.ts +176 -0
- package/Tone/event/Sequence.test.ts +453 -0
- package/Tone/event/Sequence.ts +300 -0
- package/Tone/event/ToneEvent.test.ts +485 -0
- package/Tone/event/ToneEvent.ts +392 -0
- package/Tone/event/index.ts +5 -0
- package/Tone/fromContext.test.ts +29 -0
- package/Tone/fromContext.ts +77 -0
- package/Tone/index.test.ts +54 -0
- package/Tone/index.ts +116 -0
- package/Tone/instrument/AMSynth.test.ts +79 -0
- package/Tone/instrument/AMSynth.ts +51 -0
- package/Tone/instrument/DuoSynth.test.ts +95 -0
- package/Tone/instrument/DuoSynth.ts +216 -0
- package/Tone/instrument/FMSynth.test.ts +72 -0
- package/Tone/instrument/FMSynth.ts +65 -0
- package/Tone/instrument/Instrument.ts +180 -0
- package/Tone/instrument/MembraneSynth.test.ts +74 -0
- package/Tone/instrument/MembraneSynth.ts +96 -0
- package/Tone/instrument/MetalSynth.test.ts +66 -0
- package/Tone/instrument/MetalSynth.ts +272 -0
- package/Tone/instrument/ModulationSynth.ts +217 -0
- package/Tone/instrument/MonoSynth.test.ts +88 -0
- package/Tone/instrument/MonoSynth.ts +177 -0
- package/Tone/instrument/Monophonic.ts +135 -0
- package/Tone/instrument/NoiseSynth.test.ts +82 -0
- package/Tone/instrument/NoiseSynth.ts +127 -0
- package/Tone/instrument/PluckSynth.test.ts +62 -0
- package/Tone/instrument/PluckSynth.ts +127 -0
- package/Tone/instrument/PolySynth.test.ts +298 -0
- package/Tone/instrument/PolySynth.ts +393 -0
- package/Tone/instrument/Sampler.test.ts +275 -0
- package/Tone/instrument/Sampler.ts +329 -0
- package/Tone/instrument/Synth.test.ts +132 -0
- package/Tone/instrument/Synth.ts +141 -0
- package/Tone/instrument/index.ts +11 -0
- package/Tone/signal/Abs.test.ts +42 -0
- package/Tone/signal/Abs.ts +53 -0
- package/Tone/signal/Add.test.ts +60 -0
- package/Tone/signal/Add.ts +63 -0
- package/Tone/signal/AudioToGain.test.ts +53 -0
- package/Tone/signal/AudioToGain.ts +40 -0
- package/Tone/signal/GainToAudio.test.ts +41 -0
- package/Tone/signal/GainToAudio.ts +40 -0
- package/Tone/signal/GreaterThan.test.ts +81 -0
- package/Tone/signal/GreaterThan.ts +88 -0
- package/Tone/signal/GreaterThanZero.test.ts +49 -0
- package/Tone/signal/GreaterThanZero.ts +67 -0
- package/Tone/signal/Multiply.test.ts +46 -0
- package/Tone/signal/Multiply.ts +85 -0
- package/Tone/signal/Negate.test.ts +30 -0
- package/Tone/signal/Negate.ts +41 -0
- package/Tone/signal/Pow.test.ts +40 -0
- package/Tone/signal/Pow.ts +84 -0
- package/Tone/signal/Scale.test.ts +58 -0
- package/Tone/signal/Scale.ts +119 -0
- package/Tone/signal/ScaleExp.test.ts +49 -0
- package/Tone/signal/ScaleExp.ts +69 -0
- package/Tone/signal/Signal.test.ts +519 -0
- package/Tone/signal/Signal.ts +226 -0
- package/Tone/signal/SignalOperator.ts +21 -0
- package/Tone/signal/Subtract.test.ts +60 -0
- package/Tone/signal/Subtract.ts +74 -0
- package/Tone/signal/SyncedSignal.test.ts +245 -0
- package/Tone/signal/SyncedSignal.ts +172 -0
- package/Tone/signal/ToneConstantSource.test.ts +202 -0
- package/Tone/signal/ToneConstantSource.ts +90 -0
- package/Tone/signal/WaveShaper.test.ts +95 -0
- package/Tone/signal/WaveShaper.ts +136 -0
- package/Tone/signal/Zero.test.ts +25 -0
- package/Tone/signal/Zero.ts +45 -0
- package/Tone/signal/index.ts +16 -0
- package/Tone/source/Noise.test.ts +121 -0
- package/Tone/source/Noise.ts +287 -0
- package/Tone/source/OneShotSource.ts +260 -0
- package/Tone/source/Source.test.ts +408 -0
- package/Tone/source/Source.ts +339 -0
- package/Tone/source/UserMedia.test.ts +177 -0
- package/Tone/source/UserMedia.ts +260 -0
- package/Tone/source/buffer/GrainPlayer.test.ts +235 -0
- package/Tone/source/buffer/GrainPlayer.ts +322 -0
- package/Tone/source/buffer/Player.test.ts +651 -0
- package/Tone/source/buffer/Player.ts +440 -0
- package/Tone/source/buffer/Players.test.ts +288 -0
- package/Tone/source/buffer/Players.ts +235 -0
- package/Tone/source/buffer/ToneBufferSource.test.ts +578 -0
- package/Tone/source/buffer/ToneBufferSource.ts +253 -0
- package/Tone/source/index.ts +15 -0
- package/Tone/source/oscillator/AMOscillator.test.ts +69 -0
- package/Tone/source/oscillator/AMOscillator.ts +222 -0
- package/Tone/source/oscillator/FMOscillator.test.ts +85 -0
- package/Tone/source/oscillator/FMOscillator.ts +236 -0
- package/Tone/source/oscillator/FatOscillator.test.ts +91 -0
- package/Tone/source/oscillator/FatOscillator.ts +255 -0
- package/Tone/source/oscillator/LFO.test.ts +234 -0
- package/Tone/source/oscillator/LFO.ts +332 -0
- package/Tone/source/oscillator/OmniOscillator.test.ts +303 -0
- package/Tone/source/oscillator/OmniOscillator.ts +428 -0
- package/Tone/source/oscillator/Oscillator.test.ts +278 -0
- package/Tone/source/oscillator/Oscillator.ts +448 -0
- package/Tone/source/oscillator/OscillatorInterface.ts +462 -0
- package/Tone/source/oscillator/PWMOscillator.test.ts +49 -0
- package/Tone/source/oscillator/PWMOscillator.ts +190 -0
- package/Tone/source/oscillator/PulseOscillator.test.ts +126 -0
- package/Tone/source/oscillator/PulseOscillator.ts +225 -0
- package/Tone/source/oscillator/ToneOscillatorNode.test.ts +241 -0
- package/Tone/source/oscillator/ToneOscillatorNode.ts +131 -0
- package/Tone/version.ts +1 -0
- package/build/Tone.js +22 -0
- package/build/Tone.js.map +1 -0
- package/build/esm/classes.d.ts +7 -0
- package/build/esm/classes.js +8 -0
- package/build/esm/classes.js.map +1 -0
- package/build/esm/component/analysis/Analyser.d.ts +77 -0
- package/build/esm/component/analysis/Analyser.js +121 -0
- package/build/esm/component/analysis/Analyser.js.map +1 -0
- package/build/esm/component/analysis/DCMeter.d.ts +23 -0
- package/build/esm/component/analysis/DCMeter.js +31 -0
- package/build/esm/component/analysis/DCMeter.js.map +1 -0
- package/build/esm/component/analysis/FFT.d.ts +50 -0
- package/build/esm/component/analysis/FFT.js +65 -0
- package/build/esm/component/analysis/FFT.js.map +1 -0
- package/build/esm/component/analysis/Follower.d.ts +44 -0
- package/build/esm/component/analysis/Follower.js +51 -0
- package/build/esm/component/analysis/Follower.js.map +1 -0
- package/build/esm/component/analysis/Meter.d.ts +62 -0
- package/build/esm/component/analysis/Meter.js +90 -0
- package/build/esm/component/analysis/Meter.js.map +1 -0
- package/build/esm/component/analysis/MeterBase.d.ts +23 -0
- package/build/esm/component/analysis/MeterBase.js +23 -0
- package/build/esm/component/analysis/MeterBase.js.map +1 -0
- package/build/esm/component/analysis/Waveform.d.ts +32 -0
- package/build/esm/component/analysis/Waveform.js +38 -0
- package/build/esm/component/analysis/Waveform.js.map +1 -0
- package/build/esm/component/channel/Channel.d.ts +91 -0
- package/build/esm/component/channel/Channel.js +124 -0
- package/build/esm/component/channel/Channel.js.map +1 -0
- package/build/esm/component/channel/CrossFade.d.ts +80 -0
- package/build/esm/component/channel/CrossFade.js +106 -0
- package/build/esm/component/channel/CrossFade.js.map +1 -0
- package/build/esm/component/channel/Merge.d.ts +39 -0
- package/build/esm/component/channel/Merge.js +32 -0
- package/build/esm/component/channel/Merge.js.map +1 -0
- package/build/esm/component/channel/MidSideMerge.d.ts +52 -0
- package/build/esm/component/channel/MidSideMerge.js +53 -0
- package/build/esm/component/channel/MidSideMerge.js.map +1 -0
- package/build/esm/component/channel/MidSideSplit.d.ts +42 -0
- package/build/esm/component/channel/MidSideSplit.js +51 -0
- package/build/esm/component/channel/MidSideSplit.js.map +1 -0
- package/build/esm/component/channel/Mono.d.ts +26 -0
- package/build/esm/component/channel/Mono.js +30 -0
- package/build/esm/component/channel/Mono.js.map +1 -0
- package/build/esm/component/channel/MultibandSplit.d.ts +80 -0
- package/build/esm/component/channel/MultibandSplit.js +121 -0
- package/build/esm/component/channel/MultibandSplit.js.map +1 -0
- package/build/esm/component/channel/PanVol.d.ts +53 -0
- package/build/esm/component/channel/PanVol.js +61 -0
- package/build/esm/component/channel/PanVol.js.map +1 -0
- package/build/esm/component/channel/Panner.d.ts +49 -0
- package/build/esm/component/channel/Panner.js +55 -0
- package/build/esm/component/channel/Panner.js.map +1 -0
- package/build/esm/component/channel/Panner3D.d.ts +98 -0
- package/build/esm/component/channel/Panner3D.js +177 -0
- package/build/esm/component/channel/Panner3D.js.map +1 -0
- package/build/esm/component/channel/Recorder.d.ts +77 -0
- package/build/esm/component/channel/Recorder.js +131 -0
- package/build/esm/component/channel/Recorder.js.map +1 -0
- package/build/esm/component/channel/Solo.d.ts +68 -0
- package/build/esm/component/channel/Solo.js +121 -0
- package/build/esm/component/channel/Solo.js.map +1 -0
- package/build/esm/component/channel/Split.d.ts +29 -0
- package/build/esm/component/channel/Split.js +30 -0
- package/build/esm/component/channel/Split.js.map +1 -0
- package/build/esm/component/channel/Volume.d.ts +60 -0
- package/build/esm/component/channel/Volume.js +66 -0
- package/build/esm/component/channel/Volume.js.map +1 -0
- package/build/esm/component/dynamics/Compressor.d.ts +73 -0
- package/build/esm/component/dynamics/Compressor.js +99 -0
- package/build/esm/component/dynamics/Compressor.js.map +1 -0
- package/build/esm/component/dynamics/Gate.d.ts +53 -0
- package/build/esm/component/dynamics/Gate.js +72 -0
- package/build/esm/component/dynamics/Gate.js.map +1 -0
- package/build/esm/component/dynamics/Limiter.d.ts +39 -0
- package/build/esm/component/dynamics/Limiter.js +51 -0
- package/build/esm/component/dynamics/Limiter.js.map +1 -0
- package/build/esm/component/dynamics/MidSideCompressor.d.ts +36 -0
- package/build/esm/component/dynamics/MidSideCompressor.js +52 -0
- package/build/esm/component/dynamics/MidSideCompressor.js.map +1 -0
- package/build/esm/component/dynamics/MultibandCompressor.d.ts +57 -0
- package/build/esm/component/dynamics/MultibandCompressor.js +79 -0
- package/build/esm/component/dynamics/MultibandCompressor.js.map +1 -0
- package/build/esm/component/envelope/AmplitudeEnvelope.d.ts +46 -0
- package/build/esm/component/envelope/AmplitudeEnvelope.js +49 -0
- package/build/esm/component/envelope/AmplitudeEnvelope.js.map +1 -0
- package/build/esm/component/envelope/Envelope.d.ts +302 -0
- package/build/esm/component/envelope/Envelope.js +470 -0
- package/build/esm/component/envelope/Envelope.js.map +1 -0
- package/build/esm/component/envelope/FrequencyEnvelope.d.ts +71 -0
- package/build/esm/component/envelope/FrequencyEnvelope.js +91 -0
- package/build/esm/component/envelope/FrequencyEnvelope.js.map +1 -0
- package/build/esm/component/filter/BiquadFilter.d.ts +64 -0
- package/build/esm/component/filter/BiquadFilter.js +101 -0
- package/build/esm/component/filter/BiquadFilter.js.map +1 -0
- package/build/esm/component/filter/Convolver.d.ts +59 -0
- package/build/esm/component/filter/Convolver.js +104 -0
- package/build/esm/component/filter/Convolver.js.map +1 -0
- package/build/esm/component/filter/EQ3.d.ts +77 -0
- package/build/esm/component/filter/EQ3.js +81 -0
- package/build/esm/component/filter/EQ3.js.map +1 -0
- package/build/esm/component/filter/FeedbackCombFilter.d.ts +45 -0
- package/build/esm/component/filter/FeedbackCombFilter.js +72 -0
- package/build/esm/component/filter/FeedbackCombFilter.js.map +1 -0
- package/build/esm/component/filter/FeedbackCombFilter.worklet.d.ts +3 -0
- package/build/esm/component/filter/FeedbackCombFilter.worklet.js +37 -0
- package/build/esm/component/filter/FeedbackCombFilter.worklet.js.map +1 -0
- package/build/esm/component/filter/Filter.d.ts +79 -0
- package/build/esm/component/filter/Filter.js +150 -0
- package/build/esm/component/filter/Filter.js.map +1 -0
- package/build/esm/component/filter/LowpassCombFilter.d.ts +50 -0
- package/build/esm/component/filter/LowpassCombFilter.js +53 -0
- package/build/esm/component/filter/LowpassCombFilter.js.map +1 -0
- package/build/esm/component/filter/OnePoleFilter.d.ts +64 -0
- package/build/esm/component/filter/OnePoleFilter.js +104 -0
- package/build/esm/component/filter/OnePoleFilter.js.map +1 -0
- package/build/esm/component/filter/PhaseShiftAllpass.d.ts +40 -0
- package/build/esm/component/filter/PhaseShiftAllpass.js +54 -0
- package/build/esm/component/filter/PhaseShiftAllpass.js.map +1 -0
- package/build/esm/component/index.d.ts +35 -0
- package/build/esm/component/index.js +36 -0
- package/build/esm/component/index.js.map +1 -0
- package/build/esm/core/Global.d.ts +26 -0
- package/build/esm/core/Global.js +69 -0
- package/build/esm/core/Global.js.map +1 -0
- package/build/esm/core/Tone.d.ts +60 -0
- package/build/esm/core/Tone.js +87 -0
- package/build/esm/core/Tone.js.map +1 -0
- package/build/esm/core/clock/Clock.d.ts +156 -0
- package/build/esm/core/clock/Clock.js +251 -0
- package/build/esm/core/clock/Clock.js.map +1 -0
- package/build/esm/core/clock/TickParam.d.ts +97 -0
- package/build/esm/core/clock/TickParam.js +237 -0
- package/build/esm/core/clock/TickParam.js.map +1 -0
- package/build/esm/core/clock/TickSignal.d.ts +43 -0
- package/build/esm/core/clock/TickSignal.js +64 -0
- package/build/esm/core/clock/TickSignal.js.map +1 -0
- package/build/esm/core/clock/TickSource.d.ts +115 -0
- package/build/esm/core/clock/TickSource.js +284 -0
- package/build/esm/core/clock/TickSource.js.map +1 -0
- package/build/esm/core/clock/Ticker.d.ts +59 -0
- package/build/esm/core/clock/Ticker.js +110 -0
- package/build/esm/core/clock/Ticker.js.map +1 -0
- package/build/esm/core/clock/Transport.d.ts +331 -0
- package/build/esm/core/clock/Transport.js +591 -0
- package/build/esm/core/clock/Transport.js.map +1 -0
- package/build/esm/core/clock/TransportEvent.d.ts +62 -0
- package/build/esm/core/clock/TransportEvent.js +66 -0
- package/build/esm/core/clock/TransportEvent.js.map +1 -0
- package/build/esm/core/clock/TransportRepeatEvent.d.ts +70 -0
- package/build/esm/core/clock/TransportRepeatEvent.js +110 -0
- package/build/esm/core/clock/TransportRepeatEvent.js.map +1 -0
- package/build/esm/core/context/AbstractParam.d.ts +239 -0
- package/build/esm/core/context/AbstractParam.js +6 -0
- package/build/esm/core/context/AbstractParam.js.map +1 -0
- package/build/esm/core/context/AudioContext.d.ts +36 -0
- package/build/esm/core/context/AudioContext.js +38 -0
- package/build/esm/core/context/AudioContext.js.map +1 -0
- package/build/esm/core/context/BaseContext.d.ts +56 -0
- package/build/esm/core/context/BaseContext.js +16 -0
- package/build/esm/core/context/BaseContext.js.map +1 -0
- package/build/esm/core/context/Context.d.ts +255 -0
- package/build/esm/core/context/Context.js +474 -0
- package/build/esm/core/context/Context.js.map +1 -0
- package/build/esm/core/context/ContextInitialization.d.ts +15 -0
- package/build/esm/core/context/ContextInitialization.js +35 -0
- package/build/esm/core/context/ContextInitialization.js.map +1 -0
- package/build/esm/core/context/Delay.d.ts +58 -0
- package/build/esm/core/context/Delay.js +58 -0
- package/build/esm/core/context/Delay.js.map +1 -0
- package/build/esm/core/context/Destination.d.ts +73 -0
- package/build/esm/core/context/Destination.js +105 -0
- package/build/esm/core/context/Destination.js.map +1 -0
- package/build/esm/core/context/DummyContext.d.ts +54 -0
- package/build/esm/core/context/DummyContext.js +138 -0
- package/build/esm/core/context/DummyContext.js.map +1 -0
- package/build/esm/core/context/Gain.d.ts +53 -0
- package/build/esm/core/context/Gain.js +58 -0
- package/build/esm/core/context/Gain.js.map +1 -0
- package/build/esm/core/context/Listener.d.ts +38 -0
- package/build/esm/core/context/Listener.js +87 -0
- package/build/esm/core/context/Listener.js.map +1 -0
- package/build/esm/core/context/Offline.d.ts +37 -0
- package/build/esm/core/context/Offline.js +56 -0
- package/build/esm/core/context/Offline.js.map +1 -0
- package/build/esm/core/context/OfflineContext.d.ts +58 -0
- package/build/esm/core/context/OfflineContext.js +87 -0
- package/build/esm/core/context/OfflineContext.js.map +1 -0
- package/build/esm/core/context/Param.d.ts +132 -0
- package/build/esm/core/context/Param.js +446 -0
- package/build/esm/core/context/Param.js.map +1 -0
- package/build/esm/core/context/ToneAudioBuffer.d.ts +162 -0
- package/build/esm/core/context/ToneAudioBuffer.js +364 -0
- package/build/esm/core/context/ToneAudioBuffer.js.map +1 -0
- package/build/esm/core/context/ToneAudioBuffers.d.ts +89 -0
- package/build/esm/core/context/ToneAudioBuffers.js +119 -0
- package/build/esm/core/context/ToneAudioBuffers.js.map +1 -0
- package/build/esm/core/context/ToneAudioNode.d.ts +173 -0
- package/build/esm/core/context/ToneAudioNode.js +342 -0
- package/build/esm/core/context/ToneAudioNode.js.map +1 -0
- package/build/esm/core/context/ToneWithContext.d.ts +108 -0
- package/build/esm/core/context/ToneWithContext.js +170 -0
- package/build/esm/core/context/ToneWithContext.js.map +1 -0
- package/build/esm/core/index.d.ts +28 -0
- package/build/esm/core/index.js +33 -0
- package/build/esm/core/index.js.map +1 -0
- package/build/esm/core/type/Conversions.d.ts +44 -0
- package/build/esm/core/type/Conversions.js +68 -0
- package/build/esm/core/type/Conversions.js.map +1 -0
- package/build/esm/core/type/Frequency.d.ts +101 -0
- package/build/esm/core/type/Frequency.js +225 -0
- package/build/esm/core/type/Frequency.js.map +1 -0
- package/build/esm/core/type/Midi.d.ts +53 -0
- package/build/esm/core/type/Midi.js +73 -0
- package/build/esm/core/type/Midi.js.map +1 -0
- package/build/esm/core/type/NoteUnits.d.ts +12 -0
- package/build/esm/core/type/NoteUnits.js +3 -0
- package/build/esm/core/type/NoteUnits.js.map +1 -0
- package/build/esm/core/type/Ticks.d.ts +44 -0
- package/build/esm/core/type/Ticks.js +61 -0
- package/build/esm/core/type/Ticks.js.map +1 -0
- package/build/esm/core/type/Time.d.ts +69 -0
- package/build/esm/core/type/Time.js +147 -0
- package/build/esm/core/type/Time.js.map +1 -0
- package/build/esm/core/type/TimeBase.d.ts +120 -0
- package/build/esm/core/type/TimeBase.js +251 -0
- package/build/esm/core/type/TimeBase.js.map +1 -0
- package/build/esm/core/type/TransportTime.d.ts +25 -0
- package/build/esm/core/type/TransportTime.js +32 -0
- package/build/esm/core/type/TransportTime.js.map +1 -0
- package/build/esm/core/type/Units.d.ts +176 -0
- package/build/esm/core/type/Units.js +2 -0
- package/build/esm/core/type/Units.js.map +1 -0
- package/build/esm/core/util/AdvancedTypeCheck.d.ts +21 -0
- package/build/esm/core/util/AdvancedTypeCheck.js +32 -0
- package/build/esm/core/util/AdvancedTypeCheck.js.map +1 -0
- package/build/esm/core/util/Debug.d.ts +34 -0
- package/build/esm/core/util/Debug.js +50 -0
- package/build/esm/core/util/Debug.js.map +1 -0
- package/build/esm/core/util/Decorator.d.ts +9 -0
- package/build/esm/core/util/Decorator.js +41 -0
- package/build/esm/core/util/Decorator.js.map +1 -0
- package/build/esm/core/util/Defaults.d.ts +32 -0
- package/build/esm/core/util/Defaults.js +99 -0
- package/build/esm/core/util/Defaults.js.map +1 -0
- package/build/esm/core/util/Draw.d.ts +67 -0
- package/build/esm/core/util/Draw.js +110 -0
- package/build/esm/core/util/Draw.js.map +1 -0
- package/build/esm/core/util/Emitter.d.ts +52 -0
- package/build/esm/core/util/Emitter.js +113 -0
- package/build/esm/core/util/Emitter.js.map +1 -0
- package/build/esm/core/util/Interface.d.ts +16 -0
- package/build/esm/core/util/Interface.js +32 -0
- package/build/esm/core/util/Interface.js.map +1 -0
- package/build/esm/core/util/IntervalTimeline.d.ts +106 -0
- package/build/esm/core/util/IntervalTimeline.js +539 -0
- package/build/esm/core/util/IntervalTimeline.js.map +1 -0
- package/build/esm/core/util/Math.d.ts +20 -0
- package/build/esm/core/util/Math.js +36 -0
- package/build/esm/core/util/Math.js.map +1 -0
- package/build/esm/core/util/StateTimeline.d.ts +47 -0
- package/build/esm/core/util/StateTimeline.js +78 -0
- package/build/esm/core/util/StateTimeline.js.map +1 -0
- package/build/esm/core/util/Timeline.d.ts +156 -0
- package/build/esm/core/util/Timeline.js +351 -0
- package/build/esm/core/util/Timeline.js.map +1 -0
- package/build/esm/core/util/TimelineValue.d.ts +28 -0
- package/build/esm/core/util/TimelineValue.js +41 -0
- package/build/esm/core/util/TimelineValue.js.map +1 -0
- package/build/esm/core/util/TypeCheck.d.ts +38 -0
- package/build/esm/core/util/TypeCheck.js +56 -0
- package/build/esm/core/util/TypeCheck.js.map +1 -0
- package/build/esm/core/worklet/DelayLine.worklet.d.ts +1 -0
- package/build/esm/core/worklet/DelayLine.worklet.js +48 -0
- package/build/esm/core/worklet/DelayLine.worklet.js.map +1 -0
- package/build/esm/core/worklet/SingleIOProcessor.worklet.d.ts +2 -0
- package/build/esm/core/worklet/SingleIOProcessor.worklet.js +72 -0
- package/build/esm/core/worklet/SingleIOProcessor.worklet.js.map +1 -0
- package/build/esm/core/worklet/ToneAudioWorklet.d.ts +35 -0
- package/build/esm/core/worklet/ToneAudioWorklet.js +40 -0
- package/build/esm/core/worklet/ToneAudioWorklet.js.map +1 -0
- package/build/esm/core/worklet/ToneAudioWorkletProcessor.worklet.d.ts +1 -0
- package/build/esm/core/worklet/ToneAudioWorkletProcessor.worklet.js +34 -0
- package/build/esm/core/worklet/ToneAudioWorkletProcessor.worklet.js.map +1 -0
- package/build/esm/core/worklet/WorkletGlobalScope.d.ts +12 -0
- package/build/esm/core/worklet/WorkletGlobalScope.js +24 -0
- package/build/esm/core/worklet/WorkletGlobalScope.js.map +1 -0
- package/build/esm/effect/AutoFilter.d.ts +51 -0
- package/build/esm/effect/AutoFilter.js +68 -0
- package/build/esm/effect/AutoFilter.js.map +1 -0
- package/build/esm/effect/AutoPanner.d.ts +31 -0
- package/build/esm/effect/AutoPanner.js +41 -0
- package/build/esm/effect/AutoPanner.js.map +1 -0
- package/build/esm/effect/AutoWah.d.ts +99 -0
- package/build/esm/effect/AutoWah.js +131 -0
- package/build/esm/effect/AutoWah.js.map +1 -0
- package/build/esm/effect/BitCrusher.d.ts +40 -0
- package/build/esm/effect/BitCrusher.js +85 -0
- package/build/esm/effect/BitCrusher.js.map +1 -0
- package/build/esm/effect/BitCrusher.worklet.d.ts +3 -0
- package/build/esm/effect/BitCrusher.worklet.js +25 -0
- package/build/esm/effect/BitCrusher.worklet.js.map +1 -0
- package/build/esm/effect/Chebyshev.d.ts +62 -0
- package/build/esm/effect/Chebyshev.js +95 -0
- package/build/esm/effect/Chebyshev.js.map +1 -0
- package/build/esm/effect/Chorus.d.ts +104 -0
- package/build/esm/effect/Chorus.js +157 -0
- package/build/esm/effect/Chorus.js.map +1 -0
- package/build/esm/effect/Distortion.d.ts +43 -0
- package/build/esm/effect/Distortion.js +69 -0
- package/build/esm/effect/Distortion.js.map +1 -0
- package/build/esm/effect/Effect.d.ts +49 -0
- package/build/esm/effect/Effect.js +70 -0
- package/build/esm/effect/Effect.js.map +1 -0
- package/build/esm/effect/FeedbackDelay.d.ts +37 -0
- package/build/esm/effect/FeedbackDelay.js +47 -0
- package/build/esm/effect/FeedbackDelay.js.map +1 -0
- package/build/esm/effect/FeedbackEffect.d.ts +34 -0
- package/build/esm/effect/FeedbackEffect.js +34 -0
- package/build/esm/effect/FeedbackEffect.js.map +1 -0
- package/build/esm/effect/Freeverb.d.ts +51 -0
- package/build/esm/effect/Freeverb.js +104 -0
- package/build/esm/effect/Freeverb.js.map +1 -0
- package/build/esm/effect/FrequencyShifter.d.ts +68 -0
- package/build/esm/effect/FrequencyShifter.js +88 -0
- package/build/esm/effect/FrequencyShifter.js.map +1 -0
- package/build/esm/effect/JCReverb.d.ts +46 -0
- package/build/esm/effect/JCReverb.js +97 -0
- package/build/esm/effect/JCReverb.js.map +1 -0
- package/build/esm/effect/LFOEffect.d.ts +58 -0
- package/build/esm/effect/LFOEffect.js +77 -0
- package/build/esm/effect/LFOEffect.js.map +1 -0
- package/build/esm/effect/MidSideEffect.d.ts +50 -0
- package/build/esm/effect/MidSideEffect.js +51 -0
- package/build/esm/effect/MidSideEffect.js.map +1 -0
- package/build/esm/effect/Phaser.d.ts +80 -0
- package/build/esm/effect/Phaser.js +119 -0
- package/build/esm/effect/Phaser.js.map +1 -0
- package/build/esm/effect/PingPongDelay.d.ts +48 -0
- package/build/esm/effect/PingPongDelay.js +66 -0
- package/build/esm/effect/PingPongDelay.js.map +1 -0
- package/build/esm/effect/PitchShift.d.ts +89 -0
- package/build/esm/effect/PitchShift.js +140 -0
- package/build/esm/effect/PitchShift.js.map +1 -0
- package/build/esm/effect/Reverb.d.ts +62 -0
- package/build/esm/effect/Reverb.js +111 -0
- package/build/esm/effect/Reverb.js.map +1 -0
- package/build/esm/effect/StereoEffect.d.ts +44 -0
- package/build/esm/effect/StereoEffect.js +61 -0
- package/build/esm/effect/StereoEffect.js.map +1 -0
- package/build/esm/effect/StereoFeedbackEffect.d.ts +39 -0
- package/build/esm/effect/StereoFeedbackEffect.js +49 -0
- package/build/esm/effect/StereoFeedbackEffect.js.map +1 -0
- package/build/esm/effect/StereoWidener.d.ts +50 -0
- package/build/esm/effect/StereoWidener.js +65 -0
- package/build/esm/effect/StereoWidener.js.map +1 -0
- package/build/esm/effect/StereoXFeedbackEffect.d.ts +21 -0
- package/build/esm/effect/StereoXFeedbackEffect.js +28 -0
- package/build/esm/effect/StereoXFeedbackEffect.js.map +1 -0
- package/build/esm/effect/Tremolo.d.ts +86 -0
- package/build/esm/effect/Tremolo.js +131 -0
- package/build/esm/effect/Tremolo.js.map +1 -0
- package/build/esm/effect/Vibrato.d.ts +48 -0
- package/build/esm/effect/Vibrato.js +61 -0
- package/build/esm/effect/Vibrato.js.map +1 -0
- package/build/esm/effect/index.d.ts +18 -0
- package/build/esm/effect/index.js +19 -0
- package/build/esm/effect/index.js.map +1 -0
- package/build/esm/event/Loop.d.ts +107 -0
- package/build/esm/event/Loop.js +164 -0
- package/build/esm/event/Loop.js.map +1 -0
- package/build/esm/event/Part.d.ts +193 -0
- package/build/esm/event/Part.js +401 -0
- package/build/esm/event/Part.js.map +1 -0
- package/build/esm/event/Pattern.d.ts +67 -0
- package/build/esm/event/Pattern.js +67 -0
- package/build/esm/event/Pattern.js.map +1 -0
- package/build/esm/event/PatternGenerator.d.ts +12 -0
- package/build/esm/event/PatternGenerator.js +165 -0
- package/build/esm/event/PatternGenerator.js.map +1 -0
- package/build/esm/event/Sequence.d.ts +127 -0
- package/build/esm/event/Sequence.js +247 -0
- package/build/esm/event/Sequence.js.map +1 -0
- package/build/esm/event/ToneEvent.d.ts +188 -0
- package/build/esm/event/ToneEvent.js +299 -0
- package/build/esm/event/ToneEvent.js.map +1 -0
- package/build/esm/event/index.d.ts +5 -0
- package/build/esm/event/index.js +6 -0
- package/build/esm/event/index.js.map +1 -0
- package/build/esm/fromContext.d.ts +26 -0
- package/build/esm/fromContext.js +41 -0
- package/build/esm/fromContext.js.map +1 -0
- package/build/esm/index.d.ts +86 -0
- package/build/esm/index.js +102 -0
- package/build/esm/index.js.map +1 -0
- package/build/esm/instrument/AMSynth.d.ts +25 -0
- package/build/esm/instrument/AMSynth.js +37 -0
- package/build/esm/instrument/AMSynth.js.map +1 -0
- package/build/esm/instrument/DuoSynth.d.ts +72 -0
- package/build/esm/instrument/DuoSynth.js +140 -0
- package/build/esm/instrument/DuoSynth.js.map +1 -0
- package/build/esm/instrument/FMSynth.d.ts +31 -0
- package/build/esm/instrument/FMSynth.js +45 -0
- package/build/esm/instrument/FMSynth.js.map +1 -0
- package/build/esm/instrument/Instrument.d.ts +100 -0
- package/build/esm/instrument/Instrument.js +127 -0
- package/build/esm/instrument/Instrument.js.map +1 -0
- package/build/esm/instrument/MembraneSynth.d.ts +47 -0
- package/build/esm/instrument/MembraneSynth.js +69 -0
- package/build/esm/instrument/MembraneSynth.js.map +1 -0
- package/build/esm/instrument/MetalSynth.d.ts +109 -0
- package/build/esm/instrument/MetalSynth.js +198 -0
- package/build/esm/instrument/MetalSynth.js.map +1 -0
- package/build/esm/instrument/ModulationSynth.d.ts +81 -0
- package/build/esm/instrument/ModulationSynth.js +122 -0
- package/build/esm/instrument/ModulationSynth.js.map +1 -0
- package/build/esm/instrument/MonoSynth.d.ts +76 -0
- package/build/esm/instrument/MonoSynth.js +113 -0
- package/build/esm/instrument/MonoSynth.js.map +1 -0
- package/build/esm/instrument/Monophonic.d.ts +82 -0
- package/build/esm/instrument/Monophonic.js +83 -0
- package/build/esm/instrument/Monophonic.js.map +1 -0
- package/build/esm/instrument/NoiseSynth.d.ts +51 -0
- package/build/esm/instrument/NoiseSynth.js +93 -0
- package/build/esm/instrument/NoiseSynth.js.map +1 -0
- package/build/esm/instrument/PluckSynth.d.ts +57 -0
- package/build/esm/instrument/PluckSynth.js +80 -0
- package/build/esm/instrument/PluckSynth.js.map +1 -0
- package/build/esm/instrument/PolySynth.d.ts +176 -0
- package/build/esm/instrument/PolySynth.js +302 -0
- package/build/esm/instrument/PolySynth.js.map +1 -0
- package/build/esm/instrument/Sampler.d.ts +126 -0
- package/build/esm/instrument/Sampler.js +259 -0
- package/build/esm/instrument/Sampler.js.map +1 -0
- package/build/esm/instrument/Synth.d.ts +65 -0
- package/build/esm/instrument/Synth.js +91 -0
- package/build/esm/instrument/Synth.js.map +1 -0
- package/build/esm/instrument/index.d.ts +11 -0
- package/build/esm/instrument/index.js +12 -0
- package/build/esm/instrument/index.js.map +1 -0
- package/build/esm/signal/Abs.d.ts +34 -0
- package/build/esm/signal/Abs.js +51 -0
- package/build/esm/signal/Abs.js.map +1 -0
- package/build/esm/signal/Add.d.ts +40 -0
- package/build/esm/signal/Add.js +49 -0
- package/build/esm/signal/Add.js.map +1 -0
- package/build/esm/signal/AudioToGain.d.ts +27 -0
- package/build/esm/signal/AudioToGain.js +37 -0
- package/build/esm/signal/AudioToGain.js.map +1 -0
- package/build/esm/signal/GainToAudio.d.ts +27 -0
- package/build/esm/signal/GainToAudio.js +37 -0
- package/build/esm/signal/GainToAudio.js.map +1 -0
- package/build/esm/signal/GreaterThan.d.ts +47 -0
- package/build/esm/signal/GreaterThan.js +46 -0
- package/build/esm/signal/GreaterThan.js.map +1 -0
- package/build/esm/signal/GreaterThanZero.d.ts +29 -0
- package/build/esm/signal/GreaterThanZero.js +45 -0
- package/build/esm/signal/GreaterThanZero.js.map +1 -0
- package/build/esm/signal/Multiply.d.ts +52 -0
- package/build/esm/signal/Multiply.js +51 -0
- package/build/esm/signal/Multiply.js.map +1 -0
- package/build/esm/signal/Negate.d.ts +29 -0
- package/build/esm/signal/Negate.js +39 -0
- package/build/esm/signal/Negate.js.map +1 -0
- package/build/esm/signal/Pow.d.ts +42 -0
- package/build/esm/signal/Pow.js +58 -0
- package/build/esm/signal/Pow.js.map +1 -0
- package/build/esm/signal/Scale.d.ts +62 -0
- package/build/esm/signal/Scale.js +73 -0
- package/build/esm/signal/Scale.js.map +1 -0
- package/build/esm/signal/ScaleExp.d.ts +37 -0
- package/build/esm/signal/ScaleExp.js +46 -0
- package/build/esm/signal/ScaleExp.js.map +1 -0
- package/build/esm/signal/Signal.d.ts +92 -0
- package/build/esm/signal/Signal.js +183 -0
- package/build/esm/signal/Signal.js.map +1 -0
- package/build/esm/signal/SignalOperator.d.ts +9 -0
- package/build/esm/signal/SignalOperator.js +16 -0
- package/build/esm/signal/SignalOperator.js.map +1 -0
- package/build/esm/signal/Subtract.d.ts +48 -0
- package/build/esm/signal/Subtract.js +58 -0
- package/build/esm/signal/Subtract.js.map +1 -0
- package/build/esm/signal/SyncedSignal.d.ts +53 -0
- package/build/esm/signal/SyncedSignal.js +124 -0
- package/build/esm/signal/SyncedSignal.js.map +1 -0
- package/build/esm/signal/ToneConstantSource.d.ts +39 -0
- package/build/esm/signal/ToneConstantSource.js +61 -0
- package/build/esm/signal/ToneConstantSource.js.map +1 -0
- package/build/esm/signal/WaveShaper.d.ts +81 -0
- package/build/esm/signal/WaveShaper.js +99 -0
- package/build/esm/signal/WaveShaper.js.map +1 -0
- package/build/esm/signal/Zero.d.ts +29 -0
- package/build/esm/signal/Zero.js +38 -0
- package/build/esm/signal/Zero.js.map +1 -0
- package/build/esm/signal/index.d.ts +16 -0
- package/build/esm/signal/index.js +17 -0
- package/build/esm/signal/index.js.map +1 -0
- package/build/esm/source/Noise.d.ts +96 -0
- package/build/esm/source/Noise.js +225 -0
- package/build/esm/source/Noise.js.map +1 -0
- package/build/esm/source/OneShotSource.d.ts +102 -0
- package/build/esm/source/OneShotSource.js +183 -0
- package/build/esm/source/OneShotSource.js.map +1 -0
- package/build/esm/source/Source.d.ts +155 -0
- package/build/esm/source/Source.js +281 -0
- package/build/esm/source/Source.js.map +1 -0
- package/build/esm/source/UserMedia.d.ts +123 -0
- package/build/esm/source/UserMedia.js +214 -0
- package/build/esm/source/UserMedia.js.map +1 -0
- package/build/esm/source/buffer/GrainPlayer.d.ts +135 -0
- package/build/esm/source/buffer/GrainPlayer.js +235 -0
- package/build/esm/source/buffer/GrainPlayer.js.map +1 -0
- package/build/esm/source/buffer/Player.d.ts +190 -0
- package/build/esm/source/buffer/Player.js +352 -0
- package/build/esm/source/buffer/Player.js.map +1 -0
- package/build/esm/source/buffer/Players.d.ts +121 -0
- package/build/esm/source/buffer/Players.js +162 -0
- package/build/esm/source/buffer/Players.js.map +1 -0
- package/build/esm/source/buffer/ToneBufferSource.d.ts +97 -0
- package/build/esm/source/buffer/ToneBufferSource.js +196 -0
- package/build/esm/source/buffer/ToneBufferSource.js.map +1 -0
- package/build/esm/source/index.d.ts +15 -0
- package/build/esm/source/index.js +16 -0
- package/build/esm/source/index.js.map +1 -0
- package/build/esm/source/oscillator/AMOscillator.d.ts +101 -0
- package/build/esm/source/oscillator/AMOscillator.js +157 -0
- package/build/esm/source/oscillator/AMOscillator.js.map +1 -0
- package/build/esm/source/oscillator/FMOscillator.d.ts +101 -0
- package/build/esm/source/oscillator/FMOscillator.js +172 -0
- package/build/esm/source/oscillator/FMOscillator.js.map +1 -0
- package/build/esm/source/oscillator/FatOscillator.d.ts +99 -0
- package/build/esm/source/oscillator/FatOscillator.js +195 -0
- package/build/esm/source/oscillator/FatOscillator.js.map +1 -0
- package/build/esm/source/oscillator/LFO.d.ts +167 -0
- package/build/esm/source/oscillator/LFO.js +233 -0
- package/build/esm/source/oscillator/LFO.js.map +1 -0
- package/build/esm/source/oscillator/OmniOscillator.d.ts +162 -0
- package/build/esm/source/oscillator/OmniOscillator.js +348 -0
- package/build/esm/source/oscillator/OmniOscillator.js.map +1 -0
- package/build/esm/source/oscillator/Oscillator.d.ts +125 -0
- package/build/esm/source/oscillator/Oscillator.js +379 -0
- package/build/esm/source/oscillator/Oscillator.js.map +1 -0
- package/build/esm/source/oscillator/OscillatorInterface.d.ts +298 -0
- package/build/esm/source/oscillator/OscillatorInterface.js +22 -0
- package/build/esm/source/oscillator/OscillatorInterface.js.map +1 -0
- package/build/esm/source/oscillator/PWMOscillator.d.ts +94 -0
- package/build/esm/source/oscillator/PWMOscillator.js +136 -0
- package/build/esm/source/oscillator/PWMOscillator.js.map +1 -0
- package/build/esm/source/oscillator/PulseOscillator.d.ts +119 -0
- package/build/esm/source/oscillator/PulseOscillator.js +175 -0
- package/build/esm/source/oscillator/PulseOscillator.js.map +1 -0
- package/build/esm/source/oscillator/ToneOscillatorNode.d.ts +57 -0
- package/build/esm/source/oscillator/ToneOscillatorNode.js +90 -0
- package/build/esm/source/oscillator/ToneOscillatorNode.js.map +1 -0
- package/build/esm/version.d.ts +1 -0
- package/build/esm/version.js +2 -0
- package/build/esm/version.js.map +1 -0
- package/docs/tone.json +1 -0
- package/package.json +116 -0
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The threshold for correctness for operators. Less than one sample even
|
|
3
|
+
* at very high sampling rates (e.g. `1e-6 < 1 / 192000`).
|
|
4
|
+
*/
|
|
5
|
+
const EPSILON = 1e-6;
|
|
6
|
+
/**
|
|
7
|
+
* Test if A is greater than B
|
|
8
|
+
*/
|
|
9
|
+
export function GT(a, b) {
|
|
10
|
+
return a > b + EPSILON;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Test if A is greater than or equal to B
|
|
14
|
+
*/
|
|
15
|
+
export function GTE(a, b) {
|
|
16
|
+
return GT(a, b) || EQ(a, b);
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Test if A is less than B
|
|
20
|
+
*/
|
|
21
|
+
export function LT(a, b) {
|
|
22
|
+
return a + EPSILON < b;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Test if A is less than B
|
|
26
|
+
*/
|
|
27
|
+
export function EQ(a, b) {
|
|
28
|
+
return Math.abs(a - b) < EPSILON;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Clamp the value within the given range
|
|
32
|
+
*/
|
|
33
|
+
export function clamp(value, min, max) {
|
|
34
|
+
return Math.max(Math.min(value, max), min);
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=Math.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Math.js","sourceRoot":"","sources":["../../../../Tone/core/util/Math.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,OAAO,GAAG,IAAI,CAAC;AAErB;;GAEG;AACH,MAAM,UAAU,EAAE,CAAC,CAAS,EAAE,CAAS;IACtC,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC;AACxB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,GAAG,CAAC,CAAS,EAAE,CAAS;IACvC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC7B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,EAAE,CAAC,CAAS,EAAE,CAAS;IACtC,OAAO,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC;AACxB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,EAAE,CAAC,CAAS,EAAE,CAAS;IACtC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC;AAClC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,KAAK,CAAC,KAAa,EAAE,GAAW,EAAE,GAAW;IAC5D,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;AAC5C,CAAC"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { Seconds } from "../type/Units";
|
|
2
|
+
import { Timeline, TimelineEvent } from "./Timeline";
|
|
3
|
+
export declare type BasicPlaybackState = "started" | "stopped";
|
|
4
|
+
export declare type PlaybackState = BasicPlaybackState | "paused";
|
|
5
|
+
export interface StateTimelineEvent extends TimelineEvent {
|
|
6
|
+
state: PlaybackState;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* A Timeline State. Provides the methods: `setStateAtTime("state", time)` and `getValueAtTime(time)`
|
|
10
|
+
* @param initial The initial state of the StateTimeline. Defaults to `undefined`
|
|
11
|
+
*/
|
|
12
|
+
export declare class StateTimeline<AdditionalOptions extends {} = {}> extends Timeline<StateTimelineEvent & AdditionalOptions> {
|
|
13
|
+
readonly name: string;
|
|
14
|
+
/**
|
|
15
|
+
* The initial state
|
|
16
|
+
*/
|
|
17
|
+
private _initial;
|
|
18
|
+
constructor(initial?: PlaybackState);
|
|
19
|
+
/**
|
|
20
|
+
* Returns the scheduled state scheduled before or at
|
|
21
|
+
* the given time.
|
|
22
|
+
* @param time The time to query.
|
|
23
|
+
* @return The name of the state input in setStateAtTime.
|
|
24
|
+
*/
|
|
25
|
+
getValueAtTime(time: Seconds): PlaybackState;
|
|
26
|
+
/**
|
|
27
|
+
* Add a state to the timeline.
|
|
28
|
+
* @param state The name of the state to set.
|
|
29
|
+
* @param time The time to query.
|
|
30
|
+
* @param options Any additional options that are needed in the timeline.
|
|
31
|
+
*/
|
|
32
|
+
setStateAtTime(state: PlaybackState, time: Seconds, options?: AdditionalOptions): this;
|
|
33
|
+
/**
|
|
34
|
+
* Return the event before the time with the given state
|
|
35
|
+
* @param state The state to look for
|
|
36
|
+
* @param time When to check before
|
|
37
|
+
* @return The event with the given state before the time
|
|
38
|
+
*/
|
|
39
|
+
getLastState(state: PlaybackState, time: number): StateTimelineEvent & AdditionalOptions | undefined;
|
|
40
|
+
/**
|
|
41
|
+
* Return the event after the time with the given state
|
|
42
|
+
* @param state The state to look for
|
|
43
|
+
* @param time When to check from
|
|
44
|
+
* @return The event with the given state after the time
|
|
45
|
+
*/
|
|
46
|
+
getNextState(state: PlaybackState, time: number): StateTimelineEvent & AdditionalOptions | undefined;
|
|
47
|
+
}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { Timeline } from "./Timeline";
|
|
2
|
+
import { assertRange } from "./Debug";
|
|
3
|
+
/**
|
|
4
|
+
* A Timeline State. Provides the methods: `setStateAtTime("state", time)` and `getValueAtTime(time)`
|
|
5
|
+
* @param initial The initial state of the StateTimeline. Defaults to `undefined`
|
|
6
|
+
*/
|
|
7
|
+
export class StateTimeline extends Timeline {
|
|
8
|
+
constructor(initial = "stopped") {
|
|
9
|
+
super();
|
|
10
|
+
this.name = "StateTimeline";
|
|
11
|
+
this._initial = initial;
|
|
12
|
+
this.setStateAtTime(this._initial, 0);
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Returns the scheduled state scheduled before or at
|
|
16
|
+
* the given time.
|
|
17
|
+
* @param time The time to query.
|
|
18
|
+
* @return The name of the state input in setStateAtTime.
|
|
19
|
+
*/
|
|
20
|
+
getValueAtTime(time) {
|
|
21
|
+
const event = this.get(time);
|
|
22
|
+
if (event !== null) {
|
|
23
|
+
return event.state;
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
return this._initial;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Add a state to the timeline.
|
|
31
|
+
* @param state The name of the state to set.
|
|
32
|
+
* @param time The time to query.
|
|
33
|
+
* @param options Any additional options that are needed in the timeline.
|
|
34
|
+
*/
|
|
35
|
+
setStateAtTime(state, time, options) {
|
|
36
|
+
assertRange(time, 0);
|
|
37
|
+
this.add(Object.assign({}, options, {
|
|
38
|
+
state,
|
|
39
|
+
time,
|
|
40
|
+
}));
|
|
41
|
+
return this;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Return the event before the time with the given state
|
|
45
|
+
* @param state The state to look for
|
|
46
|
+
* @param time When to check before
|
|
47
|
+
* @return The event with the given state before the time
|
|
48
|
+
*/
|
|
49
|
+
getLastState(state, time) {
|
|
50
|
+
// time = this.toSeconds(time);
|
|
51
|
+
const index = this._search(time);
|
|
52
|
+
for (let i = index; i >= 0; i--) {
|
|
53
|
+
const event = this._timeline[i];
|
|
54
|
+
if (event.state === state) {
|
|
55
|
+
return event;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Return the event after the time with the given state
|
|
61
|
+
* @param state The state to look for
|
|
62
|
+
* @param time When to check from
|
|
63
|
+
* @return The event with the given state after the time
|
|
64
|
+
*/
|
|
65
|
+
getNextState(state, time) {
|
|
66
|
+
// time = this.toSeconds(time);
|
|
67
|
+
const index = this._search(time);
|
|
68
|
+
if (index !== -1) {
|
|
69
|
+
for (let i = index; i < this._timeline.length; i++) {
|
|
70
|
+
const event = this._timeline[i];
|
|
71
|
+
if (event.state === state) {
|
|
72
|
+
return event;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=StateTimeline.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StateTimeline.js","sourceRoot":"","sources":["../../../../Tone/core/util/StateTimeline.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAiB,MAAM,YAAY,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAStC;;;GAGG;AACH,MAAM,OAAO,aAAiD,SAAQ,QAAgD;IASrH,YAAY,UAAyB,SAAS;QAC7C,KAAK,EAAE,CAAC;QARA,SAAI,GAAW,eAAe,CAAC;QASvC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACxB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IACvC,CAAC;IAED;;;;;OAKG;IACH,cAAc,CAAC,IAAa;QAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC7B,IAAI,KAAK,KAAK,IAAI,EAAE;YACnB,OAAO,KAAK,CAAC,KAAK,CAAC;SACnB;aAAM;YACN,OAAO,IAAI,CAAC,QAAQ,CAAC;SACrB;IACF,CAAC;IAED;;;;;OAKG;IACH,cAAc,CAAC,KAAoB,EAAE,IAAa,EAAE,OAA2B;QAC9E,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QACrB,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,EAAE;YACnC,KAAK;YACL,IAAI;SACJ,CAAC,CAAC,CAAC;QACJ,OAAO,IAAI,CAAC;IACb,CAAC;IAED;;;;;OAKG;IACH,YAAY,CAAC,KAAoB,EAAE,IAAY;QAC9C,+BAA+B;QAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACjC,KAAK,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;YAChC,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YAChC,IAAI,KAAK,CAAC,KAAK,KAAK,KAAK,EAAE;gBAC1B,OAAO,KAAK,CAAC;aACb;SACD;IACF,CAAC;IAED;;;;;OAKG;IACH,YAAY,CAAC,KAAoB,EAAE,IAAY;QAC9C,+BAA+B;QAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACjC,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;YACjB,KAAK,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACnD,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;gBAChC,IAAI,KAAK,CAAC,KAAK,KAAK,KAAK,EAAE;oBAC1B,OAAO,KAAK,CAAC;iBACb;aACD;SACD;IACF,CAAC;CACD"}
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
import { Tone } from "../Tone";
|
|
2
|
+
import { Seconds } from "../type/Units";
|
|
3
|
+
declare type TimelineSearchParam = "ticks" | "time";
|
|
4
|
+
/**
|
|
5
|
+
* The options object for Timeline
|
|
6
|
+
*/
|
|
7
|
+
interface TimelineOptions {
|
|
8
|
+
memory: number;
|
|
9
|
+
increasing: boolean;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* An event must have a time number
|
|
13
|
+
*/
|
|
14
|
+
export interface TimelineEvent {
|
|
15
|
+
time: number;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* A Timeline class for scheduling and maintaining state
|
|
19
|
+
* along a timeline. All events must have a "time" property.
|
|
20
|
+
* Internally, events are stored in time order for fast
|
|
21
|
+
* retrieval.
|
|
22
|
+
*/
|
|
23
|
+
export declare class Timeline<GenericEvent extends TimelineEvent> extends Tone {
|
|
24
|
+
readonly name: string;
|
|
25
|
+
/**
|
|
26
|
+
* The memory of the timeline, i.e.
|
|
27
|
+
* how many events in the past it will retain
|
|
28
|
+
*/
|
|
29
|
+
memory: number;
|
|
30
|
+
/**
|
|
31
|
+
* The array of scheduled timeline events
|
|
32
|
+
*/
|
|
33
|
+
protected _timeline: GenericEvent[];
|
|
34
|
+
/**
|
|
35
|
+
* If the time value must always be greater than or equal to the last
|
|
36
|
+
* element on the list.
|
|
37
|
+
*/
|
|
38
|
+
increasing: boolean;
|
|
39
|
+
/**
|
|
40
|
+
* @param memory The number of previous events that are retained.
|
|
41
|
+
*/
|
|
42
|
+
constructor(memory?: number);
|
|
43
|
+
constructor(options?: Partial<TimelineOptions>);
|
|
44
|
+
static getDefaults(): TimelineOptions;
|
|
45
|
+
/**
|
|
46
|
+
* The number of items in the timeline.
|
|
47
|
+
*/
|
|
48
|
+
get length(): number;
|
|
49
|
+
/**
|
|
50
|
+
* Insert an event object onto the timeline. Events must have a "time" attribute.
|
|
51
|
+
* @param event The event object to insert into the timeline.
|
|
52
|
+
*/
|
|
53
|
+
add(event: GenericEvent): this;
|
|
54
|
+
/**
|
|
55
|
+
* Remove an event from the timeline.
|
|
56
|
+
* @param {Object} event The event object to remove from the list.
|
|
57
|
+
* @returns {Timeline} this
|
|
58
|
+
*/
|
|
59
|
+
remove(event: GenericEvent): this;
|
|
60
|
+
/**
|
|
61
|
+
* Get the nearest event whose time is less than or equal to the given time.
|
|
62
|
+
* @param time The time to query.
|
|
63
|
+
*/
|
|
64
|
+
get(time: number, param?: TimelineSearchParam): GenericEvent | null;
|
|
65
|
+
/**
|
|
66
|
+
* Return the first event in the timeline without removing it
|
|
67
|
+
* @returns {Object} The first event object
|
|
68
|
+
*/
|
|
69
|
+
peek(): GenericEvent | undefined;
|
|
70
|
+
/**
|
|
71
|
+
* Return the first event in the timeline and remove it
|
|
72
|
+
*/
|
|
73
|
+
shift(): GenericEvent | undefined;
|
|
74
|
+
/**
|
|
75
|
+
* Get the event which is scheduled after the given time.
|
|
76
|
+
* @param time The time to query.
|
|
77
|
+
*/
|
|
78
|
+
getAfter(time: number, param?: TimelineSearchParam): GenericEvent | null;
|
|
79
|
+
/**
|
|
80
|
+
* Get the event before the event at the given time.
|
|
81
|
+
* @param time The time to query.
|
|
82
|
+
*/
|
|
83
|
+
getBefore(time: number): GenericEvent | null;
|
|
84
|
+
/**
|
|
85
|
+
* Cancel events at and after the given time
|
|
86
|
+
* @param after The time to query.
|
|
87
|
+
*/
|
|
88
|
+
cancel(after: number): this;
|
|
89
|
+
/**
|
|
90
|
+
* Cancel events before or equal to the given time.
|
|
91
|
+
* @param time The time to cancel before.
|
|
92
|
+
*/
|
|
93
|
+
cancelBefore(time: number): this;
|
|
94
|
+
/**
|
|
95
|
+
* Returns the previous event if there is one. null otherwise
|
|
96
|
+
* @param event The event to find the previous one of
|
|
97
|
+
* @return The event right before the given event
|
|
98
|
+
*/
|
|
99
|
+
previousEvent(event: GenericEvent): GenericEvent | null;
|
|
100
|
+
/**
|
|
101
|
+
* Does a binary search on the timeline array and returns the
|
|
102
|
+
* nearest event index whose time is after or equal to the given time.
|
|
103
|
+
* If a time is searched before the first index in the timeline, -1 is returned.
|
|
104
|
+
* If the time is after the end, the index of the last item is returned.
|
|
105
|
+
*/
|
|
106
|
+
protected _search(time: number, param?: TimelineSearchParam): number;
|
|
107
|
+
/**
|
|
108
|
+
* Internal iterator. Applies extra safety checks for
|
|
109
|
+
* removing items from the array.
|
|
110
|
+
*/
|
|
111
|
+
private _iterate;
|
|
112
|
+
/**
|
|
113
|
+
* Iterate over everything in the array
|
|
114
|
+
* @param callback The callback to invoke with every item
|
|
115
|
+
*/
|
|
116
|
+
forEach(callback: (event: GenericEvent) => void): this;
|
|
117
|
+
/**
|
|
118
|
+
* Iterate over everything in the array at or before the given time.
|
|
119
|
+
* @param time The time to check if items are before
|
|
120
|
+
* @param callback The callback to invoke with every item
|
|
121
|
+
*/
|
|
122
|
+
forEachBefore(time: Seconds, callback: (event: GenericEvent) => void): this;
|
|
123
|
+
/**
|
|
124
|
+
* Iterate over everything in the array after the given time.
|
|
125
|
+
* @param time The time to check if items are before
|
|
126
|
+
* @param callback The callback to invoke with every item
|
|
127
|
+
*/
|
|
128
|
+
forEachAfter(time: Seconds, callback: (event: GenericEvent) => void): this;
|
|
129
|
+
/**
|
|
130
|
+
* Iterate over everything in the array between the startTime and endTime.
|
|
131
|
+
* The timerange is inclusive of the startTime, but exclusive of the endTime.
|
|
132
|
+
* range = [startTime, endTime).
|
|
133
|
+
* @param startTime The time to check if items are before
|
|
134
|
+
* @param endTime The end of the test interval.
|
|
135
|
+
* @param callback The callback to invoke with every item
|
|
136
|
+
*/
|
|
137
|
+
forEachBetween(startTime: number, endTime: number, callback: (event: GenericEvent) => void): this;
|
|
138
|
+
/**
|
|
139
|
+
* Iterate over everything in the array at or after the given time. Similar to
|
|
140
|
+
* forEachAfter, but includes the item(s) at the given time.
|
|
141
|
+
* @param time The time to check if items are before
|
|
142
|
+
* @param callback The callback to invoke with every item
|
|
143
|
+
*/
|
|
144
|
+
forEachFrom(time: number, callback: (event: GenericEvent) => void): this;
|
|
145
|
+
/**
|
|
146
|
+
* Iterate over everything in the array at the given time
|
|
147
|
+
* @param time The time to check if items are before
|
|
148
|
+
* @param callback The callback to invoke with every item
|
|
149
|
+
*/
|
|
150
|
+
forEachAtTime(time: number, callback: (event: GenericEvent) => void): this;
|
|
151
|
+
/**
|
|
152
|
+
* Clean up.
|
|
153
|
+
*/
|
|
154
|
+
dispose(): this;
|
|
155
|
+
}
|
|
156
|
+
export {};
|
|
@@ -0,0 +1,351 @@
|
|
|
1
|
+
import { Tone } from "../Tone";
|
|
2
|
+
import { optionsFromArguments } from "./Defaults";
|
|
3
|
+
import { assert } from "./Debug";
|
|
4
|
+
import { EQ, GT, GTE, LT } from "./Math";
|
|
5
|
+
/**
|
|
6
|
+
* A Timeline class for scheduling and maintaining state
|
|
7
|
+
* along a timeline. All events must have a "time" property.
|
|
8
|
+
* Internally, events are stored in time order for fast
|
|
9
|
+
* retrieval.
|
|
10
|
+
*/
|
|
11
|
+
export class Timeline extends Tone {
|
|
12
|
+
constructor() {
|
|
13
|
+
super();
|
|
14
|
+
this.name = "Timeline";
|
|
15
|
+
/**
|
|
16
|
+
* The array of scheduled timeline events
|
|
17
|
+
*/
|
|
18
|
+
this._timeline = [];
|
|
19
|
+
const options = optionsFromArguments(Timeline.getDefaults(), arguments, ["memory"]);
|
|
20
|
+
this.memory = options.memory;
|
|
21
|
+
this.increasing = options.increasing;
|
|
22
|
+
}
|
|
23
|
+
static getDefaults() {
|
|
24
|
+
return {
|
|
25
|
+
memory: Infinity,
|
|
26
|
+
increasing: false,
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* The number of items in the timeline.
|
|
31
|
+
*/
|
|
32
|
+
get length() {
|
|
33
|
+
return this._timeline.length;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Insert an event object onto the timeline. Events must have a "time" attribute.
|
|
37
|
+
* @param event The event object to insert into the timeline.
|
|
38
|
+
*/
|
|
39
|
+
add(event) {
|
|
40
|
+
// the event needs to have a time attribute
|
|
41
|
+
assert(Reflect.has(event, "time"), "Timeline: events must have a time attribute");
|
|
42
|
+
event.time = event.time.valueOf();
|
|
43
|
+
if (this.increasing && this.length) {
|
|
44
|
+
const lastValue = this._timeline[this.length - 1];
|
|
45
|
+
assert(GTE(event.time, lastValue.time), "The time must be greater than or equal to the last scheduled time");
|
|
46
|
+
this._timeline.push(event);
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
const index = this._search(event.time);
|
|
50
|
+
this._timeline.splice(index + 1, 0, event);
|
|
51
|
+
}
|
|
52
|
+
// if the length is more than the memory, remove the previous ones
|
|
53
|
+
if (this.length > this.memory) {
|
|
54
|
+
const diff = this.length - this.memory;
|
|
55
|
+
this._timeline.splice(0, diff);
|
|
56
|
+
}
|
|
57
|
+
return this;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Remove an event from the timeline.
|
|
61
|
+
* @param {Object} event The event object to remove from the list.
|
|
62
|
+
* @returns {Timeline} this
|
|
63
|
+
*/
|
|
64
|
+
remove(event) {
|
|
65
|
+
const index = this._timeline.indexOf(event);
|
|
66
|
+
if (index !== -1) {
|
|
67
|
+
this._timeline.splice(index, 1);
|
|
68
|
+
}
|
|
69
|
+
return this;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Get the nearest event whose time is less than or equal to the given time.
|
|
73
|
+
* @param time The time to query.
|
|
74
|
+
*/
|
|
75
|
+
get(time, param = "time") {
|
|
76
|
+
const index = this._search(time, param);
|
|
77
|
+
if (index !== -1) {
|
|
78
|
+
return this._timeline[index];
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
return null;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Return the first event in the timeline without removing it
|
|
86
|
+
* @returns {Object} The first event object
|
|
87
|
+
*/
|
|
88
|
+
peek() {
|
|
89
|
+
return this._timeline[0];
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Return the first event in the timeline and remove it
|
|
93
|
+
*/
|
|
94
|
+
shift() {
|
|
95
|
+
return this._timeline.shift();
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Get the event which is scheduled after the given time.
|
|
99
|
+
* @param time The time to query.
|
|
100
|
+
*/
|
|
101
|
+
getAfter(time, param = "time") {
|
|
102
|
+
const index = this._search(time, param);
|
|
103
|
+
if (index + 1 < this._timeline.length) {
|
|
104
|
+
return this._timeline[index + 1];
|
|
105
|
+
}
|
|
106
|
+
else {
|
|
107
|
+
return null;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Get the event before the event at the given time.
|
|
112
|
+
* @param time The time to query.
|
|
113
|
+
*/
|
|
114
|
+
getBefore(time) {
|
|
115
|
+
const len = this._timeline.length;
|
|
116
|
+
// if it's after the last item, return the last item
|
|
117
|
+
if (len > 0 && this._timeline[len - 1].time < time) {
|
|
118
|
+
return this._timeline[len - 1];
|
|
119
|
+
}
|
|
120
|
+
const index = this._search(time);
|
|
121
|
+
if (index - 1 >= 0) {
|
|
122
|
+
return this._timeline[index - 1];
|
|
123
|
+
}
|
|
124
|
+
else {
|
|
125
|
+
return null;
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Cancel events at and after the given time
|
|
130
|
+
* @param after The time to query.
|
|
131
|
+
*/
|
|
132
|
+
cancel(after) {
|
|
133
|
+
if (this._timeline.length > 1) {
|
|
134
|
+
let index = this._search(after);
|
|
135
|
+
if (index >= 0) {
|
|
136
|
+
if (EQ(this._timeline[index].time, after)) {
|
|
137
|
+
// get the first item with that time
|
|
138
|
+
for (let i = index; i >= 0; i--) {
|
|
139
|
+
if (EQ(this._timeline[i].time, after)) {
|
|
140
|
+
index = i;
|
|
141
|
+
}
|
|
142
|
+
else {
|
|
143
|
+
break;
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
this._timeline = this._timeline.slice(0, index);
|
|
147
|
+
}
|
|
148
|
+
else {
|
|
149
|
+
this._timeline = this._timeline.slice(0, index + 1);
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
else {
|
|
153
|
+
this._timeline = [];
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
else if (this._timeline.length === 1) {
|
|
157
|
+
// the first item's time
|
|
158
|
+
if (GTE(this._timeline[0].time, after)) {
|
|
159
|
+
this._timeline = [];
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
return this;
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Cancel events before or equal to the given time.
|
|
166
|
+
* @param time The time to cancel before.
|
|
167
|
+
*/
|
|
168
|
+
cancelBefore(time) {
|
|
169
|
+
const index = this._search(time);
|
|
170
|
+
if (index >= 0) {
|
|
171
|
+
this._timeline = this._timeline.slice(index + 1);
|
|
172
|
+
}
|
|
173
|
+
return this;
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* Returns the previous event if there is one. null otherwise
|
|
177
|
+
* @param event The event to find the previous one of
|
|
178
|
+
* @return The event right before the given event
|
|
179
|
+
*/
|
|
180
|
+
previousEvent(event) {
|
|
181
|
+
const index = this._timeline.indexOf(event);
|
|
182
|
+
if (index > 0) {
|
|
183
|
+
return this._timeline[index - 1];
|
|
184
|
+
}
|
|
185
|
+
else {
|
|
186
|
+
return null;
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* Does a binary search on the timeline array and returns the
|
|
191
|
+
* nearest event index whose time is after or equal to the given time.
|
|
192
|
+
* If a time is searched before the first index in the timeline, -1 is returned.
|
|
193
|
+
* If the time is after the end, the index of the last item is returned.
|
|
194
|
+
*/
|
|
195
|
+
_search(time, param = "time") {
|
|
196
|
+
if (this._timeline.length === 0) {
|
|
197
|
+
return -1;
|
|
198
|
+
}
|
|
199
|
+
let beginning = 0;
|
|
200
|
+
const len = this._timeline.length;
|
|
201
|
+
let end = len;
|
|
202
|
+
if (len > 0 && this._timeline[len - 1][param] <= time) {
|
|
203
|
+
return len - 1;
|
|
204
|
+
}
|
|
205
|
+
while (beginning < end) {
|
|
206
|
+
// calculate the midpoint for roughly equal partition
|
|
207
|
+
let midPoint = Math.floor(beginning + (end - beginning) / 2);
|
|
208
|
+
const event = this._timeline[midPoint];
|
|
209
|
+
const nextEvent = this._timeline[midPoint + 1];
|
|
210
|
+
if (EQ(event[param], time)) {
|
|
211
|
+
// choose the last one that has the same time
|
|
212
|
+
for (let i = midPoint; i < this._timeline.length; i++) {
|
|
213
|
+
const testEvent = this._timeline[i];
|
|
214
|
+
if (EQ(testEvent[param], time)) {
|
|
215
|
+
midPoint = i;
|
|
216
|
+
}
|
|
217
|
+
else {
|
|
218
|
+
break;
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
return midPoint;
|
|
222
|
+
}
|
|
223
|
+
else if (LT(event[param], time) && GT(nextEvent[param], time)) {
|
|
224
|
+
return midPoint;
|
|
225
|
+
}
|
|
226
|
+
else if (GT(event[param], time)) {
|
|
227
|
+
// search lower
|
|
228
|
+
end = midPoint;
|
|
229
|
+
}
|
|
230
|
+
else {
|
|
231
|
+
// search upper
|
|
232
|
+
beginning = midPoint + 1;
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
return -1;
|
|
236
|
+
}
|
|
237
|
+
/**
|
|
238
|
+
* Internal iterator. Applies extra safety checks for
|
|
239
|
+
* removing items from the array.
|
|
240
|
+
*/
|
|
241
|
+
_iterate(callback, lowerBound = 0, upperBound = this._timeline.length - 1) {
|
|
242
|
+
this._timeline.slice(lowerBound, upperBound + 1).forEach(callback);
|
|
243
|
+
}
|
|
244
|
+
/**
|
|
245
|
+
* Iterate over everything in the array
|
|
246
|
+
* @param callback The callback to invoke with every item
|
|
247
|
+
*/
|
|
248
|
+
forEach(callback) {
|
|
249
|
+
this._iterate(callback);
|
|
250
|
+
return this;
|
|
251
|
+
}
|
|
252
|
+
/**
|
|
253
|
+
* Iterate over everything in the array at or before the given time.
|
|
254
|
+
* @param time The time to check if items are before
|
|
255
|
+
* @param callback The callback to invoke with every item
|
|
256
|
+
*/
|
|
257
|
+
forEachBefore(time, callback) {
|
|
258
|
+
// iterate over the items in reverse so that removing an item doesn't break things
|
|
259
|
+
const upperBound = this._search(time);
|
|
260
|
+
if (upperBound !== -1) {
|
|
261
|
+
this._iterate(callback, 0, upperBound);
|
|
262
|
+
}
|
|
263
|
+
return this;
|
|
264
|
+
}
|
|
265
|
+
/**
|
|
266
|
+
* Iterate over everything in the array after the given time.
|
|
267
|
+
* @param time The time to check if items are before
|
|
268
|
+
* @param callback The callback to invoke with every item
|
|
269
|
+
*/
|
|
270
|
+
forEachAfter(time, callback) {
|
|
271
|
+
// iterate over the items in reverse so that removing an item doesn't break things
|
|
272
|
+
const lowerBound = this._search(time);
|
|
273
|
+
this._iterate(callback, lowerBound + 1);
|
|
274
|
+
return this;
|
|
275
|
+
}
|
|
276
|
+
/**
|
|
277
|
+
* Iterate over everything in the array between the startTime and endTime.
|
|
278
|
+
* The timerange is inclusive of the startTime, but exclusive of the endTime.
|
|
279
|
+
* range = [startTime, endTime).
|
|
280
|
+
* @param startTime The time to check if items are before
|
|
281
|
+
* @param endTime The end of the test interval.
|
|
282
|
+
* @param callback The callback to invoke with every item
|
|
283
|
+
*/
|
|
284
|
+
forEachBetween(startTime, endTime, callback) {
|
|
285
|
+
let lowerBound = this._search(startTime);
|
|
286
|
+
let upperBound = this._search(endTime);
|
|
287
|
+
if (lowerBound !== -1 && upperBound !== -1) {
|
|
288
|
+
if (this._timeline[lowerBound].time !== startTime) {
|
|
289
|
+
lowerBound += 1;
|
|
290
|
+
}
|
|
291
|
+
// exclusive of the end time
|
|
292
|
+
if (this._timeline[upperBound].time === endTime) {
|
|
293
|
+
upperBound -= 1;
|
|
294
|
+
}
|
|
295
|
+
this._iterate(callback, lowerBound, upperBound);
|
|
296
|
+
}
|
|
297
|
+
else if (lowerBound === -1) {
|
|
298
|
+
this._iterate(callback, 0, upperBound);
|
|
299
|
+
}
|
|
300
|
+
return this;
|
|
301
|
+
}
|
|
302
|
+
/**
|
|
303
|
+
* Iterate over everything in the array at or after the given time. Similar to
|
|
304
|
+
* forEachAfter, but includes the item(s) at the given time.
|
|
305
|
+
* @param time The time to check if items are before
|
|
306
|
+
* @param callback The callback to invoke with every item
|
|
307
|
+
*/
|
|
308
|
+
forEachFrom(time, callback) {
|
|
309
|
+
// iterate over the items in reverse so that removing an item doesn't break things
|
|
310
|
+
let lowerBound = this._search(time);
|
|
311
|
+
// work backwards until the event time is less than time
|
|
312
|
+
while (lowerBound >= 0 && this._timeline[lowerBound].time >= time) {
|
|
313
|
+
lowerBound--;
|
|
314
|
+
}
|
|
315
|
+
this._iterate(callback, lowerBound + 1);
|
|
316
|
+
return this;
|
|
317
|
+
}
|
|
318
|
+
/**
|
|
319
|
+
* Iterate over everything in the array at the given time
|
|
320
|
+
* @param time The time to check if items are before
|
|
321
|
+
* @param callback The callback to invoke with every item
|
|
322
|
+
*/
|
|
323
|
+
forEachAtTime(time, callback) {
|
|
324
|
+
// iterate over the items in reverse so that removing an item doesn't break things
|
|
325
|
+
const upperBound = this._search(time);
|
|
326
|
+
if (upperBound !== -1 && EQ(this._timeline[upperBound].time, time)) {
|
|
327
|
+
let lowerBound = upperBound;
|
|
328
|
+
for (let i = upperBound; i >= 0; i--) {
|
|
329
|
+
if (EQ(this._timeline[i].time, time)) {
|
|
330
|
+
lowerBound = i;
|
|
331
|
+
}
|
|
332
|
+
else {
|
|
333
|
+
break;
|
|
334
|
+
}
|
|
335
|
+
}
|
|
336
|
+
this._iterate(event => {
|
|
337
|
+
callback(event);
|
|
338
|
+
}, lowerBound, upperBound);
|
|
339
|
+
}
|
|
340
|
+
return this;
|
|
341
|
+
}
|
|
342
|
+
/**
|
|
343
|
+
* Clean up.
|
|
344
|
+
*/
|
|
345
|
+
dispose() {
|
|
346
|
+
super.dispose();
|
|
347
|
+
this._timeline = [];
|
|
348
|
+
return this;
|
|
349
|
+
}
|
|
350
|
+
}
|
|
351
|
+
//# sourceMappingURL=Timeline.js.map
|