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.
Files changed (887) hide show
  1. package/CHANGELOG.md +313 -0
  2. package/LICENSE.md +21 -0
  3. package/README.md +255 -0
  4. package/Tone/classes.ts +7 -0
  5. package/Tone/component/analysis/Analyser.test.ts +78 -0
  6. package/Tone/component/analysis/Analyser.ts +168 -0
  7. package/Tone/component/analysis/DCMeter.test.ts +34 -0
  8. package/Tone/component/analysis/DCMeter.ts +38 -0
  9. package/Tone/component/analysis/FFT.test.ts +83 -0
  10. package/Tone/component/analysis/FFT.ts +92 -0
  11. package/Tone/component/analysis/Follower.test.ts +111 -0
  12. package/Tone/component/analysis/Follower.ts +85 -0
  13. package/Tone/component/analysis/Meter.test.ts +91 -0
  14. package/Tone/component/analysis/Meter.ts +123 -0
  15. package/Tone/component/analysis/MeterBase.ts +45 -0
  16. package/Tone/component/analysis/Waveform.test.ts +49 -0
  17. package/Tone/component/analysis/Waveform.ts +57 -0
  18. package/Tone/component/channel/Channel.test.ts +77 -0
  19. package/Tone/component/channel/Channel.ts +178 -0
  20. package/Tone/component/channel/CrossFade.test.ts +57 -0
  21. package/Tone/component/channel/CrossFade.ts +143 -0
  22. package/Tone/component/channel/Merge.test.ts +59 -0
  23. package/Tone/component/channel/Merge.ts +62 -0
  24. package/Tone/component/channel/MidSideMerge.test.ts +28 -0
  25. package/Tone/component/channel/MidSideMerge.ts +105 -0
  26. package/Tone/component/channel/MidSideSplit.test.ts +79 -0
  27. package/Tone/component/channel/MidSideSplit.ts +90 -0
  28. package/Tone/component/channel/Mono.test.ts +43 -0
  29. package/Tone/component/channel/Mono.ts +55 -0
  30. package/Tone/component/channel/MultibandSplit.test.ts +66 -0
  31. package/Tone/component/channel/MultibandSplit.ts +166 -0
  32. package/Tone/component/channel/PanVol.test.ts +58 -0
  33. package/Tone/component/channel/PanVol.ts +110 -0
  34. package/Tone/component/channel/Panner.test.ts +86 -0
  35. package/Tone/component/channel/Panner.ts +89 -0
  36. package/Tone/component/channel/Panner3D.test.ts +77 -0
  37. package/Tone/component/channel/Panner3D.ts +234 -0
  38. package/Tone/component/channel/Recorder.test.ts +119 -0
  39. package/Tone/component/channel/Recorder.ts +162 -0
  40. package/Tone/component/channel/Solo.test.ts +138 -0
  41. package/Tone/component/channel/Solo.ts +148 -0
  42. package/Tone/component/channel/Split.test.ts +62 -0
  43. package/Tone/component/channel/Split.ts +51 -0
  44. package/Tone/component/channel/Volume.test.ts +129 -0
  45. package/Tone/component/channel/Volume.ts +109 -0
  46. package/Tone/component/dynamics/Compressor.test.ts +85 -0
  47. package/Tone/component/dynamics/Compressor.ts +163 -0
  48. package/Tone/component/dynamics/Gate.test.ts +72 -0
  49. package/Tone/component/dynamics/Gate.ts +110 -0
  50. package/Tone/component/dynamics/Limiter.test.ts +43 -0
  51. package/Tone/component/dynamics/Limiter.ts +78 -0
  52. package/Tone/component/dynamics/MidSideCompressor.test.ts +59 -0
  53. package/Tone/component/dynamics/MidSideCompressor.ts +87 -0
  54. package/Tone/component/dynamics/MultibandCompressor.test.ts +54 -0
  55. package/Tone/component/dynamics/MultibandCompressor.ts +130 -0
  56. package/Tone/component/envelope/AmplitudeEnvelope.test.ts +92 -0
  57. package/Tone/component/envelope/AmplitudeEnvelope.ts +65 -0
  58. package/Tone/component/envelope/Envelope.test.ts +834 -0
  59. package/Tone/component/envelope/Envelope.ts +623 -0
  60. package/Tone/component/envelope/FrequencyEnvelope.test.ts +92 -0
  61. package/Tone/component/envelope/FrequencyEnvelope.ts +134 -0
  62. package/Tone/component/filter/BiquadFilter.test.ts +94 -0
  63. package/Tone/component/filter/BiquadFilter.ts +158 -0
  64. package/Tone/component/filter/Convolver.test.ts +106 -0
  65. package/Tone/component/filter/Convolver.ts +134 -0
  66. package/Tone/component/filter/EQ3.test.ts +60 -0
  67. package/Tone/component/filter/EQ3.ts +163 -0
  68. package/Tone/component/filter/FeedbackCombFilter.test.ts +80 -0
  69. package/Tone/component/filter/FeedbackCombFilter.ts +105 -0
  70. package/Tone/component/filter/FeedbackCombFilter.worklet.ts +39 -0
  71. package/Tone/component/filter/Filter.test.ts +114 -0
  72. package/Tone/component/filter/Filter.ts +202 -0
  73. package/Tone/component/filter/LowpassCombFilter.test.ts +75 -0
  74. package/Tone/component/filter/LowpassCombFilter.ts +100 -0
  75. package/Tone/component/filter/OnePoleFilter.test.ts +90 -0
  76. package/Tone/component/filter/OnePoleFilter.ts +146 -0
  77. package/Tone/component/filter/PhaseShiftAllpass.test.ts +71 -0
  78. package/Tone/component/filter/PhaseShiftAllpass.ts +81 -0
  79. package/Tone/component/index.ts +39 -0
  80. package/Tone/core/Global.ts +73 -0
  81. package/Tone/core/Tone.ts +107 -0
  82. package/Tone/core/clock/Clock.test.ts +663 -0
  83. package/Tone/core/clock/Clock.ts +317 -0
  84. package/Tone/core/clock/TickParam.test.ts +15 -0
  85. package/Tone/core/clock/TickParam.ts +271 -0
  86. package/Tone/core/clock/TickSignal.test.ts +455 -0
  87. package/Tone/core/clock/TickSignal.ts +94 -0
  88. package/Tone/core/clock/TickSource.test.ts +655 -0
  89. package/Tone/core/clock/TickSource.ts +338 -0
  90. package/Tone/core/clock/Ticker.test.ts +86 -0
  91. package/Tone/core/clock/Ticker.ts +149 -0
  92. package/Tone/core/clock/Transport.test.ts +972 -0
  93. package/Tone/core/clock/Transport.ts +731 -0
  94. package/Tone/core/clock/TransportEvent.test.ts +45 -0
  95. package/Tone/core/clock/TransportEvent.ts +105 -0
  96. package/Tone/core/clock/TransportRepeatEvent.test.ts +43 -0
  97. package/Tone/core/clock/TransportRepeatEvent.ts +150 -0
  98. package/Tone/core/context/AbstractParam.ts +260 -0
  99. package/Tone/core/context/AudioContext.ts +60 -0
  100. package/Tone/core/context/BaseContext.ts +162 -0
  101. package/Tone/core/context/Context.test.ts +358 -0
  102. package/Tone/core/context/Context.ts +628 -0
  103. package/Tone/core/context/ContextInitialization.ts +42 -0
  104. package/Tone/core/context/Delay.test.ts +105 -0
  105. package/Tone/core/context/Delay.ts +103 -0
  106. package/Tone/core/context/Destination.test.ts +76 -0
  107. package/Tone/core/context/Destination.ts +128 -0
  108. package/Tone/core/context/DummyContext.test.ts +47 -0
  109. package/Tone/core/context/DummyContext.ts +201 -0
  110. package/Tone/core/context/Gain.test.ts +75 -0
  111. package/Tone/core/context/Gain.ts +90 -0
  112. package/Tone/core/context/Listener.test.ts +22 -0
  113. package/Tone/core/context/Listener.ts +117 -0
  114. package/Tone/core/context/Offline.test.ts +79 -0
  115. package/Tone/core/context/Offline.ts +65 -0
  116. package/Tone/core/context/OfflineContext.test.ts +64 -0
  117. package/Tone/core/context/OfflineContext.ts +118 -0
  118. package/Tone/core/context/Param.test.ts +607 -0
  119. package/Tone/core/context/Param.ts +541 -0
  120. package/Tone/core/context/ToneAudioBuffer.test.ts +360 -0
  121. package/Tone/core/context/ToneAudioBuffer.ts +412 -0
  122. package/Tone/core/context/ToneAudioBuffers.test.ts +159 -0
  123. package/Tone/core/context/ToneAudioBuffers.ts +167 -0
  124. package/Tone/core/context/ToneAudioNode.test.ts +345 -0
  125. package/Tone/core/context/ToneAudioNode.ts +396 -0
  126. package/Tone/core/context/ToneWithContext.ts +205 -0
  127. package/Tone/core/index.ts +38 -0
  128. package/Tone/core/type/Conversions.test.ts +34 -0
  129. package/Tone/core/type/Conversions.ts +78 -0
  130. package/Tone/core/type/Frequency.test.ts +220 -0
  131. package/Tone/core/type/Frequency.ts +249 -0
  132. package/Tone/core/type/Midi.test.ts +137 -0
  133. package/Tone/core/type/Midi.ts +82 -0
  134. package/Tone/core/type/NoteUnits.ts +36 -0
  135. package/Tone/core/type/Ticks.test.ts +190 -0
  136. package/Tone/core/type/Ticks.ts +69 -0
  137. package/Tone/core/type/Time.test.ts +181 -0
  138. package/Tone/core/type/Time.ts +156 -0
  139. package/Tone/core/type/TimeBase.ts +324 -0
  140. package/Tone/core/type/TransportTime.test.ts +184 -0
  141. package/Tone/core/type/TransportTime.ts +34 -0
  142. package/Tone/core/type/Units.ts +204 -0
  143. package/Tone/core/util/AdvancedTypeCheck.ts +40 -0
  144. package/Tone/core/util/Debug.test.ts +74 -0
  145. package/Tone/core/util/Debug.ts +63 -0
  146. package/Tone/core/util/Decorator.ts +51 -0
  147. package/Tone/core/util/Defaults.ts +123 -0
  148. package/Tone/core/util/Draw.test.ts +72 -0
  149. package/Tone/core/util/Draw.ts +125 -0
  150. package/Tone/core/util/Emitter.test.ts +109 -0
  151. package/Tone/core/util/Emitter.ts +125 -0
  152. package/Tone/core/util/Interface.ts +45 -0
  153. package/Tone/core/util/IntervalTimeline.test.ts +465 -0
  154. package/Tone/core/util/IntervalTimeline.ts +569 -0
  155. package/Tone/core/util/Math.ts +40 -0
  156. package/Tone/core/util/StateTimeline.test.ts +103 -0
  157. package/Tone/core/util/StateTimeline.ts +96 -0
  158. package/Tone/core/util/Timeline.test.ts +606 -0
  159. package/Tone/core/util/Timeline.ts +399 -0
  160. package/Tone/core/util/TimelineValue.test.ts +29 -0
  161. package/Tone/core/util/TimelineValue.ts +56 -0
  162. package/Tone/core/util/TypeCheck.ts +65 -0
  163. package/Tone/core/util/global.d.ts +7 -0
  164. package/Tone/core/worklet/DelayLine.worklet.ts +49 -0
  165. package/Tone/core/worklet/SingleIOProcessor.worklet.ts +73 -0
  166. package/Tone/core/worklet/ToneAudioWorklet.ts +76 -0
  167. package/Tone/core/worklet/ToneAudioWorkletProcessor.worklet.ts +35 -0
  168. package/Tone/core/worklet/WorkletGlobalScope.ts +26 -0
  169. package/Tone/effect/AutoFilter.test.ts +113 -0
  170. package/Tone/effect/AutoFilter.ts +102 -0
  171. package/Tone/effect/AutoPanner.test.ts +90 -0
  172. package/Tone/effect/AutoPanner.ts +63 -0
  173. package/Tone/effect/AutoWah.test.ts +61 -0
  174. package/Tone/effect/AutoWah.ts +208 -0
  175. package/Tone/effect/BitCrusher.test.ts +42 -0
  176. package/Tone/effect/BitCrusher.ts +129 -0
  177. package/Tone/effect/BitCrusher.worklet.ts +27 -0
  178. package/Tone/effect/Chebyshev.test.ts +49 -0
  179. package/Tone/effect/Chebyshev.ts +123 -0
  180. package/Tone/effect/Chorus.test.ts +87 -0
  181. package/Tone/effect/Chorus.ts +225 -0
  182. package/Tone/effect/Distortion.test.ts +41 -0
  183. package/Tone/effect/Distortion.ts +98 -0
  184. package/Tone/effect/Effect.ts +88 -0
  185. package/Tone/effect/FeedbackDelay.test.ts +75 -0
  186. package/Tone/effect/FeedbackDelay.ts +73 -0
  187. package/Tone/effect/FeedbackEffect.ts +68 -0
  188. package/Tone/effect/Freeverb.test.ts +45 -0
  189. package/Tone/effect/Freeverb.ts +137 -0
  190. package/Tone/effect/FrequencyShifter.test.ts +55 -0
  191. package/Tone/effect/FrequencyShifter.ts +155 -0
  192. package/Tone/effect/JCReverb.test.ts +41 -0
  193. package/Tone/effect/JCReverb.ts +130 -0
  194. package/Tone/effect/LFOEffect.ts +115 -0
  195. package/Tone/effect/MidSideEffect.ts +93 -0
  196. package/Tone/effect/Phaser.test.ts +44 -0
  197. package/Tone/effect/Phaser.ts +187 -0
  198. package/Tone/effect/PingPongDelay.test.ts +41 -0
  199. package/Tone/effect/PingPongDelay.ts +105 -0
  200. package/Tone/effect/PitchShift.test.ts +66 -0
  201. package/Tone/effect/PitchShift.ts +218 -0
  202. package/Tone/effect/Reverb.test.ts +75 -0
  203. package/Tone/effect/Reverb.ts +145 -0
  204. package/Tone/effect/StereoEffect.ts +99 -0
  205. package/Tone/effect/StereoFeedbackEffect.ts +91 -0
  206. package/Tone/effect/StereoWidener.test.ts +41 -0
  207. package/Tone/effect/StereoWidener.ts +112 -0
  208. package/Tone/effect/StereoXFeedbackEffect.ts +37 -0
  209. package/Tone/effect/Tremolo.test.ts +88 -0
  210. package/Tone/effect/Tremolo.ts +191 -0
  211. package/Tone/effect/Vibrato.test.ts +52 -0
  212. package/Tone/effect/Vibrato.ts +104 -0
  213. package/Tone/effect/index.ts +18 -0
  214. package/Tone/event/Loop.test.ts +334 -0
  215. package/Tone/event/Loop.ts +210 -0
  216. package/Tone/event/Part.test.ts +848 -0
  217. package/Tone/event/Part.ts +473 -0
  218. package/Tone/event/Pattern.test.ts +137 -0
  219. package/Tone/event/Pattern.ts +121 -0
  220. package/Tone/event/PatternGenerator.test.ts +95 -0
  221. package/Tone/event/PatternGenerator.ts +176 -0
  222. package/Tone/event/Sequence.test.ts +453 -0
  223. package/Tone/event/Sequence.ts +300 -0
  224. package/Tone/event/ToneEvent.test.ts +485 -0
  225. package/Tone/event/ToneEvent.ts +392 -0
  226. package/Tone/event/index.ts +5 -0
  227. package/Tone/fromContext.test.ts +29 -0
  228. package/Tone/fromContext.ts +77 -0
  229. package/Tone/index.test.ts +54 -0
  230. package/Tone/index.ts +116 -0
  231. package/Tone/instrument/AMSynth.test.ts +79 -0
  232. package/Tone/instrument/AMSynth.ts +51 -0
  233. package/Tone/instrument/DuoSynth.test.ts +95 -0
  234. package/Tone/instrument/DuoSynth.ts +216 -0
  235. package/Tone/instrument/FMSynth.test.ts +72 -0
  236. package/Tone/instrument/FMSynth.ts +65 -0
  237. package/Tone/instrument/Instrument.ts +180 -0
  238. package/Tone/instrument/MembraneSynth.test.ts +74 -0
  239. package/Tone/instrument/MembraneSynth.ts +96 -0
  240. package/Tone/instrument/MetalSynth.test.ts +66 -0
  241. package/Tone/instrument/MetalSynth.ts +272 -0
  242. package/Tone/instrument/ModulationSynth.ts +217 -0
  243. package/Tone/instrument/MonoSynth.test.ts +88 -0
  244. package/Tone/instrument/MonoSynth.ts +177 -0
  245. package/Tone/instrument/Monophonic.ts +135 -0
  246. package/Tone/instrument/NoiseSynth.test.ts +82 -0
  247. package/Tone/instrument/NoiseSynth.ts +127 -0
  248. package/Tone/instrument/PluckSynth.test.ts +62 -0
  249. package/Tone/instrument/PluckSynth.ts +127 -0
  250. package/Tone/instrument/PolySynth.test.ts +298 -0
  251. package/Tone/instrument/PolySynth.ts +393 -0
  252. package/Tone/instrument/Sampler.test.ts +275 -0
  253. package/Tone/instrument/Sampler.ts +329 -0
  254. package/Tone/instrument/Synth.test.ts +132 -0
  255. package/Tone/instrument/Synth.ts +141 -0
  256. package/Tone/instrument/index.ts +11 -0
  257. package/Tone/signal/Abs.test.ts +42 -0
  258. package/Tone/signal/Abs.ts +53 -0
  259. package/Tone/signal/Add.test.ts +60 -0
  260. package/Tone/signal/Add.ts +63 -0
  261. package/Tone/signal/AudioToGain.test.ts +53 -0
  262. package/Tone/signal/AudioToGain.ts +40 -0
  263. package/Tone/signal/GainToAudio.test.ts +41 -0
  264. package/Tone/signal/GainToAudio.ts +40 -0
  265. package/Tone/signal/GreaterThan.test.ts +81 -0
  266. package/Tone/signal/GreaterThan.ts +88 -0
  267. package/Tone/signal/GreaterThanZero.test.ts +49 -0
  268. package/Tone/signal/GreaterThanZero.ts +67 -0
  269. package/Tone/signal/Multiply.test.ts +46 -0
  270. package/Tone/signal/Multiply.ts +85 -0
  271. package/Tone/signal/Negate.test.ts +30 -0
  272. package/Tone/signal/Negate.ts +41 -0
  273. package/Tone/signal/Pow.test.ts +40 -0
  274. package/Tone/signal/Pow.ts +84 -0
  275. package/Tone/signal/Scale.test.ts +58 -0
  276. package/Tone/signal/Scale.ts +119 -0
  277. package/Tone/signal/ScaleExp.test.ts +49 -0
  278. package/Tone/signal/ScaleExp.ts +69 -0
  279. package/Tone/signal/Signal.test.ts +519 -0
  280. package/Tone/signal/Signal.ts +226 -0
  281. package/Tone/signal/SignalOperator.ts +21 -0
  282. package/Tone/signal/Subtract.test.ts +60 -0
  283. package/Tone/signal/Subtract.ts +74 -0
  284. package/Tone/signal/SyncedSignal.test.ts +245 -0
  285. package/Tone/signal/SyncedSignal.ts +172 -0
  286. package/Tone/signal/ToneConstantSource.test.ts +202 -0
  287. package/Tone/signal/ToneConstantSource.ts +90 -0
  288. package/Tone/signal/WaveShaper.test.ts +95 -0
  289. package/Tone/signal/WaveShaper.ts +136 -0
  290. package/Tone/signal/Zero.test.ts +25 -0
  291. package/Tone/signal/Zero.ts +45 -0
  292. package/Tone/signal/index.ts +16 -0
  293. package/Tone/source/Noise.test.ts +121 -0
  294. package/Tone/source/Noise.ts +287 -0
  295. package/Tone/source/OneShotSource.ts +260 -0
  296. package/Tone/source/Source.test.ts +408 -0
  297. package/Tone/source/Source.ts +339 -0
  298. package/Tone/source/UserMedia.test.ts +177 -0
  299. package/Tone/source/UserMedia.ts +260 -0
  300. package/Tone/source/buffer/GrainPlayer.test.ts +235 -0
  301. package/Tone/source/buffer/GrainPlayer.ts +322 -0
  302. package/Tone/source/buffer/Player.test.ts +651 -0
  303. package/Tone/source/buffer/Player.ts +440 -0
  304. package/Tone/source/buffer/Players.test.ts +288 -0
  305. package/Tone/source/buffer/Players.ts +235 -0
  306. package/Tone/source/buffer/ToneBufferSource.test.ts +578 -0
  307. package/Tone/source/buffer/ToneBufferSource.ts +253 -0
  308. package/Tone/source/index.ts +15 -0
  309. package/Tone/source/oscillator/AMOscillator.test.ts +69 -0
  310. package/Tone/source/oscillator/AMOscillator.ts +222 -0
  311. package/Tone/source/oscillator/FMOscillator.test.ts +85 -0
  312. package/Tone/source/oscillator/FMOscillator.ts +236 -0
  313. package/Tone/source/oscillator/FatOscillator.test.ts +91 -0
  314. package/Tone/source/oscillator/FatOscillator.ts +255 -0
  315. package/Tone/source/oscillator/LFO.test.ts +234 -0
  316. package/Tone/source/oscillator/LFO.ts +332 -0
  317. package/Tone/source/oscillator/OmniOscillator.test.ts +303 -0
  318. package/Tone/source/oscillator/OmniOscillator.ts +428 -0
  319. package/Tone/source/oscillator/Oscillator.test.ts +278 -0
  320. package/Tone/source/oscillator/Oscillator.ts +448 -0
  321. package/Tone/source/oscillator/OscillatorInterface.ts +462 -0
  322. package/Tone/source/oscillator/PWMOscillator.test.ts +49 -0
  323. package/Tone/source/oscillator/PWMOscillator.ts +190 -0
  324. package/Tone/source/oscillator/PulseOscillator.test.ts +126 -0
  325. package/Tone/source/oscillator/PulseOscillator.ts +225 -0
  326. package/Tone/source/oscillator/ToneOscillatorNode.test.ts +241 -0
  327. package/Tone/source/oscillator/ToneOscillatorNode.ts +131 -0
  328. package/Tone/version.ts +1 -0
  329. package/build/Tone.js +22 -0
  330. package/build/Tone.js.map +1 -0
  331. package/build/esm/classes.d.ts +7 -0
  332. package/build/esm/classes.js +8 -0
  333. package/build/esm/classes.js.map +1 -0
  334. package/build/esm/component/analysis/Analyser.d.ts +77 -0
  335. package/build/esm/component/analysis/Analyser.js +121 -0
  336. package/build/esm/component/analysis/Analyser.js.map +1 -0
  337. package/build/esm/component/analysis/DCMeter.d.ts +23 -0
  338. package/build/esm/component/analysis/DCMeter.js +31 -0
  339. package/build/esm/component/analysis/DCMeter.js.map +1 -0
  340. package/build/esm/component/analysis/FFT.d.ts +50 -0
  341. package/build/esm/component/analysis/FFT.js +65 -0
  342. package/build/esm/component/analysis/FFT.js.map +1 -0
  343. package/build/esm/component/analysis/Follower.d.ts +44 -0
  344. package/build/esm/component/analysis/Follower.js +51 -0
  345. package/build/esm/component/analysis/Follower.js.map +1 -0
  346. package/build/esm/component/analysis/Meter.d.ts +62 -0
  347. package/build/esm/component/analysis/Meter.js +90 -0
  348. package/build/esm/component/analysis/Meter.js.map +1 -0
  349. package/build/esm/component/analysis/MeterBase.d.ts +23 -0
  350. package/build/esm/component/analysis/MeterBase.js +23 -0
  351. package/build/esm/component/analysis/MeterBase.js.map +1 -0
  352. package/build/esm/component/analysis/Waveform.d.ts +32 -0
  353. package/build/esm/component/analysis/Waveform.js +38 -0
  354. package/build/esm/component/analysis/Waveform.js.map +1 -0
  355. package/build/esm/component/channel/Channel.d.ts +91 -0
  356. package/build/esm/component/channel/Channel.js +124 -0
  357. package/build/esm/component/channel/Channel.js.map +1 -0
  358. package/build/esm/component/channel/CrossFade.d.ts +80 -0
  359. package/build/esm/component/channel/CrossFade.js +106 -0
  360. package/build/esm/component/channel/CrossFade.js.map +1 -0
  361. package/build/esm/component/channel/Merge.d.ts +39 -0
  362. package/build/esm/component/channel/Merge.js +32 -0
  363. package/build/esm/component/channel/Merge.js.map +1 -0
  364. package/build/esm/component/channel/MidSideMerge.d.ts +52 -0
  365. package/build/esm/component/channel/MidSideMerge.js +53 -0
  366. package/build/esm/component/channel/MidSideMerge.js.map +1 -0
  367. package/build/esm/component/channel/MidSideSplit.d.ts +42 -0
  368. package/build/esm/component/channel/MidSideSplit.js +51 -0
  369. package/build/esm/component/channel/MidSideSplit.js.map +1 -0
  370. package/build/esm/component/channel/Mono.d.ts +26 -0
  371. package/build/esm/component/channel/Mono.js +30 -0
  372. package/build/esm/component/channel/Mono.js.map +1 -0
  373. package/build/esm/component/channel/MultibandSplit.d.ts +80 -0
  374. package/build/esm/component/channel/MultibandSplit.js +121 -0
  375. package/build/esm/component/channel/MultibandSplit.js.map +1 -0
  376. package/build/esm/component/channel/PanVol.d.ts +53 -0
  377. package/build/esm/component/channel/PanVol.js +61 -0
  378. package/build/esm/component/channel/PanVol.js.map +1 -0
  379. package/build/esm/component/channel/Panner.d.ts +49 -0
  380. package/build/esm/component/channel/Panner.js +55 -0
  381. package/build/esm/component/channel/Panner.js.map +1 -0
  382. package/build/esm/component/channel/Panner3D.d.ts +98 -0
  383. package/build/esm/component/channel/Panner3D.js +177 -0
  384. package/build/esm/component/channel/Panner3D.js.map +1 -0
  385. package/build/esm/component/channel/Recorder.d.ts +77 -0
  386. package/build/esm/component/channel/Recorder.js +131 -0
  387. package/build/esm/component/channel/Recorder.js.map +1 -0
  388. package/build/esm/component/channel/Solo.d.ts +68 -0
  389. package/build/esm/component/channel/Solo.js +121 -0
  390. package/build/esm/component/channel/Solo.js.map +1 -0
  391. package/build/esm/component/channel/Split.d.ts +29 -0
  392. package/build/esm/component/channel/Split.js +30 -0
  393. package/build/esm/component/channel/Split.js.map +1 -0
  394. package/build/esm/component/channel/Volume.d.ts +60 -0
  395. package/build/esm/component/channel/Volume.js +66 -0
  396. package/build/esm/component/channel/Volume.js.map +1 -0
  397. package/build/esm/component/dynamics/Compressor.d.ts +73 -0
  398. package/build/esm/component/dynamics/Compressor.js +99 -0
  399. package/build/esm/component/dynamics/Compressor.js.map +1 -0
  400. package/build/esm/component/dynamics/Gate.d.ts +53 -0
  401. package/build/esm/component/dynamics/Gate.js +72 -0
  402. package/build/esm/component/dynamics/Gate.js.map +1 -0
  403. package/build/esm/component/dynamics/Limiter.d.ts +39 -0
  404. package/build/esm/component/dynamics/Limiter.js +51 -0
  405. package/build/esm/component/dynamics/Limiter.js.map +1 -0
  406. package/build/esm/component/dynamics/MidSideCompressor.d.ts +36 -0
  407. package/build/esm/component/dynamics/MidSideCompressor.js +52 -0
  408. package/build/esm/component/dynamics/MidSideCompressor.js.map +1 -0
  409. package/build/esm/component/dynamics/MultibandCompressor.d.ts +57 -0
  410. package/build/esm/component/dynamics/MultibandCompressor.js +79 -0
  411. package/build/esm/component/dynamics/MultibandCompressor.js.map +1 -0
  412. package/build/esm/component/envelope/AmplitudeEnvelope.d.ts +46 -0
  413. package/build/esm/component/envelope/AmplitudeEnvelope.js +49 -0
  414. package/build/esm/component/envelope/AmplitudeEnvelope.js.map +1 -0
  415. package/build/esm/component/envelope/Envelope.d.ts +302 -0
  416. package/build/esm/component/envelope/Envelope.js +470 -0
  417. package/build/esm/component/envelope/Envelope.js.map +1 -0
  418. package/build/esm/component/envelope/FrequencyEnvelope.d.ts +71 -0
  419. package/build/esm/component/envelope/FrequencyEnvelope.js +91 -0
  420. package/build/esm/component/envelope/FrequencyEnvelope.js.map +1 -0
  421. package/build/esm/component/filter/BiquadFilter.d.ts +64 -0
  422. package/build/esm/component/filter/BiquadFilter.js +101 -0
  423. package/build/esm/component/filter/BiquadFilter.js.map +1 -0
  424. package/build/esm/component/filter/Convolver.d.ts +59 -0
  425. package/build/esm/component/filter/Convolver.js +104 -0
  426. package/build/esm/component/filter/Convolver.js.map +1 -0
  427. package/build/esm/component/filter/EQ3.d.ts +77 -0
  428. package/build/esm/component/filter/EQ3.js +81 -0
  429. package/build/esm/component/filter/EQ3.js.map +1 -0
  430. package/build/esm/component/filter/FeedbackCombFilter.d.ts +45 -0
  431. package/build/esm/component/filter/FeedbackCombFilter.js +72 -0
  432. package/build/esm/component/filter/FeedbackCombFilter.js.map +1 -0
  433. package/build/esm/component/filter/FeedbackCombFilter.worklet.d.ts +3 -0
  434. package/build/esm/component/filter/FeedbackCombFilter.worklet.js +37 -0
  435. package/build/esm/component/filter/FeedbackCombFilter.worklet.js.map +1 -0
  436. package/build/esm/component/filter/Filter.d.ts +79 -0
  437. package/build/esm/component/filter/Filter.js +150 -0
  438. package/build/esm/component/filter/Filter.js.map +1 -0
  439. package/build/esm/component/filter/LowpassCombFilter.d.ts +50 -0
  440. package/build/esm/component/filter/LowpassCombFilter.js +53 -0
  441. package/build/esm/component/filter/LowpassCombFilter.js.map +1 -0
  442. package/build/esm/component/filter/OnePoleFilter.d.ts +64 -0
  443. package/build/esm/component/filter/OnePoleFilter.js +104 -0
  444. package/build/esm/component/filter/OnePoleFilter.js.map +1 -0
  445. package/build/esm/component/filter/PhaseShiftAllpass.d.ts +40 -0
  446. package/build/esm/component/filter/PhaseShiftAllpass.js +54 -0
  447. package/build/esm/component/filter/PhaseShiftAllpass.js.map +1 -0
  448. package/build/esm/component/index.d.ts +35 -0
  449. package/build/esm/component/index.js +36 -0
  450. package/build/esm/component/index.js.map +1 -0
  451. package/build/esm/core/Global.d.ts +26 -0
  452. package/build/esm/core/Global.js +69 -0
  453. package/build/esm/core/Global.js.map +1 -0
  454. package/build/esm/core/Tone.d.ts +60 -0
  455. package/build/esm/core/Tone.js +87 -0
  456. package/build/esm/core/Tone.js.map +1 -0
  457. package/build/esm/core/clock/Clock.d.ts +156 -0
  458. package/build/esm/core/clock/Clock.js +251 -0
  459. package/build/esm/core/clock/Clock.js.map +1 -0
  460. package/build/esm/core/clock/TickParam.d.ts +97 -0
  461. package/build/esm/core/clock/TickParam.js +237 -0
  462. package/build/esm/core/clock/TickParam.js.map +1 -0
  463. package/build/esm/core/clock/TickSignal.d.ts +43 -0
  464. package/build/esm/core/clock/TickSignal.js +64 -0
  465. package/build/esm/core/clock/TickSignal.js.map +1 -0
  466. package/build/esm/core/clock/TickSource.d.ts +115 -0
  467. package/build/esm/core/clock/TickSource.js +284 -0
  468. package/build/esm/core/clock/TickSource.js.map +1 -0
  469. package/build/esm/core/clock/Ticker.d.ts +59 -0
  470. package/build/esm/core/clock/Ticker.js +110 -0
  471. package/build/esm/core/clock/Ticker.js.map +1 -0
  472. package/build/esm/core/clock/Transport.d.ts +331 -0
  473. package/build/esm/core/clock/Transport.js +591 -0
  474. package/build/esm/core/clock/Transport.js.map +1 -0
  475. package/build/esm/core/clock/TransportEvent.d.ts +62 -0
  476. package/build/esm/core/clock/TransportEvent.js +66 -0
  477. package/build/esm/core/clock/TransportEvent.js.map +1 -0
  478. package/build/esm/core/clock/TransportRepeatEvent.d.ts +70 -0
  479. package/build/esm/core/clock/TransportRepeatEvent.js +110 -0
  480. package/build/esm/core/clock/TransportRepeatEvent.js.map +1 -0
  481. package/build/esm/core/context/AbstractParam.d.ts +239 -0
  482. package/build/esm/core/context/AbstractParam.js +6 -0
  483. package/build/esm/core/context/AbstractParam.js.map +1 -0
  484. package/build/esm/core/context/AudioContext.d.ts +36 -0
  485. package/build/esm/core/context/AudioContext.js +38 -0
  486. package/build/esm/core/context/AudioContext.js.map +1 -0
  487. package/build/esm/core/context/BaseContext.d.ts +56 -0
  488. package/build/esm/core/context/BaseContext.js +16 -0
  489. package/build/esm/core/context/BaseContext.js.map +1 -0
  490. package/build/esm/core/context/Context.d.ts +255 -0
  491. package/build/esm/core/context/Context.js +474 -0
  492. package/build/esm/core/context/Context.js.map +1 -0
  493. package/build/esm/core/context/ContextInitialization.d.ts +15 -0
  494. package/build/esm/core/context/ContextInitialization.js +35 -0
  495. package/build/esm/core/context/ContextInitialization.js.map +1 -0
  496. package/build/esm/core/context/Delay.d.ts +58 -0
  497. package/build/esm/core/context/Delay.js +58 -0
  498. package/build/esm/core/context/Delay.js.map +1 -0
  499. package/build/esm/core/context/Destination.d.ts +73 -0
  500. package/build/esm/core/context/Destination.js +105 -0
  501. package/build/esm/core/context/Destination.js.map +1 -0
  502. package/build/esm/core/context/DummyContext.d.ts +54 -0
  503. package/build/esm/core/context/DummyContext.js +138 -0
  504. package/build/esm/core/context/DummyContext.js.map +1 -0
  505. package/build/esm/core/context/Gain.d.ts +53 -0
  506. package/build/esm/core/context/Gain.js +58 -0
  507. package/build/esm/core/context/Gain.js.map +1 -0
  508. package/build/esm/core/context/Listener.d.ts +38 -0
  509. package/build/esm/core/context/Listener.js +87 -0
  510. package/build/esm/core/context/Listener.js.map +1 -0
  511. package/build/esm/core/context/Offline.d.ts +37 -0
  512. package/build/esm/core/context/Offline.js +56 -0
  513. package/build/esm/core/context/Offline.js.map +1 -0
  514. package/build/esm/core/context/OfflineContext.d.ts +58 -0
  515. package/build/esm/core/context/OfflineContext.js +87 -0
  516. package/build/esm/core/context/OfflineContext.js.map +1 -0
  517. package/build/esm/core/context/Param.d.ts +132 -0
  518. package/build/esm/core/context/Param.js +446 -0
  519. package/build/esm/core/context/Param.js.map +1 -0
  520. package/build/esm/core/context/ToneAudioBuffer.d.ts +162 -0
  521. package/build/esm/core/context/ToneAudioBuffer.js +364 -0
  522. package/build/esm/core/context/ToneAudioBuffer.js.map +1 -0
  523. package/build/esm/core/context/ToneAudioBuffers.d.ts +89 -0
  524. package/build/esm/core/context/ToneAudioBuffers.js +119 -0
  525. package/build/esm/core/context/ToneAudioBuffers.js.map +1 -0
  526. package/build/esm/core/context/ToneAudioNode.d.ts +173 -0
  527. package/build/esm/core/context/ToneAudioNode.js +342 -0
  528. package/build/esm/core/context/ToneAudioNode.js.map +1 -0
  529. package/build/esm/core/context/ToneWithContext.d.ts +108 -0
  530. package/build/esm/core/context/ToneWithContext.js +170 -0
  531. package/build/esm/core/context/ToneWithContext.js.map +1 -0
  532. package/build/esm/core/index.d.ts +28 -0
  533. package/build/esm/core/index.js +33 -0
  534. package/build/esm/core/index.js.map +1 -0
  535. package/build/esm/core/type/Conversions.d.ts +44 -0
  536. package/build/esm/core/type/Conversions.js +68 -0
  537. package/build/esm/core/type/Conversions.js.map +1 -0
  538. package/build/esm/core/type/Frequency.d.ts +101 -0
  539. package/build/esm/core/type/Frequency.js +225 -0
  540. package/build/esm/core/type/Frequency.js.map +1 -0
  541. package/build/esm/core/type/Midi.d.ts +53 -0
  542. package/build/esm/core/type/Midi.js +73 -0
  543. package/build/esm/core/type/Midi.js.map +1 -0
  544. package/build/esm/core/type/NoteUnits.d.ts +12 -0
  545. package/build/esm/core/type/NoteUnits.js +3 -0
  546. package/build/esm/core/type/NoteUnits.js.map +1 -0
  547. package/build/esm/core/type/Ticks.d.ts +44 -0
  548. package/build/esm/core/type/Ticks.js +61 -0
  549. package/build/esm/core/type/Ticks.js.map +1 -0
  550. package/build/esm/core/type/Time.d.ts +69 -0
  551. package/build/esm/core/type/Time.js +147 -0
  552. package/build/esm/core/type/Time.js.map +1 -0
  553. package/build/esm/core/type/TimeBase.d.ts +120 -0
  554. package/build/esm/core/type/TimeBase.js +251 -0
  555. package/build/esm/core/type/TimeBase.js.map +1 -0
  556. package/build/esm/core/type/TransportTime.d.ts +25 -0
  557. package/build/esm/core/type/TransportTime.js +32 -0
  558. package/build/esm/core/type/TransportTime.js.map +1 -0
  559. package/build/esm/core/type/Units.d.ts +176 -0
  560. package/build/esm/core/type/Units.js +2 -0
  561. package/build/esm/core/type/Units.js.map +1 -0
  562. package/build/esm/core/util/AdvancedTypeCheck.d.ts +21 -0
  563. package/build/esm/core/util/AdvancedTypeCheck.js +32 -0
  564. package/build/esm/core/util/AdvancedTypeCheck.js.map +1 -0
  565. package/build/esm/core/util/Debug.d.ts +34 -0
  566. package/build/esm/core/util/Debug.js +50 -0
  567. package/build/esm/core/util/Debug.js.map +1 -0
  568. package/build/esm/core/util/Decorator.d.ts +9 -0
  569. package/build/esm/core/util/Decorator.js +41 -0
  570. package/build/esm/core/util/Decorator.js.map +1 -0
  571. package/build/esm/core/util/Defaults.d.ts +32 -0
  572. package/build/esm/core/util/Defaults.js +99 -0
  573. package/build/esm/core/util/Defaults.js.map +1 -0
  574. package/build/esm/core/util/Draw.d.ts +67 -0
  575. package/build/esm/core/util/Draw.js +110 -0
  576. package/build/esm/core/util/Draw.js.map +1 -0
  577. package/build/esm/core/util/Emitter.d.ts +52 -0
  578. package/build/esm/core/util/Emitter.js +113 -0
  579. package/build/esm/core/util/Emitter.js.map +1 -0
  580. package/build/esm/core/util/Interface.d.ts +16 -0
  581. package/build/esm/core/util/Interface.js +32 -0
  582. package/build/esm/core/util/Interface.js.map +1 -0
  583. package/build/esm/core/util/IntervalTimeline.d.ts +106 -0
  584. package/build/esm/core/util/IntervalTimeline.js +539 -0
  585. package/build/esm/core/util/IntervalTimeline.js.map +1 -0
  586. package/build/esm/core/util/Math.d.ts +20 -0
  587. package/build/esm/core/util/Math.js +36 -0
  588. package/build/esm/core/util/Math.js.map +1 -0
  589. package/build/esm/core/util/StateTimeline.d.ts +47 -0
  590. package/build/esm/core/util/StateTimeline.js +78 -0
  591. package/build/esm/core/util/StateTimeline.js.map +1 -0
  592. package/build/esm/core/util/Timeline.d.ts +156 -0
  593. package/build/esm/core/util/Timeline.js +351 -0
  594. package/build/esm/core/util/Timeline.js.map +1 -0
  595. package/build/esm/core/util/TimelineValue.d.ts +28 -0
  596. package/build/esm/core/util/TimelineValue.js +41 -0
  597. package/build/esm/core/util/TimelineValue.js.map +1 -0
  598. package/build/esm/core/util/TypeCheck.d.ts +38 -0
  599. package/build/esm/core/util/TypeCheck.js +56 -0
  600. package/build/esm/core/util/TypeCheck.js.map +1 -0
  601. package/build/esm/core/worklet/DelayLine.worklet.d.ts +1 -0
  602. package/build/esm/core/worklet/DelayLine.worklet.js +48 -0
  603. package/build/esm/core/worklet/DelayLine.worklet.js.map +1 -0
  604. package/build/esm/core/worklet/SingleIOProcessor.worklet.d.ts +2 -0
  605. package/build/esm/core/worklet/SingleIOProcessor.worklet.js +72 -0
  606. package/build/esm/core/worklet/SingleIOProcessor.worklet.js.map +1 -0
  607. package/build/esm/core/worklet/ToneAudioWorklet.d.ts +35 -0
  608. package/build/esm/core/worklet/ToneAudioWorklet.js +40 -0
  609. package/build/esm/core/worklet/ToneAudioWorklet.js.map +1 -0
  610. package/build/esm/core/worklet/ToneAudioWorkletProcessor.worklet.d.ts +1 -0
  611. package/build/esm/core/worklet/ToneAudioWorkletProcessor.worklet.js +34 -0
  612. package/build/esm/core/worklet/ToneAudioWorkletProcessor.worklet.js.map +1 -0
  613. package/build/esm/core/worklet/WorkletGlobalScope.d.ts +12 -0
  614. package/build/esm/core/worklet/WorkletGlobalScope.js +24 -0
  615. package/build/esm/core/worklet/WorkletGlobalScope.js.map +1 -0
  616. package/build/esm/effect/AutoFilter.d.ts +51 -0
  617. package/build/esm/effect/AutoFilter.js +68 -0
  618. package/build/esm/effect/AutoFilter.js.map +1 -0
  619. package/build/esm/effect/AutoPanner.d.ts +31 -0
  620. package/build/esm/effect/AutoPanner.js +41 -0
  621. package/build/esm/effect/AutoPanner.js.map +1 -0
  622. package/build/esm/effect/AutoWah.d.ts +99 -0
  623. package/build/esm/effect/AutoWah.js +131 -0
  624. package/build/esm/effect/AutoWah.js.map +1 -0
  625. package/build/esm/effect/BitCrusher.d.ts +40 -0
  626. package/build/esm/effect/BitCrusher.js +85 -0
  627. package/build/esm/effect/BitCrusher.js.map +1 -0
  628. package/build/esm/effect/BitCrusher.worklet.d.ts +3 -0
  629. package/build/esm/effect/BitCrusher.worklet.js +25 -0
  630. package/build/esm/effect/BitCrusher.worklet.js.map +1 -0
  631. package/build/esm/effect/Chebyshev.d.ts +62 -0
  632. package/build/esm/effect/Chebyshev.js +95 -0
  633. package/build/esm/effect/Chebyshev.js.map +1 -0
  634. package/build/esm/effect/Chorus.d.ts +104 -0
  635. package/build/esm/effect/Chorus.js +157 -0
  636. package/build/esm/effect/Chorus.js.map +1 -0
  637. package/build/esm/effect/Distortion.d.ts +43 -0
  638. package/build/esm/effect/Distortion.js +69 -0
  639. package/build/esm/effect/Distortion.js.map +1 -0
  640. package/build/esm/effect/Effect.d.ts +49 -0
  641. package/build/esm/effect/Effect.js +70 -0
  642. package/build/esm/effect/Effect.js.map +1 -0
  643. package/build/esm/effect/FeedbackDelay.d.ts +37 -0
  644. package/build/esm/effect/FeedbackDelay.js +47 -0
  645. package/build/esm/effect/FeedbackDelay.js.map +1 -0
  646. package/build/esm/effect/FeedbackEffect.d.ts +34 -0
  647. package/build/esm/effect/FeedbackEffect.js +34 -0
  648. package/build/esm/effect/FeedbackEffect.js.map +1 -0
  649. package/build/esm/effect/Freeverb.d.ts +51 -0
  650. package/build/esm/effect/Freeverb.js +104 -0
  651. package/build/esm/effect/Freeverb.js.map +1 -0
  652. package/build/esm/effect/FrequencyShifter.d.ts +68 -0
  653. package/build/esm/effect/FrequencyShifter.js +88 -0
  654. package/build/esm/effect/FrequencyShifter.js.map +1 -0
  655. package/build/esm/effect/JCReverb.d.ts +46 -0
  656. package/build/esm/effect/JCReverb.js +97 -0
  657. package/build/esm/effect/JCReverb.js.map +1 -0
  658. package/build/esm/effect/LFOEffect.d.ts +58 -0
  659. package/build/esm/effect/LFOEffect.js +77 -0
  660. package/build/esm/effect/LFOEffect.js.map +1 -0
  661. package/build/esm/effect/MidSideEffect.d.ts +50 -0
  662. package/build/esm/effect/MidSideEffect.js +51 -0
  663. package/build/esm/effect/MidSideEffect.js.map +1 -0
  664. package/build/esm/effect/Phaser.d.ts +80 -0
  665. package/build/esm/effect/Phaser.js +119 -0
  666. package/build/esm/effect/Phaser.js.map +1 -0
  667. package/build/esm/effect/PingPongDelay.d.ts +48 -0
  668. package/build/esm/effect/PingPongDelay.js +66 -0
  669. package/build/esm/effect/PingPongDelay.js.map +1 -0
  670. package/build/esm/effect/PitchShift.d.ts +89 -0
  671. package/build/esm/effect/PitchShift.js +140 -0
  672. package/build/esm/effect/PitchShift.js.map +1 -0
  673. package/build/esm/effect/Reverb.d.ts +62 -0
  674. package/build/esm/effect/Reverb.js +111 -0
  675. package/build/esm/effect/Reverb.js.map +1 -0
  676. package/build/esm/effect/StereoEffect.d.ts +44 -0
  677. package/build/esm/effect/StereoEffect.js +61 -0
  678. package/build/esm/effect/StereoEffect.js.map +1 -0
  679. package/build/esm/effect/StereoFeedbackEffect.d.ts +39 -0
  680. package/build/esm/effect/StereoFeedbackEffect.js +49 -0
  681. package/build/esm/effect/StereoFeedbackEffect.js.map +1 -0
  682. package/build/esm/effect/StereoWidener.d.ts +50 -0
  683. package/build/esm/effect/StereoWidener.js +65 -0
  684. package/build/esm/effect/StereoWidener.js.map +1 -0
  685. package/build/esm/effect/StereoXFeedbackEffect.d.ts +21 -0
  686. package/build/esm/effect/StereoXFeedbackEffect.js +28 -0
  687. package/build/esm/effect/StereoXFeedbackEffect.js.map +1 -0
  688. package/build/esm/effect/Tremolo.d.ts +86 -0
  689. package/build/esm/effect/Tremolo.js +131 -0
  690. package/build/esm/effect/Tremolo.js.map +1 -0
  691. package/build/esm/effect/Vibrato.d.ts +48 -0
  692. package/build/esm/effect/Vibrato.js +61 -0
  693. package/build/esm/effect/Vibrato.js.map +1 -0
  694. package/build/esm/effect/index.d.ts +18 -0
  695. package/build/esm/effect/index.js +19 -0
  696. package/build/esm/effect/index.js.map +1 -0
  697. package/build/esm/event/Loop.d.ts +107 -0
  698. package/build/esm/event/Loop.js +164 -0
  699. package/build/esm/event/Loop.js.map +1 -0
  700. package/build/esm/event/Part.d.ts +193 -0
  701. package/build/esm/event/Part.js +401 -0
  702. package/build/esm/event/Part.js.map +1 -0
  703. package/build/esm/event/Pattern.d.ts +67 -0
  704. package/build/esm/event/Pattern.js +67 -0
  705. package/build/esm/event/Pattern.js.map +1 -0
  706. package/build/esm/event/PatternGenerator.d.ts +12 -0
  707. package/build/esm/event/PatternGenerator.js +165 -0
  708. package/build/esm/event/PatternGenerator.js.map +1 -0
  709. package/build/esm/event/Sequence.d.ts +127 -0
  710. package/build/esm/event/Sequence.js +247 -0
  711. package/build/esm/event/Sequence.js.map +1 -0
  712. package/build/esm/event/ToneEvent.d.ts +188 -0
  713. package/build/esm/event/ToneEvent.js +299 -0
  714. package/build/esm/event/ToneEvent.js.map +1 -0
  715. package/build/esm/event/index.d.ts +5 -0
  716. package/build/esm/event/index.js +6 -0
  717. package/build/esm/event/index.js.map +1 -0
  718. package/build/esm/fromContext.d.ts +26 -0
  719. package/build/esm/fromContext.js +41 -0
  720. package/build/esm/fromContext.js.map +1 -0
  721. package/build/esm/index.d.ts +86 -0
  722. package/build/esm/index.js +102 -0
  723. package/build/esm/index.js.map +1 -0
  724. package/build/esm/instrument/AMSynth.d.ts +25 -0
  725. package/build/esm/instrument/AMSynth.js +37 -0
  726. package/build/esm/instrument/AMSynth.js.map +1 -0
  727. package/build/esm/instrument/DuoSynth.d.ts +72 -0
  728. package/build/esm/instrument/DuoSynth.js +140 -0
  729. package/build/esm/instrument/DuoSynth.js.map +1 -0
  730. package/build/esm/instrument/FMSynth.d.ts +31 -0
  731. package/build/esm/instrument/FMSynth.js +45 -0
  732. package/build/esm/instrument/FMSynth.js.map +1 -0
  733. package/build/esm/instrument/Instrument.d.ts +100 -0
  734. package/build/esm/instrument/Instrument.js +127 -0
  735. package/build/esm/instrument/Instrument.js.map +1 -0
  736. package/build/esm/instrument/MembraneSynth.d.ts +47 -0
  737. package/build/esm/instrument/MembraneSynth.js +69 -0
  738. package/build/esm/instrument/MembraneSynth.js.map +1 -0
  739. package/build/esm/instrument/MetalSynth.d.ts +109 -0
  740. package/build/esm/instrument/MetalSynth.js +198 -0
  741. package/build/esm/instrument/MetalSynth.js.map +1 -0
  742. package/build/esm/instrument/ModulationSynth.d.ts +81 -0
  743. package/build/esm/instrument/ModulationSynth.js +122 -0
  744. package/build/esm/instrument/ModulationSynth.js.map +1 -0
  745. package/build/esm/instrument/MonoSynth.d.ts +76 -0
  746. package/build/esm/instrument/MonoSynth.js +113 -0
  747. package/build/esm/instrument/MonoSynth.js.map +1 -0
  748. package/build/esm/instrument/Monophonic.d.ts +82 -0
  749. package/build/esm/instrument/Monophonic.js +83 -0
  750. package/build/esm/instrument/Monophonic.js.map +1 -0
  751. package/build/esm/instrument/NoiseSynth.d.ts +51 -0
  752. package/build/esm/instrument/NoiseSynth.js +93 -0
  753. package/build/esm/instrument/NoiseSynth.js.map +1 -0
  754. package/build/esm/instrument/PluckSynth.d.ts +57 -0
  755. package/build/esm/instrument/PluckSynth.js +80 -0
  756. package/build/esm/instrument/PluckSynth.js.map +1 -0
  757. package/build/esm/instrument/PolySynth.d.ts +176 -0
  758. package/build/esm/instrument/PolySynth.js +302 -0
  759. package/build/esm/instrument/PolySynth.js.map +1 -0
  760. package/build/esm/instrument/Sampler.d.ts +126 -0
  761. package/build/esm/instrument/Sampler.js +259 -0
  762. package/build/esm/instrument/Sampler.js.map +1 -0
  763. package/build/esm/instrument/Synth.d.ts +65 -0
  764. package/build/esm/instrument/Synth.js +91 -0
  765. package/build/esm/instrument/Synth.js.map +1 -0
  766. package/build/esm/instrument/index.d.ts +11 -0
  767. package/build/esm/instrument/index.js +12 -0
  768. package/build/esm/instrument/index.js.map +1 -0
  769. package/build/esm/signal/Abs.d.ts +34 -0
  770. package/build/esm/signal/Abs.js +51 -0
  771. package/build/esm/signal/Abs.js.map +1 -0
  772. package/build/esm/signal/Add.d.ts +40 -0
  773. package/build/esm/signal/Add.js +49 -0
  774. package/build/esm/signal/Add.js.map +1 -0
  775. package/build/esm/signal/AudioToGain.d.ts +27 -0
  776. package/build/esm/signal/AudioToGain.js +37 -0
  777. package/build/esm/signal/AudioToGain.js.map +1 -0
  778. package/build/esm/signal/GainToAudio.d.ts +27 -0
  779. package/build/esm/signal/GainToAudio.js +37 -0
  780. package/build/esm/signal/GainToAudio.js.map +1 -0
  781. package/build/esm/signal/GreaterThan.d.ts +47 -0
  782. package/build/esm/signal/GreaterThan.js +46 -0
  783. package/build/esm/signal/GreaterThan.js.map +1 -0
  784. package/build/esm/signal/GreaterThanZero.d.ts +29 -0
  785. package/build/esm/signal/GreaterThanZero.js +45 -0
  786. package/build/esm/signal/GreaterThanZero.js.map +1 -0
  787. package/build/esm/signal/Multiply.d.ts +52 -0
  788. package/build/esm/signal/Multiply.js +51 -0
  789. package/build/esm/signal/Multiply.js.map +1 -0
  790. package/build/esm/signal/Negate.d.ts +29 -0
  791. package/build/esm/signal/Negate.js +39 -0
  792. package/build/esm/signal/Negate.js.map +1 -0
  793. package/build/esm/signal/Pow.d.ts +42 -0
  794. package/build/esm/signal/Pow.js +58 -0
  795. package/build/esm/signal/Pow.js.map +1 -0
  796. package/build/esm/signal/Scale.d.ts +62 -0
  797. package/build/esm/signal/Scale.js +73 -0
  798. package/build/esm/signal/Scale.js.map +1 -0
  799. package/build/esm/signal/ScaleExp.d.ts +37 -0
  800. package/build/esm/signal/ScaleExp.js +46 -0
  801. package/build/esm/signal/ScaleExp.js.map +1 -0
  802. package/build/esm/signal/Signal.d.ts +92 -0
  803. package/build/esm/signal/Signal.js +183 -0
  804. package/build/esm/signal/Signal.js.map +1 -0
  805. package/build/esm/signal/SignalOperator.d.ts +9 -0
  806. package/build/esm/signal/SignalOperator.js +16 -0
  807. package/build/esm/signal/SignalOperator.js.map +1 -0
  808. package/build/esm/signal/Subtract.d.ts +48 -0
  809. package/build/esm/signal/Subtract.js +58 -0
  810. package/build/esm/signal/Subtract.js.map +1 -0
  811. package/build/esm/signal/SyncedSignal.d.ts +53 -0
  812. package/build/esm/signal/SyncedSignal.js +124 -0
  813. package/build/esm/signal/SyncedSignal.js.map +1 -0
  814. package/build/esm/signal/ToneConstantSource.d.ts +39 -0
  815. package/build/esm/signal/ToneConstantSource.js +61 -0
  816. package/build/esm/signal/ToneConstantSource.js.map +1 -0
  817. package/build/esm/signal/WaveShaper.d.ts +81 -0
  818. package/build/esm/signal/WaveShaper.js +99 -0
  819. package/build/esm/signal/WaveShaper.js.map +1 -0
  820. package/build/esm/signal/Zero.d.ts +29 -0
  821. package/build/esm/signal/Zero.js +38 -0
  822. package/build/esm/signal/Zero.js.map +1 -0
  823. package/build/esm/signal/index.d.ts +16 -0
  824. package/build/esm/signal/index.js +17 -0
  825. package/build/esm/signal/index.js.map +1 -0
  826. package/build/esm/source/Noise.d.ts +96 -0
  827. package/build/esm/source/Noise.js +225 -0
  828. package/build/esm/source/Noise.js.map +1 -0
  829. package/build/esm/source/OneShotSource.d.ts +102 -0
  830. package/build/esm/source/OneShotSource.js +183 -0
  831. package/build/esm/source/OneShotSource.js.map +1 -0
  832. package/build/esm/source/Source.d.ts +155 -0
  833. package/build/esm/source/Source.js +281 -0
  834. package/build/esm/source/Source.js.map +1 -0
  835. package/build/esm/source/UserMedia.d.ts +123 -0
  836. package/build/esm/source/UserMedia.js +214 -0
  837. package/build/esm/source/UserMedia.js.map +1 -0
  838. package/build/esm/source/buffer/GrainPlayer.d.ts +135 -0
  839. package/build/esm/source/buffer/GrainPlayer.js +235 -0
  840. package/build/esm/source/buffer/GrainPlayer.js.map +1 -0
  841. package/build/esm/source/buffer/Player.d.ts +190 -0
  842. package/build/esm/source/buffer/Player.js +352 -0
  843. package/build/esm/source/buffer/Player.js.map +1 -0
  844. package/build/esm/source/buffer/Players.d.ts +121 -0
  845. package/build/esm/source/buffer/Players.js +162 -0
  846. package/build/esm/source/buffer/Players.js.map +1 -0
  847. package/build/esm/source/buffer/ToneBufferSource.d.ts +97 -0
  848. package/build/esm/source/buffer/ToneBufferSource.js +196 -0
  849. package/build/esm/source/buffer/ToneBufferSource.js.map +1 -0
  850. package/build/esm/source/index.d.ts +15 -0
  851. package/build/esm/source/index.js +16 -0
  852. package/build/esm/source/index.js.map +1 -0
  853. package/build/esm/source/oscillator/AMOscillator.d.ts +101 -0
  854. package/build/esm/source/oscillator/AMOscillator.js +157 -0
  855. package/build/esm/source/oscillator/AMOscillator.js.map +1 -0
  856. package/build/esm/source/oscillator/FMOscillator.d.ts +101 -0
  857. package/build/esm/source/oscillator/FMOscillator.js +172 -0
  858. package/build/esm/source/oscillator/FMOscillator.js.map +1 -0
  859. package/build/esm/source/oscillator/FatOscillator.d.ts +99 -0
  860. package/build/esm/source/oscillator/FatOscillator.js +195 -0
  861. package/build/esm/source/oscillator/FatOscillator.js.map +1 -0
  862. package/build/esm/source/oscillator/LFO.d.ts +167 -0
  863. package/build/esm/source/oscillator/LFO.js +233 -0
  864. package/build/esm/source/oscillator/LFO.js.map +1 -0
  865. package/build/esm/source/oscillator/OmniOscillator.d.ts +162 -0
  866. package/build/esm/source/oscillator/OmniOscillator.js +348 -0
  867. package/build/esm/source/oscillator/OmniOscillator.js.map +1 -0
  868. package/build/esm/source/oscillator/Oscillator.d.ts +125 -0
  869. package/build/esm/source/oscillator/Oscillator.js +379 -0
  870. package/build/esm/source/oscillator/Oscillator.js.map +1 -0
  871. package/build/esm/source/oscillator/OscillatorInterface.d.ts +298 -0
  872. package/build/esm/source/oscillator/OscillatorInterface.js +22 -0
  873. package/build/esm/source/oscillator/OscillatorInterface.js.map +1 -0
  874. package/build/esm/source/oscillator/PWMOscillator.d.ts +94 -0
  875. package/build/esm/source/oscillator/PWMOscillator.js +136 -0
  876. package/build/esm/source/oscillator/PWMOscillator.js.map +1 -0
  877. package/build/esm/source/oscillator/PulseOscillator.d.ts +119 -0
  878. package/build/esm/source/oscillator/PulseOscillator.js +175 -0
  879. package/build/esm/source/oscillator/PulseOscillator.js.map +1 -0
  880. package/build/esm/source/oscillator/ToneOscillatorNode.d.ts +57 -0
  881. package/build/esm/source/oscillator/ToneOscillatorNode.js +90 -0
  882. package/build/esm/source/oscillator/ToneOscillatorNode.js.map +1 -0
  883. package/build/esm/version.d.ts +1 -0
  884. package/build/esm/version.js +2 -0
  885. package/build/esm/version.js.map +1 -0
  886. package/docs/tone.json +1 -0
  887. package/package.json +116 -0
