@asciiz/atoolkit 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (343) hide show
  1. package/LICENSE +21 -0
  2. package/ReadMe.md +198 -0
  3. package/dist/acircuit/chip.d.ts +46 -0
  4. package/dist/acircuit/chip.d.ts.map +1 -0
  5. package/dist/acircuit/chip.js +104 -0
  6. package/dist/acircuit/chip.js.map +1 -0
  7. package/dist/acircuit/circuit.d.ts +86 -0
  8. package/dist/acircuit/circuit.d.ts.map +1 -0
  9. package/dist/acircuit/circuit.js +606 -0
  10. package/dist/acircuit/circuit.js.map +1 -0
  11. package/dist/acircuit/composite.d.ts +32 -0
  12. package/dist/acircuit/composite.d.ts.map +1 -0
  13. package/dist/acircuit/composite.js +88 -0
  14. package/dist/acircuit/composite.js.map +1 -0
  15. package/dist/acircuit/index.d.ts +7 -0
  16. package/dist/acircuit/index.d.ts.map +1 -0
  17. package/dist/acircuit/index.js +6 -0
  18. package/dist/acircuit/index.js.map +1 -0
  19. package/dist/acircuit/socket.d.ts +20 -0
  20. package/dist/acircuit/socket.d.ts.map +1 -0
  21. package/dist/acircuit/socket.js +23 -0
  22. package/dist/acircuit/socket.js.map +1 -0
  23. package/dist/acircuit/types.d.ts +94 -0
  24. package/dist/acircuit/types.d.ts.map +1 -0
  25. package/dist/acircuit/types.js +2 -0
  26. package/dist/acircuit/types.js.map +1 -0
  27. package/dist/acircuit/wire.d.ts +26 -0
  28. package/dist/acircuit/wire.d.ts.map +1 -0
  29. package/dist/acircuit/wire.js +23 -0
  30. package/dist/acircuit/wire.js.map +1 -0
  31. package/dist/adiag/bus.d.ts +65 -0
  32. package/dist/adiag/bus.d.ts.map +1 -0
  33. package/dist/adiag/bus.js +225 -0
  34. package/dist/adiag/bus.js.map +1 -0
  35. package/dist/adiag/index.d.ts +3 -0
  36. package/dist/adiag/index.d.ts.map +1 -0
  37. package/dist/adiag/index.js +2 -0
  38. package/dist/adiag/index.js.map +1 -0
  39. package/dist/aecs/ComponentSet.d.ts +33 -0
  40. package/dist/aecs/ComponentSet.d.ts.map +1 -0
  41. package/dist/aecs/ComponentSet.js +127 -0
  42. package/dist/aecs/ComponentSet.js.map +1 -0
  43. package/dist/aecs/Entity.d.ts +43 -0
  44. package/dist/aecs/Entity.d.ts.map +1 -0
  45. package/dist/aecs/Entity.js +82 -0
  46. package/dist/aecs/Entity.js.map +1 -0
  47. package/dist/aecs/FloatSet.d.ts +34 -0
  48. package/dist/aecs/FloatSet.d.ts.map +1 -0
  49. package/dist/aecs/FloatSet.js +147 -0
  50. package/dist/aecs/FloatSet.js.map +1 -0
  51. package/dist/aecs/Query.d.ts +90 -0
  52. package/dist/aecs/Query.d.ts.map +1 -0
  53. package/dist/aecs/Query.js +304 -0
  54. package/dist/aecs/Query.js.map +1 -0
  55. package/dist/aecs/index.d.ts +6 -0
  56. package/dist/aecs/index.d.ts.map +1 -0
  57. package/dist/aecs/index.js +6 -0
  58. package/dist/aecs/index.js.map +1 -0
  59. package/dist/aecs/join.d.ts +2 -0
  60. package/dist/aecs/join.d.ts.map +1 -0
  61. package/dist/aecs/join.js +2 -0
  62. package/dist/aecs/join.js.map +1 -0
  63. package/dist/alm/constants.d.ts +11 -0
  64. package/dist/alm/constants.d.ts.map +1 -0
  65. package/dist/alm/constants.js +17 -0
  66. package/dist/alm/constants.js.map +1 -0
  67. package/dist/alm/index.d.ts +9 -0
  68. package/dist/alm/index.d.ts.map +1 -0
  69. package/dist/alm/index.js +12 -0
  70. package/dist/alm/index.js.map +1 -0
  71. package/dist/alm/mat3.d.ts +63 -0
  72. package/dist/alm/mat3.d.ts.map +1 -0
  73. package/dist/alm/mat3.js +393 -0
  74. package/dist/alm/mat3.js.map +1 -0
  75. package/dist/alm/mat4.d.ts +157 -0
  76. package/dist/alm/mat4.d.ts.map +1 -0
  77. package/dist/alm/mat4.js +1448 -0
  78. package/dist/alm/mat4.js.map +1 -0
  79. package/dist/alm/quat.d.ts +89 -0
  80. package/dist/alm/quat.d.ts.map +1 -0
  81. package/dist/alm/quat.js +543 -0
  82. package/dist/alm/quat.js.map +1 -0
  83. package/dist/alm/spatial.d.ts +102 -0
  84. package/dist/alm/spatial.d.ts.map +1 -0
  85. package/dist/alm/spatial.js +389 -0
  86. package/dist/alm/spatial.js.map +1 -0
  87. package/dist/alm/vec2.d.ts +97 -0
  88. package/dist/alm/vec2.d.ts.map +1 -0
  89. package/dist/alm/vec2.js +369 -0
  90. package/dist/alm/vec2.js.map +1 -0
  91. package/dist/alm/vec3.d.ts +117 -0
  92. package/dist/alm/vec3.d.ts.map +1 -0
  93. package/dist/alm/vec3.js +547 -0
  94. package/dist/alm/vec3.js.map +1 -0
  95. package/dist/alm/vec4.d.ts +95 -0
  96. package/dist/alm/vec4.d.ts.map +1 -0
  97. package/dist/alm/vec4.js +452 -0
  98. package/dist/alm/vec4.js.map +1 -0
  99. package/dist/atempo/cadence.d.ts +58 -0
  100. package/dist/atempo/cadence.d.ts.map +1 -0
  101. package/dist/atempo/cadence.js +110 -0
  102. package/dist/atempo/cadence.js.map +1 -0
  103. package/dist/atempo/clip.d.ts +37 -0
  104. package/dist/atempo/clip.d.ts.map +1 -0
  105. package/dist/atempo/clip.js +92 -0
  106. package/dist/atempo/clip.js.map +1 -0
  107. package/dist/atempo/curve.d.ts +6 -0
  108. package/dist/atempo/curve.d.ts.map +1 -0
  109. package/dist/atempo/curve.js +2 -0
  110. package/dist/atempo/curve.js.map +1 -0
  111. package/dist/atempo/curves/bezier.d.ts +7 -0
  112. package/dist/atempo/curves/bezier.d.ts.map +1 -0
  113. package/dist/atempo/curves/bezier.js +46 -0
  114. package/dist/atempo/curves/bezier.js.map +1 -0
  115. package/dist/atempo/curves/bounce.d.ts +6 -0
  116. package/dist/atempo/curves/bounce.d.ts.map +1 -0
  117. package/dist/atempo/curves/bounce.js +22 -0
  118. package/dist/atempo/curves/bounce.js.map +1 -0
  119. package/dist/atempo/curves/cubic.d.ts +14 -0
  120. package/dist/atempo/curves/cubic.d.ts.map +1 -0
  121. package/dist/atempo/curves/cubic.js +22 -0
  122. package/dist/atempo/curves/cubic.js.map +1 -0
  123. package/dist/atempo/curves/elastic.d.ts +6 -0
  124. package/dist/atempo/curves/elastic.d.ts.map +1 -0
  125. package/dist/atempo/curves/elastic.js +12 -0
  126. package/dist/atempo/curves/elastic.js.map +1 -0
  127. package/dist/atempo/curves/expo.d.ts +14 -0
  128. package/dist/atempo/curves/expo.d.ts.map +1 -0
  129. package/dist/atempo/curves/expo.js +26 -0
  130. package/dist/atempo/curves/expo.js.map +1 -0
  131. package/dist/atempo/curves/holdSnap.d.ts +6 -0
  132. package/dist/atempo/curves/holdSnap.d.ts.map +1 -0
  133. package/dist/atempo/curves/holdSnap.js +15 -0
  134. package/dist/atempo/curves/holdSnap.js.map +1 -0
  135. package/dist/atempo/curves/index.d.ts +14 -0
  136. package/dist/atempo/curves/index.d.ts.map +1 -0
  137. package/dist/atempo/curves/index.js +14 -0
  138. package/dist/atempo/curves/index.js.map +1 -0
  139. package/dist/atempo/curves/linear.d.ts +6 -0
  140. package/dist/atempo/curves/linear.d.ts.map +1 -0
  141. package/dist/atempo/curves/linear.js +5 -0
  142. package/dist/atempo/curves/linear.js.map +1 -0
  143. package/dist/atempo/curves/overshoot.d.ts +6 -0
  144. package/dist/atempo/curves/overshoot.d.ts.map +1 -0
  145. package/dist/atempo/curves/overshoot.js +16 -0
  146. package/dist/atempo/curves/overshoot.js.map +1 -0
  147. package/dist/atempo/curves/quad.d.ts +14 -0
  148. package/dist/atempo/curves/quad.d.ts.map +1 -0
  149. package/dist/atempo/curves/quad.js +22 -0
  150. package/dist/atempo/curves/quad.js.map +1 -0
  151. package/dist/atempo/curves/step.d.ts +6 -0
  152. package/dist/atempo/curves/step.d.ts.map +1 -0
  153. package/dist/atempo/curves/step.js +11 -0
  154. package/dist/atempo/curves/step.js.map +1 -0
  155. package/dist/atempo/index.d.ts +17 -0
  156. package/dist/atempo/index.d.ts.map +1 -0
  157. package/dist/atempo/index.js +18 -0
  158. package/dist/atempo/index.js.map +1 -0
  159. package/dist/atempo/phase.d.ts +66 -0
  160. package/dist/atempo/phase.d.ts.map +1 -0
  161. package/dist/atempo/phase.js +121 -0
  162. package/dist/atempo/phase.js.map +1 -0
  163. package/dist/atempo/spring.d.ts +20 -0
  164. package/dist/atempo/spring.d.ts.map +1 -0
  165. package/dist/atempo/spring.js +71 -0
  166. package/dist/atempo/spring.js.map +1 -0
  167. package/dist/atempo/track.d.ts +69 -0
  168. package/dist/atempo/track.d.ts.map +1 -0
  169. package/dist/atempo/track.js +184 -0
  170. package/dist/atempo/track.js.map +1 -0
  171. package/dist/atempo/tracks/color.d.ts +20 -0
  172. package/dist/atempo/tracks/color.d.ts.map +1 -0
  173. package/dist/atempo/tracks/color.js +52 -0
  174. package/dist/atempo/tracks/color.js.map +1 -0
  175. package/dist/atempo/tracks/float.d.ts +9 -0
  176. package/dist/atempo/tracks/float.d.ts.map +1 -0
  177. package/dist/atempo/tracks/float.js +13 -0
  178. package/dist/atempo/tracks/float.js.map +1 -0
  179. package/dist/atempo/tracks/index.d.ts +8 -0
  180. package/dist/atempo/tracks/index.d.ts.map +1 -0
  181. package/dist/atempo/tracks/index.js +8 -0
  182. package/dist/atempo/tracks/index.js.map +1 -0
  183. package/dist/atempo/tracks/quat.d.ts +16 -0
  184. package/dist/atempo/tracks/quat.d.ts.map +1 -0
  185. package/dist/atempo/tracks/quat.js +72 -0
  186. package/dist/atempo/tracks/quat.js.map +1 -0
  187. package/dist/atempo/tracks/vec.d.ts +11 -0
  188. package/dist/atempo/tracks/vec.d.ts.map +1 -0
  189. package/dist/atempo/tracks/vec.js +27 -0
  190. package/dist/atempo/tracks/vec.js.map +1 -0
  191. package/dist/awasm/abi/index.d.ts +4 -0
  192. package/dist/awasm/abi/index.d.ts.map +1 -0
  193. package/dist/awasm/abi/index.js +4 -0
  194. package/dist/awasm/abi/index.js.map +1 -0
  195. package/dist/awasm/abi/layout.d.ts +40 -0
  196. package/dist/awasm/abi/layout.d.ts.map +1 -0
  197. package/dist/awasm/abi/layout.js +100 -0
  198. package/dist/awasm/abi/layout.js.map +1 -0
  199. package/dist/awasm/abi/slice.d.ts +28 -0
  200. package/dist/awasm/abi/slice.d.ts.map +1 -0
  201. package/dist/awasm/abi/slice.js +68 -0
  202. package/dist/awasm/abi/slice.js.map +1 -0
  203. package/dist/awasm/abi/string-buffer.d.ts +23 -0
  204. package/dist/awasm/abi/string-buffer.d.ts.map +1 -0
  205. package/dist/awasm/abi/string-buffer.js +52 -0
  206. package/dist/awasm/abi/string-buffer.js.map +1 -0
  207. package/dist/awasm/index.d.ts +5 -0
  208. package/dist/awasm/index.d.ts.map +1 -0
  209. package/dist/awasm/index.js +8 -0
  210. package/dist/awasm/index.js.map +1 -0
  211. package/dist/awasm/memory/block-pool.d.ts +31 -0
  212. package/dist/awasm/memory/block-pool.d.ts.map +1 -0
  213. package/dist/awasm/memory/block-pool.js +98 -0
  214. package/dist/awasm/memory/block-pool.js.map +1 -0
  215. package/dist/awasm/memory/index.d.ts +5 -0
  216. package/dist/awasm/memory/index.d.ts.map +1 -0
  217. package/dist/awasm/memory/index.js +5 -0
  218. package/dist/awasm/memory/index.js.map +1 -0
  219. package/dist/awasm/memory/linear-arena.d.ts +36 -0
  220. package/dist/awasm/memory/linear-arena.d.ts.map +1 -0
  221. package/dist/awasm/memory/linear-arena.js +94 -0
  222. package/dist/awasm/memory/linear-arena.js.map +1 -0
  223. package/dist/awasm/memory/memory-view.d.ts +51 -0
  224. package/dist/awasm/memory/memory-view.d.ts.map +1 -0
  225. package/dist/awasm/memory/memory-view.js +110 -0
  226. package/dist/awasm/memory/memory-view.js.map +1 -0
  227. package/dist/awasm/memory/wasm-memory.d.ts +40 -0
  228. package/dist/awasm/memory/wasm-memory.d.ts.map +1 -0
  229. package/dist/awasm/memory/wasm-memory.js +88 -0
  230. package/dist/awasm/memory/wasm-memory.js.map +1 -0
  231. package/dist/awasm/runtime/host-bridge.d.ts +30 -0
  232. package/dist/awasm/runtime/host-bridge.d.ts.map +1 -0
  233. package/dist/awasm/runtime/host-bridge.js +57 -0
  234. package/dist/awasm/runtime/host-bridge.js.map +1 -0
  235. package/dist/awasm/runtime/index.d.ts +5 -0
  236. package/dist/awasm/runtime/index.d.ts.map +1 -0
  237. package/dist/awasm/runtime/index.js +5 -0
  238. package/dist/awasm/runtime/index.js.map +1 -0
  239. package/dist/awasm/runtime/module-inspector.d.ts +32 -0
  240. package/dist/awasm/runtime/module-inspector.d.ts.map +1 -0
  241. package/dist/awasm/runtime/module-inspector.js +43 -0
  242. package/dist/awasm/runtime/module-inspector.js.map +1 -0
  243. package/dist/awasm/runtime/module-loader.d.ts +17 -0
  244. package/dist/awasm/runtime/module-loader.d.ts.map +1 -0
  245. package/dist/awasm/runtime/module-loader.js +99 -0
  246. package/dist/awasm/runtime/module-loader.js.map +1 -0
  247. package/dist/awasm/runtime/wasm-instance.d.ts +25 -0
  248. package/dist/awasm/runtime/wasm-instance.d.ts.map +1 -0
  249. package/dist/awasm/runtime/wasm-instance.js +60 -0
  250. package/dist/awasm/runtime/wasm-instance.js.map +1 -0
  251. package/dist/awasm/thread/atomic-queue.d.ts +33 -0
  252. package/dist/awasm/thread/atomic-queue.d.ts.map +1 -0
  253. package/dist/awasm/thread/atomic-queue.js +78 -0
  254. package/dist/awasm/thread/atomic-queue.js.map +1 -0
  255. package/dist/awasm/thread/index.d.ts +4 -0
  256. package/dist/awasm/thread/index.d.ts.map +1 -0
  257. package/dist/awasm/thread/index.js +4 -0
  258. package/dist/awasm/thread/index.js.map +1 -0
  259. package/dist/awasm/thread/shared-memory.d.ts +38 -0
  260. package/dist/awasm/thread/shared-memory.d.ts.map +1 -0
  261. package/dist/awasm/thread/shared-memory.js +74 -0
  262. package/dist/awasm/thread/shared-memory.js.map +1 -0
  263. package/dist/awasm/thread/worker-pool.d.ts +43 -0
  264. package/dist/awasm/thread/worker-pool.d.ts.map +1 -0
  265. package/dist/awasm/thread/worker-pool.js +118 -0
  266. package/dist/awasm/thread/worker-pool.js.map +1 -0
  267. package/dist/awgpu/binding.d.ts +108 -0
  268. package/dist/awgpu/binding.d.ts.map +1 -0
  269. package/dist/awgpu/binding.js +251 -0
  270. package/dist/awgpu/binding.js.map +1 -0
  271. package/dist/awgpu/device.d.ts +68 -0
  272. package/dist/awgpu/device.d.ts.map +1 -0
  273. package/dist/awgpu/device.js +150 -0
  274. package/dist/awgpu/device.js.map +1 -0
  275. package/dist/awgpu/graph.d.ts +77 -0
  276. package/dist/awgpu/graph.d.ts.map +1 -0
  277. package/dist/awgpu/graph.js +288 -0
  278. package/dist/awgpu/graph.js.map +1 -0
  279. package/dist/awgpu/index.d.ts +10 -0
  280. package/dist/awgpu/index.d.ts.map +1 -0
  281. package/dist/awgpu/index.js +19 -0
  282. package/dist/awgpu/index.js.map +1 -0
  283. package/dist/awgpu/memory.d.ts +231 -0
  284. package/dist/awgpu/memory.d.ts.map +1 -0
  285. package/dist/awgpu/memory.js +547 -0
  286. package/dist/awgpu/memory.js.map +1 -0
  287. package/dist/awgpu/pipeline.d.ts +114 -0
  288. package/dist/awgpu/pipeline.d.ts.map +1 -0
  289. package/dist/awgpu/pipeline.js +335 -0
  290. package/dist/awgpu/pipeline.js.map +1 -0
  291. package/dist/awgpu/sequence.d.ts +83 -0
  292. package/dist/awgpu/sequence.d.ts.map +1 -0
  293. package/dist/awgpu/sequence.js +273 -0
  294. package/dist/awgpu/sequence.js.map +1 -0
  295. package/dist/awgpu/state.d.ts +27 -0
  296. package/dist/awgpu/state.d.ts.map +1 -0
  297. package/dist/awgpu/state.js +43 -0
  298. package/dist/awgpu/state.js.map +1 -0
  299. package/dist/awgpu/stream.d.ts +57 -0
  300. package/dist/awgpu/stream.d.ts.map +1 -0
  301. package/dist/awgpu/stream.js +139 -0
  302. package/dist/awgpu/stream.js.map +1 -0
  303. package/dist/awgpu/target.d.ts +98 -0
  304. package/dist/awgpu/target.d.ts.map +1 -0
  305. package/dist/awgpu/target.js +357 -0
  306. package/dist/awgpu/target.js.map +1 -0
  307. package/dist/awgpu_old/buffer.d.ts +78 -0
  308. package/dist/awgpu_old/buffer.d.ts.map +1 -0
  309. package/dist/awgpu_old/buffer.js +220 -0
  310. package/dist/awgpu_old/buffer.js.map +1 -0
  311. package/dist/awgpu_old/device.d.ts +69 -0
  312. package/dist/awgpu_old/device.d.ts.map +1 -0
  313. package/dist/awgpu_old/device.js +121 -0
  314. package/dist/awgpu_old/device.js.map +1 -0
  315. package/dist/awgpu_old/frame.d.ts +17 -0
  316. package/dist/awgpu_old/frame.d.ts.map +1 -0
  317. package/dist/awgpu_old/frame.js +29 -0
  318. package/dist/awgpu_old/frame.js.map +1 -0
  319. package/dist/awgpu_old/index.d.ts +8 -0
  320. package/dist/awgpu_old/index.d.ts.map +1 -0
  321. package/dist/awgpu_old/index.js +18 -0
  322. package/dist/awgpu_old/index.js.map +1 -0
  323. package/dist/awgpu_old/layout.d.ts +70 -0
  324. package/dist/awgpu_old/layout.d.ts.map +1 -0
  325. package/dist/awgpu_old/layout.js +137 -0
  326. package/dist/awgpu_old/layout.js.map +1 -0
  327. package/dist/awgpu_old/pass.d.ts +97 -0
  328. package/dist/awgpu_old/pass.d.ts.map +1 -0
  329. package/dist/awgpu_old/pass.js +302 -0
  330. package/dist/awgpu_old/pass.js.map +1 -0
  331. package/dist/awgpu_old/pipeline.d.ts +73 -0
  332. package/dist/awgpu_old/pipeline.d.ts.map +1 -0
  333. package/dist/awgpu_old/pipeline.js +226 -0
  334. package/dist/awgpu_old/pipeline.js.map +1 -0
  335. package/dist/awgpu_old/target.d.ts +186 -0
  336. package/dist/awgpu_old/target.d.ts.map +1 -0
  337. package/dist/awgpu_old/target.js +428 -0
  338. package/dist/awgpu_old/target.js.map +1 -0
  339. package/dist/index.d.ts +10 -0
  340. package/dist/index.d.ts.map +1 -0
  341. package/dist/index.js +10 -0
  342. package/dist/index.js.map +1 -0
  343. package/package.json +106 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"overshoot.js","sourceRoot":"","sources":["../../../atempo/curves/overshoot.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,MAAM,GAAG,IAAI,EAAS,EAAE;IAC9C,MAAM,CAAC,GAAG,MAAM,GAAG,OAAO,CAAC;IAC3B,OAAO,CAAC,CAAS,EAAU,EAAE;QACzB,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACtC,IAAI,CAAC,IAAI,CAAC;YAAE,OAAO,CAAC,CAAC;QACrB,IAAI,CAAC,IAAI,CAAC;YAAE,OAAO,CAAC,CAAC;QACrB,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IACzC,CAAC,CAAC;AACN,CAAC,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { type Curve } from "../curve.js";
2
+ /**
3
+ * Quadratic ease-in curve.
4
+ */
5
+ export declare const quadIn: Curve;
6
+ /**
7
+ * Quadratic ease-out curve.
8
+ */
9
+ export declare const quadOut: Curve;
10
+ /**
11
+ * Quadratic ease-in-out curve.
12
+ */
13
+ export declare const quadInOut: Curve;
14
+ //# sourceMappingURL=quad.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"quad.d.ts","sourceRoot":"","sources":["../../../atempo/curves/quad.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,aAAa,CAAC;AAEzC;;GAEG;AACH,eAAO,MAAM,MAAM,EAAE,KAGpB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,OAAO,EAAE,KAGrB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,SAAS,EAAE,KAGvB,CAAC"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Quadratic ease-in curve.
3
+ */
4
+ export const quadIn = (t) => {
5
+ const c = Math.max(0, Math.min(1, t));
6
+ return c * c;
7
+ };
8
+ /**
9
+ * Quadratic ease-out curve.
10
+ */
11
+ export const quadOut = (t) => {
12
+ const c = Math.max(0, Math.min(1, t));
13
+ return c * (2 - c);
14
+ };
15
+ /**
16
+ * Quadratic ease-in-out curve.
17
+ */
18
+ export const quadInOut = (t) => {
19
+ const c = Math.max(0, Math.min(1, t));
20
+ return c < 0.5 ? 2 * c * c : -1 + (4 - 2 * c) * c;
21
+ };
22
+ //# sourceMappingURL=quad.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"quad.js","sourceRoot":"","sources":["../../../atempo/curves/quad.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAU,CAAC,CAAS,EAAU,EAAE;IAC/C,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACtC,OAAO,CAAC,GAAG,CAAC,CAAC;AACjB,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,OAAO,GAAU,CAAC,CAAS,EAAU,EAAE;IAChD,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACtC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACvB,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,SAAS,GAAU,CAAC,CAAS,EAAU,EAAE;IAClD,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACtC,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AACtD,CAAC,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { type Curve } from "../curve.js";
2
+ /**
3
+ * Creates staircase quantization curve mapping [0, 1] into discrete steps.
4
+ */
5
+ export declare const step: (steps?: number) => Curve;
6
+ //# sourceMappingURL=step.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"step.d.ts","sourceRoot":"","sources":["../../../atempo/curves/step.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,aAAa,CAAC;AAEzC;;GAEG;AACH,eAAO,MAAM,IAAI,GAAI,cAAS,KAAG,KAMhC,CAAC"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Creates staircase quantization curve mapping [0, 1] into discrete steps.
3
+ */
4
+ export const step = (steps = 4) => {
5
+ const s = Math.max(1, Math.floor(steps));
6
+ return (t) => {
7
+ const clamped = Math.max(0, Math.min(1, t));
8
+ return Math.floor(clamped * s) / s;
9
+ };
10
+ };
11
+ //# sourceMappingURL=step.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"step.js","sourceRoot":"","sources":["../../../atempo/curves/step.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,KAAK,GAAG,CAAC,EAAS,EAAE;IACrC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;IACzC,OAAO,CAAC,CAAS,EAAU,EAAE;QACzB,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC5C,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IACvC,CAAC,CAAC;AACN,CAAC,CAAC"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Atempo: Temporal orchestration and cadence evaluation primitives.
3
+ */
4
+ export { Cadence, FixedCadence } from "./cadence.js";
5
+ export { Phase, Metronome, type MetronomeState } from "./phase.js";
6
+ export { Spring } from "./spring.js";
7
+ export { type Curve } from "./curve.js";
8
+ export { Track, Extrapolation, type Keyframe } from "./track.js";
9
+ export { Clip, type ClipMarker } from "./clip.js";
10
+ export * as curves from "./curves/index.js";
11
+ export * as tracks from "./tracks/index.js";
12
+ export { FloatTrack } from "./tracks/float.js";
13
+ export { VecTrack } from "./tracks/vec.js";
14
+ export { QuatTrack } from "./tracks/quat.js";
15
+ export { ColorTrack, ColorSpace } from "./tracks/color.js";
16
+ export { linear, step, quadIn, quadOut, quadInOut, cubicIn, cubicOut, cubicInOut, expoIn, expoOut, expoInOut, overshoot, bounce, elastic, holdSnap, bezier, } from "./curves/index.js";
17
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../atempo/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,YAAY,CAAC;AACnE,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,QAAQ,EAAE,MAAM,YAAY,CAAC;AACjE,OAAO,EAAE,IAAI,EAAE,KAAK,UAAU,EAAE,MAAM,WAAW,CAAC;AAElD,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAC5C,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAG5C,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAG3D,OAAO,EACH,MAAM,EACN,IAAI,EACJ,MAAM,EACN,OAAO,EACP,SAAS,EACT,OAAO,EACP,QAAQ,EACR,UAAU,EACV,MAAM,EACN,OAAO,EACP,SAAS,EACT,SAAS,EACT,MAAM,EACN,OAAO,EACP,QAAQ,EACR,MAAM,GACT,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Atempo: Temporal orchestration and cadence evaluation primitives.
3
+ */
4
+ export { Cadence, FixedCadence } from "./cadence.js";
5
+ export { Phase, Metronome } from "./phase.js";
6
+ export { Spring } from "./spring.js";
7
+ export { Track, Extrapolation } from "./track.js";
8
+ export { Clip } from "./clip.js";
9
+ export * as curves from "./curves/index.js";
10
+ export * as tracks from "./tracks/index.js";
11
+ // Direct track presets
12
+ export { FloatTrack } from "./tracks/float.js";
13
+ export { VecTrack } from "./tracks/vec.js";
14
+ export { QuatTrack } from "./tracks/quat.js";
15
+ export { ColorTrack, ColorSpace } from "./tracks/color.js";
16
+ // Direct curve presets
17
+ export { linear, step, quadIn, quadOut, quadInOut, cubicIn, cubicOut, cubicInOut, expoIn, expoOut, expoInOut, overshoot, bounce, elastic, holdSnap, bezier, } from "./curves/index.js";
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../atempo/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,KAAK,EAAE,SAAS,EAAuB,MAAM,YAAY,CAAC;AACnE,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,OAAO,EAAE,KAAK,EAAE,aAAa,EAAiB,MAAM,YAAY,CAAC;AACjE,OAAO,EAAE,IAAI,EAAmB,MAAM,WAAW,CAAC;AAElD,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAC5C,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAE5C,uBAAuB;AACvB,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE3D,uBAAuB;AACvB,OAAO,EACH,MAAM,EACN,IAAI,EACJ,MAAM,EACN,OAAO,EACP,SAAS,EACT,OAAO,EACP,QAAQ,EACR,UAAU,EACV,MAAM,EACN,OAAO,EACP,SAAS,EACT,SAAS,EACT,MAAM,EACN,OAAO,EACP,QAAQ,EACR,MAAM,GACT,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,66 @@
1
+ /**
2
+ * Periodic phase coordinates, waveform generators, and cyclic metronomic tracking.
3
+ */
4
+ export declare class Phase {
5
+ private static readonly TWO_PI;
6
+ /**
7
+ * Converts time and frequency into normalized cyclic phase in [0.0, 1.0).
8
+ */
9
+ static cycle(timeSec: number, frequencyHz: number, phaseOffset?: number): number;
10
+ /**
11
+ * Normalized sine wave over phase [0.0, 1.0) mapped to [-1.0, 1.0].
12
+ */
13
+ static sine(phase: number): number;
14
+ /**
15
+ * Normalized cosine wave over phase [0.0, 1.0) mapped to [-1.0, 1.0].
16
+ */
17
+ static cosine(phase: number): number;
18
+ /**
19
+ * Symmetric triangle wave over phase [0.0, 1.0) mapped to [-1.0, 1.0].
20
+ */
21
+ static triangle(phase: number): number;
22
+ /**
23
+ * Linear ramp sawtooth wave over phase [0.0, 1.0) mapped to [-1.0, 1.0].
24
+ */
25
+ static saw(phase: number): number;
26
+ /**
27
+ * Square pulse wave over phase [0.0, 1.0) mapped to [-1.0, 1.0].
28
+ */
29
+ static square(phase: number, dutyCycle?: number): number;
30
+ /**
31
+ * Exponential decay impulse starting at 1.0 at phase 0.0 and decaying toward 0.0.
32
+ */
33
+ static impulse(phase: number, sharpness?: number): number;
34
+ /**
35
+ * Wraps scalar value into [min, max) range.
36
+ */
37
+ static wrap(value: number, min: number, max: number): number;
38
+ }
39
+ export interface MetronomeState {
40
+ cycle: number;
41
+ phase: number;
42
+ bar: number;
43
+ justTriggered: boolean;
44
+ impulse: number;
45
+ }
46
+ /**
47
+ * Periodic beat and bar tracker.
48
+ * Evaluates integer cycles, phase progress in [0, 1), and boundary triggers.
49
+ */
50
+ export declare class Metronome {
51
+ private _frequency;
52
+ private _lastCycle;
53
+ private _justTriggered;
54
+ constructor(frequencyOrBpm?: number, isBpm?: boolean);
55
+ setBpm(bpm: number): this;
56
+ setFrequency(hz: number): this;
57
+ get frequency(): number;
58
+ get bpm(): number;
59
+ get period(): number;
60
+ /**
61
+ * Evaluates metronome state for timestamp and updates cycle boundary trigger.
62
+ */
63
+ sample(timeSec: number): MetronomeState;
64
+ get justTriggered(): boolean;
65
+ }
66
+ //# sourceMappingURL=phase.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"phase.d.ts","sourceRoot":"","sources":["../../atempo/phase.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,qBAAa,KAAK;IACd,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAiB;IAE/C;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,SAAM,GAAG,MAAM;IAM7E;;OAEG;IACH,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAIlC;;OAEG;IACH,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAIpC;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAKtC;;OAEG;IACH,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAKjC;;OAEG;IACH,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,SAAM,GAAG,MAAM;IAKrD;;OAEG;IACH,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,SAAM,GAAG,MAAM;IAKtD;;OAEG;IACH,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM;CAK/D;AAED,MAAM,WAAW,cAAc;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,aAAa,EAAE,OAAO,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,qBAAa,SAAS;IAClB,OAAO,CAAC,UAAU,CAAO;IACzB,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,cAAc,CAAS;gBAEnB,cAAc,SAAM,EAAE,KAAK,UAAO;IAQ9C,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAKzB,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAK9B,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED,IAAI,GAAG,IAAI,MAAM,CAEhB;IAED,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED;;OAEG;IACH,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,cAAc;IAoBvC,IAAI,aAAa,IAAI,OAAO,CAE3B;CACJ"}
@@ -0,0 +1,121 @@
1
+ /**
2
+ * Periodic phase coordinates, waveform generators, and cyclic metronomic tracking.
3
+ */
4
+ export class Phase {
5
+ static TWO_PI = Math.PI * 2.0;
6
+ /**
7
+ * Converts time and frequency into normalized cyclic phase in [0.0, 1.0).
8
+ */
9
+ static cycle(timeSec, frequencyHz, phaseOffset = 0.0) {
10
+ if (frequencyHz <= 0)
11
+ return 0.0;
12
+ const raw = timeSec * frequencyHz + phaseOffset;
13
+ return raw - Math.floor(raw);
14
+ }
15
+ /**
16
+ * Normalized sine wave over phase [0.0, 1.0) mapped to [-1.0, 1.0].
17
+ */
18
+ static sine(phase) {
19
+ return Math.sin(phase * Phase.TWO_PI);
20
+ }
21
+ /**
22
+ * Normalized cosine wave over phase [0.0, 1.0) mapped to [-1.0, 1.0].
23
+ */
24
+ static cosine(phase) {
25
+ return Math.cos(phase * Phase.TWO_PI);
26
+ }
27
+ /**
28
+ * Symmetric triangle wave over phase [0.0, 1.0) mapped to [-1.0, 1.0].
29
+ */
30
+ static triangle(phase) {
31
+ const p = phase - Math.floor(phase);
32
+ return 1.0 - 4.0 * Math.abs(p - 0.5);
33
+ }
34
+ /**
35
+ * Linear ramp sawtooth wave over phase [0.0, 1.0) mapped to [-1.0, 1.0].
36
+ */
37
+ static saw(phase) {
38
+ const p = phase - Math.floor(phase);
39
+ return 2.0 * p - 1.0;
40
+ }
41
+ /**
42
+ * Square pulse wave over phase [0.0, 1.0) mapped to [-1.0, 1.0].
43
+ */
44
+ static square(phase, dutyCycle = 0.5) {
45
+ const p = phase - Math.floor(phase);
46
+ return p < dutyCycle ? 1.0 : -1.0;
47
+ }
48
+ /**
49
+ * Exponential decay impulse starting at 1.0 at phase 0.0 and decaying toward 0.0.
50
+ */
51
+ static impulse(phase, sharpness = 4.0) {
52
+ const p = phase - Math.floor(phase);
53
+ return Math.exp(-sharpness * p);
54
+ }
55
+ /**
56
+ * Wraps scalar value into [min, max) range.
57
+ */
58
+ static wrap(value, min, max) {
59
+ const range = max - min;
60
+ if (range <= 0)
61
+ return min;
62
+ return min + ((((value - min) % range) + range) % range);
63
+ }
64
+ }
65
+ /**
66
+ * Periodic beat and bar tracker.
67
+ * Evaluates integer cycles, phase progress in [0, 1), and boundary triggers.
68
+ */
69
+ export class Metronome {
70
+ _frequency = 1.0;
71
+ _lastCycle = 0;
72
+ _justTriggered = false;
73
+ constructor(frequencyOrBpm = 120, isBpm = true) {
74
+ if (isBpm) {
75
+ this.setBpm(frequencyOrBpm);
76
+ }
77
+ else {
78
+ this.setFrequency(frequencyOrBpm);
79
+ }
80
+ }
81
+ setBpm(bpm) {
82
+ this._frequency = Math.max(0.0001, bpm / 60.0);
83
+ return this;
84
+ }
85
+ setFrequency(hz) {
86
+ this._frequency = Math.max(0.0001, hz);
87
+ return this;
88
+ }
89
+ get frequency() {
90
+ return this._frequency;
91
+ }
92
+ get bpm() {
93
+ return this._frequency * 60.0;
94
+ }
95
+ get period() {
96
+ return 1.0 / this._frequency;
97
+ }
98
+ /**
99
+ * Evaluates metronome state for timestamp and updates cycle boundary trigger.
100
+ */
101
+ sample(timeSec) {
102
+ const totalCycles = timeSec * this._frequency;
103
+ const currentCycle = Math.floor(totalCycles);
104
+ const phase = totalCycles - currentCycle;
105
+ const bar = Math.floor(currentCycle / 4);
106
+ this._justTriggered = currentCycle !== this._lastCycle;
107
+ this._lastCycle = currentCycle;
108
+ const impulse = Math.pow(Math.max(0.0, 1.0 - phase * 3.5), 2.2);
109
+ return {
110
+ cycle: currentCycle,
111
+ phase,
112
+ bar,
113
+ justTriggered: this._justTriggered,
114
+ impulse,
115
+ };
116
+ }
117
+ get justTriggered() {
118
+ return this._justTriggered;
119
+ }
120
+ }
121
+ //# sourceMappingURL=phase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"phase.js","sourceRoot":"","sources":["../../atempo/phase.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Analytical solution for damped harmonic oscillator dynamics across under-damped, critically damped, and over-damped regimes.
3
+ */
4
+ export declare class Spring {
5
+ frequency: number;
6
+ damping: number;
7
+ constructor(frequency?: number, damping?: number);
8
+ /**
9
+ * Updates scalar spring position and velocity in-place.
10
+ * posVel[0] = position, posVel[1] = velocity.
11
+ */
12
+ update(posVel: Float32Array | number[], target: number, deltaSec: number): void;
13
+ /**
14
+ * Updates N-dimensional vector in-place.
15
+ * posArray[posOffset .. posOffset + dim - 1] = positions
16
+ * velArray[velOffset .. velOffset + dim - 1] = velocities
17
+ */
18
+ updateVector(posArray: Float32Array | number[], velArray: Float32Array | number[], targetArray: ArrayLike<number>, dimension: number, deltaSec: number, posOffset?: number, velOffset?: number, targetOffset?: number): void;
19
+ }
20
+ //# sourceMappingURL=spring.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spring.d.ts","sourceRoot":"","sources":["../../atempo/spring.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,qBAAa,MAAM;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;gBAEJ,SAAS,SAAM,EAAE,OAAO,SAAM;IAK1C;;;OAGG;IACH,MAAM,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IA8C/E;;;;OAIG;IACH,YAAY,CACR,QAAQ,EAAE,YAAY,GAAG,MAAM,EAAE,EACjC,QAAQ,EAAE,YAAY,GAAG,MAAM,EAAE,EACjC,WAAW,EAAE,SAAS,CAAC,MAAM,CAAC,EAC9B,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,SAAS,SAAI,EACb,SAAS,SAAI,EACb,YAAY,SAAI,GACjB,IAAI;CAUV"}
@@ -0,0 +1,71 @@
1
+ /**
2
+ * Analytical solution for damped harmonic oscillator dynamics across under-damped, critically damped, and over-damped regimes.
3
+ */
4
+ export class Spring {
5
+ frequency; // Natural frequency in Hz
6
+ damping; // Damping ratio (zeta): 1.0 = critical, <1.0 = under-damped, >1.0 = over-damped
7
+ constructor(frequency = 2.0, damping = 0.7) {
8
+ this.frequency = Math.max(0.001, frequency);
9
+ this.damping = Math.max(0.0, damping);
10
+ }
11
+ /**
12
+ * Updates scalar spring position and velocity in-place.
13
+ * posVel[0] = position, posVel[1] = velocity.
14
+ */
15
+ update(posVel, target, deltaSec) {
16
+ const dt = Math.max(0, deltaSec);
17
+ if (dt === 0)
18
+ return;
19
+ const f = this.frequency;
20
+ const z = this.damping;
21
+ const w = f * (2.0 * Math.PI);
22
+ const x = posVel[0] - target;
23
+ const v = posVel[1];
24
+ if (z < 0.9999) {
25
+ // Under-damped oscillation
26
+ const wd = w * Math.sqrt(1.0 - z * z);
27
+ const exp = Math.exp(-z * w * dt);
28
+ const c = Math.cos(wd * dt);
29
+ const s = Math.sin(wd * dt);
30
+ const newX = exp * (x * c + ((v + z * w * x) / wd) * s);
31
+ const newV = exp * (v * c - ((v * z * w + w * w * x) / wd) * s);
32
+ posVel[0] = newX + target;
33
+ posVel[1] = newV;
34
+ }
35
+ else if (z > 1.0001) {
36
+ // Over-damped decay
37
+ const s = Math.sqrt(z * z - 1.0);
38
+ const w1 = w * (z - s);
39
+ const w2 = w * (z + s);
40
+ const exp1 = Math.exp(-w1 * dt);
41
+ const exp2 = Math.exp(-w2 * dt);
42
+ const c1 = (v + w2 * x) / (2.0 * w * s);
43
+ const c2 = (-v - w1 * x) / (2.0 * w * s);
44
+ posVel[0] = c1 * exp1 + c2 * exp2 + target;
45
+ posVel[1] = -c1 * w1 * exp1 - c2 * w2 * exp2;
46
+ }
47
+ else {
48
+ // Critically damped
49
+ const exp = Math.exp(-w * dt);
50
+ const c2 = v + w * x;
51
+ posVel[0] = (x + c2 * dt) * exp + target;
52
+ posVel[1] = (v - c2 * w * dt) * exp;
53
+ }
54
+ }
55
+ /**
56
+ * Updates N-dimensional vector in-place.
57
+ * posArray[posOffset .. posOffset + dim - 1] = positions
58
+ * velArray[velOffset .. velOffset + dim - 1] = velocities
59
+ */
60
+ updateVector(posArray, velArray, targetArray, dimension, deltaSec, posOffset = 0, velOffset = 0, targetOffset = 0) {
61
+ const temp = [0, 0];
62
+ for (let d = 0; d < dimension; d++) {
63
+ temp[0] = posArray[posOffset + d];
64
+ temp[1] = velArray[velOffset + d];
65
+ this.update(temp, targetArray[targetOffset + d], deltaSec);
66
+ posArray[posOffset + d] = temp[0];
67
+ velArray[velOffset + d] = temp[1];
68
+ }
69
+ }
70
+ }
71
+ //# sourceMappingURL=spring.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spring.js","sourceRoot":"","sources":["../../atempo/spring.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,OAAO,MAAM;IACf,SAAS,CAAS,CAAC,0BAA0B;IAC7C,OAAO,CAAS,CAAG,gFAAgF;IAEnG,YAAY,SAAS,GAAG,GAAG,EAAE,OAAO,GAAG,GAAG;QACtC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QAC5C,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAC1C,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,MAA+B,EAAE,MAAc,EAAE,QAAgB;QACpE,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;QACjC,IAAI,EAAE,KAAK,CAAC;YAAE,OAAO;QAErB,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;QACzB,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC;QAEvB,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC;QAC9B,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC;QAC7B,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QAEpB,IAAI,CAAC,GAAG,MAAM,EAAE,CAAC;YACb,2BAA2B;YAC3B,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;YACtC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;YAClC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;YAC5B,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;YAE5B,MAAM,IAAI,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;YACxD,MAAM,IAAI,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;YAEhE,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,MAAM,CAAC;YAC1B,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;QACrB,CAAC;aAAM,IAAI,CAAC,GAAG,MAAM,EAAE,CAAC;YACpB,oBAAoB;YACpB,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;YACjC,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACvB,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACvB,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;YAChC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;YAEhC,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;YACxC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;YAEzC,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,IAAI,GAAG,EAAE,GAAG,IAAI,GAAG,MAAM,CAAC;YAC3C,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;QACjD,CAAC;aAAM,CAAC;YACJ,oBAAoB;YACpB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;YAC9B,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAErB,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,GAAG,GAAG,MAAM,CAAC;YACzC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC;QACxC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACH,YAAY,CACR,QAAiC,EACjC,QAAiC,EACjC,WAA8B,EAC9B,SAAiB,EACjB,QAAgB,EAChB,SAAS,GAAG,CAAC,EACb,SAAS,GAAG,CAAC,EACb,YAAY,GAAG,CAAC;QAEhB,MAAM,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC;YACjC,IAAI,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;YAClC,IAAI,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;YAClC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,YAAY,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;YAC3D,QAAQ,CAAC,SAAS,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YAClC,QAAQ,CAAC,SAAS,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACtC,CAAC;IACL,CAAC;CACJ"}
@@ -0,0 +1,69 @@
1
+ import { type Curve } from "./curve.js";
2
+ export declare enum Extrapolation {
3
+ Clamp = 0,
4
+ Loop = 1,
5
+ PingPong = 2
6
+ }
7
+ export interface Keyframe<T> {
8
+ time: number;
9
+ value: T;
10
+ curve?: Curve;
11
+ }
12
+ /**
13
+ * Base temporal sequence track.
14
+ * Stores chronological keyframes and evaluates interval interpolation.
15
+ * Subclasses implement blend(a, b, alpha, out) for concrete data types.
16
+ */
17
+ export declare abstract class Track<T, TOut = T> {
18
+ extrapolation: Extrapolation;
19
+ protected _times: Float64Array;
20
+ protected _values: T[];
21
+ protected _curves: (Curve | undefined)[];
22
+ protected _count: number;
23
+ protected _capacity: number;
24
+ protected _cachedIndex: number;
25
+ constructor(initialCapacity?: number);
26
+ get count(): number;
27
+ get startTime(): number;
28
+ get endTime(): number;
29
+ get duration(): number;
30
+ /**
31
+ * Appends or inserts keyframe maintaining ascending chronological order.
32
+ */
33
+ addKey(time: number, value: T, curve?: Curve): this;
34
+ /**
35
+ * Removes keyframe at specified index.
36
+ */
37
+ removeKey(index: number): boolean;
38
+ /**
39
+ * Clears all keyframes.
40
+ */
41
+ clear(): this;
42
+ /**
43
+ * Retrieves keyframe at index.
44
+ */
45
+ getKey(index: number): Keyframe<T> | undefined;
46
+ /**
47
+ * Samples track value at specified timestamp.
48
+ * Evaluates active interval span, computes shaped alpha, and invokes blend().
49
+ *
50
+ * @param time Sample timestamp
51
+ * @param out Optional pre-allocated destination buffer
52
+ */
53
+ sample(time: number, out?: TOut): TOut;
54
+ /**
55
+ * Subclasses implement value blending between two keyframes.
56
+ *
57
+ * @param a Left keyframe value
58
+ * @param b Right keyframe value
59
+ * @param alpha Shaped interval progress
60
+ * @param out Optional output destination buffer
61
+ */
62
+ abstract blend(a: T, b: T, alpha: number, out?: TOut): TOut;
63
+ /**
64
+ * Fallback value when track contains zero keyframes.
65
+ */
66
+ protected defaultValue(out?: TOut): TOut;
67
+ private _grow;
68
+ }
69
+ //# sourceMappingURL=track.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"track.d.ts","sourceRoot":"","sources":["../../atempo/track.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,YAAY,CAAC;AAExC,oBAAY,aAAa;IACrB,KAAK,IAAI;IACT,IAAI,IAAI;IACR,QAAQ,IAAI;CACf;AAED,MAAM,WAAW,QAAQ,CAAC,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,CAAC,CAAC;IACT,KAAK,CAAC,EAAE,KAAK,CAAC;CACjB;AAED;;;;GAIG;AACH,8BAAsB,KAAK,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC;IACnC,aAAa,EAAE,aAAa,CAAuB;IAEnD,SAAS,CAAC,MAAM,EAAE,YAAY,CAAC;IAC/B,SAAS,CAAC,OAAO,EAAE,CAAC,EAAE,CAAM;IAC5B,SAAS,CAAC,OAAO,EAAE,CAAC,KAAK,GAAG,SAAS,CAAC,EAAE,CAAM;IAC9C,SAAS,CAAC,MAAM,SAAK;IACrB,SAAS,CAAC,SAAS,EAAE,MAAM,CAAC;IAC5B,SAAS,CAAC,YAAY,SAAK;gBAEf,eAAe,SAAK;IAKhC,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED,IAAI,QAAQ,IAAI,MAAM,CAGrB;IAED;;OAEG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,IAAI;IAoCnD;;OAEG;IACH,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAWjC;;OAEG;IACH,KAAK,IAAI,IAAI;IAQb;;OAEG;IACH,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,SAAS;IAS9C;;;;;;OAMG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,IAAI,GAAG,IAAI;IA8DtC;;;;;;;OAOG;IACH,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,IAAI,GAAG,IAAI;IAE3D;;OAEG;IACH,SAAS,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,IAAI;IAIxC,OAAO,CAAC,KAAK;CAMhB"}