framefields 2.10.0-canary.0 → 2.12.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 (432) hide show
  1. package/dist/audio/index.d.mts +4 -4
  2. package/dist/audio/index.mjs +10 -10
  3. package/dist/{audio-YpBRdI7r.mjs → audio-DHLoNcxD.mjs} +31 -5
  4. package/dist/audio-DHLoNcxD.mjs.map +1 -0
  5. package/dist/audio-afTBdB3U.d.mts +62 -0
  6. package/dist/audio-afTBdB3U.d.mts.map +1 -0
  7. package/dist/cli/check-worker.mjs +43 -43
  8. package/dist/cli.mjs +174 -83
  9. package/dist/cli.mjs.map +1 -1
  10. package/dist/cloud/index.d.mts +14 -3
  11. package/dist/cloud/index.d.mts.map +1 -1
  12. package/dist/cloud/index.mjs +2 -2
  13. package/dist/{cloud-xcfV4J03.mjs → cloud-COid1Ipa.mjs} +169 -16
  14. package/dist/cloud-COid1Ipa.mjs.map +1 -0
  15. package/dist/components/index.d.mts +8 -8
  16. package/dist/components/index.mjs +42 -42
  17. package/dist/{dist-C4Vxgm0Q.mjs → dist-B-OPY7Cs.mjs} +373 -13
  18. package/dist/dist-B-OPY7Cs.mjs.map +1 -0
  19. package/dist/{dist-Cu1fZ9Uy.mjs → dist-BSqeChht.mjs} +2 -2
  20. package/dist/{dist-Cu1fZ9Uy.mjs.map → dist-BSqeChht.mjs.map} +1 -1
  21. package/dist/effects/index.d.mts +4 -4
  22. package/dist/effects/index.mjs +34 -34
  23. package/dist/{effects-DiWYouOK.mjs → effects-C8CL9cOq.mjs} +2 -2
  24. package/dist/{effects-DiWYouOK.mjs.map → effects-C8CL9cOq.mjs.map} +1 -1
  25. package/dist/fonts/index.mjs +2 -2
  26. package/dist/{fonts-BnV-GB1o.mjs → fonts-BQrDjnpV.mjs} +2 -2
  27. package/dist/{fonts-BnV-GB1o.mjs.map → fonts-BQrDjnpV.mjs.map} +1 -1
  28. package/dist/{gpu-Bw35AMwY.mjs → gpu-DHa-3Dou.mjs} +2 -2
  29. package/dist/{gpu-Bw35AMwY.mjs.map → gpu-DHa-3Dou.mjs.map} +1 -1
  30. package/dist/{index-Dyt4yS-x.d.mts → index-BNClElng.d.mts} +467 -465
  31. package/dist/index-BNClElng.d.mts.map +1 -0
  32. package/dist/{index-Bbv0VtxJ.d.mts → index-CAuNuvIg.d.mts} +3 -3
  33. package/dist/{index-Bbv0VtxJ.d.mts.map → index-CAuNuvIg.d.mts.map} +1 -1
  34. package/dist/index-COYNQ_mf.d.mts.map +1 -1
  35. package/dist/{index-CDQrdZ0J.d.mts → index-CTv9ZieD.d.mts} +2 -2
  36. package/dist/{index-CDQrdZ0J.d.mts.map → index-CTv9ZieD.d.mts.map} +1 -1
  37. package/dist/{index-h7m8QgcL.d.mts → index-Drk6HC2k.d.mts} +2 -2
  38. package/dist/{index-h7m8QgcL.d.mts.map → index-Drk6HC2k.d.mts.map} +1 -1
  39. package/dist/{index-B7WqFBZA.d.mts → index-Fliv2Z-w.d.mts} +22 -2
  40. package/dist/index-Fliv2Z-w.d.mts.map +1 -0
  41. package/dist/index.d.mts +9 -9
  42. package/dist/index.mjs +49 -49
  43. package/dist/preview/index.d.mts +1 -1
  44. package/dist/preview/index.mjs +10 -10
  45. package/dist/{preview-BW7ilNWk.mjs → preview-BUtt481A.mjs} +2 -2
  46. package/dist/{preview-BW7ilNWk.mjs.map → preview-BUtt481A.mjs.map} +1 -1
  47. package/dist/preview-engine/audio.mjs +1 -1
  48. package/dist/preview-engine/{chunk-OD4CSXZL.mjs → chunk-35XSD4QM.mjs} +1 -1
  49. package/dist/preview-engine/{chunk-V5HU6NIW.mjs → chunk-3DOIE4DV.mjs} +1 -1
  50. package/dist/preview-engine/{chunk-L2NTIWW5.mjs → chunk-3IT7LHWR.mjs} +1 -1
  51. package/dist/preview-engine/{chunk-6LBFSGCI.mjs → chunk-3MLGWUSK.mjs} +1 -1
  52. package/dist/preview-engine/{chunk-57WXGYEV.mjs → chunk-3QJ5GRBH.mjs} +1 -1
  53. package/dist/preview-engine/{chunk-6O55UROD.mjs → chunk-3QTHW2CD.mjs} +1 -1
  54. package/dist/preview-engine/{chunk-HO7FXISJ.mjs → chunk-4JNIEQS2.mjs} +1 -1
  55. package/dist/preview-engine/{chunk-JFBSNFN6.mjs → chunk-6B3NOY5W.mjs} +1 -1
  56. package/dist/preview-engine/{chunk-HPQDCC4S.mjs → chunk-6O7UDVNL.mjs} +1 -1
  57. package/dist/preview-engine/{chunk-T6L3DO3H.mjs → chunk-74J4DJQA.mjs} +1 -1
  58. package/dist/preview-engine/{chunk-JSKEVYKD.mjs → chunk-AKVRG7UU.mjs} +1 -1
  59. package/dist/preview-engine/{chunk-4BWBX2HM.mjs → chunk-CRBOK3JT.mjs} +1 -1
  60. package/dist/preview-engine/{chunk-JIPMF42Z.mjs → chunk-D6LM7DTJ.mjs} +2 -2
  61. package/dist/preview-engine/{chunk-HGWT3RVQ.mjs → chunk-E7BKWHOT.mjs} +1 -1
  62. package/dist/preview-engine/{chunk-4FACCLLE.mjs → chunk-EWDJMJO5.mjs} +1 -1
  63. package/dist/preview-engine/{chunk-6BE3IL7L.mjs → chunk-EYE3GNL5.mjs} +1 -1
  64. package/dist/preview-engine/{chunk-7A3BNAWY.mjs → chunk-EYKN2VET.mjs} +1 -1
  65. package/dist/preview-engine/chunk-FJTURGJV.mjs +107 -0
  66. package/dist/preview-engine/{chunk-5Y7SO37Q.mjs → chunk-G4ZTSLZU.mjs} +1 -1
  67. package/dist/preview-engine/{chunk-C2GX5L5S.mjs → chunk-GAMAKN5L.mjs} +1 -1
  68. package/dist/preview-engine/{chunk-VVY4PG5E.mjs → chunk-GXFYRMJZ.mjs} +25 -25
  69. package/dist/preview-engine/{chunk-RAW2I27S.mjs → chunk-HTAHYSCW.mjs} +1 -1
  70. package/dist/preview-engine/{chunk-NTTEGJD6.mjs → chunk-ICWD36H6.mjs} +1 -1
  71. package/dist/preview-engine/{chunk-K3TJJXVC.mjs → chunk-JAUMCOOJ.mjs} +1 -1
  72. package/dist/preview-engine/{chunk-4DSOZ5QG.mjs → chunk-KBCZKIIQ.mjs} +1 -1
  73. package/dist/preview-engine/{chunk-WVIDORLK.mjs → chunk-KDCM7S3S.mjs} +1 -1
  74. package/dist/preview-engine/{chunk-ZGEKF34E.mjs → chunk-KIPXBOYG.mjs} +10 -10
  75. package/dist/preview-engine/{chunk-HKYENGC5.mjs → chunk-M4QVCQ3O.mjs} +1 -1
  76. package/dist/preview-engine/{chunk-4N25ZU43.mjs → chunk-NJO2BIJX.mjs} +1 -1
  77. package/dist/preview-engine/{chunk-6SLCECHG.mjs → chunk-NTSALWFF.mjs} +1 -1
  78. package/dist/preview-engine/{chunk-7HW7GA76.mjs → chunk-O75BFM4S.mjs} +1 -1
  79. package/dist/preview-engine/{chunk-YXCTOCQ2.mjs → chunk-ONHY4KNY.mjs} +1 -1
  80. package/dist/preview-engine/{chunk-XCQ7KN4S.mjs → chunk-QPT2Y2GZ.mjs} +1 -1
  81. package/dist/preview-engine/{chunk-ZA5LWHRM.mjs → chunk-QXLFTCLC.mjs} +1 -1
  82. package/dist/preview-engine/{chunk-FW2UDDUT.mjs → chunk-RGKS6YIA.mjs} +1 -1
  83. package/dist/preview-engine/{chunk-VRJBOFFY.mjs → chunk-RN7J5TRU.mjs} +1 -1
  84. package/dist/preview-engine/{chunk-LBP7E7SJ.mjs → chunk-RVCLMO5Q.mjs} +1 -1
  85. package/dist/preview-engine/{chunk-K3C6GUQD.mjs → chunk-SE2C623Z.mjs} +1 -1
  86. package/dist/preview-engine/{chunk-LTR5FXGU.mjs → chunk-SFHWP65D.mjs} +1 -1
  87. package/dist/preview-engine/{chunk-ML7WO27M.mjs → chunk-TKXOSEIJ.mjs} +1 -1
  88. package/dist/preview-engine/{chunk-4TPXZNVR.mjs → chunk-UKZVUYB6.mjs} +1 -1
  89. package/dist/preview-engine/{chunk-IVAA5X5H.mjs → chunk-UVEDFIPN.mjs} +1 -1
  90. package/dist/preview-engine/{chunk-FH72KTSM.mjs → chunk-VUO4K52B.mjs} +1 -1
  91. package/dist/preview-engine/{chunk-OOUDE4XL.mjs → chunk-W4XR6F5G.mjs} +1 -1
  92. package/dist/preview-engine/{chunk-RMHL4XZ3.mjs → chunk-WPYWCWWL.mjs} +1 -1
  93. package/dist/preview-engine/{chunk-CHXR5XZK.mjs → chunk-YAPGJZPI.mjs} +1 -1
  94. package/dist/preview-engine/{chunk-4RLKHFV6.mjs → chunk-YJ4DSRDY.mjs} +1 -1
  95. package/dist/preview-engine/{chunk-Y2SWIWIU.mjs → chunk-YOJKIMU5.mjs} +1 -1
  96. package/dist/preview-engine/{chunk-YS3ROS25.mjs → chunk-ZHNEZZ6A.mjs} +1 -1
  97. package/dist/preview-engine/{chunk-EKEKYGXE.mjs → chunk-ZZMI3WOT.mjs} +1 -1
  98. package/dist/preview-engine/components.mjs +1 -1
  99. package/dist/preview-engine/effects.mjs +1 -1
  100. package/dist/preview-engine/framefields.mjs +1 -1
  101. package/dist/preview-engine/player.mjs +1 -1
  102. package/dist/preview-engine/{renderers-36P2TKPC.mjs → renderers-3FZVDYRQ.mjs} +1 -1
  103. package/dist/preview-engine/renderers-3KEBYOOF.mjs +1 -0
  104. package/dist/preview-engine/{renderers-JZYHX4XI.mjs → renderers-4RPQSUUZ.mjs} +1 -1
  105. package/dist/preview-engine/renderers-5EGFXFPF.mjs +1 -0
  106. package/dist/preview-engine/renderers-5SJHYUTM.mjs +1 -0
  107. package/dist/preview-engine/renderers-66MWDUN6.mjs +1 -0
  108. package/dist/preview-engine/{renderers-CMBI4JOC.mjs → renderers-6FENMFSC.mjs} +1 -1
  109. package/dist/preview-engine/renderers-77OXJ2GY.mjs +1 -0
  110. package/dist/preview-engine/renderers-7LI4QKHO.mjs +1 -0
  111. package/dist/preview-engine/{renderers-6RRWA33X.mjs → renderers-AIZRIW2R.mjs} +1 -1
  112. package/dist/preview-engine/{renderers-UBIFSF37.mjs → renderers-BDI2BDBA.mjs} +1 -1
  113. package/dist/preview-engine/renderers-BDXCO6NR.mjs +1 -0
  114. package/dist/preview-engine/{renderers-OPRXVIGT.mjs → renderers-BUZ67FNZ.mjs} +1 -1
  115. package/dist/preview-engine/renderers-DMTGKURQ.mjs +1 -0
  116. package/dist/preview-engine/{renderers-AUYCQNSS.mjs → renderers-ECXMT5BD.mjs} +1 -1
  117. package/dist/preview-engine/{renderers-4WFRXGMR.mjs → renderers-EVEWFJ7U.mjs} +1 -1
  118. package/dist/preview-engine/renderers-F6PT2LON.mjs +1 -0
  119. package/dist/preview-engine/renderers-F7WPJXKT.mjs +1 -0
  120. package/dist/preview-engine/renderers-FIFF267S.mjs +1 -0
  121. package/dist/preview-engine/{renderers-CQIPHCIW.mjs → renderers-FQISHQEN.mjs} +1 -1
  122. package/dist/preview-engine/{renderers-YJ4PJEPG.mjs → renderers-FXAVFNUN.mjs} +1 -1
  123. package/dist/preview-engine/{renderers-4SNAK77B.mjs → renderers-GITAVRYZ.mjs} +1 -1
  124. package/dist/preview-engine/renderers-GTKRV225.mjs +1 -0
  125. package/dist/preview-engine/{renderers-RQ3JZE3L.mjs → renderers-HG6JZIZO.mjs} +1 -1
  126. package/dist/preview-engine/{renderers-OZKPOUMW.mjs → renderers-HHWMIDN3.mjs} +1 -1
  127. package/dist/preview-engine/renderers-HI3SRJVD.mjs +1 -0
  128. package/dist/preview-engine/renderers-HXEDI4BD.mjs +1 -0
  129. package/dist/preview-engine/{renderers-LF6U4MR5.mjs → renderers-I2ZOUFRU.mjs} +1 -1
  130. package/dist/preview-engine/renderers-JHFD4LHZ.mjs +1 -0
  131. package/dist/preview-engine/renderers-KGVZUFHD.mjs +1 -0
  132. package/dist/preview-engine/{renderers-G2FL3IFD.mjs → renderers-KKULMOV4.mjs} +1 -1
  133. package/dist/preview-engine/{renderers-JALV3B3A.mjs → renderers-KMVMPYY7.mjs} +1 -1
  134. package/dist/preview-engine/renderers-L6GFGHS6.mjs +1 -0
  135. package/dist/preview-engine/renderers-LN7WPG6I.mjs +1 -0
  136. package/dist/preview-engine/{renderers-37Y5LR2S.mjs → renderers-LWW4RF6D.mjs} +1 -1
  137. package/dist/preview-engine/renderers-LY57CZZB.mjs +1 -0
  138. package/dist/preview-engine/renderers-MBMJWZEW.mjs +1 -0
  139. package/dist/preview-engine/{renderers-6RYIPQ7W.mjs → renderers-MPFU74I3.mjs} +1 -1
  140. package/dist/preview-engine/{renderers-TKHQRERE.mjs → renderers-MW53LTMB.mjs} +1 -1
  141. package/dist/preview-engine/{renderers-Q5YCUPYE.mjs → renderers-PC2GOZDT.mjs} +1 -1
  142. package/dist/preview-engine/renderers-PREFONJG.mjs +1 -0
  143. package/dist/preview-engine/{renderers-WG756VF3.mjs → renderers-PSBTV2DO.mjs} +1 -1
  144. package/dist/preview-engine/{renderers-XZ3XDQIN.mjs → renderers-Q77UPEYE.mjs} +1 -1
  145. package/dist/preview-engine/renderers-QHXCFDHI.mjs +1 -0
  146. package/dist/preview-engine/renderers-R22CDFO4.mjs +1 -0
  147. package/dist/preview-engine/renderers-RDYJRNAR.mjs +1 -0
  148. package/dist/preview-engine/renderers-RENLKAA7.mjs +1 -0
  149. package/dist/preview-engine/{renderers-U4S577ON.mjs → renderers-RIPXT4AL.mjs} +1 -1
  150. package/dist/preview-engine/{renderers-ZQVKE5AO.mjs → renderers-SFVFAS3C.mjs} +1 -1
  151. package/dist/preview-engine/{renderers-5K3BSBI6.mjs → renderers-SWQVCJHB.mjs} +1 -1
  152. package/dist/preview-engine/renderers-SZVDZDY7.mjs +1 -0
  153. package/dist/preview-engine/renderers-TEKHQHCL.mjs +1 -0
  154. package/dist/preview-engine/renderers-TS32FDV7.mjs +1 -0
  155. package/dist/preview-engine/renderers-TYSLUZ53.mjs +1 -0
  156. package/dist/preview-engine/renderers-U3RLYFCN.mjs +1 -0
  157. package/dist/preview-engine/{renderers-PGZDFDSC.mjs → renderers-U4IXWMD6.mjs} +1 -1
  158. package/dist/preview-engine/renderers-V5HM6PZ2.mjs +1 -0
  159. package/dist/preview-engine/{renderers-4MW4NW6O.mjs → renderers-VUQAZ56P.mjs} +1 -1
  160. package/dist/preview-engine/renderers-W5YFMLSB.mjs +1 -0
  161. package/dist/preview-engine/renderers-XKDWUK56.mjs +1 -0
  162. package/dist/preview-engine/renderers-XKSBNCLZ.mjs +1 -0
  163. package/dist/preview-engine/renderers-XLQXVD37.mjs +1 -0
  164. package/dist/preview-engine/renderers-ZGX3A3QZ.mjs +1 -0
  165. package/dist/preview-engine/signals.mjs +1 -1
  166. package/dist/{program-BUjUTdxq.mjs → program-Cvv_nb9T.mjs} +2 -2
  167. package/dist/{program-BUjUTdxq.mjs.map → program-Cvv_nb9T.mjs.map} +1 -1
  168. package/dist/renderer/index.d.mts +1 -1
  169. package/dist/renderer/index.mjs +2 -2
  170. package/dist/renderer--RJepuOy.mjs +5 -0
  171. package/dist/{renderer-B84T5I98.mjs → renderer-4uZGSmUD.mjs} +3 -3
  172. package/dist/{renderer-B84T5I98.mjs.map → renderer-4uZGSmUD.mjs.map} +1 -1
  173. package/dist/{renderer-Bo5GwErU.mjs → renderer-5fGj_tqN.mjs} +3 -3
  174. package/dist/{renderer-Bo5GwErU.mjs.map → renderer-5fGj_tqN.mjs.map} +1 -1
  175. package/dist/{renderer-D7DlNOVi.mjs → renderer-6g1ri445.mjs} +3 -3
  176. package/dist/{renderer-D7DlNOVi.mjs.map → renderer-6g1ri445.mjs.map} +1 -1
  177. package/dist/{renderer-H4CZt3Z5.mjs → renderer-B09I95bo.mjs} +2 -2
  178. package/dist/{renderer-tcypOFaB.d.mts → renderer-B1U6YRRV.d.mts} +2 -2
  179. package/dist/{renderer-tcypOFaB.d.mts.map → renderer-B1U6YRRV.d.mts.map} +1 -1
  180. package/dist/renderer-B4NFnaty.mjs +5 -0
  181. package/dist/renderer-B6g4ts0e.mjs +5 -0
  182. package/dist/{renderer-DBfx6QX1.mjs → renderer-BBjkX0Vt.mjs} +2 -2
  183. package/dist/{renderer-BdRwbLLV.mjs → renderer-BC_Nse6h.mjs} +3 -3
  184. package/dist/{renderer-BdRwbLLV.mjs.map → renderer-BC_Nse6h.mjs.map} +1 -1
  185. package/dist/renderer-BGoAr-tl.mjs +5 -0
  186. package/dist/{renderer-CWmlfdLb.mjs → renderer-BJEexai1.mjs} +3 -3
  187. package/dist/{renderer-CWmlfdLb.mjs.map → renderer-BJEexai1.mjs.map} +1 -1
  188. package/dist/renderer-BSOdBgdE.mjs +5 -0
  189. package/dist/{renderer-muB4slsV.mjs → renderer-BSsKlcHk.mjs} +3 -3
  190. package/dist/{renderer-muB4slsV.mjs.map → renderer-BSsKlcHk.mjs.map} +1 -1
  191. package/dist/{renderer-DlbSqOJR.mjs → renderer-BTd6tFcS.mjs} +3 -3
  192. package/dist/{renderer-DlbSqOJR.mjs.map → renderer-BTd6tFcS.mjs.map} +1 -1
  193. package/dist/renderer-BU6O0fpM.mjs +5 -0
  194. package/dist/{renderer-DtCmG-tT.mjs → renderer-BXGuCnCJ.mjs} +3 -3
  195. package/dist/{renderer-DtCmG-tT.mjs.map → renderer-BXGuCnCJ.mjs.map} +1 -1
  196. package/dist/renderer-BZ97iidG.mjs +5 -0
  197. package/dist/renderer-B_Klh1VT.mjs +5 -0
  198. package/dist/renderer-BaWQM1y-.mjs +5 -0
  199. package/dist/renderer-Bc0jvAj0.mjs +5 -0
  200. package/dist/{renderer-jBKpX3Xg.mjs → renderer-Bf7Z7WT5.mjs} +2 -2
  201. package/dist/{renderer-jBKpX3Xg.mjs.map → renderer-Bf7Z7WT5.mjs.map} +1 -1
  202. package/dist/renderer-Bm077kZ6.mjs +5 -0
  203. package/dist/renderer-BtzE_e_Y.mjs +5 -0
  204. package/dist/{renderer-kFx1_MmK.mjs → renderer-BvRM3OZ6.mjs} +2 -2
  205. package/dist/{renderer-kFx1_MmK.mjs.map → renderer-BvRM3OZ6.mjs.map} +1 -1
  206. package/dist/{renderer-DAfCcnCz.mjs → renderer-BwJ0nXXu.mjs} +3 -3
  207. package/dist/{renderer-DAfCcnCz.mjs.map → renderer-BwJ0nXXu.mjs.map} +1 -1
  208. package/dist/{renderer-CO1PwItH.mjs → renderer-BwV-o_1b.mjs} +2 -2
  209. package/dist/{renderer-CO1PwItH.mjs.map → renderer-BwV-o_1b.mjs.map} +1 -1
  210. package/dist/{renderer-Bm91Xv6l.mjs → renderer-Bxiiar50.mjs} +3 -3
  211. package/dist/{renderer-Bm91Xv6l.mjs.map → renderer-Bxiiar50.mjs.map} +1 -1
  212. package/dist/{renderer-CanNjQuL.mjs → renderer-ByFPmHBC.mjs} +2 -2
  213. package/dist/{renderer-CanNjQuL.mjs.map → renderer-ByFPmHBC.mjs.map} +1 -1
  214. package/dist/{renderer-JASAZUyY.mjs → renderer-BzTj_CeK.mjs} +3 -3
  215. package/dist/{renderer-JASAZUyY.mjs.map → renderer-BzTj_CeK.mjs.map} +1 -1
  216. package/dist/renderer-C225eCAo.mjs +5 -0
  217. package/dist/{renderer-7w9PZmWJ.mjs → renderer-C2kFIZ4r.mjs} +2 -2
  218. package/dist/{renderer-7w9PZmWJ.mjs.map → renderer-C2kFIZ4r.mjs.map} +1 -1
  219. package/dist/{renderer-vpsU_4XW.mjs → renderer-C3CGYjrC.mjs} +3 -3
  220. package/dist/{renderer-vpsU_4XW.mjs.map → renderer-C3CGYjrC.mjs.map} +1 -1
  221. package/dist/{renderer-BFmVDdVs.mjs → renderer-CGpi8CDT.mjs} +3 -3
  222. package/dist/{renderer-BFmVDdVs.mjs.map → renderer-CGpi8CDT.mjs.map} +1 -1
  223. package/dist/{renderer-FFLnACY-.mjs → renderer-CInMMs5x.mjs} +3 -3
  224. package/dist/{renderer-FFLnACY-.mjs.map → renderer-CInMMs5x.mjs.map} +1 -1
  225. package/dist/{renderer-CTSvHf6g.mjs → renderer-CLTRTtQ8.mjs} +3 -3
  226. package/dist/{renderer-CTSvHf6g.mjs.map → renderer-CLTRTtQ8.mjs.map} +1 -1
  227. package/dist/renderer-CLXdR4vz.mjs +5 -0
  228. package/dist/{renderer-7c0ecb-L.mjs → renderer-CMCmljb0.mjs} +2 -2
  229. package/dist/{renderer-7c0ecb-L.mjs.map → renderer-CMCmljb0.mjs.map} +1 -1
  230. package/dist/{renderer-BnN3JH9u.mjs → renderer-CN-mCIoI.mjs} +3 -3
  231. package/dist/{renderer-BnN3JH9u.mjs.map → renderer-CN-mCIoI.mjs.map} +1 -1
  232. package/dist/{renderer-Bif8bwCq.mjs → renderer-CNpq7rL-.mjs} +2 -2
  233. package/dist/{renderer-Bif8bwCq.mjs.map → renderer-CNpq7rL-.mjs.map} +1 -1
  234. package/dist/{renderer-Chfo4G9t.mjs → renderer-CZClDMgF.mjs} +3 -3
  235. package/dist/{renderer-Chfo4G9t.mjs.map → renderer-CZClDMgF.mjs.map} +1 -1
  236. package/dist/{renderer-BvRaVByi.mjs → renderer-C_gR2H3R.mjs} +2 -2
  237. package/dist/{renderer-BvRaVByi.mjs.map → renderer-C_gR2H3R.mjs.map} +1 -1
  238. package/dist/{renderer-DJuVX3c5.d.mts → renderer-CcmxR6Fy.d.mts} +2 -2
  239. package/dist/{renderer-DJuVX3c5.d.mts.map → renderer-CcmxR6Fy.d.mts.map} +1 -1
  240. package/dist/{renderer-BT4im6c0.mjs → renderer-CiHVnhUk.mjs} +3 -3
  241. package/dist/{renderer-BT4im6c0.mjs.map → renderer-CiHVnhUk.mjs.map} +1 -1
  242. package/dist/renderer-CszM8B3C.mjs +5 -0
  243. package/dist/renderer-Ctp8ZYfk.mjs +5 -0
  244. package/dist/{renderer-BIToh0CA.mjs → renderer-CtpEzVBn.mjs} +2 -2
  245. package/dist/{renderer-BIToh0CA.mjs.map → renderer-CtpEzVBn.mjs.map} +1 -1
  246. package/dist/renderer-CxQdSp8I.mjs +5 -0
  247. package/dist/{renderer-BG_cnGbF.mjs → renderer-D3QPNBEj.mjs} +3 -3
  248. package/dist/{renderer-BG_cnGbF.mjs.map → renderer-D3QPNBEj.mjs.map} +1 -1
  249. package/dist/{renderer-CybBR8AL.mjs → renderer-D3YbHjRG.mjs} +69 -69
  250. package/dist/{renderer-CybBR8AL.mjs.map → renderer-D3YbHjRG.mjs.map} +1 -1
  251. package/dist/renderer-D4GMRtDd.mjs +6 -0
  252. package/dist/{renderer-w7mlMSC-.mjs → renderer-DEoerd-j.mjs} +3 -3
  253. package/dist/{renderer-w7mlMSC-.mjs.map → renderer-DEoerd-j.mjs.map} +1 -1
  254. package/dist/renderer-DEsGIvTZ.mjs +5 -0
  255. package/dist/{renderer-fWW0bsVl.mjs → renderer-DGXqspB9.mjs} +2 -2
  256. package/dist/renderer-DIaUQ0EP.mjs +5 -0
  257. package/dist/{renderer-Dd2XrdqA.mjs → renderer-DKFaVaRJ.mjs} +2 -2
  258. package/dist/{renderer-Dd2XrdqA.mjs.map → renderer-DKFaVaRJ.mjs.map} +1 -1
  259. package/dist/{renderer-DKptrHeL.mjs → renderer-DL3o_lG1.mjs} +3 -3
  260. package/dist/{renderer-DKptrHeL.mjs.map → renderer-DL3o_lG1.mjs.map} +1 -1
  261. package/dist/{renderer-DxkvDAA6.mjs → renderer-DLaUT6JZ.mjs} +2 -2
  262. package/dist/{renderer-DxkvDAA6.mjs.map → renderer-DLaUT6JZ.mjs.map} +1 -1
  263. package/dist/renderer-DLjqcNzQ.mjs +5 -0
  264. package/dist/renderer-DMuQZa51.mjs +5 -0
  265. package/dist/{renderer-BeJoW-nG.mjs → renderer-DO1SZ5xY.mjs} +3 -3
  266. package/dist/{renderer-BeJoW-nG.mjs.map → renderer-DO1SZ5xY.mjs.map} +1 -1
  267. package/dist/{renderer-B3WHDQeB.mjs → renderer-DO_zXwMJ.mjs} +2 -2
  268. package/dist/{renderer-B3WHDQeB.mjs.map → renderer-DO_zXwMJ.mjs.map} +1 -1
  269. package/dist/renderer-DOgi2aF2.mjs +5 -0
  270. package/dist/{renderer-CtulmkqT.mjs → renderer-DP9ScNM6.mjs} +2 -2
  271. package/dist/{renderer-CtulmkqT.mjs.map → renderer-DP9ScNM6.mjs.map} +1 -1
  272. package/dist/{renderer-CLRrcT_3.mjs → renderer-DQJHjU0L.mjs} +3 -3
  273. package/dist/{renderer-CLRrcT_3.mjs.map → renderer-DQJHjU0L.mjs.map} +1 -1
  274. package/dist/renderer-DSh7cvi4.mjs +5 -0
  275. package/dist/renderer-DV1LVBBP.mjs +5 -0
  276. package/dist/{renderer-D7lApyWZ.mjs → renderer-DX60Kr20.mjs} +2 -2
  277. package/dist/{renderer-D7lApyWZ.mjs.map → renderer-DX60Kr20.mjs.map} +1 -1
  278. package/dist/{renderer-R2kLaNuR.mjs → renderer-DZIxduEt.mjs} +2 -2
  279. package/dist/{renderer-R2kLaNuR.mjs.map → renderer-DZIxduEt.mjs.map} +1 -1
  280. package/dist/{renderer-DMtzPqYo.mjs → renderer-DaLy1dFA.mjs} +5 -5
  281. package/dist/{renderer-DMtzPqYo.mjs.map → renderer-DaLy1dFA.mjs.map} +1 -1
  282. package/dist/{renderer-1KgHl_ls.mjs → renderer-DaY04IyU.mjs} +3 -3
  283. package/dist/{renderer-1KgHl_ls.mjs.map → renderer-DaY04IyU.mjs.map} +1 -1
  284. package/dist/renderer-Dhrj2bJz.mjs +5 -0
  285. package/dist/{renderer-Dih1rtT6.mjs → renderer-Dj54y3h3.mjs} +2 -2
  286. package/dist/{renderer-Dih1rtT6.mjs.map → renderer-Dj54y3h3.mjs.map} +1 -1
  287. package/dist/renderer-DoFUu1R4.mjs +5 -0
  288. package/dist/{renderer-DkAFIpzB.mjs → renderer-Dp9FQKVP.mjs} +3 -3
  289. package/dist/{renderer-DkAFIpzB.mjs.map → renderer-Dp9FQKVP.mjs.map} +1 -1
  290. package/dist/{renderer--f8JHHyT.mjs → renderer-DrK6pyfz.mjs} +3 -3
  291. package/dist/{renderer--f8JHHyT.mjs.map → renderer-DrK6pyfz.mjs.map} +1 -1
  292. package/dist/{renderer-Ch1qZ2PT.mjs → renderer-DrL3J9ci.mjs} +2 -2
  293. package/dist/{renderer-Ch1qZ2PT.mjs.map → renderer-DrL3J9ci.mjs.map} +1 -1
  294. package/dist/renderer-DsydX3cx.mjs +5 -0
  295. package/dist/{renderer-oiDoNzhv.mjs → renderer-DwH5e3hx.mjs} +2 -2
  296. package/dist/renderer-DxVSoeYi.mjs +5 -0
  297. package/dist/{renderer-Br_aJ_b7.mjs → renderer-Dy1xQOTu.mjs} +2 -2
  298. package/dist/{renderer-Br_aJ_b7.mjs.map → renderer-Dy1xQOTu.mjs.map} +1 -1
  299. package/dist/{renderer-CDfCaqV4.mjs → renderer-FvvywNvv.mjs} +2 -2
  300. package/dist/{renderer-CDfCaqV4.mjs.map → renderer-FvvywNvv.mjs.map} +1 -1
  301. package/dist/{renderer-DjiebKHO.mjs → renderer-HXw4cJZx.mjs} +2 -2
  302. package/dist/{renderer-DjiebKHO.mjs.map → renderer-HXw4cJZx.mjs.map} +1 -1
  303. package/dist/{renderer-D_rEtJAH.mjs → renderer-HhJPFidU.mjs} +3 -3
  304. package/dist/{renderer-D_rEtJAH.mjs.map → renderer-HhJPFidU.mjs.map} +1 -1
  305. package/dist/{renderer-Dswrn-yi.mjs → renderer-IAffbHXx.mjs} +2 -2
  306. package/dist/{renderer-Dswrn-yi.mjs.map → renderer-IAffbHXx.mjs.map} +1 -1
  307. package/dist/{renderer-D1tDMuD0.mjs → renderer-LrAldCWN.mjs} +3 -3
  308. package/dist/{renderer-D1tDMuD0.mjs.map → renderer-LrAldCWN.mjs.map} +1 -1
  309. package/dist/renderer-Nc9bHb0n.mjs +5 -0
  310. package/dist/{renderer-DAug14gu.mjs → renderer-O4y02xkD.mjs} +2 -2
  311. package/dist/{renderer-DAug14gu.mjs.map → renderer-O4y02xkD.mjs.map} +1 -1
  312. package/dist/{renderer-Ck-NLzz0.mjs → renderer-PnnkUWm-.mjs} +2 -2
  313. package/dist/{renderer-Ck-NLzz0.mjs.map → renderer-PnnkUWm-.mjs.map} +1 -1
  314. package/dist/renderer-TFaSD2Db.mjs +5 -0
  315. package/dist/{renderer-CKlNHDKI.mjs → renderer-TiaHrU5z.mjs} +3 -3
  316. package/dist/{renderer-CKlNHDKI.mjs.map → renderer-TiaHrU5z.mjs.map} +1 -1
  317. package/dist/renderer-Z61ctppe.mjs +5 -0
  318. package/dist/{renderer-BTLZBD63.mjs → renderer-_KIBvES8.mjs} +3 -3
  319. package/dist/{renderer-BTLZBD63.mjs.map → renderer-_KIBvES8.mjs.map} +1 -1
  320. package/dist/renderer-awXf3sNS.mjs +5 -0
  321. package/dist/{renderer-CsRuEpR2.mjs → renderer-b0H3oDae.mjs} +2 -2
  322. package/dist/{renderer-CsRuEpR2.mjs.map → renderer-b0H3oDae.mjs.map} +1 -1
  323. package/dist/renderer-cHT28oYI.mjs +5 -0
  324. package/dist/renderer-g7Y3bFot.mjs +5 -0
  325. package/dist/{renderer-CxabOSkk.mjs → renderer-oBgCEqaM.mjs} +2 -2
  326. package/dist/{renderer-CxabOSkk.mjs.map → renderer-oBgCEqaM.mjs.map} +1 -1
  327. package/dist/{renderer-BhNZn2DU.mjs → renderer-qVJdxbXB.mjs} +3 -3
  328. package/dist/{renderer-BhNZn2DU.mjs.map → renderer-qVJdxbXB.mjs.map} +1 -1
  329. package/dist/renderer-qVv0OzVc.mjs +5 -0
  330. package/dist/{renderer-B8i4d1Rc.mjs → renderer-rKw5_EjG.mjs} +2 -2
  331. package/dist/{renderer-B8i4d1Rc.mjs.map → renderer-rKw5_EjG.mjs.map} +1 -1
  332. package/dist/{renderer-CeNAgCE2.mjs → renderer-sMFJtt_H.mjs} +2 -2
  333. package/dist/{renderer-CeNAgCE2.mjs.map → renderer-sMFJtt_H.mjs.map} +1 -1
  334. package/dist/{renderer-DrExCXnp.mjs → renderer-smP1F57W.mjs} +2 -2
  335. package/dist/{renderer-DrExCXnp.mjs.map → renderer-smP1F57W.mjs.map} +1 -1
  336. package/dist/{renderer-DxiF4O6X.mjs → renderer-snjhPaP-.mjs} +3 -3
  337. package/dist/{renderer-DxiF4O6X.mjs.map → renderer-snjhPaP-.mjs.map} +1 -1
  338. package/dist/{renderer-CwAuWLWm.mjs → renderer-t1sXDiqm.mjs} +3 -3
  339. package/dist/{renderer-CwAuWLWm.mjs.map → renderer-t1sXDiqm.mjs.map} +1 -1
  340. package/dist/{renderer-Bb_HHUQ0.mjs → renderer-tRi3KNoG.mjs} +3 -3
  341. package/dist/{renderer-Bb_HHUQ0.mjs.map → renderer-tRi3KNoG.mjs.map} +1 -1
  342. package/dist/{renderer-BSW4CGZF.mjs → renderer-uA0UCxjA.mjs} +2 -2
  343. package/dist/{renderer-BSW4CGZF.mjs.map → renderer-uA0UCxjA.mjs.map} +1 -1
  344. package/dist/{renderer-vPxMXiv8.mjs → renderer-xNOKSN3V.mjs} +3 -3
  345. package/dist/{renderer-vPxMXiv8.mjs.map → renderer-xNOKSN3V.mjs.map} +1 -1
  346. package/dist/{renderers-CP8CFWDs-OgyUiyrr.mjs → renderers-CP8CFWDs-DWRjjeUg.mjs} +2 -2
  347. package/dist/{renderers-CP8CFWDs-OgyUiyrr.mjs.map → renderers-CP8CFWDs-DWRjjeUg.mjs.map} +1 -1
  348. package/dist/signals/index.d.mts +6 -6
  349. package/dist/signals/index.mjs +4 -4
  350. package/dist/{src-C3f3zXYg.mjs → src-D7M8VTzv.mjs} +7 -7
  351. package/dist/{src-C3f3zXYg.mjs.map → src-D7M8VTzv.mjs.map} +1 -1
  352. package/package.json +59 -59
  353. package/dist/audio-1X5qNNmk.d.mts +0 -38
  354. package/dist/audio-1X5qNNmk.d.mts.map +0 -1
  355. package/dist/audio-YpBRdI7r.mjs.map +0 -1
  356. package/dist/cloud-xcfV4J03.mjs.map +0 -1
  357. package/dist/dist-C4Vxgm0Q.mjs.map +0 -1
  358. package/dist/index-B7WqFBZA.d.mts.map +0 -1
  359. package/dist/index-Dyt4yS-x.d.mts.map +0 -1
  360. package/dist/preview-engine/chunk-GTMZOMAN.mjs +0 -1
  361. package/dist/preview-engine/renderers-33PIDDZC.mjs +0 -1
  362. package/dist/preview-engine/renderers-3AZ3HY53.mjs +0 -1
  363. package/dist/preview-engine/renderers-3FGKW52B.mjs +0 -1
  364. package/dist/preview-engine/renderers-4A2FBS3Y.mjs +0 -1
  365. package/dist/preview-engine/renderers-65DU2F5W.mjs +0 -1
  366. package/dist/preview-engine/renderers-6CTPYQR6.mjs +0 -1
  367. package/dist/preview-engine/renderers-AWODRI3B.mjs +0 -1
  368. package/dist/preview-engine/renderers-BO6HHGMZ.mjs +0 -1
  369. package/dist/preview-engine/renderers-BSXYDEV7.mjs +0 -1
  370. package/dist/preview-engine/renderers-ECW2CGNU.mjs +0 -1
  371. package/dist/preview-engine/renderers-EEX22FUO.mjs +0 -1
  372. package/dist/preview-engine/renderers-GCQKGJ7W.mjs +0 -1
  373. package/dist/preview-engine/renderers-HZBXLDKG.mjs +0 -1
  374. package/dist/preview-engine/renderers-IOXNQPQK.mjs +0 -1
  375. package/dist/preview-engine/renderers-IR44E4ZZ.mjs +0 -1
  376. package/dist/preview-engine/renderers-JZZ3ODOZ.mjs +0 -1
  377. package/dist/preview-engine/renderers-K37YL3Z7.mjs +0 -1
  378. package/dist/preview-engine/renderers-KUJQV3K6.mjs +0 -1
  379. package/dist/preview-engine/renderers-KXVKLSSX.mjs +0 -1
  380. package/dist/preview-engine/renderers-N4RVFX3G.mjs +0 -1
  381. package/dist/preview-engine/renderers-NZWWEAYA.mjs +0 -1
  382. package/dist/preview-engine/renderers-P4JJEDZB.mjs +0 -1
  383. package/dist/preview-engine/renderers-Q4572F5C.mjs +0 -1
  384. package/dist/preview-engine/renderers-QAX2QWWQ.mjs +0 -1
  385. package/dist/preview-engine/renderers-SRFIEVWL.mjs +0 -1
  386. package/dist/preview-engine/renderers-SYC6WFTM.mjs +0 -1
  387. package/dist/preview-engine/renderers-UH4WN3QN.mjs +0 -1
  388. package/dist/preview-engine/renderers-V4FFCAS7.mjs +0 -1
  389. package/dist/preview-engine/renderers-VGDEOZUU.mjs +0 -1
  390. package/dist/preview-engine/renderers-VJJKBX5K.mjs +0 -1
  391. package/dist/preview-engine/renderers-VJOKVDYW.mjs +0 -1
  392. package/dist/preview-engine/renderers-VUUWZUOH.mjs +0 -1
  393. package/dist/preview-engine/renderers-WOP5GOZP.mjs +0 -1
  394. package/dist/preview-engine/renderers-Y4MGN2FR.mjs +0 -1
  395. package/dist/preview-engine/renderers-YAMYH7IK.mjs +0 -1
  396. package/dist/preview-engine/renderers-ZNLSAWW3.mjs +0 -1
  397. package/dist/renderer-6sNr6ZRJ.mjs +0 -6
  398. package/dist/renderer-BDHGxD6p.mjs +0 -5
  399. package/dist/renderer-BT9dvpk2.mjs +0 -5
  400. package/dist/renderer-BfaRh0qy.mjs +0 -5
  401. package/dist/renderer-BlwXKV7Y.mjs +0 -5
  402. package/dist/renderer-C40yZK3x.mjs +0 -5
  403. package/dist/renderer-C5MjQ7L8.mjs +0 -5
  404. package/dist/renderer-C8LjKYnS.mjs +0 -5
  405. package/dist/renderer-C9q9H_qa.mjs +0 -5
  406. package/dist/renderer-CF9ta9Rm.mjs +0 -5
  407. package/dist/renderer-CO205Gr9.mjs +0 -5
  408. package/dist/renderer-CSm8UXLP.mjs +0 -5
  409. package/dist/renderer-CSy8HRtF.mjs +0 -5
  410. package/dist/renderer-CdNRWDsA.mjs +0 -5
  411. package/dist/renderer-CkAjiGRB.mjs +0 -5
  412. package/dist/renderer-CmryuPBm.mjs +0 -5
  413. package/dist/renderer-CnEwne4L.mjs +0 -5
  414. package/dist/renderer-D4QDoqOG.mjs +0 -5
  415. package/dist/renderer-D7cS2a8z.mjs +0 -5
  416. package/dist/renderer-D85CNC-b.mjs +0 -5
  417. package/dist/renderer-DC9IoJNz.mjs +0 -5
  418. package/dist/renderer-DIDh0gFm.mjs +0 -5
  419. package/dist/renderer-DLmJ9GWE.mjs +0 -5
  420. package/dist/renderer-DM7PUWP9.mjs +0 -5
  421. package/dist/renderer-DPWFDxIO.mjs +0 -5
  422. package/dist/renderer-DUCByhAk.mjs +0 -5
  423. package/dist/renderer-DVOtnCKH.mjs +0 -5
  424. package/dist/renderer-DVrN2bW8.mjs +0 -5
  425. package/dist/renderer-DdOVwfG4.mjs +0 -5
  426. package/dist/renderer-DtCe9ouu.mjs +0 -5
  427. package/dist/renderer-Mg0kr9Fm.mjs +0 -5
  428. package/dist/renderer-T35PsSw5.mjs +0 -5
  429. package/dist/renderer-iSZ5NT-J.mjs +0 -5
  430. package/dist/renderer-nEmMjQ1a.mjs +0 -5
  431. package/dist/renderer-pG1nyfjE.mjs +0 -5
  432. package/dist/renderer-vbb9e3E3.mjs +0 -5