@@ -0,0 +1,204 @@
1
+ export * from "./NoteUnits";
2
+
3
+ import { Note } from "./NoteUnits";
4
+
5
+ /**
6
+ * A number representing a time in seconds
7
+ * @category Unit
8
+ */
9
+ export type Seconds = number;
10
+
11
+ /**
12
+ * A number used to measure the intensity of a sound on a logarithmic scale.
13
+ * @category Unit
14
+ */
15
+ export type Decibels = number;
16
+
17
+ /**
18
+ * A number that is between [0, 1]
19
+ * @category Unit
20
+ */
21
+ export type NormalRange = number;
22
+
23
+ /**
24
+ * A number that is between [-1, 1]
25
+ * @category Unit
26
+ */
27
+ export type AudioRange = number;
28
+
29
+ /**
30
+ * Half-step note increments, i.e. 12 is an octave above the root. and 1 is a half-step up.
31
+ * @category Unit
32
+ */
33
+ export type Interval = number;
34
+
35
+ /**
36
+ * A number representing the multiplication factor applied to a signal
37
+ * @category Unit
38
+ */
39
+ export type GainFactor = number;
40
+
41
+ /**
42
+ * A number greater than or equal to 0.
43
+ * @category Unit
44
+ */
45
+ export type Positive = number;
46
+
47
+ /**
48
+ * Represents a subdivision of a measure.
49
+ * The number represents the subdivision. "t" represents a triplet. A "." add a half.
50
+ * e.g. "4n" is a quarter note, "4t" is a quarter note triplet, and "4n." is a dotted quarter note.
51
+ * @category Unit
52
+ */
53
+ export type Subdivision = "1m" | "1n" | "1n." | "2n" | "2n." | "2t" | "4n" | "4n." | "4t" | "8n" | "8n." | "8t" |
54
+ "16n" | "16n." | "16t" | "32n" | "32n." | "32t" | "64n" | "64n." | "64t" | "128n" | "128n." | "128t" |
55
+ "256n" | "256n." | "256t" | "0";
56
+
57
+ /**
58
+ * A time object has a subdivision as the keys and a number as the values.
59
+ * @example
60
+ * Tone.Time({
61
+ * "2n": 1,
62
+ * "8n": 3
63
+ * }).valueOf(); // 2n + 8n * 3
64
+ * @category Unit
65
+ */
66
+ export type TimeObject = {
67
+ [sub in Subdivision]?: number;
68
+ };
69
+
70
+ /**
71
+ * Time can be described in a number of ways. Read more [Time](https://github.com/Tonejs/Tone.js/wiki/Time).
72
+ * * Numbers, which will be taken literally as the time (in seconds).
73
+ * * Notation, ("4n", "8t") describes time in BPM and time signature relative values.
74
+ * * TransportTime, ("4:3:2") will also provide tempo and time signature relative times in the form BARS:QUARTERS:SIXTEENTHS.
75
+ * * Frequency, ("8hz") is converted to the length of the cycle in seconds.
76
+ * * Now-Relative, ("+1") prefix any of the above with "+" and it will be interpreted as "the current time plus whatever expression follows".
77
+ * * Object, ({"4n" : 3, "8t" : -1}). The resulting time is equal to the sum of all of the keys multiplied by the values in the object.
78
+ * * No Argument, for methods which accept time, no argument will be interpreted as "now" (i.e. the currentTime).
79
+ * @category Unit
80
+ */
81
+ export type Time = string | Seconds | TimeObject | Subdivision;
82
+
83
+ /**
84
+ * Frequency can be described similar to time, except ultimately the
85
+ * values are converted to frequency instead of seconds. A number
86
+ * is taken literally as the value in hertz. Additionally any of the
87
+ * Time encodings can be used. Note names in the form
88
+ * of NOTE OCTAVE (i.e. C4) are also accepted and converted to their
89
+ * frequency value.
90
+ * @category Unit
91
+ */
92
+ export type Frequency = Subdivision | Note | string | Hertz;
93
+
94
+ /**
95
+ *
96
+ * @category Unit
97
+ */
98
+ export type TimeSignature = number | number[];
99
+
100
+ /**
101
+ * TransportTime describes a position along the Transport's timeline. It is
102
+ * similar to Time in that it uses all the same encodings, but TransportTime specifically
103
+ * pertains to the Transport's timeline, which is startable, stoppable, loopable, and seekable.
104
+ * [Read more](https://github.com/Tonejs/Tone.js/wiki/TransportTime)
105
+ * @category Unit
106
+ */
107
+ export type TransportTime = Time;
108
+
109
+ /**
110
+ * Ticks are the basic subunit of the Transport. They are
111
+ * the smallest unit of time that the Transport supports.
112
+ * @category Unit
113
+ */
114
+ export type Ticks = number;
115
+
116
+ /**
117
+ * Beats per minute
118
+ * @category Unit
119
+ */
120
+ export type BPM = number;
121
+
122
+ /**
123
+ * Angle between 0 and 360.
124
+ * @category Unit
125
+ */
126
+ export type Degrees = number;
127
+
128
+ /**
129
+ * Angle between 0 and 2 * PI.
130
+ * @category Unit
131
+ */
132
+ export type Radians = number;
133
+
134
+ /**
135
+ * A colon-separated representation of time in the form of
136
+ * Bars:Beats:Sixteenths.
137
+ * @category Unit
138
+ */
139
+ export type BarsBeatsSixteenths = string;
140
+ /**
141
+ * Sampling is the reduction of a continuous signal to a discrete signal.
142
+ * Audio is typically sampled 44100 times per second.
143
+ * @category Unit
144
+ */
145
+ export type Samples = number;
146
+
147
+ /**
148
+ * Hertz are a frequency representation defined as one cycle per second.
149
+ * @category Unit
150
+ */
151
+ export type Hertz = number;
152
+
153
+ /**
154
+ * A Cent is 1/100th of a semitone.
155
+ * e.g. a value of 50 cents would be halfway between two intervals.
156
+ * @category Unit
157
+ */
158
+ export type Cents = number;
159
+
160
+ /**
161
+ * One millisecond is a thousandth of a second.
162
+ * @category Unit
163
+ */
164
+ export type Milliseconds = number;
165
+
166
+ /**
167
+ * A value which is a power of 2
168
+ * @category Unit
169
+ */
170
+ export type PowerOfTwo = number;
171
+
172
+ /**
173
+ * Map the unit name to a unit value
174
+ */
175
+ export interface UnitMap {
176
+ number: number;
177
+ decibels: Decibels;
178
+ normalRange: NormalRange;
179
+ audioRange: AudioRange;
180
+ gain: GainFactor;
181
+ positive: Positive;
182
+ time: Time;
183
+ frequency: Frequency;
184
+ transportTime: TransportTime;
185
+ ticks: Ticks;
186
+ bpm: BPM;
187
+ degrees: Degrees;
188
+ radians: Radians;
189
+ samples: Samples;
190
+ hertz: Hertz;
191
+ cents: Cents;
192
+ }
193
+
194
+ /**
195
+ * All of the unit types
196
+ * @category Unit
197
+ */
198
+ export type Unit = UnitMap[keyof UnitMap];
199
+
200
+ /**
201
+ * All of the unit names
202
+ * @category Unit
203
+ */
204
+ export type UnitName = keyof UnitMap;
@@ -0,0 +1,40 @@
1
+ import {
2
+ AudioBuffer, isAnyAudioContext,
3
+ isAnyAudioNode, isAnyAudioParam,
4
+ isAnyOfflineAudioContext
5
+ } from "standardized-audio-context";
6
+
7
+ /**
8
+ * Test if the given value is an instanceof AudioParam
9
+ */
10
+ export function isAudioParam(arg: any): arg is AudioParam {
11
+ return isAnyAudioParam(arg);
12
+ }
13
+
14
+ /**
15
+ * Test if the given value is an instanceof AudioNode
16
+ */
17
+ export function isAudioNode(arg: any): arg is AudioNode {
18
+ return isAnyAudioNode(arg);
19
+ }
20
+
21
+ /**
22
+ * Test if the arg is instanceof an OfflineAudioContext
23
+ */
24
+ export function isOfflineAudioContext(arg: any): arg is OfflineAudioContext {
25
+ return isAnyOfflineAudioContext(arg);
26
+ }
27
+
28
+ /**
29
+ * Test if the arg is an instanceof AudioContext
30
+ */
31
+ export function isAudioContext(arg: any): arg is AudioContext {
32
+ return isAnyAudioContext(arg);
33
+ }
34
+
35
+ /**
36
+ * Test if the arg is instanceof an AudioBuffer
37
+ */
38
+ export function isAudioBuffer(arg: any): arg is AudioBuffer {
39
+ return arg instanceof AudioBuffer;
40
+ }
@@ -0,0 +1,74 @@
1
+ import { expect } from "chai";
2
+ import { ToneOscillatorNode } from "../../source/oscillator/ToneOscillatorNode";
3
+ import { assertRange, setLogger } from "./Debug";
4
+ import { theWindow } from "../context/AudioContext";
5
+ import { Oscillator } from "Tone/source";
6
+ import { Context } from "../context/Context";
7
+
8
+ describe("Debug", () => {
9
+
10
+ it("can log a class when that class is set to 'debug'", () => {
11
+ const osc = new ToneOscillatorNode();
12
+ osc.debug = true;
13
+ let loggerInvoked = false;
14
+ let warnInvoked = false;
15
+ setLogger({
16
+ log: () => loggerInvoked = true,
17
+ warn: () => warnInvoked = true
18
+ });
19
+ osc.start();
20
+ expect(loggerInvoked).to.be.true;
21
+ expect(warnInvoked).to.be.false;
22
+ osc.dispose();
23
+ setLogger(console);
24
+ });
25
+
26
+ it("can log a class when the window is set with that class name", () => {
27
+ // @ts-ignore
28
+ theWindow.TONE_DEBUG_CLASS = "ToneOscillatorNode";
29
+ const osc = new ToneOscillatorNode();
30
+ let loggerInvoked = false;
31
+ let warnInvoked = false;
32
+ setLogger({
33
+ log: () => loggerInvoked = true,
34
+ warn: () => warnInvoked = true
35
+ });
36
+ osc.start();
37
+ expect(loggerInvoked).to.be.true;
38
+ expect(warnInvoked).to.be.false;
39
+ setLogger(console);
40
+ // @ts-ignore
41
+ theWindow.TONE_DEBUG_CLASS = undefined;
42
+ osc.dispose();
43
+ });
44
+
45
+ it("can assert a range", () => {
46
+ expect(() => {
47
+ assertRange(-1, 0, 1);
48
+ }).to.throw(RangeError);
49
+
50
+ expect(() => {
51
+ assertRange(2, 0, 1);
52
+ }).to.throw(RangeError);
53
+
54
+ expect(() => {
55
+ assertRange(0, 0);
56
+ }).to.not.throw(RangeError);
57
+ });
58
+
59
+ it("warns if console is not running", async () => {
60
+ const context = new Context();
61
+ await context.rawContext.suspend(0);
62
+ const osc = new Oscillator({ context });
63
+ let warnInvoked = false;
64
+ setLogger({
65
+ log: () => {},
66
+ warn: () => warnInvoked = true
67
+ });
68
+ osc.start();
69
+ expect(warnInvoked).to.be.true;
70
+ osc.dispose();
71
+ setLogger(console);
72
+ await context.close();
73
+ });
74
+ });
@@ -0,0 +1,63 @@
1
+ /**
2
+ * Assert that the statement is true, otherwise invoke the error.
3
+ * @param statement
4
+ * @param error The message which is passed into an Error
5
+ */
6
+ export function assert(statement: boolean, error: string): void {
7
+ if (!statement) {
8
+ throw new Error(error);
9
+ }
10
+ }
11
+
12
+ /**
13
+ * Make sure that the given value is within the range
14
+ */
15
+ export function assertRange(value: number, gte: number, lte = Infinity): void {
16
+ if (!(gte <= value && value <= lte)) {
17
+ throw new RangeError(`Value must be within [${gte}, ${lte}], got: ${value}`);
18
+ }
19
+ }
20
+
21
+ /**
22
+ * Make sure that the given value is within the range
23
+ */
24
+ export function assertContextRunning(context: import("../context/BaseContext").BaseContext): void {
25
+ // add a warning if the context is not started
26
+ if (!context.isOffline && context.state !== "running") {
27
+ warn("The AudioContext is \"suspended\". Invoke Tone.start() from a user action to start the audio.");
28
+ }
29
+ }
30
+
31
+ /**
32
+ * A basic logging interface
33
+ */
34
+ interface Logger {
35
+ log: (args?: any[]) => void;
36
+ warn: (args?: any[]) => void;
37
+ }
38
+
39
+ /**
40
+ * The default logger is the console
41
+ */
42
+ let defaultLogger: Logger = console;
43
+
44
+ /**
45
+ * Set the logging interface
46
+ */
47
+ export function setLogger(logger: Logger): void {
48
+ defaultLogger = logger;
49
+ }
50
+
51
+ /**
52
+ * Log anything
53
+ */
54
+ export function log(...args: any[]): void {
55
+ defaultLogger.log(...args);
56
+ }
57
+
58
+ /**
59
+ * Warn anything
60
+ */
61
+ export function warn(...args: any[]): void {
62
+ defaultLogger.warn(...args);
63
+ }
@@ -0,0 +1,51 @@
1
+ import { assertRange } from "./Debug";
2
+ import { Time } from "../type/Units";
3
+
4
+ /**
5
+ * Assert that the number is in the given range.
6
+ */
7
+ export function range(min: number, max = Infinity) {
8
+ const valueMap: WeakMap<any, number> = new WeakMap();
9
+ return function(target: any, propertyKey: string | symbol) {
10
+ Reflect.defineProperty(
11
+ target,
12
+ propertyKey,
13
+ {
14
+ configurable: true,
15
+ enumerable: true,
16
+ get: function() {
17
+ return valueMap.get(this);
18
+ },
19
+ set: function(newValue: number) {
20
+ assertRange(newValue, min, max);
21
+ valueMap.set(this, newValue);
22
+ }
23
+ },
24
+ );
25
+ };
26
+ }
27
+
28
+ /**
29
+ * Convert the time to seconds and assert that the time is in between the two
30
+ * values when being set.
31
+ */
32
+ export function timeRange(min: number, max = Infinity) {
33
+ const valueMap: WeakMap<any, Time> = new WeakMap();
34
+ return function(target: any, propertyKey: string) {
35
+ Reflect.defineProperty(
36
+ target,
37
+ propertyKey,
38
+ {
39
+ configurable: true,
40
+ enumerable: true,
41
+ get: function() {
42
+ return valueMap.get(this);
43
+ },
44
+ set: function(newValue: Time) {
45
+ assertRange(this.toSeconds(newValue), min, max);
46
+ valueMap.set(this, newValue);
47
+ }
48
+ },
49
+ );
50
+ };
51
+ }
@@ -0,0 +1,123 @@
1
+ import { isAudioBuffer, isAudioNode, isAudioParam } from "./AdvancedTypeCheck";
2
+ import { isDefined, isObject, isUndef } from "./TypeCheck";
3
+
4
+ type BaseToneOptions = import("../Tone").BaseToneOptions;
5
+
6
+ /**
7
+ * Some objects should not be merged
8
+ */
9
+ function noCopy(key: string, arg: any): boolean {
10
+ return key === "value" || isAudioParam(arg) || isAudioNode(arg) || isAudioBuffer(arg);
11
+ }
12
+
13
+ /**
14
+ * Recursively merge an object
15
+ * @param target the object to merge into
16
+ * @param sources the source objects to merge
17
+ */
18
+ export function deepMerge<T>(target: T): T;
19
+ export function deepMerge<T, U>(target: T, source1: U): T & U;
20
+ export function deepMerge<T, U, V>(target: T, source1: U, source2: V): T & U & V;
21
+ export function deepMerge<T, U, V, W>(target: T, source1: U, source2: V, source3: W): T & U & V & W;
22
+ export function deepMerge(target: any, ...sources: any[]): any {
23
+ if (!sources.length) {
24
+ return target;
25
+ }
26
+ const source = sources.shift();
27
+
28
+ if (isObject(target) && isObject(source)) {
29
+ for (const key in source) {
30
+ if (noCopy(key, source[key])) {
31
+ target[key] = source[key];
32
+ } else if (isObject(source[key])) {
33
+ if (!target[key]) {
34
+ Object.assign(target, { [key]: {} });
35
+ }
36
+ deepMerge(target[key], source[key] as any);
37
+ } else {
38
+ Object.assign(target, { [key]: source[key] as any });
39
+ }
40
+ }
41
+ }
42
+ // @ts-ignore
43
+ return deepMerge(target, ...sources);
44
+ }
45
+
46
+ /**
47
+ * Returns true if the two arrays have the same value for each of the elements
48
+ */
49
+ export function deepEquals<T>(arrayA: T[], arrayB: T[]): boolean {
50
+ return arrayA.length === arrayB.length && arrayA.every((element, index) => arrayB[index] === element);
51
+ }
52
+
53
+ /**
54
+ * Convert an args array into an object.
55
+ */
56
+ export function optionsFromArguments<T extends object>(
57
+ defaults: T,
58
+ argsArray: IArguments,
59
+ keys: Array<keyof T> = [],
60
+ objKey?: keyof T,
61
+ ): T {
62
+ const opts: Partial<T> = {};
63
+ const args = Array.from(argsArray);
64
+ // if the first argument is an object and has an object key
65
+ if (isObject(args[0]) && objKey && !Reflect.has(args[0], objKey)) {
66
+ // if it's not part of the defaults
67
+ const partOfDefaults = Object.keys(args[0]).some(key => Reflect.has(defaults, key));
68
+ if (!partOfDefaults) {
69
+ // merge that key
70
+ deepMerge(opts, { [objKey]: args[0] });
71
+ // remove the obj key from the keys
72
+ keys.splice(keys.indexOf(objKey), 1);
73
+ // shift the first argument off
74
+ args.shift();
75
+ }
76
+ }
77
+ if (args.length === 1 && isObject(args[0])) {
78
+ deepMerge(opts, args[0]);
79
+ } else {
80
+ for (let i = 0; i < keys.length; i++) {
81
+ if (isDefined(args[i])) {
82
+ opts[keys[i]] = args[i];
83
+ }
84
+ }
85
+ }
86
+ return deepMerge(defaults, opts);
87
+ }
88
+
89
+ /**
90
+ * Return this instances default values by calling Constructor.getDefaults()
91
+ */
92
+ export function getDefaultsFromInstance<T>(instance: T): BaseToneOptions {
93
+ type ToneClass = {
94
+ constructor: ToneClass;
95
+ getDefaults: () => BaseToneOptions;
96
+ } & T;
97
+
98
+ return (instance as ToneClass).constructor.getDefaults();
99
+ }
100
+
101
+ /**
102
+ * Returns the fallback if the given object is undefined.
103
+ * Take an array of arguments and return a formatted options object.
104
+ */
105
+ export function defaultArg<T>(given: T, fallback: T): T {
106
+ if (isUndef(given)) {
107
+ return fallback;
108
+ } else {
109
+ return given;
110
+ }
111
+ }
112
+
113
+ /**
114
+ * Remove all of the properties belonging to omit from obj.
115
+ */
116
+ export function omitFromObject<T extends object, O extends string[]>(obj: T, omit: O): Omit<T, keyof O> {
117
+ omit.forEach(prop => {
118
+ if (Reflect.has(obj, prop)) {
119
+ delete obj[prop];
120
+ }
121
+ });
122
+ return obj;
123
+ }
@@ -0,0 +1,72 @@
1
+ import { expect } from "chai";
2
+ import { ONLINE_TESTING } from "test/helper/Supports";
3
+ import { Draw } from "./Draw";
4
+
5
+ describe("Draw", () => {
6
+
7
+ if (ONLINE_TESTING) {
8
+
9
+ const draw = new Draw();
10
+
11
+ after(() => {
12
+ draw.dispose();
13
+ });
14
+
15
+ it("can schedule a callback at a AudioContext time", (done) => {
16
+ const scheduledTime = draw.now() + 0.2;
17
+ draw.schedule(() => {
18
+ expect(draw.context.currentTime).to.be.closeTo(scheduledTime, 0.05);
19
+ done();
20
+ }, scheduledTime);
21
+ });
22
+
23
+ it("can schedule multiple callbacks", (done) => {
24
+ let callbackCount = 0;
25
+ const firstEvent = draw.now() + 0.1;
26
+ draw.schedule(() => {
27
+ callbackCount++;
28
+ expect(draw.context.currentTime).to.be.closeTo(firstEvent, 0.05);
29
+ }, firstEvent);
30
+
31
+ const thirdEvent = draw.now() + 0.3;
32
+ draw.schedule(() => {
33
+ callbackCount++;
34
+ expect(draw.context.currentTime).to.be.closeTo(thirdEvent, 0.05);
35
+ expect(callbackCount).to.equal(3);
36
+ done();
37
+ }, thirdEvent);
38
+
39
+ const secondEvent = draw.now() + 0.2;
40
+ draw.schedule(() => {
41
+ callbackCount++;
42
+ expect(draw.context.currentTime).to.be.closeTo(secondEvent, 0.05);
43
+ }, secondEvent);
44
+ });
45
+
46
+ it("can cancel scheduled events", (done) => {
47
+ let callbackCount = 0;
48
+ draw.schedule(() => {
49
+ callbackCount++;
50
+ }, draw.now() + 0.1);
51
+
52
+ draw.schedule(() => {
53
+ throw new Error("should not call this method");
54
+ }, draw.now() + 0.2);
55
+
56
+ draw.schedule(() => {
57
+ throw new Error("should not call this method");
58
+ }, draw.now() + 0.25);
59
+
60
+ // cancel the second and third events
61
+ draw.cancel(draw.now() + 0.15);
62
+
63
+ // schedule another one after
64
+ draw.schedule(() => {
65
+ callbackCount++;
66
+ expect(callbackCount).to.equal(2);
67
+ done();
68
+ }, draw.now() + 0.3);
69
+
70
+ });
71
+ }
72
+ });