@omnimedia/omnitool 1.1.0-9 → 1.1.0-91

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 (448) hide show
  1. package/README.md +358 -73
  2. package/package.json +19 -17
  3. package/s/context.ts +0 -7
  4. package/s/demo/demo.bundle.ts +104 -43
  5. package/s/demo/demo.css +244 -14
  6. package/s/demo/routines/export-test.ts +16 -0
  7. package/s/demo/routines/filmstrip-test.ts +22 -18
  8. package/s/demo/routines/load-video.ts +2 -3
  9. package/s/demo/routines/playback-test.ts +61 -0
  10. package/s/demo/routines/timeline-setup.ts +49 -0
  11. package/s/demo/routines/transcode-test.ts +19 -5
  12. package/s/demo/routines/transitions-test.ts +2 -2
  13. package/s/demo/routines/waveform-test.ts +35 -8
  14. package/s/driver/driver-worker.ts +9 -0
  15. package/s/driver/driver.test.ts +1 -1
  16. package/s/driver/driver.ts +43 -42
  17. package/s/driver/fns/schematic.ts +26 -6
  18. package/s/driver/fns/work.ts +65 -189
  19. package/s/driver/parts/compositor.ts +316 -0
  20. package/s/driver/parts/machina.ts +19 -20
  21. package/s/driver/utils/find-pixi-filter.ts +24 -0
  22. package/s/index.html.ts +103 -25
  23. package/s/index.ts +1 -0
  24. package/s/tests.bundle.ts +11 -0
  25. package/s/tests.html.ts +28 -0
  26. package/s/timeline/index.ts +9 -1
  27. package/s/timeline/parts/animations/make.ts +38 -0
  28. package/s/timeline/parts/animations/presets.ts +138 -0
  29. package/s/timeline/parts/animations/properties.ts +30 -0
  30. package/s/timeline/parts/animations/registry.ts +13 -0
  31. package/s/timeline/parts/animations/types.ts +80 -0
  32. package/s/timeline/parts/filmstrip.ts +43 -16
  33. package/s/timeline/parts/filters.ts +453 -0
  34. package/s/timeline/parts/item.ts +59 -7
  35. package/s/timeline/parts/media.ts +12 -2
  36. package/s/timeline/parts/resource-pool.ts +8 -5
  37. package/s/timeline/parts/resource.ts +3 -0
  38. package/s/timeline/parts/waveform/parts/collect.ts +72 -0
  39. package/s/timeline/parts/waveform/parts/render.ts +45 -0
  40. package/s/timeline/parts/waveform/parts/types.ts +24 -0
  41. package/s/timeline/parts/waveform/waveform.ts +161 -0
  42. package/s/timeline/renderers/export/parts/audio-gain.ts +17 -0
  43. package/s/timeline/renderers/export/parts/audio-mix.ts +133 -0
  44. package/s/timeline/renderers/export/parts/cursor.ts +292 -0
  45. package/s/timeline/renderers/export/parts/produce-audio.ts +64 -0
  46. package/s/timeline/renderers/export/parts/produce-video.ts +49 -0
  47. package/s/timeline/renderers/export/parts/resamplers.ts +48 -0
  48. package/s/timeline/renderers/export/produce.ts +28 -0
  49. package/s/timeline/renderers/parts/handy.ts +418 -0
  50. package/s/timeline/renderers/parts/samplers/audio/parts/find.ts +19 -0
  51. package/s/timeline/renderers/parts/samplers/audio/parts/init.ts +60 -0
  52. package/s/timeline/renderers/parts/samplers/audio/parts/sink.ts +38 -0
  53. package/s/timeline/renderers/parts/samplers/audio/parts/types.ts +16 -0
  54. package/s/timeline/renderers/parts/samplers/audio/sampler.ts +35 -0
  55. package/s/timeline/renderers/parts/samplers/visual/parts/defaults.ts +16 -0
  56. package/s/timeline/renderers/parts/samplers/visual/parts/sample.ts +69 -0
  57. package/s/timeline/renderers/parts/samplers/visual/parts/sequence.ts +111 -0
  58. package/s/timeline/renderers/parts/samplers/visual/parts/sink.ts +38 -0
  59. package/s/timeline/renderers/parts/samplers/visual/parts/transition.ts +28 -0
  60. package/s/timeline/renderers/parts/samplers/visual/parts/types.ts +10 -0
  61. package/s/timeline/renderers/parts/samplers/visual/sampler.ts +28 -0
  62. package/s/timeline/renderers/parts/schedulers.ts +96 -0
  63. package/s/timeline/renderers/player/parts/playback.ts +213 -0
  64. package/s/timeline/renderers/player/player.ts +86 -0
  65. package/s/timeline/renderers/renderers.test.ts +403 -0
  66. package/s/timeline/sugar/helpers.ts +215 -0
  67. package/s/timeline/sugar/o.ts +274 -54
  68. package/s/timeline/sugar/omni.test.ts +210 -0
  69. package/s/timeline/sugar/omni.ts +25 -9
  70. package/s/timeline/types.ts +36 -3
  71. package/s/timeline/utils/anim.ts +63 -0
  72. package/s/timeline/utils/checksum.ts +3 -1
  73. package/s/timeline/utils/datafile.ts +15 -4
  74. package/s/timeline/utils/dummy-data.ts +3 -3
  75. package/s/timeline/utils/matrix.ts +21 -0
  76. package/s/timeline/utils/terps.ts +81 -0
  77. package/s/units/fps.ts +8 -0
  78. package/s/units/ms.ts +8 -0
  79. package/s/units/seconds.ts +8 -0
  80. package/x/WebGLRenderer-4CHIZDHY.js +2 -0
  81. package/x/WebGLRenderer-4CHIZDHY.js.map +7 -0
  82. package/x/WebGPURenderer-O6WXU2QR.js +2 -0
  83. package/x/WebGPURenderer-O6WXU2QR.js.map +7 -0
  84. package/x/browserAll-WNIOTNNP.js +2 -0
  85. package/x/browserAll-WNIOTNNP.js.map +7 -0
  86. package/x/chunk-23FOBGX6.js +2 -0
  87. package/x/chunk-23FOBGX6.js.map +7 -0
  88. package/x/chunk-73XOWA4F.js +393 -0
  89. package/x/chunk-73XOWA4F.js.map +7 -0
  90. package/x/chunk-IAWJKNX5.js +42 -0
  91. package/x/chunk-IAWJKNX5.js.map +7 -0
  92. package/x/chunk-KCMVLWBS.js +157 -0
  93. package/x/chunk-KCMVLWBS.js.map +7 -0
  94. package/x/chunk-MR32SQ27.js +2 -0
  95. package/x/chunk-MR32SQ27.js.map +7 -0
  96. package/x/chunk-VCUJJYRJ.js +327 -0
  97. package/x/chunk-VCUJJYRJ.js.map +7 -0
  98. package/x/chunk-XNIZ4L5W.js +269 -0
  99. package/x/chunk-XNIZ4L5W.js.map +7 -0
  100. package/x/chunk-ZLGNQFUI.js +15 -0
  101. package/x/chunk-ZLGNQFUI.js.map +7 -0
  102. package/x/context.d.ts +1 -4
  103. package/x/context.js +1 -5
  104. package/x/context.js.map +1 -1
  105. package/x/demo/WebGLRenderer-RSJAHIG2.js +2 -0
  106. package/x/demo/WebGLRenderer-RSJAHIG2.js.map +7 -0
  107. package/x/demo/WebGPURenderer-MGFAJCYY.js +2 -0
  108. package/x/demo/WebGPURenderer-MGFAJCYY.js.map +7 -0
  109. package/x/demo/browserAll-PTRBXBRP.js +2 -0
  110. package/x/demo/browserAll-PTRBXBRP.js.map +7 -0
  111. package/x/demo/chunk-CUYOGHWU.js +42 -0
  112. package/x/demo/chunk-CUYOGHWU.js.map +7 -0
  113. package/x/demo/chunk-DGTDNJ7W.js +2 -0
  114. package/x/demo/chunk-DGTDNJ7W.js.map +7 -0
  115. package/x/demo/chunk-FZ5BYF63.js +15 -0
  116. package/x/demo/chunk-FZ5BYF63.js.map +7 -0
  117. package/x/demo/chunk-KWN4NNES.js +269 -0
  118. package/x/demo/chunk-KWN4NNES.js.map +7 -0
  119. package/x/demo/chunk-OJ3FPXW7.js +157 -0
  120. package/x/demo/chunk-OJ3FPXW7.js.map +7 -0
  121. package/x/demo/chunk-PSLUOGTZ.js +393 -0
  122. package/x/demo/chunk-PSLUOGTZ.js.map +7 -0
  123. package/x/demo/chunk-VLCVEIFU.js +327 -0
  124. package/x/demo/chunk-VLCVEIFU.js.map +7 -0
  125. package/x/demo/chunk-ZWCPT5FR.js +2 -0
  126. package/x/demo/chunk-ZWCPT5FR.js.map +7 -0
  127. package/x/demo/demo.bundle.js +94 -40
  128. package/x/demo/demo.bundle.js.map +1 -1
  129. package/x/demo/demo.bundle.min.js +7340 -90
  130. package/x/demo/demo.bundle.min.js.map +4 -4
  131. package/x/demo/demo.css +244 -14
  132. package/x/demo/routines/export-test.d.ts +2 -0
  133. package/x/demo/routines/export-test.js +10 -0
  134. package/x/demo/routines/export-test.js.map +1 -0
  135. package/x/demo/routines/filmstrip-test.d.ts +1 -1
  136. package/x/demo/routines/filmstrip-test.js +20 -17
  137. package/x/demo/routines/filmstrip-test.js.map +1 -1
  138. package/x/demo/routines/load-video.d.ts +1 -1
  139. package/x/demo/routines/load-video.js +1 -2
  140. package/x/demo/routines/load-video.js.map +1 -1
  141. package/x/demo/routines/playback-test.d.ts +2 -0
  142. package/x/demo/routines/playback-test.js +51 -0
  143. package/x/demo/routines/playback-test.js.map +1 -0
  144. package/x/demo/routines/timeline-setup.d.ts +6 -0
  145. package/x/demo/routines/timeline-setup.js +33 -0
  146. package/x/demo/routines/timeline-setup.js.map +1 -0
  147. package/x/demo/routines/transcode-test.js +15 -5
  148. package/x/demo/routines/transcode-test.js.map +1 -1
  149. package/x/demo/routines/transitions-test.js +2 -2
  150. package/x/demo/routines/transitions-test.js.map +1 -1
  151. package/x/demo/routines/waveform-test.d.ts +2 -1
  152. package/x/demo/routines/waveform-test.js +29 -8
  153. package/x/demo/routines/waveform-test.js.map +1 -1
  154. package/x/demo/webworkerAll-JENRT6BT.js +2 -0
  155. package/x/demo/webworkerAll-JENRT6BT.js.map +7 -0
  156. package/x/driver/driver-worker.d.ts +1 -0
  157. package/x/driver/driver-worker.js +6 -0
  158. package/x/driver/driver-worker.js.map +1 -0
  159. package/x/driver/driver.d.ts +25 -8
  160. package/x/driver/driver.js +43 -39
  161. package/x/driver/driver.js.map +1 -1
  162. package/x/driver/driver.test.js +1 -1
  163. package/x/driver/driver.test.js.map +1 -1
  164. package/x/driver/driver.worker.bundle.min.js +117 -3506
  165. package/x/driver/driver.worker.bundle.min.js.map +4 -4
  166. package/x/driver/fns/host.d.ts +3 -2
  167. package/x/driver/fns/schematic.d.ts +25 -4
  168. package/x/driver/fns/work.d.ts +4 -4
  169. package/x/driver/fns/work.js +55 -155
  170. package/x/driver/fns/work.js.map +1 -1
  171. package/x/driver/parts/compositor.d.ts +39 -0
  172. package/x/driver/parts/compositor.js +261 -0
  173. package/x/driver/parts/compositor.js.map +1 -0
  174. package/x/driver/parts/machina.d.ts +0 -20
  175. package/x/driver/parts/machina.js +6 -10
  176. package/x/driver/parts/machina.js.map +1 -1
  177. package/x/driver/utils/find-pixi-filter.d.ts +5 -0
  178. package/x/driver/utils/find-pixi-filter.js +13 -0
  179. package/x/driver/utils/find-pixi-filter.js.map +1 -0
  180. package/x/features/speech/transcribe/parts/prep-audio.d.ts +1 -1
  181. package/x/features/speech/transcribe/worker.bundle.min.js +899 -899
  182. package/x/features/speech/transcribe/worker.bundle.min.js.map +4 -4
  183. package/x/index.d.ts +1 -0
  184. package/x/index.html +347 -38
  185. package/x/index.html.js +103 -24
  186. package/x/index.html.js.map +1 -1
  187. package/x/index.js +1 -0
  188. package/x/index.js.map +1 -1
  189. package/x/tests.bundle.js +8 -0
  190. package/x/tests.bundle.js.map +1 -0
  191. package/x/tests.bundle.min.js +7374 -0
  192. package/x/tests.bundle.min.js.map +7 -0
  193. package/x/tests.html +316 -0
  194. package/x/tests.html.d.ts +2 -0
  195. package/x/tests.html.js +22 -0
  196. package/x/tests.html.js.map +1 -0
  197. package/x/timeline/index.d.ts +8 -0
  198. package/x/timeline/index.js +8 -0
  199. package/x/timeline/index.js.map +1 -1
  200. package/x/timeline/parts/animations/make.d.ts +3 -0
  201. package/x/timeline/parts/animations/make.js +29 -0
  202. package/x/timeline/parts/animations/make.js.map +1 -0
  203. package/x/timeline/parts/animations/presets.d.ts +170 -0
  204. package/x/timeline/parts/animations/presets.js +135 -0
  205. package/x/timeline/parts/animations/presets.js.map +1 -0
  206. package/x/timeline/parts/animations/properties.d.ts +84 -0
  207. package/x/timeline/parts/animations/properties.js +25 -0
  208. package/x/timeline/parts/animations/properties.js.map +1 -0
  209. package/x/timeline/parts/animations/registry.d.ts +218 -0
  210. package/x/timeline/parts/animations/registry.js +11 -0
  211. package/x/timeline/parts/animations/registry.js.map +1 -0
  212. package/x/timeline/parts/animations/types.d.ts +60 -0
  213. package/x/timeline/parts/animations/types.js.map +1 -0
  214. package/x/timeline/parts/filmstrip.d.ts +4 -3
  215. package/x/timeline/parts/filmstrip.js +29 -10
  216. package/x/timeline/parts/filmstrip.js.map +1 -1
  217. package/x/timeline/parts/filters.d.ts +108 -0
  218. package/x/timeline/parts/filters.js +340 -0
  219. package/x/timeline/parts/filters.js.map +1 -0
  220. package/x/timeline/parts/item.d.ts +47 -4
  221. package/x/timeline/parts/item.js +4 -1
  222. package/x/timeline/parts/item.js.map +1 -1
  223. package/x/timeline/parts/media.d.ts +2 -0
  224. package/x/timeline/parts/media.js +11 -2
  225. package/x/timeline/parts/media.js.map +1 -1
  226. package/x/timeline/parts/resource-pool.d.ts +3 -0
  227. package/x/timeline/parts/resource-pool.js +7 -4
  228. package/x/timeline/parts/resource-pool.js.map +1 -1
  229. package/x/timeline/parts/resource.d.ts +3 -0
  230. package/x/timeline/parts/waveform/parts/collect.d.ts +11 -0
  231. package/x/timeline/parts/waveform/parts/collect.js +56 -0
  232. package/x/timeline/parts/waveform/parts/collect.js.map +1 -0
  233. package/x/timeline/parts/waveform/parts/render.d.ts +5 -0
  234. package/x/timeline/parts/waveform/parts/render.js +29 -0
  235. package/x/timeline/parts/waveform/parts/render.js.map +1 -0
  236. package/x/timeline/parts/waveform/parts/types.d.ts +21 -0
  237. package/x/timeline/parts/waveform/parts/types.js +2 -0
  238. package/x/timeline/parts/waveform/parts/types.js.map +1 -0
  239. package/x/timeline/parts/waveform/waveform.d.ts +19 -0
  240. package/x/timeline/parts/waveform/waveform.js +133 -0
  241. package/x/timeline/parts/waveform/waveform.js.map +1 -0
  242. package/x/timeline/renderers/export/parts/audio-gain.d.ts +1 -0
  243. package/x/timeline/renderers/export/parts/audio-gain.js +13 -0
  244. package/x/timeline/renderers/export/parts/audio-gain.js.map +1 -0
  245. package/x/timeline/renderers/export/parts/audio-mix.d.ts +21 -0
  246. package/x/timeline/renderers/export/parts/audio-mix.js +89 -0
  247. package/x/timeline/renderers/export/parts/audio-mix.js.map +1 -0
  248. package/x/timeline/renderers/export/parts/cursor.d.ts +35 -0
  249. package/x/timeline/renderers/export/parts/cursor.js +237 -0
  250. package/x/timeline/renderers/export/parts/cursor.js.map +1 -0
  251. package/x/timeline/renderers/export/parts/produce-audio.d.ts +6 -0
  252. package/x/timeline/renderers/export/parts/produce-audio.js +41 -0
  253. package/x/timeline/renderers/export/parts/produce-audio.js.map +1 -0
  254. package/x/timeline/renderers/export/parts/produce-video.d.ts +10 -0
  255. package/x/timeline/renderers/export/parts/produce-video.js +26 -0
  256. package/x/timeline/renderers/export/parts/produce-video.js.map +1 -0
  257. package/x/timeline/renderers/export/parts/resamplers.d.ts +12 -0
  258. package/x/timeline/renderers/export/parts/resamplers.js +29 -0
  259. package/x/timeline/renderers/export/parts/resamplers.js.map +1 -0
  260. package/x/timeline/renderers/export/produce.d.ts +13 -0
  261. package/x/timeline/renderers/export/produce.js +15 -0
  262. package/x/timeline/renderers/export/produce.js.map +1 -0
  263. package/x/timeline/renderers/parts/handy.d.ts +36 -0
  264. package/x/timeline/renderers/parts/handy.js +254 -0
  265. package/x/timeline/renderers/parts/handy.js.map +1 -0
  266. package/x/timeline/renderers/parts/samplers/audio/parts/find.d.ts +6 -0
  267. package/x/timeline/renderers/parts/samplers/audio/parts/find.js +15 -0
  268. package/x/timeline/renderers/parts/samplers/audio/parts/find.js.map +1 -0
  269. package/x/timeline/renderers/parts/samplers/audio/parts/init.d.ts +5 -0
  270. package/x/timeline/renderers/parts/samplers/audio/parts/init.js +40 -0
  271. package/x/timeline/renderers/parts/samplers/audio/parts/init.js.map +1 -0
  272. package/x/timeline/renderers/parts/samplers/audio/parts/sink.d.ts +8 -0
  273. package/x/timeline/renderers/parts/samplers/audio/parts/sink.js +24 -0
  274. package/x/timeline/renderers/parts/samplers/audio/parts/sink.js.map +1 -0
  275. package/x/timeline/renderers/parts/samplers/audio/parts/types.d.ts +14 -0
  276. package/x/timeline/renderers/parts/samplers/audio/parts/types.js +2 -0
  277. package/x/timeline/renderers/parts/samplers/audio/parts/types.js.map +1 -0
  278. package/x/timeline/renderers/parts/samplers/audio/sampler.d.ts +11 -0
  279. package/x/timeline/renderers/parts/samplers/audio/sampler.js +22 -0
  280. package/x/timeline/renderers/parts/samplers/audio/sampler.js.map +1 -0
  281. package/x/timeline/renderers/parts/samplers/visual/parts/defaults.d.ts +5 -0
  282. package/x/timeline/renderers/parts/samplers/visual/parts/defaults.js +10 -0
  283. package/x/timeline/renderers/parts/samplers/visual/parts/defaults.js.map +1 -0
  284. package/x/timeline/renderers/parts/samplers/visual/parts/sample.d.ts +6 -0
  285. package/x/timeline/renderers/parts/samplers/visual/parts/sample.js +48 -0
  286. package/x/timeline/renderers/parts/samplers/visual/parts/sample.js.map +1 -0
  287. package/x/timeline/renderers/parts/samplers/visual/parts/sequence.d.ts +6 -0
  288. package/x/timeline/renderers/parts/samplers/visual/parts/sequence.js +75 -0
  289. package/x/timeline/renderers/parts/samplers/visual/parts/sequence.js.map +1 -0
  290. package/x/timeline/renderers/parts/samplers/visual/parts/sink.d.ts +8 -0
  291. package/x/timeline/renderers/parts/samplers/visual/parts/sink.js +24 -0
  292. package/x/timeline/renderers/parts/samplers/visual/parts/sink.js.map +1 -0
  293. package/x/timeline/renderers/parts/samplers/visual/parts/transition.d.ts +3 -0
  294. package/x/timeline/renderers/parts/samplers/visual/parts/transition.js +18 -0
  295. package/x/timeline/renderers/parts/samplers/visual/parts/transition.js.map +1 -0
  296. package/x/timeline/renderers/parts/samplers/visual/parts/types.d.ts +8 -0
  297. package/x/timeline/renderers/parts/samplers/visual/parts/types.js +2 -0
  298. package/x/timeline/renderers/parts/samplers/visual/parts/types.js.map +1 -0
  299. package/x/timeline/renderers/parts/samplers/visual/sampler.d.ts +7 -0
  300. package/x/timeline/renderers/parts/samplers/visual/sampler.js +17 -0
  301. package/x/timeline/renderers/parts/samplers/visual/sampler.js.map +1 -0
  302. package/x/timeline/renderers/parts/schedulers.d.ts +17 -0
  303. package/x/timeline/renderers/parts/schedulers.js +64 -0
  304. package/x/timeline/renderers/parts/schedulers.js.map +1 -0
  305. package/x/timeline/renderers/player/parts/playback.d.ts +39 -0
  306. package/x/timeline/renderers/player/parts/playback.js +160 -0
  307. package/x/timeline/renderers/player/parts/playback.js.map +1 -0
  308. package/x/timeline/renderers/player/player.d.ts +27 -0
  309. package/x/timeline/renderers/player/player.js +64 -0
  310. package/x/timeline/renderers/player/player.js.map +1 -0
  311. package/x/timeline/renderers/renderers.test.d.ts +33 -0
  312. package/x/timeline/renderers/renderers.test.js +321 -0
  313. package/x/timeline/renderers/renderers.test.js.map +1 -0
  314. package/x/timeline/sugar/helpers.d.ts +64 -0
  315. package/x/timeline/sugar/helpers.js +114 -0
  316. package/x/timeline/sugar/helpers.js.map +1 -0
  317. package/x/timeline/sugar/o.d.ts +38 -9
  318. package/x/timeline/sugar/o.js +200 -39
  319. package/x/timeline/sugar/o.js.map +1 -1
  320. package/x/timeline/sugar/omni.d.ts +9 -3
  321. package/x/timeline/sugar/omni.js +20 -7
  322. package/x/timeline/sugar/omni.js.map +1 -1
  323. package/x/timeline/sugar/omni.test.d.ts +27 -0
  324. package/x/timeline/sugar/omni.test.js +128 -0
  325. package/x/timeline/sugar/omni.test.js.map +1 -0
  326. package/x/timeline/types.d.ts +15 -2
  327. package/x/timeline/utils/anim.d.ts +3 -0
  328. package/x/timeline/utils/anim.js +40 -0
  329. package/x/timeline/utils/anim.js.map +1 -0
  330. package/x/timeline/utils/checksum.d.ts +3 -2
  331. package/x/timeline/utils/checksum.js.map +1 -1
  332. package/x/timeline/utils/datafile.d.ts +5 -3
  333. package/x/timeline/utils/datafile.js +18 -5
  334. package/x/timeline/utils/datafile.js.map +1 -1
  335. package/x/timeline/utils/dummy-data.d.ts +1 -2
  336. package/x/timeline/utils/dummy-data.js +4 -2
  337. package/x/timeline/utils/dummy-data.js.map +1 -1
  338. package/x/timeline/utils/matrix.d.ts +9 -0
  339. package/x/timeline/utils/matrix.js +10 -0
  340. package/x/timeline/utils/matrix.js.map +1 -1
  341. package/x/timeline/utils/terps.d.ts +11 -0
  342. package/x/timeline/utils/terps.js +57 -0
  343. package/x/timeline/utils/terps.js.map +1 -0
  344. package/x/units/fps.d.ts +6 -0
  345. package/x/units/fps.js +2 -0
  346. package/x/units/fps.js.map +1 -0
  347. package/x/units/ms.d.ts +6 -0
  348. package/x/units/ms.js +2 -0
  349. package/x/units/ms.js.map +1 -0
  350. package/x/units/seconds.d.ts +6 -0
  351. package/x/units/seconds.js +2 -0
  352. package/x/units/seconds.js.map +1 -0
  353. package/x/webworkerAll-RLCTMSDD.js +2 -0
  354. package/x/webworkerAll-RLCTMSDD.js.map +7 -0
  355. package/s/tests.test.ts +0 -8
  356. package/s/timeline/parts/compositor/export.ts +0 -77
  357. package/s/timeline/parts/compositor/parts/html-tree.ts +0 -37
  358. package/s/timeline/parts/compositor/parts/schedulers.ts +0 -85
  359. package/s/timeline/parts/compositor/parts/tree-builder.ts +0 -184
  360. package/s/timeline/parts/compositor/parts/webcodecs-tree.ts +0 -30
  361. package/s/timeline/parts/compositor/playback.ts +0 -81
  362. package/s/timeline/parts/compositor/samplers/html.ts +0 -115
  363. package/s/timeline/parts/compositor/samplers/webcodecs.ts +0 -60
  364. package/s/timeline/parts/waveform.ts +0 -62
  365. package/s/timeline/sugar/builders.ts +0 -102
  366. package/s/timeline/sugar/omni-test.ts +0 -38
  367. package/s/timeline/utils/audio-stream.ts +0 -15
  368. package/s/timeline/utils/video-cursor.ts +0 -40
  369. package/s/tools/common/loader.ts +0 -26
  370. package/s/tools/common/transformer-pipeline.ts +0 -26
  371. package/s/tools/speech-recognition/common/model.ts +0 -26
  372. package/s/tools/speech-recognition/whisper/fns/host.ts +0 -25
  373. package/s/tools/speech-recognition/whisper/fns/schematic.ts +0 -23
  374. package/s/tools/speech-recognition/whisper/fns/work.ts +0 -91
  375. package/s/tools/speech-recognition/whisper/parts/types.ts +0 -38
  376. package/s/tools/speech-recognition/whisper/parts/worker.bundle.ts +0 -7
  377. package/s/tools/speech-recognition/whisper/tool.ts +0 -70
  378. package/x/tests.test.js +0 -6
  379. package/x/tests.test.js.map +0 -1
  380. package/x/timeline/parts/compositor/export.d.ts +0 -9
  381. package/x/timeline/parts/compositor/export.js +0 -64
  382. package/x/timeline/parts/compositor/export.js.map +0 -1
  383. package/x/timeline/parts/compositor/parts/html-tree.d.ts +0 -3
  384. package/x/timeline/parts/compositor/parts/html-tree.js +0 -40
  385. package/x/timeline/parts/compositor/parts/html-tree.js.map +0 -1
  386. package/x/timeline/parts/compositor/parts/schedulers.d.ts +0 -15
  387. package/x/timeline/parts/compositor/parts/schedulers.js +0 -64
  388. package/x/timeline/parts/compositor/parts/schedulers.js.map +0 -1
  389. package/x/timeline/parts/compositor/parts/tree-builder.d.ts +0 -37
  390. package/x/timeline/parts/compositor/parts/tree-builder.js +0 -147
  391. package/x/timeline/parts/compositor/parts/tree-builder.js.map +0 -1
  392. package/x/timeline/parts/compositor/parts/webcodecs-tree.d.ts +0 -3
  393. package/x/timeline/parts/compositor/parts/webcodecs-tree.js +0 -28
  394. package/x/timeline/parts/compositor/parts/webcodecs-tree.js.map +0 -1
  395. package/x/timeline/parts/compositor/playback.d.ts +0 -19
  396. package/x/timeline/parts/compositor/playback.js +0 -71
  397. package/x/timeline/parts/compositor/playback.js.map +0 -1
  398. package/x/timeline/parts/compositor/samplers/html.d.ts +0 -3
  399. package/x/timeline/parts/compositor/samplers/html.js +0 -106
  400. package/x/timeline/parts/compositor/samplers/html.js.map +0 -1
  401. package/x/timeline/parts/compositor/samplers/webcodecs.d.ts +0 -2
  402. package/x/timeline/parts/compositor/samplers/webcodecs.js +0 -55
  403. package/x/timeline/parts/compositor/samplers/webcodecs.js.map +0 -1
  404. package/x/timeline/parts/waveform.d.ts +0 -8
  405. package/x/timeline/parts/waveform.js +0 -51
  406. package/x/timeline/parts/waveform.js.map +0 -1
  407. package/x/timeline/sugar/builders.d.ts +0 -1
  408. package/x/timeline/sugar/builders.js +0 -104
  409. package/x/timeline/sugar/builders.js.map +0 -1
  410. package/x/timeline/sugar/omni-test.d.ts +0 -1
  411. package/x/timeline/sugar/omni-test.js +0 -22
  412. package/x/timeline/sugar/omni-test.js.map +0 -1
  413. package/x/timeline/utils/audio-stream.d.ts +0 -6
  414. package/x/timeline/utils/audio-stream.js +0 -17
  415. package/x/timeline/utils/audio-stream.js.map +0 -1
  416. package/x/timeline/utils/video-cursor.d.ts +0 -10
  417. package/x/timeline/utils/video-cursor.js +0 -36
  418. package/x/timeline/utils/video-cursor.js.map +0 -1
  419. package/x/tools/common/loader.d.ts +0 -19
  420. package/x/tools/common/loader.js +0 -18
  421. package/x/tools/common/loader.js.map +0 -1
  422. package/x/tools/common/transformer-pipeline.d.ts +0 -8
  423. package/x/tools/common/transformer-pipeline.js +0 -24
  424. package/x/tools/common/transformer-pipeline.js.map +0 -1
  425. package/x/tools/speech-recognition/common/model.d.ts +0 -14
  426. package/x/tools/speech-recognition/common/model.js +0 -16
  427. package/x/tools/speech-recognition/common/model.js.map +0 -1
  428. package/x/tools/speech-recognition/whisper/fns/host.d.ts +0 -13
  429. package/x/tools/speech-recognition/whisper/fns/host.js +0 -19
  430. package/x/tools/speech-recognition/whisper/fns/host.js.map +0 -1
  431. package/x/tools/speech-recognition/whisper/fns/schematic.d.ts +0 -19
  432. package/x/tools/speech-recognition/whisper/fns/schematic.js +0 -2
  433. package/x/tools/speech-recognition/whisper/fns/schematic.js.map +0 -1
  434. package/x/tools/speech-recognition/whisper/fns/work.d.ts +0 -12
  435. package/x/tools/speech-recognition/whisper/fns/work.js +0 -74
  436. package/x/tools/speech-recognition/whisper/fns/work.js.map +0 -1
  437. package/x/tools/speech-recognition/whisper/parts/types.d.ts +0 -31
  438. package/x/tools/speech-recognition/whisper/parts/types.js.map +0 -1
  439. package/x/tools/speech-recognition/whisper/parts/worker.bundle.d.ts +0 -1
  440. package/x/tools/speech-recognition/whisper/parts/worker.bundle.js +0 -4
  441. package/x/tools/speech-recognition/whisper/parts/worker.bundle.js.map +0 -1
  442. package/x/tools/speech-recognition/whisper/parts/worker.bundle.min.js +0 -8
  443. package/x/tools/speech-recognition/whisper/parts/worker.bundle.min.js.map +0 -7
  444. package/x/tools/speech-recognition/whisper/tool.d.ts +0 -12
  445. package/x/tools/speech-recognition/whisper/tool.js +0 -63
  446. package/x/tools/speech-recognition/whisper/tool.js.map +0 -1
  447. /package/x/{tests.test.d.ts → tests.bundle.d.ts} +0 -0
  448. /package/x/{tools/speech-recognition/whisper/parts → timeline/parts/animations}/types.js +0 -0