@@ -10,7 +10,7 @@ import { DotLottie } from "@lottiefiles/dotlottie-web";
10
10
  import earcut from "earcut";
11
11
  import { Path2D } from "skia-canvas";
12
12
 
13
- //#region ../webgpu-renderers/dist/text-animations-CaYMwhsz.mjs
13
+ //#region ../webgpu-renderers/dist/text-animations-COSsiLBc.mjs
14
14
  /**
15
15
  * 1. Biquad IIR Filter Bank Compute Shader
16
16
  * Applies resonant bandpass/lowpass/highpass filtering on PCM audio buffer.
@@ -293,6 +293,12 @@ fn main(@builtin(global_invocation_id) gid : vec3<u32>) {
293
293
  }
294
294
  }
295
295
  `;
296
+ /** Averages every channel into one mono buffer for storage buffer upload. */
297
+ function downmixToMono(channels) {
298
+ const mono = new Float32Array(channels[0]?.length ?? 0);
299
+ for (const ch of channels) for (let i = 0; i < mono.length; i++) mono[i] += ch[i] / channels.length;
300
+ return mono;
301
+ }
296
302
  function calculateBiquadBandpassCoeffs(sampleRate, centerFreq, Q) {
297
303
  const w0 = 2 * Math.PI * centerFreq / sampleRate;
298
304
  const alpha = Math.sin(w0) / (2 * Q);
@@ -363,18 +369,13 @@ var AudioSignalComputePipeline = class AudioSignalComputePipeline$1 {
363
369
  * Processes raw PCM audio channels on the GPU and outputs extracted feature buffers and textures.
364
370
  */
365
371
  static async extractFeatures(device, audioChannels, sampleRate, fps, config$1 = {}, targetWidth = 512) {
366
- const numChannels = audioChannels.length;
367
- if (numChannels === 0 || audioChannels[0].length === 0) throw new Error("Empty audio buffer supplied to AudioSignalComputePipeline.");
372
+ if (audioChannels.length === 0 || audioChannels[0].length === 0) throw new Error("Empty audio buffer supplied to AudioSignalComputePipeline.");
368
373
  const numAudioSamples = audioChannels[0].length;
369
374
  const durationSec = numAudioSamples / sampleRate;
370
375
  const numFrames = Math.max(1, Math.ceil(durationSec * fps));
371
376
  const hopSize = Math.max(1, Math.round(sampleRate / fps));
372
377
  const windowSize = Math.max(32, Math.round(hopSize * 2));
373
- const monoPcm = new Float32Array(numAudioSamples);
374
- for (let c = 0; c < numChannels; c++) {
375
- const ch = audioChannels[c];
376
- for (let i = 0; i < numAudioSamples; i++) monoPcm[i] += ch[i] / numChannels;
377
- }
378
+ const monoPcm = downmixToMono(audioChannels);
378
379
  const rawAudioBuffer = device.createBuffer({
379
380
  size: numAudioSamples * 4,
380
381
  usage: GPUBufferUsage.STORAGE | GPUBufferUsage.COPY_DST,
@@ -26447,9 +26448,9 @@ async function drawSignalNode(ctx, encoder, pass, props) {
26447
26448
  const elapsedTimeSec = elapsedMs / 1e3;
26448
26449
  await signalRegistry.ensureAudioSourcesExtracted(ctx.device, config$1, fps, props.renderId);
26449
26450
  const signalView = signalRegistry.getOrCreate2DTextureView(ctx.device, encoder, nodeId, elapsedTimeSec, durationSec, config$1, width, height, props.renderId, frame, fps);
26450
- const pipelines = getDevicePipelines(ctx.device);
26451
+ const pipelines$1 = getDevicePipelines(ctx.device);
26451
26452
  const cacheKey = `preview_${ctx.renderer.format}`;
26452
- let pipeline = pipelines.get(cacheKey);
26453
+ let pipeline = pipelines$1.get(cacheKey);
26453
26454
  if (!pipeline) {
26454
26455
  const shaderModule = ctx.device.createShaderModule({
26455
26456
  label: `signal_preview_static.wgsl`,
@@ -26469,7 +26470,7 @@ async function drawSignalNode(ctx, encoder, pass, props) {
26469
26470
  },
26470
26471
  primitive: { topology: "triangle-strip" }
26471
26472
  });
26472
- pipelines.set(cacheKey, pipeline);
26473
+ pipelines$1.set(cacheKey, pipeline);
26473
26474
  }
26474
26475
  let previewModeInt = 0;
26475
26476
  if (!isMathNode && !isGateNode) {
@@ -41147,6 +41148,365 @@ struct VSOut {
41147
41148
  return vec4<f32>(outRgb, outAlpha);
41148
41149
  }
41149
41150
  `;
41151
+ const MAX_PITCH_LAG = 2048;
41152
+ const PITCH_CANDIDATES = 8;
41153
+ const EMPTY_CANDIDATE = 2;
41154
+ /** Cost of switching between voiced and unvoiced from one frame to the next. */
41155
+ const VOICING_SWITCH_COST = .6;
41156
+ /** Extra cost of a dip that echoes a shorter candidate's period. */
41157
+ const SUBHARMONIC_COST = .5;
41158
+ /** How many times shallower the shorter dip may be and still explain a longer one. */
41159
+ const SUBHARMONIC_DEPTH_RATIO = 1.25;
41160
+ /** Relative lag error allowed when matching a period multiple. */
41161
+ const PERIOD_MULTIPLE_TOLERANCE = .03;
41162
+ /** Relative lag distance under which two local minima are one noisy dip. */
41163
+ const RIPPLE_MERGE = .03;
41164
+ const WORKGROUP_SIZE = 128;
41165
+ const MAX_GRID_X = 65535;
41166
+ const AUDIO_PITCH_CANDIDATES_SHADER = `
41167
+ struct PitchUniforms {
41168
+ sampleRate : f32,
41169
+ numSamples : u32,
41170
+ numFrames : u32,
41171
+ windowSize : u32,
41172
+ lagMin : u32,
41173
+ lagMax : u32,
41174
+ gridX : u32,
41175
+ fps : f32,
41176
+ };
41177
+
41178
+ const K : u32 = ${PITCH_CANDIDATES}u;
41179
+ const WG : u32 = ${WORKGROUP_SIZE}u;
41180
+ const EMPTY : f32 = ${EMPTY_CANDIDATE}.0f;
41181
+ const MERGE : f32 = ${RIPPLE_MERGE}f;
41182
+
41183
+ @group(0) @binding(0) var<uniform> u : PitchUniforms;
41184
+ @group(0) @binding(1) var<storage, read> pcm : array<f32>;
41185
+ @group(0) @binding(2) var<storage, read_write> candidates : array<vec2f>;
41186
+
41187
+ var<workgroup> yin : array<f32, ${MAX_PITCH_LAG + 1}>;
41188
+
41189
+ fn sampleAt(i : u32) -> f32 {
41190
+ if (i >= u.numSamples) { return 0.0f; }
41191
+ return pcm[i];
41192
+ }
41193
+
41194
+ // Keeps the K deepest dips sorted by value, shallowest last. A dip within
41195
+ // MERGE of an existing candidate's lag is the same broad dip: only the
41196
+ // deeper of the two survives.
41197
+ fn insertCandidate(lags : ptr<function, array<f32, K>>, vals : ptr<function, array<f32, K>>, lag : f32, val : f32) {
41198
+ var slot = K - 1u;
41199
+ for (var k = 0u; k < K; k = k + 1u) {
41200
+ if ((*vals)[k] < EMPTY && abs((*lags)[k] - lag) <= MERGE * lag) {
41201
+ if ((*vals)[k] <= val) { return; }
41202
+ slot = k;
41203
+ break;
41204
+ }
41205
+ }
41206
+ if ((*vals)[slot] <= val) { return; }
41207
+ var i = slot;
41208
+ loop {
41209
+ if (i == 0u || (*vals)[i - 1u] <= val) { break; }
41210
+ (*vals)[i] = (*vals)[i - 1u];
41211
+ (*lags)[i] = (*lags)[i - 1u];
41212
+ i = i - 1u;
41213
+ }
41214
+ (*vals)[i] = val;
41215
+ (*lags)[i] = lag;
41216
+ }
41217
+
41218
+ @compute @workgroup_size(${WORKGROUP_SIZE})
41219
+ fn main(@builtin(workgroup_id) wid : vec3<u32>, @builtin(local_invocation_index) lid : u32) {
41220
+ let frame = wid.x + wid.y * u.gridX;
41221
+ if (frame >= u.numFrames) { return; }
41222
+
41223
+ // Center the analysed span (window + longest lag) on the frame time.
41224
+ let span = u.windowSize + u.lagMax;
41225
+ let center = i32(round(f32(frame) * u.sampleRate / u.fps));
41226
+ let maxStart = max(i32(u.numSamples) - i32(span), 0);
41227
+ let start = u32(clamp(center - i32(span / 2u), 0, maxStart));
41228
+
41229
+ // YIN difference function, one lag per invocation per stride.
41230
+ for (var tau = lid; tau <= u.lagMax; tau = tau + WG) {
41231
+ var acc = 0.0f;
41232
+ for (var j = 0u; j < u.windowSize; j = j + 1u) {
41233
+ let d = sampleAt(start + j) - sampleAt(start + j + tau);
41234
+ acc = acc + d * d;
41235
+ }
41236
+ yin[tau] = acc;
41237
+ }
41238
+ workgroupBarrier();
41239
+ if (lid != 0u) { return; }
41240
+
41241
+ // Cumulative mean normalized difference, in place.
41242
+ var running = 0.0f;
41243
+ yin[0] = 1.0f;
41244
+ for (var tau = 1u; tau <= u.lagMax; tau = tau + 1u) {
41245
+ running = running + yin[tau];
41246
+ yin[tau] = select(1.0f, yin[tau] * f32(tau) / running, running > 0.0f);
41247
+ }
41248
+
41249
+ var lags : array<f32, K>;
41250
+ var vals : array<f32, K>;
41251
+ for (var k = 0u; k < K; k = k + 1u) {
41252
+ lags[k] = 0.0f;
41253
+ vals[k] = EMPTY;
41254
+ }
41255
+ for (var tau = max(u.lagMin, 1u); tau < u.lagMax; tau = tau + 1u) {
41256
+ let prev = yin[tau - 1u];
41257
+ let cur = yin[tau];
41258
+ let next = yin[tau + 1u];
41259
+ if (cur < prev && cur <= next) {
41260
+ // Parabolic interpolation of the dip for sub-sample period.
41261
+ let den = prev - 2.0f * cur + next;
41262
+ let offset = select(0.0f, 0.5f * (prev - next) / den, den > 0.0f);
41263
+ insertCandidate(&lags, &vals, f32(tau) + offset, cur);
41264
+ }
41265
+ }
41266
+
41267
+ let base = frame * K;
41268
+ for (var k = 0u; k < K; k = k + 1u) {
41269
+ candidates[base + k] = vec2f(lags[k], vals[k]);
41270
+ }
41271
+ }
41272
+ `;
41273
+ function resolvePitchConfig(sampleRate, config$1) {
41274
+ const minHz = config$1.minHz ?? 50;
41275
+ const maxHz = config$1.maxHz ?? 1e3;
41276
+ if (!(minHz > 0 && maxHz > minHz)) throw new Error(`Pitch range needs 0 < minHz < maxHz (got ${minHz}..${maxHz}).`);
41277
+ const lagMax = Math.ceil(sampleRate / minHz) + 1;
41278
+ if (lagMax > MAX_PITCH_LAG) throw new Error(`minHz ${minHz} needs a ${lagMax}-sample period at ${sampleRate} Hz; the limit is ${MAX_PITCH_LAG} (minHz >= ${Math.ceil(sampleRate / (MAX_PITCH_LAG - 1))}).`);
41279
+ const lagMin = Math.max(2, Math.floor(sampleRate / maxHz));
41280
+ const windowMs = config$1.windowMs ?? 45;
41281
+ return {
41282
+ lagMin,
41283
+ lagMax,
41284
+ windowSize: Math.max(lagMax, Math.round(windowMs / 1e3 * sampleRate)),
41285
+ voicingThreshold: config$1.voicingThreshold ?? .8,
41286
+ octaveJumpCost: config$1.octaveJumpCost ?? 8
41287
+ };
41288
+ }
41289
+ function transitionCost(prevLag, lag, octaveJumpCost) {
41290
+ const prevVoiced = prevLag > 0;
41291
+ const voiced = lag > 0;
41292
+ if (prevVoiced !== voiced) return VOICING_SWITCH_COST;
41293
+ if (!voiced) return 0;
41294
+ return octaveJumpCost * Math.abs(Math.log2(lag / prevLag));
41295
+ }
41296
+ /**
41297
+ * True when `lag` is an integer multiple (2x, 3x, ...) of a shorter candidate
41298
+ * that is about as deep. YIN's normalized difference dips at every multiple
41299
+ * of the true period, often slightly deeper, so such a dip is an echo.
41300
+ */
41301
+ function isPeriodMultiple(data, base, lag, depth) {
41302
+ for (let j = 0; j < PITCH_CANDIDATES; j++) {
41303
+ const shorter = data[(base + j) * 2];
41304
+ const shorterDepth = data[(base + j) * 2 + 1];
41305
+ if (shorterDepth >= EMPTY_CANDIDATE || shorter <= 0 || shorter >= lag) continue;
41306
+ const m = Math.round(lag / shorter);
41307
+ if (m >= 2 && Math.abs(lag - m * shorter) <= PERIOD_MULTIPLE_TOLERANCE * lag && shorterDepth <= depth * SUBHARMONIC_DEPTH_RATIO) return true;
41308
+ }
41309
+ return false;
41310
+ }
41311
+ /**
41312
+ * Writes each state's lag and emission cost for frame `f`. A candidate costs
41313
+ * its YIN dip depth, plus `SUBHARMONIC_COST` when it is a period multiple;
41314
+ * the unvoiced state (index K, lag 0) costs the voicing threshold.
41315
+ */
41316
+ function observeFrame(data, f, voicingThreshold, lags, costs) {
41317
+ const K = PITCH_CANDIDATES;
41318
+ const base = f * K;
41319
+ const row = f * (K + 1);
41320
+ for (let k = 0; k < K; k++) {
41321
+ const lag = data[(base + k) * 2];
41322
+ const depth = data[(base + k) * 2 + 1];
41323
+ const valid = depth < EMPTY_CANDIDATE && lag > 0;
41324
+ lags[row + k] = valid ? lag : 0;
41325
+ costs[row + k] = !valid ? Number.POSITIVE_INFINITY : depth + (isPeriodMultiple(data, base, lag, depth) ? SUBHARMONIC_COST : 0);
41326
+ }
41327
+ lags[row + K] = 0;
41328
+ costs[row + K] = voicingThreshold;
41329
+ }
41330
+ /** Most likely state per frame given per-state lags and -log emission costs. */
41331
+ function viterbi(lags, costs, numFrames, octaveJumpCost) {
41332
+ const S = PITCH_CANDIDATES + 1;
41333
+ const back = new Uint8Array(numFrames * S);
41334
+ let total = costs.slice(0, S);
41335
+ for (let f = 1; f < numFrames; f++) {
41336
+ const next = new Float64Array(S);
41337
+ for (let s = 0; s < S; s++) {
41338
+ let best = Number.POSITIVE_INFINITY;
41339
+ for (let p = 0; p < S; p++) {
41340
+ const c = total[p] + transitionCost(lags[(f - 1) * S + p], lags[f * S + s], octaveJumpCost);
41341
+ if (c < best) {
41342
+ best = c;
41343
+ back[f * S + s] = p;
41344
+ }
41345
+ }
41346
+ next[s] = best + costs[f * S + s];
41347
+ }
41348
+ total = next;
41349
+ }
41350
+ const path$1 = new Uint8Array(numFrames);
41351
+ let state = total.indexOf(Math.min(...total));
41352
+ for (let f = numFrames - 1; f >= 0; f--) {
41353
+ path$1[f] = state;
41354
+ state = back[f * S + state];
41355
+ }
41356
+ return path$1;
41357
+ }
41358
+ /**
41359
+ * Viterbi decode over each frame's period candidates plus one unvoiced state,
41360
+ * emissions from `observeFrame`, transitions costing `octaveJumpCost` per
41361
+ * octave and a fixed voicing switch.
41362
+ */
41363
+ function decodePitchTrack(candidates, config$1) {
41364
+ const { data, numFrames, sampleRate } = candidates;
41365
+ const K = PITCH_CANDIDATES;
41366
+ const S = K + 1;
41367
+ const lags = new Float64Array(numFrames * S);
41368
+ const costs = new Float64Array(numFrames * S);
41369
+ for (let f = 0; f < numFrames; f++) observeFrame(data, f, config$1.voicingThreshold ?? .8, lags, costs);
41370
+ const path$1 = viterbi(lags, costs, numFrames, config$1.octaveJumpCost ?? 8);
41371
+ const hz = new Float32Array(numFrames);
41372
+ const confidence = new Float32Array(numFrames);
41373
+ const voiced = new Float32Array(numFrames);
41374
+ for (let f = 0; f < numFrames; f++) {
41375
+ const s = path$1[f];
41376
+ if (lags[f * S + s] === 0) continue;
41377
+ hz[f] = sampleRate / lags[f * S + s];
41378
+ confidence[f] = Math.min(1, Math.max(0, 1 - data[(f * K + s) * 2 + 1]));
41379
+ voiced[f] = 1;
41380
+ }
41381
+ fillUnvoiced(hz, voiced);
41382
+ return {
41383
+ hz,
41384
+ confidence,
41385
+ voiced,
41386
+ numFrames
41387
+ };
41388
+ }
41389
+ /** Linearly interpolates `hz` across unvoiced runs; holds the nearest voiced value at the ends. */
41390
+ function fillUnvoiced(hz, voiced) {
41391
+ let prev = -1;
41392
+ for (let f = 0; f <= hz.length; f++) {
41393
+ if (f < hz.length && voiced[f] === 0) continue;
41394
+ const from = prev >= 0 ? hz[prev] : f < hz.length ? hz[f] : 0;
41395
+ const to = f < hz.length ? hz[f] : from;
41396
+ for (let g$1 = prev + 1; g$1 < f; g$1++) {
41397
+ const t = prev >= 0 && f < hz.length ? (g$1 - prev) / (f - prev) : 0;
41398
+ hz[g$1] = from + (to - from) * t;
41399
+ }
41400
+ prev = f;
41401
+ }
41402
+ }
41403
+ const pipelines = /* @__PURE__ */ new WeakMap();
41404
+ function getPipeline(device) {
41405
+ let pipeline = pipelines.get(device);
41406
+ if (!pipeline) {
41407
+ pipeline = device.createComputePipeline({
41408
+ label: "AudioPitchCandidatesPipeline",
41409
+ layout: "auto",
41410
+ compute: {
41411
+ module: device.createShaderModule({
41412
+ label: "AudioPitchCandidatesPipeline.wgsl",
41413
+ code: AUDIO_PITCH_CANDIDATES_SHADER
41414
+ }),
41415
+ entryPoint: "main"
41416
+ }
41417
+ });
41418
+ pipelines.set(device, pipeline);
41419
+ }
41420
+ return pipeline;
41421
+ }
41422
+ /** Runs the YIN candidate pass on the GPU: `PITCH_CANDIDATES` periods per frame. */
41423
+ async function extractPitchCandidates(device, audioChannels, sampleRate, fps, config$1 = {}) {
41424
+ if (audioChannels.length === 0 || audioChannels[0].length === 0) throw new Error("Empty audio buffer supplied to the pitch tracker.");
41425
+ const { lagMin, lagMax, windowSize } = resolvePitchConfig(sampleRate, config$1);
41426
+ const mono = downmixToMono(audioChannels);
41427
+ const numFrames = Math.max(1, Math.ceil(mono.length / sampleRate * fps));
41428
+ const gridX = Math.min(numFrames, MAX_GRID_X);
41429
+ const outBytes = numFrames * PITCH_CANDIDATES * 2 * 4;
41430
+ const uniforms = /* @__PURE__ */ new ArrayBuffer(32);
41431
+ const f32 = new Float32Array(uniforms);
41432
+ const u32 = new Uint32Array(uniforms);
41433
+ f32[0] = sampleRate;
41434
+ u32[1] = mono.length;
41435
+ u32[2] = numFrames;
41436
+ u32[3] = windowSize;
41437
+ u32[4] = lagMin;
41438
+ u32[5] = lagMax;
41439
+ u32[6] = gridX;
41440
+ f32[7] = fps;
41441
+ const uniformBuffer = device.createBuffer({
41442
+ size: uniforms.byteLength,
41443
+ usage: GPUBufferUsage.UNIFORM | GPUBufferUsage.COPY_DST,
41444
+ label: "audio_pitch_uniforms"
41445
+ });
41446
+ device.queue.writeBuffer(uniformBuffer, 0, uniforms);
41447
+ const pcmBuffer = device.createBuffer({
41448
+ size: mono.byteLength,
41449
+ usage: GPUBufferUsage.STORAGE | GPUBufferUsage.COPY_DST,
41450
+ label: "audio_pitch_pcm"
41451
+ });
41452
+ device.queue.writeBuffer(pcmBuffer, 0, mono);
41453
+ const candidateBuffer = device.createBuffer({
41454
+ size: outBytes,
41455
+ usage: GPUBufferUsage.STORAGE | GPUBufferUsage.COPY_SRC,
41456
+ label: "audio_pitch_candidates"
41457
+ });
41458
+ const readback = device.createBuffer({
41459
+ size: outBytes,
41460
+ usage: GPUBufferUsage.MAP_READ | GPUBufferUsage.COPY_DST,
41461
+ label: "audio_pitch_candidates_readback"
41462
+ });
41463
+ const pipeline = getPipeline(device);
41464
+ const encoder = device.createCommandEncoder({ label: "audio_pitch_encoder" });
41465
+ const pass = encoder.beginComputePass({ label: "audio_pitch_candidates_pass" });
41466
+ pass.setPipeline(pipeline);
41467
+ pass.setBindGroup(0, device.createBindGroup({
41468
+ layout: pipeline.getBindGroupLayout(0),
41469
+ entries: [
41470
+ {
41471
+ binding: 0,
41472
+ resource: { buffer: uniformBuffer }
41473
+ },
41474
+ {
41475
+ binding: 1,
41476
+ resource: { buffer: pcmBuffer }
41477
+ },
41478
+ {
41479
+ binding: 2,
41480
+ resource: { buffer: candidateBuffer }
41481
+ }
41482
+ ]
41483
+ }));
41484
+ pass.dispatchWorkgroups(gridX, Math.ceil(numFrames / gridX));
41485
+ pass.end();
41486
+ encoder.copyBufferToBuffer(candidateBuffer, 0, readback, 0, outBytes);
41487
+ device.queue.submit([encoder.finish()]);
41488
+ await readback.mapAsync(GPUMapMode.READ);
41489
+ const data = new Float32Array(readback.getMappedRange().slice(0));
41490
+ readback.unmap();
41491
+ for (const b of [
41492
+ readback,
41493
+ candidateBuffer,
41494
+ pcmBuffer,
41495
+ uniformBuffer
41496
+ ]) b.destroy();
41497
+ return {
41498
+ data,
41499
+ numFrames,
41500
+ sampleRate
41501
+ };
41502
+ }
41503
+ /** Tracks the fundamental frequency of the downmixed channels at `fps` frames per second. */
41504
+ async function trackAudioPitch(device, audioChannels, sampleRate, fps, config$1 = {}) {
41505
+ return {
41506
+ ...decodePitchTrack(await extractPitchCandidates(device, audioChannels, sampleRate, fps, config$1), config$1),
41507
+ durationSec: audioChannels[0].length / sampleRate
41508
+ };
41509
+ }
41150
41510
  const GLOBAL_WEBGPU_REGISTRY_KEY = Symbol.for("gatewai.webgpuRegistry");
41151
41511
  const GLOBAL_ANALYSIS_STORE_KEY = Symbol.for("gatewai.videoAnalysisStore");
41152
41512
  var NodeSurfaceProvider = class {
@@ -41214,5 +41574,5 @@ var NodeSurfaceProvider = class {
41214
41574
  if (typeof globalThis !== "undefined") globalThis.__GATEWAI_DELAYS__ = globalThis.__GATEWAI_DELAYS__ || /* @__PURE__ */ new Set();
41215
41575
 
41216
41576
  //#endregion
41217
- export { probeVideoSize as $, TextCursorStyleSchema as $t, emojiGraphemes as A, evaluateVolumetricFormation as An, ChromaticGlitchConfigSchema as At, jointMatrices as B, waveToCubicBeziers as Bn, LongShadowConfigSchema as Bt, drawGifNode as C, evaluateCubicBezierDerivative as Cn, AdvancedTextAnimatorBuilder as Ct, drawSignalNode as D, evaluateSkewMatrix as Dn, AnimatableGlyphPropsSchema as Dt, drawParagraphNode as E, evaluateSelectorCombination as En, AnchorPresetSchema as Et, getPrimitiveGeometry as F, parseSvgPathToCubicBeziers as Fn, ExtendedGlyphPropertiesSchema as Ft, measureMaxCaptionHeight as G, SelectorUnitsSchema as Gt, loadModel3D as H, SelectorBasedOnSchema as Ht, getRegisteredFontSource as I, sampleAudioSpectrumScale as In, GlyphAnchorGroupingSchema as It, parseFBX as J, Spatial3DPropertiesSchema as Jt, mediaDecoderCache as K, SignalRegistry as Kt, getRenderer2D as L, sampleCurveGeometry as Ln, GlyphAnchorPointSchema as Lt, fitSpansToText as M, generatePathSegments as Mn, DynamicStrokePropertiesSchema as Mt, generateExtrudedTextGeometry as N, getScramblePool as Nn, EnhancedTextNodeSchema as Nt, drawSvgNode as O, evaluateSpringProgress as On, AudioSignalComputePipeline as Ot, getHeadlessFontPath as P, getShuffledOrder as Pn, ExpressionSelectorSchema as Pt, poseNodes as Q, TextCursorConfigSchema as Qt, initHeadlessWebGPU as R, samplePathChainGeometry as Rn, KineticMarqueeConfigSchema as Rt, drawCaptionNode as S, evaluateCubicBezier as Sn, AETextAnimatorSchema as St, drawLottieNode as T, evaluateMarqueeOffset as Tn, AnchorGroupingSchema as Tt, loadOBJ as U, SelectorModeSchema as Ut, loadFBX as V, ParticleDissolveConfigSchema as Vt, lutStore as W, SelectorShapeSchema as Wt, parseOBJ as X, TextAnchorConfigSchema as Xt, parseMTL as Y, SpringPhysicsSchema as Yt, parseSvgPathToSegments as Z, TextAnimatorBuilder as Zt, buildShapeSvgPath as _, computeLineLeadingDisplacement as _n, Path3D as _t, GlassPipeline as a, TextSelectorSchema as an, spansText as at, colorMatrixWgsl as b, distanceToCurveParameter as bn, parseColorToRgb as bt, Renderer2D as c, TypewriterAnimatorSchema as cn, transformScale as ct, ScreenSpaceRelightPipeline as d, Vec2Schema as dn, Camera3D as dt, TextPathBuilder as en, registerHeadlessFont as et, ShadowPipeline as f, VolumetricFormationConfigSchema as fn, ENVIRONMENT_PRESETS as ft, WebGPUAudioProcessor as g, computeAnchorPivotOffset as gn, Matrix4Math as gt, SlugPipeline as h, buildWGSLSignalFn as hn, MAX_LIGHTS as ht, EffectPipeline as i, TextScrambleConfigSchema as in, shaderStore as it, ensureDevice as j, generateArcLengthLUT as jn, CubicBezierSegmentSchema as jt, drawVideoNode as k, evaluateTypewriterState as kn, AudioSpectrumTypographySchema as kt, Renderer3D as l, TypingCadenceSchema as ln, GetFontAssetUrl as lt, SlugGeometry as m, buildPathLUT as mn, Light3D as mt, AudioLatentTrackCache as n, TextPathSourceSchema as nn, sampleMorphWeights as nt, MotionBlurPipeline as o, TextSignalSelectorSchema as on, srtLoader as ot, SlugFontCache as p, VolumetricFormationModeSchema as pn, LIGHT_UNIFORM_SIZE_BYTES as pt, parseColor as q, SkewPropertiesSchema as qt, AudioMeshDeformPipeline as r, TextRangeSelectorSchema as rn, setRegisteredFontSource as rt, NodeSurfaceProvider as s, TextWigglySelectorSchema as sn, textureCache as st, AudioLatentEngine as t, TextPathOptionsSchema as tn, resolveTextSpans as tt, SSAOPipeline as u, VariableFontAxesSchema as un, resolveMediaSourceUrl as ut, clearAllVideoCache as v, computeRangeSelectorWeight as vn, Vector3Math as vt, drawImageNode as w, evaluateExpressionSelector as wn, AdvancedTextAnimatorSchema as wt, describeGpu as x, ellipseToCubicBeziers as xn, resolveEnvironment as xt, clearHeadlessFonts as y, deterministicWigglyNoise as yn, linearRgb as yt, inputStore as z, signalRegistry as zn, LineSpacingDynamicsSchema as zt };
41218
- //# sourceMappingURL=dist-C4Vxgm0Q.mjs.map
41577
+ export { probeVideoSize as $, TextCursorConfigSchema as $t, emojiGraphemes as A, evaluateTypewriterState as An, AudioSpectrumTypographySchema as At, jointMatrices as B, signalRegistry as Bn, LineSpacingDynamicsSchema as Bt, drawGifNode as C, evaluateCubicBezier as Cn, AETextAnimatorSchema as Ct, drawSignalNode as D, evaluateSelectorCombination as Dn, AnchorPresetSchema as Dt, drawParagraphNode as E, evaluateMarqueeOffset as En, AnchorGroupingSchema as Et, getPrimitiveGeometry as F, getShuffledOrder as Fn, ExpressionSelectorSchema as Ft, measureMaxCaptionHeight as G, SelectorShapeSchema as Gt, loadModel3D as H, ParticleDissolveConfigSchema as Ht, getRegisteredFontSource as I, parseSvgPathToCubicBeziers as In, ExtendedGlyphPropertiesSchema as It, parseFBX as J, SkewPropertiesSchema as Jt, mediaDecoderCache as K, SelectorUnitsSchema as Kt, getRenderer2D as L, sampleAudioSpectrumScale as Ln, GlyphAnchorGroupingSchema as Lt, fitSpansToText as M, generateArcLengthLUT as Mn, CubicBezierSegmentSchema as Mt, generateExtrudedTextGeometry as N, generatePathSegments as Nn, DynamicStrokePropertiesSchema as Nt, drawSvgNode as O, evaluateSkewMatrix as On, AnimatableGlyphPropsSchema as Ot, getHeadlessFontPath as P, getScramblePool as Pn, EnhancedTextNodeSchema as Pt, poseNodes as Q, TextAnimatorBuilder as Qt, initHeadlessWebGPU as R, sampleCurveGeometry as Rn, GlyphAnchorPointSchema as Rt, drawCaptionNode as S, ellipseToCubicBeziers as Sn, resolveEnvironment as St, drawLottieNode as T, evaluateExpressionSelector as Tn, AdvancedTextAnimatorSchema as Tt, loadOBJ as U, SelectorBasedOnSchema as Ut, loadFBX as V, waveToCubicBeziers as Vn, LongShadowConfigSchema as Vt, lutStore as W, SelectorModeSchema as Wt, parseOBJ as X, SpringPhysicsSchema as Xt, parseMTL as Y, Spatial3DPropertiesSchema as Yt, parseSvgPathToSegments as Z, TextAnchorConfigSchema as Zt, buildShapeSvgPath as _, computeAnchorPivotOffset as _n, Matrix4Math as _t, GlassPipeline as a, TextScrambleConfigSchema as an, spansText as at, colorMatrixWgsl as b, deterministicWigglyNoise as bn, linearRgb as bt, Renderer2D as c, TextWigglySelectorSchema as cn, trackAudioPitch as ct, ScreenSpaceRelightPipeline as d, VariableFontAxesSchema as dn, resolveMediaSourceUrl as dt, TextCursorStyleSchema as en, registerHeadlessFont as et, ShadowPipeline as f, Vec2Schema as fn, Camera3D as ft, WebGPUAudioProcessor as g, buildWGSLSignalFn as gn, MAX_LIGHTS as gt, SlugPipeline as h, buildPathLUT as hn, Light3D as ht, EffectPipeline as i, TextRangeSelectorSchema as in, shaderStore as it, ensureDevice as j, evaluateVolumetricFormation as jn, ChromaticGlitchConfigSchema as jt, drawVideoNode as k, evaluateSpringProgress as kn, AudioSignalComputePipeline as kt, Renderer3D as l, TypewriterAnimatorSchema as ln, transformScale as lt, SlugGeometry as m, VolumetricFormationModeSchema as mn, LIGHT_UNIFORM_SIZE_BYTES as mt, AudioLatentTrackCache as n, TextPathOptionsSchema as nn, sampleMorphWeights as nt, MotionBlurPipeline as o, TextSelectorSchema as on, srtLoader as ot, SlugFontCache as p, VolumetricFormationConfigSchema as pn, ENVIRONMENT_PRESETS as pt, parseColor as q, SignalRegistry as qt, AudioMeshDeformPipeline as r, TextPathSourceSchema as rn, setRegisteredFontSource as rt, NodeSurfaceProvider as s, TextSignalSelectorSchema as sn, textureCache as st, AudioLatentEngine as t, TextPathBuilder as tn, resolveTextSpans as tt, SSAOPipeline as u, TypingCadenceSchema as un, GetFontAssetUrl as ut, clearAllVideoCache as v, computeLineLeadingDisplacement as vn, Path3D as vt, drawImageNode as w, evaluateCubicBezierDerivative as wn, AdvancedTextAnimatorBuilder as wt, describeGpu as x, distanceToCurveParameter as xn, parseColorToRgb as xt, clearHeadlessFonts as y, computeRangeSelectorWeight as yn, Vector3Math as yt, inputStore as z, samplePathChainGeometry as zn, KineticMarqueeConfigSchema as zt };
41578
+ //# sourceMappingURL=dist-B-OPY7Cs.mjs.map