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.
- package/dist/audio/index.d.mts +4 -4
- package/dist/audio/index.mjs +10 -10
- package/dist/{audio-YpBRdI7r.mjs → audio-DHLoNcxD.mjs} +31 -5
- package/dist/audio-DHLoNcxD.mjs.map +1 -0
- package/dist/audio-afTBdB3U.d.mts +62 -0
- package/dist/audio-afTBdB3U.d.mts.map +1 -0
- package/dist/cli/check-worker.mjs +43 -43
- package/dist/cli.mjs +174 -83
- package/dist/cli.mjs.map +1 -1
- package/dist/cloud/index.d.mts +14 -3
- package/dist/cloud/index.d.mts.map +1 -1
- package/dist/cloud/index.mjs +2 -2
- package/dist/{cloud-xcfV4J03.mjs → cloud-COid1Ipa.mjs} +169 -16
- package/dist/cloud-COid1Ipa.mjs.map +1 -0
- package/dist/components/index.d.mts +8 -8
- package/dist/components/index.mjs +42 -42
- package/dist/{dist-C4Vxgm0Q.mjs → dist-B-OPY7Cs.mjs} +373 -13
- package/dist/dist-B-OPY7Cs.mjs.map +1 -0
- package/dist/{dist-Cu1fZ9Uy.mjs → dist-BSqeChht.mjs} +2 -2
- package/dist/{dist-Cu1fZ9Uy.mjs.map → dist-BSqeChht.mjs.map} +1 -1
- package/dist/effects/index.d.mts +4 -4
- package/dist/effects/index.mjs +34 -34
- package/dist/{effects-DiWYouOK.mjs → effects-C8CL9cOq.mjs} +2 -2
- package/dist/{effects-DiWYouOK.mjs.map → effects-C8CL9cOq.mjs.map} +1 -1
- package/dist/fonts/index.mjs +2 -2
- package/dist/{fonts-BnV-GB1o.mjs → fonts-BQrDjnpV.mjs} +2 -2
- package/dist/{fonts-BnV-GB1o.mjs.map → fonts-BQrDjnpV.mjs.map} +1 -1
- package/dist/{gpu-Bw35AMwY.mjs → gpu-DHa-3Dou.mjs} +2 -2
- package/dist/{gpu-Bw35AMwY.mjs.map → gpu-DHa-3Dou.mjs.map} +1 -1
- package/dist/{index-Dyt4yS-x.d.mts → index-BNClElng.d.mts} +467 -465
- package/dist/index-BNClElng.d.mts.map +1 -0
- package/dist/{index-Bbv0VtxJ.d.mts → index-CAuNuvIg.d.mts} +3 -3
- package/dist/{index-Bbv0VtxJ.d.mts.map → index-CAuNuvIg.d.mts.map} +1 -1
- package/dist/index-COYNQ_mf.d.mts.map +1 -1
- package/dist/{index-CDQrdZ0J.d.mts → index-CTv9ZieD.d.mts} +2 -2
- package/dist/{index-CDQrdZ0J.d.mts.map → index-CTv9ZieD.d.mts.map} +1 -1
- package/dist/{index-h7m8QgcL.d.mts → index-Drk6HC2k.d.mts} +2 -2
- package/dist/{index-h7m8QgcL.d.mts.map → index-Drk6HC2k.d.mts.map} +1 -1
- package/dist/{index-B7WqFBZA.d.mts → index-Fliv2Z-w.d.mts} +22 -2
- package/dist/index-Fliv2Z-w.d.mts.map +1 -0
- package/dist/index.d.mts +9 -9
- package/dist/index.mjs +49 -49
- package/dist/preview/index.d.mts +1 -1
- package/dist/preview/index.mjs +10 -10
- package/dist/{preview-BW7ilNWk.mjs → preview-BUtt481A.mjs} +2 -2
- package/dist/{preview-BW7ilNWk.mjs.map → preview-BUtt481A.mjs.map} +1 -1
- package/dist/preview-engine/audio.mjs +1 -1
- package/dist/preview-engine/{chunk-OD4CSXZL.mjs → chunk-35XSD4QM.mjs} +1 -1
- package/dist/preview-engine/{chunk-V5HU6NIW.mjs → chunk-3DOIE4DV.mjs} +1 -1
- package/dist/preview-engine/{chunk-L2NTIWW5.mjs → chunk-3IT7LHWR.mjs} +1 -1
- package/dist/preview-engine/{chunk-6LBFSGCI.mjs → chunk-3MLGWUSK.mjs} +1 -1
- package/dist/preview-engine/{chunk-57WXGYEV.mjs → chunk-3QJ5GRBH.mjs} +1 -1
- package/dist/preview-engine/{chunk-6O55UROD.mjs → chunk-3QTHW2CD.mjs} +1 -1
- package/dist/preview-engine/{chunk-HO7FXISJ.mjs → chunk-4JNIEQS2.mjs} +1 -1
- package/dist/preview-engine/{chunk-JFBSNFN6.mjs → chunk-6B3NOY5W.mjs} +1 -1
- package/dist/preview-engine/{chunk-HPQDCC4S.mjs → chunk-6O7UDVNL.mjs} +1 -1
- package/dist/preview-engine/{chunk-T6L3DO3H.mjs → chunk-74J4DJQA.mjs} +1 -1
- package/dist/preview-engine/{chunk-JSKEVYKD.mjs → chunk-AKVRG7UU.mjs} +1 -1
- package/dist/preview-engine/{chunk-4BWBX2HM.mjs → chunk-CRBOK3JT.mjs} +1 -1
- package/dist/preview-engine/{chunk-JIPMF42Z.mjs → chunk-D6LM7DTJ.mjs} +2 -2
- package/dist/preview-engine/{chunk-HGWT3RVQ.mjs → chunk-E7BKWHOT.mjs} +1 -1
- package/dist/preview-engine/{chunk-4FACCLLE.mjs → chunk-EWDJMJO5.mjs} +1 -1
- package/dist/preview-engine/{chunk-6BE3IL7L.mjs → chunk-EYE3GNL5.mjs} +1 -1
- package/dist/preview-engine/{chunk-7A3BNAWY.mjs → chunk-EYKN2VET.mjs} +1 -1
- package/dist/preview-engine/chunk-FJTURGJV.mjs +107 -0
- package/dist/preview-engine/{chunk-5Y7SO37Q.mjs → chunk-G4ZTSLZU.mjs} +1 -1
- package/dist/preview-engine/{chunk-C2GX5L5S.mjs → chunk-GAMAKN5L.mjs} +1 -1
- package/dist/preview-engine/{chunk-VVY4PG5E.mjs → chunk-GXFYRMJZ.mjs} +25 -25
- package/dist/preview-engine/{chunk-RAW2I27S.mjs → chunk-HTAHYSCW.mjs} +1 -1
- package/dist/preview-engine/{chunk-NTTEGJD6.mjs → chunk-ICWD36H6.mjs} +1 -1
- package/dist/preview-engine/{chunk-K3TJJXVC.mjs → chunk-JAUMCOOJ.mjs} +1 -1
- package/dist/preview-engine/{chunk-4DSOZ5QG.mjs → chunk-KBCZKIIQ.mjs} +1 -1
- package/dist/preview-engine/{chunk-WVIDORLK.mjs → chunk-KDCM7S3S.mjs} +1 -1
- package/dist/preview-engine/{chunk-ZGEKF34E.mjs → chunk-KIPXBOYG.mjs} +10 -10
- package/dist/preview-engine/{chunk-HKYENGC5.mjs → chunk-M4QVCQ3O.mjs} +1 -1
- package/dist/preview-engine/{chunk-4N25ZU43.mjs → chunk-NJO2BIJX.mjs} +1 -1
- package/dist/preview-engine/{chunk-6SLCECHG.mjs → chunk-NTSALWFF.mjs} +1 -1
- package/dist/preview-engine/{chunk-7HW7GA76.mjs → chunk-O75BFM4S.mjs} +1 -1
- package/dist/preview-engine/{chunk-YXCTOCQ2.mjs → chunk-ONHY4KNY.mjs} +1 -1
- package/dist/preview-engine/{chunk-XCQ7KN4S.mjs → chunk-QPT2Y2GZ.mjs} +1 -1
- package/dist/preview-engine/{chunk-ZA5LWHRM.mjs → chunk-QXLFTCLC.mjs} +1 -1
- package/dist/preview-engine/{chunk-FW2UDDUT.mjs → chunk-RGKS6YIA.mjs} +1 -1
- package/dist/preview-engine/{chunk-VRJBOFFY.mjs → chunk-RN7J5TRU.mjs} +1 -1
- package/dist/preview-engine/{chunk-LBP7E7SJ.mjs → chunk-RVCLMO5Q.mjs} +1 -1
- package/dist/preview-engine/{chunk-K3C6GUQD.mjs → chunk-SE2C623Z.mjs} +1 -1
- package/dist/preview-engine/{chunk-LTR5FXGU.mjs → chunk-SFHWP65D.mjs} +1 -1
- package/dist/preview-engine/{chunk-ML7WO27M.mjs → chunk-TKXOSEIJ.mjs} +1 -1
- package/dist/preview-engine/{chunk-4TPXZNVR.mjs → chunk-UKZVUYB6.mjs} +1 -1
- package/dist/preview-engine/{chunk-IVAA5X5H.mjs → chunk-UVEDFIPN.mjs} +1 -1
- package/dist/preview-engine/{chunk-FH72KTSM.mjs → chunk-VUO4K52B.mjs} +1 -1
- package/dist/preview-engine/{chunk-OOUDE4XL.mjs → chunk-W4XR6F5G.mjs} +1 -1
- package/dist/preview-engine/{chunk-RMHL4XZ3.mjs → chunk-WPYWCWWL.mjs} +1 -1
- package/dist/preview-engine/{chunk-CHXR5XZK.mjs → chunk-YAPGJZPI.mjs} +1 -1
- package/dist/preview-engine/{chunk-4RLKHFV6.mjs → chunk-YJ4DSRDY.mjs} +1 -1
- package/dist/preview-engine/{chunk-Y2SWIWIU.mjs → chunk-YOJKIMU5.mjs} +1 -1
- package/dist/preview-engine/{chunk-YS3ROS25.mjs → chunk-ZHNEZZ6A.mjs} +1 -1
- package/dist/preview-engine/{chunk-EKEKYGXE.mjs → chunk-ZZMI3WOT.mjs} +1 -1
- package/dist/preview-engine/components.mjs +1 -1
- package/dist/preview-engine/effects.mjs +1 -1
- package/dist/preview-engine/framefields.mjs +1 -1
- package/dist/preview-engine/player.mjs +1 -1
- package/dist/preview-engine/{renderers-36P2TKPC.mjs → renderers-3FZVDYRQ.mjs} +1 -1
- package/dist/preview-engine/renderers-3KEBYOOF.mjs +1 -0
- package/dist/preview-engine/{renderers-JZYHX4XI.mjs → renderers-4RPQSUUZ.mjs} +1 -1
- package/dist/preview-engine/renderers-5EGFXFPF.mjs +1 -0
- package/dist/preview-engine/renderers-5SJHYUTM.mjs +1 -0
- package/dist/preview-engine/renderers-66MWDUN6.mjs +1 -0
- package/dist/preview-engine/{renderers-CMBI4JOC.mjs → renderers-6FENMFSC.mjs} +1 -1
- package/dist/preview-engine/renderers-77OXJ2GY.mjs +1 -0
- package/dist/preview-engine/renderers-7LI4QKHO.mjs +1 -0
- package/dist/preview-engine/{renderers-6RRWA33X.mjs → renderers-AIZRIW2R.mjs} +1 -1
- package/dist/preview-engine/{renderers-UBIFSF37.mjs → renderers-BDI2BDBA.mjs} +1 -1
- package/dist/preview-engine/renderers-BDXCO6NR.mjs +1 -0
- package/dist/preview-engine/{renderers-OPRXVIGT.mjs → renderers-BUZ67FNZ.mjs} +1 -1
- package/dist/preview-engine/renderers-DMTGKURQ.mjs +1 -0
- package/dist/preview-engine/{renderers-AUYCQNSS.mjs → renderers-ECXMT5BD.mjs} +1 -1
- package/dist/preview-engine/{renderers-4WFRXGMR.mjs → renderers-EVEWFJ7U.mjs} +1 -1
- package/dist/preview-engine/renderers-F6PT2LON.mjs +1 -0
- package/dist/preview-engine/renderers-F7WPJXKT.mjs +1 -0
- package/dist/preview-engine/renderers-FIFF267S.mjs +1 -0
- package/dist/preview-engine/{renderers-CQIPHCIW.mjs → renderers-FQISHQEN.mjs} +1 -1
- package/dist/preview-engine/{renderers-YJ4PJEPG.mjs → renderers-FXAVFNUN.mjs} +1 -1
- package/dist/preview-engine/{renderers-4SNAK77B.mjs → renderers-GITAVRYZ.mjs} +1 -1
- package/dist/preview-engine/renderers-GTKRV225.mjs +1 -0
- package/dist/preview-engine/{renderers-RQ3JZE3L.mjs → renderers-HG6JZIZO.mjs} +1 -1
- package/dist/preview-engine/{renderers-OZKPOUMW.mjs → renderers-HHWMIDN3.mjs} +1 -1
- package/dist/preview-engine/renderers-HI3SRJVD.mjs +1 -0
- package/dist/preview-engine/renderers-HXEDI4BD.mjs +1 -0
- package/dist/preview-engine/{renderers-LF6U4MR5.mjs → renderers-I2ZOUFRU.mjs} +1 -1
- package/dist/preview-engine/renderers-JHFD4LHZ.mjs +1 -0
- package/dist/preview-engine/renderers-KGVZUFHD.mjs +1 -0
- package/dist/preview-engine/{renderers-G2FL3IFD.mjs → renderers-KKULMOV4.mjs} +1 -1
- package/dist/preview-engine/{renderers-JALV3B3A.mjs → renderers-KMVMPYY7.mjs} +1 -1
- package/dist/preview-engine/renderers-L6GFGHS6.mjs +1 -0
- package/dist/preview-engine/renderers-LN7WPG6I.mjs +1 -0
- package/dist/preview-engine/{renderers-37Y5LR2S.mjs → renderers-LWW4RF6D.mjs} +1 -1
- package/dist/preview-engine/renderers-LY57CZZB.mjs +1 -0
- package/dist/preview-engine/renderers-MBMJWZEW.mjs +1 -0
- package/dist/preview-engine/{renderers-6RYIPQ7W.mjs → renderers-MPFU74I3.mjs} +1 -1
- package/dist/preview-engine/{renderers-TKHQRERE.mjs → renderers-MW53LTMB.mjs} +1 -1
- package/dist/preview-engine/{renderers-Q5YCUPYE.mjs → renderers-PC2GOZDT.mjs} +1 -1
- package/dist/preview-engine/renderers-PREFONJG.mjs +1 -0
- package/dist/preview-engine/{renderers-WG756VF3.mjs → renderers-PSBTV2DO.mjs} +1 -1
- package/dist/preview-engine/{renderers-XZ3XDQIN.mjs → renderers-Q77UPEYE.mjs} +1 -1
- package/dist/preview-engine/renderers-QHXCFDHI.mjs +1 -0
- package/dist/preview-engine/renderers-R22CDFO4.mjs +1 -0
- package/dist/preview-engine/renderers-RDYJRNAR.mjs +1 -0
- package/dist/preview-engine/renderers-RENLKAA7.mjs +1 -0
- package/dist/preview-engine/{renderers-U4S577ON.mjs → renderers-RIPXT4AL.mjs} +1 -1
- package/dist/preview-engine/{renderers-ZQVKE5AO.mjs → renderers-SFVFAS3C.mjs} +1 -1
- package/dist/preview-engine/{renderers-5K3BSBI6.mjs → renderers-SWQVCJHB.mjs} +1 -1
- package/dist/preview-engine/renderers-SZVDZDY7.mjs +1 -0
- package/dist/preview-engine/renderers-TEKHQHCL.mjs +1 -0
- package/dist/preview-engine/renderers-TS32FDV7.mjs +1 -0
- package/dist/preview-engine/renderers-TYSLUZ53.mjs +1 -0
- package/dist/preview-engine/renderers-U3RLYFCN.mjs +1 -0
- package/dist/preview-engine/{renderers-PGZDFDSC.mjs → renderers-U4IXWMD6.mjs} +1 -1
- package/dist/preview-engine/renderers-V5HM6PZ2.mjs +1 -0
- package/dist/preview-engine/{renderers-4MW4NW6O.mjs → renderers-VUQAZ56P.mjs} +1 -1
- package/dist/preview-engine/renderers-W5YFMLSB.mjs +1 -0
- package/dist/preview-engine/renderers-XKDWUK56.mjs +1 -0
- package/dist/preview-engine/renderers-XKSBNCLZ.mjs +1 -0
- package/dist/preview-engine/renderers-XLQXVD37.mjs +1 -0
- package/dist/preview-engine/renderers-ZGX3A3QZ.mjs +1 -0
- package/dist/preview-engine/signals.mjs +1 -1
- package/dist/{program-BUjUTdxq.mjs → program-Cvv_nb9T.mjs} +2 -2
- package/dist/{program-BUjUTdxq.mjs.map → program-Cvv_nb9T.mjs.map} +1 -1
- package/dist/renderer/index.d.mts +1 -1
- package/dist/renderer/index.mjs +2 -2
- package/dist/renderer--RJepuOy.mjs +5 -0
- package/dist/{renderer-B84T5I98.mjs → renderer-4uZGSmUD.mjs} +3 -3
- package/dist/{renderer-B84T5I98.mjs.map → renderer-4uZGSmUD.mjs.map} +1 -1
- package/dist/{renderer-Bo5GwErU.mjs → renderer-5fGj_tqN.mjs} +3 -3
- package/dist/{renderer-Bo5GwErU.mjs.map → renderer-5fGj_tqN.mjs.map} +1 -1
- package/dist/{renderer-D7DlNOVi.mjs → renderer-6g1ri445.mjs} +3 -3
- package/dist/{renderer-D7DlNOVi.mjs.map → renderer-6g1ri445.mjs.map} +1 -1
- package/dist/{renderer-H4CZt3Z5.mjs → renderer-B09I95bo.mjs} +2 -2
- package/dist/{renderer-tcypOFaB.d.mts → renderer-B1U6YRRV.d.mts} +2 -2
- package/dist/{renderer-tcypOFaB.d.mts.map → renderer-B1U6YRRV.d.mts.map} +1 -1
- package/dist/renderer-B4NFnaty.mjs +5 -0
- package/dist/renderer-B6g4ts0e.mjs +5 -0
- package/dist/{renderer-DBfx6QX1.mjs → renderer-BBjkX0Vt.mjs} +2 -2
- package/dist/{renderer-BdRwbLLV.mjs → renderer-BC_Nse6h.mjs} +3 -3
- package/dist/{renderer-BdRwbLLV.mjs.map → renderer-BC_Nse6h.mjs.map} +1 -1
- package/dist/renderer-BGoAr-tl.mjs +5 -0
- package/dist/{renderer-CWmlfdLb.mjs → renderer-BJEexai1.mjs} +3 -3
- package/dist/{renderer-CWmlfdLb.mjs.map → renderer-BJEexai1.mjs.map} +1 -1
- package/dist/renderer-BSOdBgdE.mjs +5 -0
- package/dist/{renderer-muB4slsV.mjs → renderer-BSsKlcHk.mjs} +3 -3
- package/dist/{renderer-muB4slsV.mjs.map → renderer-BSsKlcHk.mjs.map} +1 -1
- package/dist/{renderer-DlbSqOJR.mjs → renderer-BTd6tFcS.mjs} +3 -3
- package/dist/{renderer-DlbSqOJR.mjs.map → renderer-BTd6tFcS.mjs.map} +1 -1
- package/dist/renderer-BU6O0fpM.mjs +5 -0
- package/dist/{renderer-DtCmG-tT.mjs → renderer-BXGuCnCJ.mjs} +3 -3
- package/dist/{renderer-DtCmG-tT.mjs.map → renderer-BXGuCnCJ.mjs.map} +1 -1
- package/dist/renderer-BZ97iidG.mjs +5 -0
- package/dist/renderer-B_Klh1VT.mjs +5 -0
- package/dist/renderer-BaWQM1y-.mjs +5 -0
- package/dist/renderer-Bc0jvAj0.mjs +5 -0
- package/dist/{renderer-jBKpX3Xg.mjs → renderer-Bf7Z7WT5.mjs} +2 -2
- package/dist/{renderer-jBKpX3Xg.mjs.map → renderer-Bf7Z7WT5.mjs.map} +1 -1
- package/dist/renderer-Bm077kZ6.mjs +5 -0
- package/dist/renderer-BtzE_e_Y.mjs +5 -0
- package/dist/{renderer-kFx1_MmK.mjs → renderer-BvRM3OZ6.mjs} +2 -2
- package/dist/{renderer-kFx1_MmK.mjs.map → renderer-BvRM3OZ6.mjs.map} +1 -1
- package/dist/{renderer-DAfCcnCz.mjs → renderer-BwJ0nXXu.mjs} +3 -3
- package/dist/{renderer-DAfCcnCz.mjs.map → renderer-BwJ0nXXu.mjs.map} +1 -1
- package/dist/{renderer-CO1PwItH.mjs → renderer-BwV-o_1b.mjs} +2 -2
- package/dist/{renderer-CO1PwItH.mjs.map → renderer-BwV-o_1b.mjs.map} +1 -1
- package/dist/{renderer-Bm91Xv6l.mjs → renderer-Bxiiar50.mjs} +3 -3
- package/dist/{renderer-Bm91Xv6l.mjs.map → renderer-Bxiiar50.mjs.map} +1 -1
- package/dist/{renderer-CanNjQuL.mjs → renderer-ByFPmHBC.mjs} +2 -2
- package/dist/{renderer-CanNjQuL.mjs.map → renderer-ByFPmHBC.mjs.map} +1 -1
- package/dist/{renderer-JASAZUyY.mjs → renderer-BzTj_CeK.mjs} +3 -3
- package/dist/{renderer-JASAZUyY.mjs.map → renderer-BzTj_CeK.mjs.map} +1 -1
- package/dist/renderer-C225eCAo.mjs +5 -0
- package/dist/{renderer-7w9PZmWJ.mjs → renderer-C2kFIZ4r.mjs} +2 -2
- package/dist/{renderer-7w9PZmWJ.mjs.map → renderer-C2kFIZ4r.mjs.map} +1 -1
- package/dist/{renderer-vpsU_4XW.mjs → renderer-C3CGYjrC.mjs} +3 -3
- package/dist/{renderer-vpsU_4XW.mjs.map → renderer-C3CGYjrC.mjs.map} +1 -1
- package/dist/{renderer-BFmVDdVs.mjs → renderer-CGpi8CDT.mjs} +3 -3
- package/dist/{renderer-BFmVDdVs.mjs.map → renderer-CGpi8CDT.mjs.map} +1 -1
- package/dist/{renderer-FFLnACY-.mjs → renderer-CInMMs5x.mjs} +3 -3
- package/dist/{renderer-FFLnACY-.mjs.map → renderer-CInMMs5x.mjs.map} +1 -1
- package/dist/{renderer-CTSvHf6g.mjs → renderer-CLTRTtQ8.mjs} +3 -3
- package/dist/{renderer-CTSvHf6g.mjs.map → renderer-CLTRTtQ8.mjs.map} +1 -1
- package/dist/renderer-CLXdR4vz.mjs +5 -0
- package/dist/{renderer-7c0ecb-L.mjs → renderer-CMCmljb0.mjs} +2 -2
- package/dist/{renderer-7c0ecb-L.mjs.map → renderer-CMCmljb0.mjs.map} +1 -1
- package/dist/{renderer-BnN3JH9u.mjs → renderer-CN-mCIoI.mjs} +3 -3
- package/dist/{renderer-BnN3JH9u.mjs.map → renderer-CN-mCIoI.mjs.map} +1 -1
- package/dist/{renderer-Bif8bwCq.mjs → renderer-CNpq7rL-.mjs} +2 -2
- package/dist/{renderer-Bif8bwCq.mjs.map → renderer-CNpq7rL-.mjs.map} +1 -1
- package/dist/{renderer-Chfo4G9t.mjs → renderer-CZClDMgF.mjs} +3 -3
- package/dist/{renderer-Chfo4G9t.mjs.map → renderer-CZClDMgF.mjs.map} +1 -1
- package/dist/{renderer-BvRaVByi.mjs → renderer-C_gR2H3R.mjs} +2 -2
- package/dist/{renderer-BvRaVByi.mjs.map → renderer-C_gR2H3R.mjs.map} +1 -1
- package/dist/{renderer-DJuVX3c5.d.mts → renderer-CcmxR6Fy.d.mts} +2 -2
- package/dist/{renderer-DJuVX3c5.d.mts.map → renderer-CcmxR6Fy.d.mts.map} +1 -1
- package/dist/{renderer-BT4im6c0.mjs → renderer-CiHVnhUk.mjs} +3 -3
- package/dist/{renderer-BT4im6c0.mjs.map → renderer-CiHVnhUk.mjs.map} +1 -1
- package/dist/renderer-CszM8B3C.mjs +5 -0
- package/dist/renderer-Ctp8ZYfk.mjs +5 -0
- package/dist/{renderer-BIToh0CA.mjs → renderer-CtpEzVBn.mjs} +2 -2
- package/dist/{renderer-BIToh0CA.mjs.map → renderer-CtpEzVBn.mjs.map} +1 -1
- package/dist/renderer-CxQdSp8I.mjs +5 -0
- package/dist/{renderer-BG_cnGbF.mjs → renderer-D3QPNBEj.mjs} +3 -3
- package/dist/{renderer-BG_cnGbF.mjs.map → renderer-D3QPNBEj.mjs.map} +1 -1
- package/dist/{renderer-CybBR8AL.mjs → renderer-D3YbHjRG.mjs} +69 -69
- package/dist/{renderer-CybBR8AL.mjs.map → renderer-D3YbHjRG.mjs.map} +1 -1
- package/dist/renderer-D4GMRtDd.mjs +6 -0
- package/dist/{renderer-w7mlMSC-.mjs → renderer-DEoerd-j.mjs} +3 -3
- package/dist/{renderer-w7mlMSC-.mjs.map → renderer-DEoerd-j.mjs.map} +1 -1
- package/dist/renderer-DEsGIvTZ.mjs +5 -0
- package/dist/{renderer-fWW0bsVl.mjs → renderer-DGXqspB9.mjs} +2 -2
- package/dist/renderer-DIaUQ0EP.mjs +5 -0
- package/dist/{renderer-Dd2XrdqA.mjs → renderer-DKFaVaRJ.mjs} +2 -2
- package/dist/{renderer-Dd2XrdqA.mjs.map → renderer-DKFaVaRJ.mjs.map} +1 -1
- package/dist/{renderer-DKptrHeL.mjs → renderer-DL3o_lG1.mjs} +3 -3
- package/dist/{renderer-DKptrHeL.mjs.map → renderer-DL3o_lG1.mjs.map} +1 -1
- package/dist/{renderer-DxkvDAA6.mjs → renderer-DLaUT6JZ.mjs} +2 -2
- package/dist/{renderer-DxkvDAA6.mjs.map → renderer-DLaUT6JZ.mjs.map} +1 -1
- package/dist/renderer-DLjqcNzQ.mjs +5 -0
- package/dist/renderer-DMuQZa51.mjs +5 -0
- package/dist/{renderer-BeJoW-nG.mjs → renderer-DO1SZ5xY.mjs} +3 -3
- package/dist/{renderer-BeJoW-nG.mjs.map → renderer-DO1SZ5xY.mjs.map} +1 -1
- package/dist/{renderer-B3WHDQeB.mjs → renderer-DO_zXwMJ.mjs} +2 -2
- package/dist/{renderer-B3WHDQeB.mjs.map → renderer-DO_zXwMJ.mjs.map} +1 -1
- package/dist/renderer-DOgi2aF2.mjs +5 -0
- package/dist/{renderer-CtulmkqT.mjs → renderer-DP9ScNM6.mjs} +2 -2
- package/dist/{renderer-CtulmkqT.mjs.map → renderer-DP9ScNM6.mjs.map} +1 -1
- package/dist/{renderer-CLRrcT_3.mjs → renderer-DQJHjU0L.mjs} +3 -3
- package/dist/{renderer-CLRrcT_3.mjs.map → renderer-DQJHjU0L.mjs.map} +1 -1
- package/dist/renderer-DSh7cvi4.mjs +5 -0
- package/dist/renderer-DV1LVBBP.mjs +5 -0
- package/dist/{renderer-D7lApyWZ.mjs → renderer-DX60Kr20.mjs} +2 -2
- package/dist/{renderer-D7lApyWZ.mjs.map → renderer-DX60Kr20.mjs.map} +1 -1
- package/dist/{renderer-R2kLaNuR.mjs → renderer-DZIxduEt.mjs} +2 -2
- package/dist/{renderer-R2kLaNuR.mjs.map → renderer-DZIxduEt.mjs.map} +1 -1
- package/dist/{renderer-DMtzPqYo.mjs → renderer-DaLy1dFA.mjs} +5 -5
- package/dist/{renderer-DMtzPqYo.mjs.map → renderer-DaLy1dFA.mjs.map} +1 -1
- package/dist/{renderer-1KgHl_ls.mjs → renderer-DaY04IyU.mjs} +3 -3
- package/dist/{renderer-1KgHl_ls.mjs.map → renderer-DaY04IyU.mjs.map} +1 -1
- package/dist/renderer-Dhrj2bJz.mjs +5 -0
- package/dist/{renderer-Dih1rtT6.mjs → renderer-Dj54y3h3.mjs} +2 -2
- package/dist/{renderer-Dih1rtT6.mjs.map → renderer-Dj54y3h3.mjs.map} +1 -1
- package/dist/renderer-DoFUu1R4.mjs +5 -0
- package/dist/{renderer-DkAFIpzB.mjs → renderer-Dp9FQKVP.mjs} +3 -3
- package/dist/{renderer-DkAFIpzB.mjs.map → renderer-Dp9FQKVP.mjs.map} +1 -1
- package/dist/{renderer--f8JHHyT.mjs → renderer-DrK6pyfz.mjs} +3 -3
- package/dist/{renderer--f8JHHyT.mjs.map → renderer-DrK6pyfz.mjs.map} +1 -1
- package/dist/{renderer-Ch1qZ2PT.mjs → renderer-DrL3J9ci.mjs} +2 -2
- package/dist/{renderer-Ch1qZ2PT.mjs.map → renderer-DrL3J9ci.mjs.map} +1 -1
- package/dist/renderer-DsydX3cx.mjs +5 -0
- package/dist/{renderer-oiDoNzhv.mjs → renderer-DwH5e3hx.mjs} +2 -2
- package/dist/renderer-DxVSoeYi.mjs +5 -0
- package/dist/{renderer-Br_aJ_b7.mjs → renderer-Dy1xQOTu.mjs} +2 -2
- package/dist/{renderer-Br_aJ_b7.mjs.map → renderer-Dy1xQOTu.mjs.map} +1 -1
- package/dist/{renderer-CDfCaqV4.mjs → renderer-FvvywNvv.mjs} +2 -2
- package/dist/{renderer-CDfCaqV4.mjs.map → renderer-FvvywNvv.mjs.map} +1 -1
- package/dist/{renderer-DjiebKHO.mjs → renderer-HXw4cJZx.mjs} +2 -2
- package/dist/{renderer-DjiebKHO.mjs.map → renderer-HXw4cJZx.mjs.map} +1 -1
- package/dist/{renderer-D_rEtJAH.mjs → renderer-HhJPFidU.mjs} +3 -3
- package/dist/{renderer-D_rEtJAH.mjs.map → renderer-HhJPFidU.mjs.map} +1 -1
- package/dist/{renderer-Dswrn-yi.mjs → renderer-IAffbHXx.mjs} +2 -2
- package/dist/{renderer-Dswrn-yi.mjs.map → renderer-IAffbHXx.mjs.map} +1 -1
- package/dist/{renderer-D1tDMuD0.mjs → renderer-LrAldCWN.mjs} +3 -3
- package/dist/{renderer-D1tDMuD0.mjs.map → renderer-LrAldCWN.mjs.map} +1 -1
- package/dist/renderer-Nc9bHb0n.mjs +5 -0
- package/dist/{renderer-DAug14gu.mjs → renderer-O4y02xkD.mjs} +2 -2
- package/dist/{renderer-DAug14gu.mjs.map → renderer-O4y02xkD.mjs.map} +1 -1
- package/dist/{renderer-Ck-NLzz0.mjs → renderer-PnnkUWm-.mjs} +2 -2
- package/dist/{renderer-Ck-NLzz0.mjs.map → renderer-PnnkUWm-.mjs.map} +1 -1
- package/dist/renderer-TFaSD2Db.mjs +5 -0
- package/dist/{renderer-CKlNHDKI.mjs → renderer-TiaHrU5z.mjs} +3 -3
- package/dist/{renderer-CKlNHDKI.mjs.map → renderer-TiaHrU5z.mjs.map} +1 -1
- package/dist/renderer-Z61ctppe.mjs +5 -0
- package/dist/{renderer-BTLZBD63.mjs → renderer-_KIBvES8.mjs} +3 -3
- package/dist/{renderer-BTLZBD63.mjs.map → renderer-_KIBvES8.mjs.map} +1 -1
- package/dist/renderer-awXf3sNS.mjs +5 -0
- package/dist/{renderer-CsRuEpR2.mjs → renderer-b0H3oDae.mjs} +2 -2
- package/dist/{renderer-CsRuEpR2.mjs.map → renderer-b0H3oDae.mjs.map} +1 -1
- package/dist/renderer-cHT28oYI.mjs +5 -0
- package/dist/renderer-g7Y3bFot.mjs +5 -0
- package/dist/{renderer-CxabOSkk.mjs → renderer-oBgCEqaM.mjs} +2 -2
- package/dist/{renderer-CxabOSkk.mjs.map → renderer-oBgCEqaM.mjs.map} +1 -1
- package/dist/{renderer-BhNZn2DU.mjs → renderer-qVJdxbXB.mjs} +3 -3
- package/dist/{renderer-BhNZn2DU.mjs.map → renderer-qVJdxbXB.mjs.map} +1 -1
- package/dist/renderer-qVv0OzVc.mjs +5 -0
- package/dist/{renderer-B8i4d1Rc.mjs → renderer-rKw5_EjG.mjs} +2 -2
- package/dist/{renderer-B8i4d1Rc.mjs.map → renderer-rKw5_EjG.mjs.map} +1 -1
- package/dist/{renderer-CeNAgCE2.mjs → renderer-sMFJtt_H.mjs} +2 -2
- package/dist/{renderer-CeNAgCE2.mjs.map → renderer-sMFJtt_H.mjs.map} +1 -1
- package/dist/{renderer-DrExCXnp.mjs → renderer-smP1F57W.mjs} +2 -2
- package/dist/{renderer-DrExCXnp.mjs.map → renderer-smP1F57W.mjs.map} +1 -1
- package/dist/{renderer-DxiF4O6X.mjs → renderer-snjhPaP-.mjs} +3 -3
- package/dist/{renderer-DxiF4O6X.mjs.map → renderer-snjhPaP-.mjs.map} +1 -1
- package/dist/{renderer-CwAuWLWm.mjs → renderer-t1sXDiqm.mjs} +3 -3
- package/dist/{renderer-CwAuWLWm.mjs.map → renderer-t1sXDiqm.mjs.map} +1 -1
- package/dist/{renderer-Bb_HHUQ0.mjs → renderer-tRi3KNoG.mjs} +3 -3
- package/dist/{renderer-Bb_HHUQ0.mjs.map → renderer-tRi3KNoG.mjs.map} +1 -1
- package/dist/{renderer-BSW4CGZF.mjs → renderer-uA0UCxjA.mjs} +2 -2
- package/dist/{renderer-BSW4CGZF.mjs.map → renderer-uA0UCxjA.mjs.map} +1 -1
- package/dist/{renderer-vPxMXiv8.mjs → renderer-xNOKSN3V.mjs} +3 -3
- package/dist/{renderer-vPxMXiv8.mjs.map → renderer-xNOKSN3V.mjs.map} +1 -1
- package/dist/{renderers-CP8CFWDs-OgyUiyrr.mjs → renderers-CP8CFWDs-DWRjjeUg.mjs} +2 -2
- package/dist/{renderers-CP8CFWDs-OgyUiyrr.mjs.map → renderers-CP8CFWDs-DWRjjeUg.mjs.map} +1 -1
- package/dist/signals/index.d.mts +6 -6
- package/dist/signals/index.mjs +4 -4
- package/dist/{src-C3f3zXYg.mjs → src-D7M8VTzv.mjs} +7 -7
- package/dist/{src-C3f3zXYg.mjs.map → src-D7M8VTzv.mjs.map} +1 -1
- package/package.json +59 -59
- package/dist/audio-1X5qNNmk.d.mts +0 -38
- package/dist/audio-1X5qNNmk.d.mts.map +0 -1
- package/dist/audio-YpBRdI7r.mjs.map +0 -1
- package/dist/cloud-xcfV4J03.mjs.map +0 -1
- package/dist/dist-C4Vxgm0Q.mjs.map +0 -1
- package/dist/index-B7WqFBZA.d.mts.map +0 -1
- package/dist/index-Dyt4yS-x.d.mts.map +0 -1
- package/dist/preview-engine/chunk-GTMZOMAN.mjs +0 -1
- package/dist/preview-engine/renderers-33PIDDZC.mjs +0 -1
- package/dist/preview-engine/renderers-3AZ3HY53.mjs +0 -1
- package/dist/preview-engine/renderers-3FGKW52B.mjs +0 -1
- package/dist/preview-engine/renderers-4A2FBS3Y.mjs +0 -1
- package/dist/preview-engine/renderers-65DU2F5W.mjs +0 -1
- package/dist/preview-engine/renderers-6CTPYQR6.mjs +0 -1
- package/dist/preview-engine/renderers-AWODRI3B.mjs +0 -1
- package/dist/preview-engine/renderers-BO6HHGMZ.mjs +0 -1
- package/dist/preview-engine/renderers-BSXYDEV7.mjs +0 -1
- package/dist/preview-engine/renderers-ECW2CGNU.mjs +0 -1
- package/dist/preview-engine/renderers-EEX22FUO.mjs +0 -1
- package/dist/preview-engine/renderers-GCQKGJ7W.mjs +0 -1
- package/dist/preview-engine/renderers-HZBXLDKG.mjs +0 -1
- package/dist/preview-engine/renderers-IOXNQPQK.mjs +0 -1
- package/dist/preview-engine/renderers-IR44E4ZZ.mjs +0 -1
- package/dist/preview-engine/renderers-JZZ3ODOZ.mjs +0 -1
- package/dist/preview-engine/renderers-K37YL3Z7.mjs +0 -1
- package/dist/preview-engine/renderers-KUJQV3K6.mjs +0 -1
- package/dist/preview-engine/renderers-KXVKLSSX.mjs +0 -1
- package/dist/preview-engine/renderers-N4RVFX3G.mjs +0 -1
- package/dist/preview-engine/renderers-NZWWEAYA.mjs +0 -1
- package/dist/preview-engine/renderers-P4JJEDZB.mjs +0 -1
- package/dist/preview-engine/renderers-Q4572F5C.mjs +0 -1
- package/dist/preview-engine/renderers-QAX2QWWQ.mjs +0 -1
- package/dist/preview-engine/renderers-SRFIEVWL.mjs +0 -1
- package/dist/preview-engine/renderers-SYC6WFTM.mjs +0 -1
- package/dist/preview-engine/renderers-UH4WN3QN.mjs +0 -1
- package/dist/preview-engine/renderers-V4FFCAS7.mjs +0 -1
- package/dist/preview-engine/renderers-VGDEOZUU.mjs +0 -1
- package/dist/preview-engine/renderers-VJJKBX5K.mjs +0 -1
- package/dist/preview-engine/renderers-VJOKVDYW.mjs +0 -1
- package/dist/preview-engine/renderers-VUUWZUOH.mjs +0 -1
- package/dist/preview-engine/renderers-WOP5GOZP.mjs +0 -1
- package/dist/preview-engine/renderers-Y4MGN2FR.mjs +0 -1
- package/dist/preview-engine/renderers-YAMYH7IK.mjs +0 -1
- package/dist/preview-engine/renderers-ZNLSAWW3.mjs +0 -1
- package/dist/renderer-6sNr6ZRJ.mjs +0 -6
- package/dist/renderer-BDHGxD6p.mjs +0 -5
- package/dist/renderer-BT9dvpk2.mjs +0 -5
- package/dist/renderer-BfaRh0qy.mjs +0 -5
- package/dist/renderer-BlwXKV7Y.mjs +0 -5
- package/dist/renderer-C40yZK3x.mjs +0 -5
- package/dist/renderer-C5MjQ7L8.mjs +0 -5
- package/dist/renderer-C8LjKYnS.mjs +0 -5
- package/dist/renderer-C9q9H_qa.mjs +0 -5
- package/dist/renderer-CF9ta9Rm.mjs +0 -5
- package/dist/renderer-CO205Gr9.mjs +0 -5
- package/dist/renderer-CSm8UXLP.mjs +0 -5
- package/dist/renderer-CSy8HRtF.mjs +0 -5
- package/dist/renderer-CdNRWDsA.mjs +0 -5
- package/dist/renderer-CkAjiGRB.mjs +0 -5
- package/dist/renderer-CmryuPBm.mjs +0 -5
- package/dist/renderer-CnEwne4L.mjs +0 -5
- package/dist/renderer-D4QDoqOG.mjs +0 -5
- package/dist/renderer-D7cS2a8z.mjs +0 -5
- package/dist/renderer-D85CNC-b.mjs +0 -5
- package/dist/renderer-DC9IoJNz.mjs +0 -5
- package/dist/renderer-DIDh0gFm.mjs +0 -5
- package/dist/renderer-DLmJ9GWE.mjs +0 -5
- package/dist/renderer-DM7PUWP9.mjs +0 -5
- package/dist/renderer-DPWFDxIO.mjs +0 -5
- package/dist/renderer-DUCByhAk.mjs +0 -5
- package/dist/renderer-DVOtnCKH.mjs +0 -5
- package/dist/renderer-DVrN2bW8.mjs +0 -5
- package/dist/renderer-DdOVwfG4.mjs +0 -5
- package/dist/renderer-DtCe9ouu.mjs +0 -5
- package/dist/renderer-Mg0kr9Fm.mjs +0 -5
- package/dist/renderer-T35PsSw5.mjs +0 -5
- package/dist/renderer-iSZ5NT-J.mjs +0 -5
- package/dist/renderer-nEmMjQ1a.mjs +0 -5
- package/dist/renderer-pG1nyfjE.mjs +0 -5
- 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-
|
|
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
|
-
|
|
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 =
|
|
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 $,
|
|
41218
|
-
//# sourceMappingURL=dist-
|
|
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
|