@@ -0,0 +1,138 @@
1
+
2
+ import type {AnimationPresetDefinition} from "./types.js"
3
+
4
+ export const animationPresets = {
5
+ slideIn: {
6
+ type: "motion",
7
+ label: "Slide in",
8
+ defaults: {
9
+ duration: 700,
10
+ from: [-400, 0],
11
+ to: [0, 0],
12
+ terp: "easeOut",
13
+ },
14
+ transform: {
15
+ from: {position: [-400, 0]},
16
+ to: {position: [0, 0]},
17
+ },
18
+ },
19
+ slideOut: {
20
+ type: "motion",
21
+ label: "Slide out",
22
+ defaults: {
23
+ duration: 700,
24
+ from: [0, 0],
25
+ to: [400, 0],
26
+ terp: "easeIn",
27
+ },
28
+ transform: {
29
+ from: {position: [0, 0]},
30
+ to: {position: [400, 0]},
31
+ },
32
+ },
33
+ spinIn: {
34
+ type: "motion",
35
+ label: "Spin in",
36
+ defaults: {
37
+ duration: 700,
38
+ from: [0, 0],
39
+ to: [0, 0],
40
+ terp: "easeOut",
41
+ },
42
+ transform: {
43
+ from: {scale: [0, 0], rotation: -180},
44
+ to: {scale: [1, 1], rotation: 0},
45
+ },
46
+ },
47
+ spinOut: {
48
+ type: "motion",
49
+ label: "Spin out",
50
+ defaults: {
51
+ duration: 700,
52
+ from: [0, 0],
53
+ to: [0, 0],
54
+ terp: "easeIn",
55
+ },
56
+ transform: {
57
+ from: {scale: [1, 1], rotation: 0},
58
+ to: {scale: [0, 0], rotation: 180},
59
+ },
60
+ },
61
+ zoomIn: {
62
+ type: "motion",
63
+ label: "Zoom in",
64
+ defaults: {
65
+ duration: 700,
66
+ from: [0, 0],
67
+ to: [0, 0],
68
+ terp: "easeOut",
69
+ },
70
+ transform: {
71
+ from: {scale: [0, 0]},
72
+ to: {scale: [1, 1]},
73
+ },
74
+ },
75
+ zoomOut: {
76
+ type: "motion",
77
+ label: "Zoom out",
78
+ defaults: {
79
+ duration: 700,
80
+ from: [0, 0],
81
+ to: [0, 0],
82
+ terp: "easeIn",
83
+ },
84
+ transform: {
85
+ from: {scale: [1, 1]},
86
+ to: {scale: [0, 0]},
87
+ },
88
+ },
89
+ bounceIn: {
90
+ type: "motion",
91
+ label: "Bounce in",
92
+ defaults: {
93
+ duration: 700,
94
+ from: [0, 0],
95
+ to: [0, 0],
96
+ terp: "bounce",
97
+ },
98
+ transform: {
99
+ from: {scale: [0, 0]},
100
+ to: {scale: [1, 1]},
101
+ },
102
+ },
103
+ bounceOut: {
104
+ type: "motion",
105
+ label: "Bounce out",
106
+ defaults: {
107
+ duration: 700,
108
+ from: [0, 0],
109
+ to: [0, 0],
110
+ terp: "bounce",
111
+ },
112
+ transform: {
113
+ from: {scale: [1, 1]},
114
+ to: {scale: [0, 0]},
115
+ },
116
+ },
117
+ fadeIn: {
118
+ type: "scalar",
119
+ label: "Fade in",
120
+ defaults: {
121
+ duration: 700,
122
+ from: 0,
123
+ to: 1,
124
+ terp: "easeIn",
125
+ },
126
+ },
127
+ fadeOut: {
128
+ type: "scalar",
129
+ label: "Fade out",
130
+ defaults: {
131
+ duration: 700,
132
+ from: 1,
133
+ to: 0,
134
+ terp: "easeOut",
135
+ },
136
+ },
137
+ } as const satisfies Record<string, AnimationPresetDefinition>
138
+
@@ -0,0 +1,30 @@
1
+
2
+ import type {AnimationDefinition} from "./types.js"
3
+
4
+ export const visualAnimations = {
5
+ transform: {
6
+ type: "transform",
7
+ defaultTerp: "linear",
8
+ channels: [
9
+ {path: "position.x", type: "number", default: 0, unit: "pixel"},
10
+ {path: "position.y", type: "number", default: 0, unit: "pixel"},
11
+ {path: "scale.x", type: "number", default: 1, unit: "scale"},
12
+ {path: "scale.y", type: "number", default: 1, unit: "scale"},
13
+ {path: "rotation", type: "number", default: 0, unit: "degree"},
14
+ ],
15
+ },
16
+ opacity: {
17
+ type: "scalar",
18
+ defaultTerp: "linear",
19
+ channels: [
20
+ {type: "number", default: 1, unit: "ratio", range: [0, 1]},
21
+ ],
22
+ },
23
+ } as const satisfies Record<string, AnimationDefinition>
24
+
25
+ // const audioAnimations = {}
26
+
27
+ export const animatableProperties = {
28
+ ...visualAnimations,
29
+ } as const
30
+
@@ -0,0 +1,13 @@
1
+
2
+ import {animationPresets} from "./presets.js"
3
+ import {animatableProperties} from "./properties.js"
4
+
5
+ export const animationRegistry = {
6
+ presets: animationPresets,
7
+ properties: animatableProperties,
8
+ } as const
9
+
10
+ export * from "./make.js"
11
+ export * from "./presets.js"
12
+ export * from "./properties.js"
13
+ export * from "./types.js"
@@ -0,0 +1,80 @@
1
+
2
+ import {animationPresets} from "./presets.js"
3
+ import type {Item, VisualAnimatableItem} from "../item.js"
4
+ import {visualAnimations, animatableProperties} from "./properties.js"
5
+ import type {Anim, Interpolation, Keyframes, ScalarAnimation, TrackTransform, TransformAnimation, TransformOptions, Vec2} from "../../types.js"
6
+
7
+ export type AnimationType = "scalar" | "transform"
8
+ export type AnimationChannelType = "number"
9
+ export type AnimationUnit = "pixel" | "scale" | "degree" | "ratio"
10
+
11
+ export type AnimationChannel = {
12
+ path?: string
13
+ type: AnimationChannelType
14
+ default: number
15
+ unit?: AnimationUnit
16
+ range?: readonly [min: number, max: number]
17
+ }
18
+
19
+ export type AnimationDefinition = {
20
+ type: AnimationType
21
+ defaultTerp: Interpolation
22
+ channels: readonly AnimationChannel[]
23
+ }
24
+
25
+ export type MotionAnimationPresetDefinition = {
26
+ type: "motion"
27
+ label: string
28
+ defaults: Required<Omit<MotionAnimationOptions, "offset">>
29
+ transform: {
30
+ from: TransformOptions
31
+ to: TransformOptions
32
+ }
33
+ }
34
+
35
+ export type ScalarAnimationPresetDefinition = {
36
+ type: "scalar"
37
+ label: string
38
+ defaults: Required<Omit<ScalarAnimationOptions, "offset">>
39
+ }
40
+
41
+ export type AnimationPresetDefinition =
42
+ | MotionAnimationPresetDefinition
43
+ | ScalarAnimationPresetDefinition
44
+
45
+ export type VisualAnimationProperty = keyof typeof visualAnimations
46
+ export type AnimationProperty = keyof typeof animatableProperties
47
+ export type AnimationPreset = keyof typeof animationPresets
48
+
49
+ type AnimationPresetAction<TPreset extends AnimationPresetDefinition> =
50
+ TPreset extends MotionAnimationPresetDefinition
51
+ ? (options?: MotionAnimationOptions) => Anim<TrackTransform>
52
+ : TPreset extends ScalarAnimationPresetDefinition
53
+ ? (options?: ScalarAnimationOptions) => Anim<Keyframes>
54
+ : never
55
+
56
+ export type AnimationPresetActions = {
57
+ [TName in AnimationPreset]: AnimationPresetAction<(typeof animationPresets)[TName]>
58
+ }
59
+
60
+ export type AnimationPresetOptions<Value> = {
61
+ duration?: number
62
+ offset?: number
63
+ from?: Value
64
+ to?: Value
65
+ terp?: Interpolation
66
+ }
67
+
68
+ export type MotionAnimationOptions = AnimationPresetOptions<Vec2>
69
+ export type ScalarAnimationOptions = AnimationPresetOptions<number>
70
+ export type PresetAnimation = ScalarAnimation | TransformAnimation
71
+ export type PresetOptions = MotionAnimationOptions | ScalarAnimationOptions
72
+
73
+ export interface PresetAnimateAction {
74
+ <T extends VisualAnimatableItem>(item: T, options?: PresetOptions): T
75
+ make(options?: PresetOptions): Item.Animation
76
+ }
77
+
78
+ export type PresetAnimateActions = {
79
+ [TKey in AnimationPreset]: PresetAnimateAction
80
+ }
@@ -17,7 +17,7 @@ export class Filmstrip {
17
17
 
18
18
  private constructor(
19
19
  private videoTrack: InputVideoTrack,
20
- private options: Required<FilmstripOptions>
20
+ private options: FilmstripOptions
21
21
  ) {
22
22
  this.#sink = new CanvasSink(videoTrack, options.canvasSinkOptions)
23
23
  }
@@ -33,7 +33,8 @@ export class Filmstrip {
33
33
  videoTrack, {
34
34
  frequency: options.frequency ?? 1,
35
35
  canvasSinkOptions: options.canvasSinkOptions ?? {width: 80, height: 50, fit: "fill"},
36
- onChange: options.onChange
36
+ onChange: options.onChange,
37
+ onPlaceholders: options.onPlaceholders
37
38
  })
38
39
  else throw new Error("Source has no video track")
39
40
  }
@@ -54,9 +55,28 @@ export class Filmstrip {
54
55
  return this.options.frequency
55
56
  }
56
57
 
57
- #computeActiveRange([start, end]: TimeRange): TimeRange {
58
+ #computeActiveRange([start, end]: TimeRange, margin = 1): TimeRange {
58
59
  const tileSize = end - start
59
- return [start - tileSize, end + tileSize]
60
+ return [start - tileSize * margin, end + tileSize * margin]
61
+ }
62
+
63
+ async #generatePlaceholders() {
64
+ const [rangeStart, rangeEnd] = this.#activeRange
65
+ const neededTimestamps = new Set<number>()
66
+
67
+ // duration should be computed but with trim etc also
68
+ const duration = await this.videoTrack.computeDuration()
69
+ for (
70
+ let timestamp = Math.max(0, rangeStart);
71
+ timestamp <= rangeEnd;
72
+ timestamp += this.options.frequency
73
+ ) {
74
+ // Clamp to valid time range
75
+ if (timestamp >= 0 && timestamp <= duration)
76
+ neededTimestamps.add(timestamp)
77
+ }
78
+
79
+ this.options.onPlaceholders?.([...neededTimestamps])
60
80
  }
61
81
 
62
82
  async #generateTiles() {
@@ -66,13 +86,13 @@ export class Filmstrip {
66
86
  // duration should be computed but with trim etc also
67
87
  const duration = await this.videoTrack.computeDuration()
68
88
  for (
69
- let timestamp = rangeStart;
89
+ let timestamp = Math.max(0, rangeStart);
70
90
  timestamp <= rangeEnd;
71
91
  timestamp += this.options.frequency
72
92
  ) {
73
93
  // Clamp to valid time range
74
94
  if (timestamp >= 0 && timestamp <= duration)
75
- neededTimestamps.add(+timestamp.toFixed(3))
95
+ neededTimestamps.add(timestamp)
76
96
  }
77
97
 
78
98
  const missingTimestamps = [...neededTimestamps]
@@ -106,15 +126,20 @@ export class Filmstrip {
106
126
  * @param visibleRange - The current timeline viewport as a [start, end] tuple in seconds.
107
127
  */
108
128
  set range(visibleRange: TimeRange) {
109
- const newRange = this.#computeActiveRange(visibleRange)
110
- // Avoid redundant updates
111
- if (
112
- this.#activeRange[0] === newRange[0] &&
113
- this.#activeRange[1] === newRange[1]
114
- )
115
- return
129
+ const [visStart, visEnd] = visibleRange
130
+ const visibleSize = visEnd - visStart
131
+ const [actStart, actEnd] = this.#activeRange
132
+
133
+ // trigger when we're 1x visible width away from margin edges
134
+ const leftTrigger = actStart + visibleSize
135
+ const rightTrigger = actEnd - visibleSize
136
+
137
+ const nearLeftEdge = visStart < leftTrigger
138
+ const nearRightEdge = visEnd > rightTrigger
139
+
140
+ if (!nearLeftEdge && !nearRightEdge) return
116
141
 
117
- this.#activeRange = newRange
142
+ this.#activeRange = this.#computeActiveRange(visibleRange, 2)
118
143
  this.#update()
119
144
  }
120
145
 
@@ -122,6 +147,7 @@ export class Filmstrip {
122
147
  #shouldRunAgain = false
123
148
 
124
149
  async #update() {
150
+ this.#generatePlaceholders()
125
151
  // Perform update immediately. If multiple updates are requested while updating,
126
152
  // only the latest one will run after the current finishes (skips intermediate ones).
127
153
  if(this.#updating) {
@@ -147,11 +173,12 @@ export class Filmstrip {
147
173
  }
148
174
  }
149
175
 
150
- type TimeRange = [number, number]
176
+ export type TimeRange = [start: number, end: number]
151
177
 
152
178
  interface FilmstripOptions {
153
- frequency?: number
179
+ frequency: number
154
180
  canvasSinkOptions?: CanvasSinkOptions
181
+ onPlaceholders?: (timestamps: number[]) => void
155
182
  onChange: (tiles: {
156
183
  time: number
157
184
  canvas: WrappedCanvas