@imgly/codesign-mcp 0.1.5 → 0.1.6
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/README.md +51 -1
- package/assets/docs/guide/SKILL.md +45 -53
- package/assets/docs/guide/animation/create/base.md +234 -243
- package/assets/docs/guide/animation/create/text.md +250 -231
- package/assets/docs/guide/animation/create.md +197 -231
- package/assets/docs/guide/animation/edit.md +196 -271
- package/assets/docs/guide/animation/types.md +182 -185
- package/assets/docs/guide/animation.md +9 -6
- package/assets/docs/guide/api/AssetAPI.md +7 -53
- package/assets/docs/guide/api/BlockAPI.md +725 -648
- package/assets/docs/guide/api/CreativeEngine.md +7 -16
- package/assets/docs/guide/api/EditorAPI.md +32 -93
- package/assets/docs/guide/api/EventAPI.md +1 -2
- package/assets/docs/guide/api/SceneAPI.md +47 -98
- package/assets/docs/guide/api/VariableAPI.md +1 -4
- package/assets/docs/guide/api/node/classes/assetapi.md +1090 -0
- package/assets/docs/guide/api/node/classes/blockapi.md +12965 -0
- package/assets/docs/guide/api/node/classes/creativeengine.md +319 -0
- package/assets/docs/guide/api/node/classes/editorapi.md +3417 -0
- package/assets/docs/guide/api/node/classes/engineactions.md +319 -0
- package/assets/docs/guide/api/node/classes/eventapi.md +56 -0
- package/assets/docs/guide/api/node/classes/sceneapi.md +1370 -0
- package/assets/docs/guide/api/node/classes/variableapi.md +143 -0
- package/assets/docs/guide/api/node/enumerations/compressionformat.md +23 -0
- package/assets/docs/guide/api/node/enumerations/compressionlevel.md +24 -0
- package/assets/docs/guide/api/node/functions/iscmykcolor.md +30 -0
- package/assets/docs/guide/api/node/functions/isrgbacolor.md +30 -0
- package/assets/docs/guide/api/node/functions/isspotcolor.md +30 -0
- package/assets/docs/guide/api/node/interfaces/addvideooptions.md +31 -0
- package/assets/docs/guide/api/node/interfaces/applyassetoptions.md +31 -0
- package/assets/docs/guide/api/node/interfaces/asset.md +30 -0
- package/assets/docs/guide/api/node/interfaces/assetbooleanproperty.md +25 -0
- package/assets/docs/guide/api/node/interfaces/assetcmykcolor.md +26 -0
- package/assets/docs/guide/api/node/interfaces/assetcolorproperty.md +25 -0
- package/assets/docs/guide/api/node/interfaces/assetcontentaspectratio.md +23 -0
- package/assets/docs/guide/api/node/interfaces/assetdefinition.md +31 -0
- package/assets/docs/guide/api/node/interfaces/assetenumproperty.md +26 -0
- package/assets/docs/guide/api/node/interfaces/assetfixedaspectratio.md +24 -0
- package/assets/docs/guide/api/node/interfaces/assetfixedsize.md +25 -0
- package/assets/docs/guide/api/node/interfaces/assetfreeaspectratio.md +22 -0
- package/assets/docs/guide/api/node/interfaces/assetnumberproperty.md +28 -0
- package/assets/docs/guide/api/node/interfaces/assetpayload.md +27 -0
- package/assets/docs/guide/api/node/interfaces/assetquerydata.md +32 -0
- package/assets/docs/guide/api/node/interfaces/assetresult.md +46 -0
- package/assets/docs/guide/api/node/interfaces/assetrgbcolor.md +25 -0
- package/assets/docs/guide/api/node/interfaces/assetsource.md +111 -0
- package/assets/docs/guide/api/node/interfaces/assetspotcolor.md +25 -0
- package/assets/docs/guide/api/node/interfaces/assetsqueryresult.md +31 -0
- package/assets/docs/guide/api/node/interfaces/assetstringproperty.md +25 -0
- package/assets/docs/guide/api/node/interfaces/assetstylepreset.md +39 -0
- package/assets/docs/guide/api/node/interfaces/assetstylepresetanimation.md +23 -0
- package/assets/docs/guide/api/node/interfaces/audiotrackinfo.md +32 -0
- package/assets/docs/guide/api/node/interfaces/blockevent.md +26 -0
- package/assets/docs/guide/api/node/interfaces/blockstateerror.md +26 -0
- package/assets/docs/guide/api/node/interfaces/blockstatepending.md +26 -0
- package/assets/docs/guide/api/node/interfaces/blockstateready.md +25 -0
- package/assets/docs/guide/api/node/interfaces/buffer.md +26 -0
- package/assets/docs/guide/api/node/interfaces/characterinkbox.md +29 -0
- package/assets/docs/guide/api/node/interfaces/cmykcolor.md +34 -0
- package/assets/docs/guide/api/node/interfaces/completeassetresult.md +46 -0
- package/assets/docs/guide/api/node/interfaces/configuration.md +38 -0
- package/assets/docs/guide/api/node/interfaces/dominantcolor.md +25 -0
- package/assets/docs/guide/api/node/interfaces/dominantcolorsoptions.md +23 -0
- package/assets/docs/guide/api/node/interfaces/engineactioninfo.md +24 -0
- package/assets/docs/guide/api/node/interfaces/engineactionsregistry.md +18 -0
- package/assets/docs/guide/api/node/interfaces/engineplugin.md +30 -0
- package/assets/docs/guide/api/node/interfaces/font.md +27 -0
- package/assets/docs/guide/api/node/interfaces/fontmetrics.md +32 -0
- package/assets/docs/guide/api/node/interfaces/gradientcolorstop.md +28 -0
- package/assets/docs/guide/api/node/interfaces/logger.md +39 -0
- package/assets/docs/guide/api/node/interfaces/pageduration.md +23 -0
- package/assets/docs/guide/api/node/interfaces/range.md +23 -0
- package/assets/docs/guide/api/node/interfaces/rgbacolor.md +32 -0
- package/assets/docs/guide/api/node/interfaces/rgbcolor.md +30 -0
- package/assets/docs/guide/api/node/interfaces/settings.md +126 -0
- package/assets/docs/guide/api/node/interfaces/size2.md +21 -0
- package/assets/docs/guide/api/node/interfaces/source.md +24 -0
- package/assets/docs/guide/api/node/interfaces/spotcolor.md +30 -0
- package/assets/docs/guide/api/node/interfaces/textdecorationconfig.md +31 -0
- package/assets/docs/guide/api/node/interfaces/textfontsizeoptions.md +24 -0
- package/assets/docs/guide/api/node/interfaces/textruninfo.md +33 -0
- package/assets/docs/guide/api/node/interfaces/transientresource.md +26 -0
- package/assets/docs/guide/api/node/interfaces/typeface.md +23 -0
- package/assets/docs/guide/api/node/interfaces/vec2.md +21 -0
- package/assets/docs/guide/api/node/interfaces/vec3.md +22 -0
- package/assets/docs/guide/api/node/type-aliases/addimageoptions.md +36 -0
- package/assets/docs/guide/api/node/type-aliases/animationbaselinedirection.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/animationblockswipetextdirection.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/animationeasing.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/animationentry.md +28 -0
- package/assets/docs/guide/api/node/type-aliases/animationgrowdirection.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/animationjumploopdirection.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/animationkenburnsdirection.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/animationmergetextdirection.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/animationoptions.md +28 -0
- package/assets/docs/guide/api/node/type-aliases/animationspindirection.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/animationspinloopdirection.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/animationtype.md +24 -0
- package/assets/docs/guide/api/node/type-aliases/animationtypelonghand.md +21 -0
- package/assets/docs/guide/api/node/type-aliases/animationtypeshorthand.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/animationtypewritertextwritingstyle.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/animationwipedirection.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/applicationmimetype.md +20 -0
- package/assets/docs/guide/api/node/type-aliases/assetcolor.md +23 -0
- package/assets/docs/guide/api/node/type-aliases/assetfilter.md +47 -0
- package/assets/docs/guide/api/node/type-aliases/assetgroups.md +25 -0
- package/assets/docs/guide/api/node/type-aliases/assetmetadata.md +42 -0
- package/assets/docs/guide/api/node/type-aliases/assetproperty.md +25 -0
- package/assets/docs/guide/api/node/type-aliases/assetpropertyfilter.md +41 -0
- package/assets/docs/guide/api/node/type-aliases/assetpropertypath.md +26 -0
- package/assets/docs/guide/api/node/type-aliases/assetstylepresetanimationproperties.md +34 -0
- package/assets/docs/guide/api/node/type-aliases/assetstylepresetproperties.md +29 -0
- package/assets/docs/guide/api/node/type-aliases/assetstylepresetpropertyvalue.md +29 -0
- package/assets/docs/guide/api/node/type-aliases/assetstylepresetscalableproperty.md +28 -0
- package/assets/docs/guide/api/node/type-aliases/assettransformpreset.md +24 -0
- package/assets/docs/guide/api/node/type-aliases/asyncuriresolver.md +36 -0
- package/assets/docs/guide/api/node/type-aliases/audioexportoptions.md +43 -0
- package/assets/docs/guide/api/node/type-aliases/audiofromvideooptions.md +27 -0
- package/assets/docs/guide/api/node/type-aliases/audiomimetype.md +20 -0
- package/assets/docs/guide/api/node/type-aliases/blendmode.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/blockenumtype.md +63 -0
- package/assets/docs/guide/api/node/type-aliases/blockstate.md +26 -0
- package/assets/docs/guide/api/node/type-aliases/blurtype.md +24 -0
- package/assets/docs/guide/api/node/type-aliases/blurtypelonghand.md +21 -0
- package/assets/docs/guide/api/node/type-aliases/blurtypeshorthand.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/booleanoperation.md +27 -0
- package/assets/docs/guide/api/node/type-aliases/boolpropertyname.md +79 -0
- package/assets/docs/guide/api/node/type-aliases/cameraclampingovershootmode.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/captionhorizontalalignment.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/captionverticalalignment.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/cmyk.md +23 -0
- package/assets/docs/guide/api/node/type-aliases/color.md +23 -0
- package/assets/docs/guide/api/node/type-aliases/colorpickercolormode.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/colorpropertyname.md +31 -0
- package/assets/docs/guide/api/node/type-aliases/colorspace.md +20 -0
- package/assets/docs/guide/api/node/type-aliases/contentfillmode.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/controlgizmomovehandlevisibility.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/controlgizmoresizehandlesvisibility.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/controlgizmorotatehandlesvisibility.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/controlgizmoscalehandlesvisibility.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/createsceneoptions.md +30 -0
- package/assets/docs/guide/api/node/type-aliases/cutoutoperation.md +20 -0
- package/assets/docs/guide/api/node/type-aliases/cutouttype.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/defaultassetsourceid.md +37 -0
- package/assets/docs/guide/api/node/type-aliases/demoassetsourceid.md +33 -0
- package/assets/docs/guide/api/node/type-aliases/designblockid.md +20 -0
- package/assets/docs/guide/api/node/type-aliases/designblocktype.md +24 -0
- package/assets/docs/guide/api/node/type-aliases/designblocktypelonghand.md +21 -0
- package/assets/docs/guide/api/node/type-aliases/designblocktypeshorthand.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/designunit.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/doubleclickselectionmode.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/doublepropertyname.md +26 -0
- package/assets/docs/guide/api/node/type-aliases/dropshadowoptions.md +32 -0
- package/assets/docs/guide/api/node/type-aliases/editmode.md +27 -0
- package/assets/docs/guide/api/node/type-aliases/effecttype.md +24 -0
- package/assets/docs/guide/api/node/type-aliases/effecttypelonghand.md +21 -0
- package/assets/docs/guide/api/node/type-aliases/effecttypeshorthand.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/engineactionid.md +20 -0
- package/assets/docs/guide/api/node/type-aliases/enginecustomactionfunction.md +30 -0
- package/assets/docs/guide/api/node/type-aliases/engineplugincontext.md +30 -0
- package/assets/docs/guide/api/node/type-aliases/enumpropertyname.md +59 -0
- package/assets/docs/guide/api/node/type-aliases/enumvalues.md +59 -0
- package/assets/docs/guide/api/node/type-aliases/exportoptions.md +57 -0
- package/assets/docs/guide/api/node/type-aliases/fillpixelstreamorientation.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/filltype.md +24 -0
- package/assets/docs/guide/api/node/type-aliases/filltypelonghand.md +21 -0
- package/assets/docs/guide/api/node/type-aliases/filltypeshorthand.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/floatpropertyname.md +184 -0
- package/assets/docs/guide/api/node/type-aliases/fontsizeunit.md +23 -0
- package/assets/docs/guide/api/node/type-aliases/fontstyle.md +20 -0
- package/assets/docs/guide/api/node/type-aliases/fontweight.md +30 -0
- package/assets/docs/guide/api/node/type-aliases/gradientstoprgba.md +23 -0
- package/assets/docs/guide/api/node/type-aliases/heightmode.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/hexcolorstring.md +20 -0
- package/assets/docs/guide/api/node/type-aliases/historyid.md +20 -0
- package/assets/docs/guide/api/node/type-aliases/historyupdate.md +25 -0
- package/assets/docs/guide/api/node/type-aliases/horizontalblockalignment.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/horizontalcontentfillalignment.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/horizontaltextalignment.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/imagemimetype.md +25 -0
- package/assets/docs/guide/api/node/type-aliases/intpropertyname.md +26 -0
- package/assets/docs/guide/api/node/type-aliases/liststyle.md +20 -0
- package/assets/docs/guide/api/node/type-aliases/locale.md +20 -0
- package/assets/docs/guide/api/node/type-aliases/loglevel.md +24 -0
- package/assets/docs/guide/api/node/type-aliases/mimetype.md +20 -0
- package/assets/docs/guide/api/node/type-aliases/objecttype.md +24 -0
- package/assets/docs/guide/api/node/type-aliases/objecttypelonghand.md +27 -0
- package/assets/docs/guide/api/node/type-aliases/objecttypeshorthand.md +27 -0
- package/assets/docs/guide/api/node/type-aliases/optionalprefix.md +24 -0
- package/assets/docs/guide/api/node/type-aliases/pageguidessource.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/palettecolor.md +24 -0
- package/assets/docs/guide/api/node/type-aliases/positionmode.md +20 -0
- package/assets/docs/guide/api/node/type-aliases/positionxmode.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/positionymode.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/propertytype.md +31 -0
- package/assets/docs/guide/api/node/type-aliases/rgba.md +23 -0
- package/assets/docs/guide/api/node/type-aliases/rolestring.md +23 -0
- package/assets/docs/guide/api/node/type-aliases/scenefontsizeunit.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/scenelayout.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/scenemode.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/scope.md +50 -0
- package/assets/docs/guide/api/node/type-aliases/settingboolpropertyname.md +62 -0
- package/assets/docs/guide/api/node/type-aliases/settingcolorpropertyname.md +38 -0
- package/assets/docs/guide/api/node/type-aliases/settingenumpropertyname.md +29 -0
- package/assets/docs/guide/api/node/type-aliases/settingenumtype.md +33 -0
- package/assets/docs/guide/api/node/type-aliases/settingenumvalues.md +29 -0
- package/assets/docs/guide/api/node/type-aliases/settingfloatpropertyname.md +25 -0
- package/assets/docs/guide/api/node/type-aliases/settingintpropertyname.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/settingkey.md +20 -0
- package/assets/docs/guide/api/node/type-aliases/settingsbool.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/settingscolor.md +20 -0
- package/assets/docs/guide/api/node/type-aliases/settingscolorrgba.md +24 -0
- package/assets/docs/guide/api/node/type-aliases/settingsenum.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/settingsfloat.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/settingsint.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/settingsstring.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/settingstringpropertyname.md +28 -0
- package/assets/docs/guide/api/node/type-aliases/settingtype.md +20 -0
- package/assets/docs/guide/api/node/type-aliases/settingvaluetype.md +26 -0
- package/assets/docs/guide/api/node/type-aliases/shapetype.md +24 -0
- package/assets/docs/guide/api/node/type-aliases/shapetypelonghand.md +21 -0
- package/assets/docs/guide/api/node/type-aliases/shapetypeshorthand.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/shapevectorpathfillrule.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/sizemode.md +20 -0
- package/assets/docs/guide/api/node/type-aliases/sortingorder.md +21 -0
- package/assets/docs/guide/api/node/type-aliases/sourcesetpropertyname.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/splitoptions.md +28 -0
- package/assets/docs/guide/api/node/type-aliases/stringpropertyname.md +43 -0
- package/assets/docs/guide/api/node/type-aliases/strokecap.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/strokecornergeometry.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/strokedashendcap.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/strokedashstartcap.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/strokeendcap.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/strokeposition.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/strokestartcap.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/strokestyle.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/syncuriresolver.md +31 -0
- package/assets/docs/guide/api/node/type-aliases/textanimationwritingstyle.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/textcase.md +20 -0
- package/assets/docs/guide/api/node/type-aliases/textdecorationline.md +27 -0
- package/assets/docs/guide/api/node/type-aliases/textdecorationstyle.md +26 -0
- package/assets/docs/guide/api/node/type-aliases/textverticalalignment.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/timelinetrackvisibility.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/touchpinchaction.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/touchrotateaction.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/typefacedefinition.md +41 -0
- package/assets/docs/guide/api/node/type-aliases/verticalblockalignment.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/verticalcontentfillalignment.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/videoexportoptions.md +54 -0
- package/assets/docs/guide/api/node/type-aliases/videomimetype.md +20 -0
- package/assets/docs/guide/api/node/type-aliases/widthmode.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/xywh.md +23 -0
- package/assets/docs/guide/api/node/type-aliases/zoomautofitaxis.md +20 -0
- package/assets/docs/guide/api/node/type-aliases/zoomoptions.md +27 -0
- package/assets/docs/guide/api/node/variables/animation_types.md +21 -0
- package/assets/docs/guide/api/node/variables/animationbaselinedirectionvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/animationblockswipetextdirectionvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/animationeasingvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/animationgrowdirectionvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/animationjumploopdirectionvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/animationkenburnsdirectionvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/animationmergetextdirectionvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/animationspindirectionvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/animationspinloopdirectionvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/animationtypewritertextwritingstylevalues.md +18 -0
- package/assets/docs/guide/api/node/variables/animationwipedirectionvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/blendmodevalues.md +18 -0
- package/assets/docs/guide/api/node/variables/blur_types.md +21 -0
- package/assets/docs/guide/api/node/variables/cameraclampingovershootmodevalues.md +18 -0
- package/assets/docs/guide/api/node/variables/captionhorizontalalignmentvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/captionverticalalignmentvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/colorpickercolormodevalues.md +18 -0
- package/assets/docs/guide/api/node/variables/contentfillmodevalues.md +18 -0
- package/assets/docs/guide/api/node/variables/controlgizmomovehandlevisibilityvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/controlgizmoresizehandlesvisibilityvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/controlgizmorotatehandlesvisibilityvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/controlgizmoscalehandlesvisibilityvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/cutouttypevalues.md +18 -0
- package/assets/docs/guide/api/node/variables/design_block_types.md +21 -0
- package/assets/docs/guide/api/node/variables/doubleclickselectionmodevalues.md +18 -0
- package/assets/docs/guide/api/node/variables/effect_types.md +21 -0
- package/assets/docs/guide/api/node/variables/fill_types.md +21 -0
- package/assets/docs/guide/api/node/variables/fillpixelstreamorientationvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/heightmodevalues.md +18 -0
- package/assets/docs/guide/api/node/variables/horizontalcontentfillalignmentvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/loglevel.md +37 -0
- package/assets/docs/guide/api/node/variables/mimetype.md +41 -0
- package/assets/docs/guide/api/node/variables/pageguidessourcevalues.md +18 -0
- package/assets/docs/guide/api/node/variables/positionxmodevalues.md +18 -0
- package/assets/docs/guide/api/node/variables/positionymodevalues.md +18 -0
- package/assets/docs/guide/api/node/variables/scenedesignunitvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/scenefontsizeunitvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/scenelayoutvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/scenemodevalues.md +18 -0
- package/assets/docs/guide/api/node/variables/shape_types.md +21 -0
- package/assets/docs/guide/api/node/variables/shapevectorpathfillrulevalues.md +18 -0
- package/assets/docs/guide/api/node/variables/strokecapvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/strokecornergeometryvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/strokedashendcapvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/strokedashstartcapvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/strokeendcapvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/strokepositionvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/strokestartcapvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/strokestylevalues.md +18 -0
- package/assets/docs/guide/api/node/variables/textanimationwritingstylevalues.md +18 -0
- package/assets/docs/guide/api/node/variables/texthorizontalalignmentvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/textverticalalignmentvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/timelinetrackvisibilityvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/touchpinchactionvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/touchrotateactionvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/verticalcontentfillalignmentvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/widthmodevalues.md +18 -0
- package/assets/docs/guide/api/types.md +5 -9
- package/assets/docs/guide/api-reference/overview.md +7 -7
- package/assets/docs/guide/automation/auto-resize.md +263 -300
- package/assets/docs/guide/automation/data-merge.md +246 -275
- package/assets/docs/guide/automation/design-generation.md +102 -31
- package/assets/docs/guide/automation/multi-image-generation.md +758 -0
- package/assets/docs/guide/automation/overview.md +21 -4
- package/assets/docs/guide/automation.md +10 -5
- package/assets/docs/guide/capabilities.md +6 -4
- package/assets/docs/guide/colors/adjust.md +247 -249
- package/assets/docs/guide/colors/apply.md +127 -138
- package/assets/docs/guide/colors/basics.md +126 -150
- package/assets/docs/guide/colors/conversion.md +171 -177
- package/assets/docs/guide/colors/create-color-palette.md +244 -245
- package/assets/docs/guide/colors/extract-colors.md +144 -0
- package/assets/docs/guide/colors/for-print/cmyk.md +292 -352
- package/assets/docs/guide/colors/for-print/spot.md +521 -578
- package/assets/docs/guide/colors/for-print.md +9 -4
- package/assets/docs/guide/colors/for-screen/p3.md +12 -10
- package/assets/docs/guide/colors/for-screen/srgb.md +107 -133
- package/assets/docs/guide/colors/for-screen.md +9 -4
- package/assets/docs/guide/colors/overview.md +6 -4
- package/assets/docs/guide/colors/replace.md +381 -419
- package/assets/docs/guide/colors.md +9 -4
- package/assets/docs/guide/compatibility.md +7 -5
- package/assets/docs/guide/concepts/architecture.md +17 -15
- package/assets/docs/guide/concepts/assets.md +152 -140
- package/assets/docs/guide/concepts/blocks.md +227 -323
- package/assets/docs/guide/concepts/buffers.md +147 -276
- package/assets/docs/guide/concepts/design-units.md +95 -145
- package/assets/docs/guide/concepts/editing-workflow.md +69 -183
- package/assets/docs/guide/concepts/events.md +80 -122
- package/assets/docs/guide/concepts/headless-mode.md +237 -0
- package/assets/docs/guide/concepts/pages.md +137 -127
- package/assets/docs/guide/concepts/resources.md +156 -217
- package/assets/docs/guide/concepts/scenes.md +191 -210
- package/assets/docs/guide/concepts/templating.md +118 -74
- package/assets/docs/guide/concepts/terminology.md +49 -47
- package/assets/docs/guide/concepts/undo-and-history.md +229 -303
- package/assets/docs/guide/concepts.md +9 -7
- package/assets/docs/guide/configuration.md +252 -380
- package/assets/docs/guide/conversion/overview.md +33 -4
- package/assets/docs/guide/conversion/to-base64.md +127 -167
- package/assets/docs/guide/conversion/to-pdf.md +24 -474
- package/assets/docs/guide/conversion/to-png.md +168 -211
- package/assets/docs/guide/conversion.md +9 -4
- package/assets/docs/guide/create-audio/audio/add-music.md +301 -327
- package/assets/docs/guide/create-audio/audio/add-sound-effects.md +475 -359
- package/assets/docs/guide/create-audio/audio/loop.md +232 -272
- package/assets/docs/guide/create-composition/add-background.md +237 -239
- package/assets/docs/guide/create-composition/blend-modes.md +118 -209
- package/assets/docs/guide/create-composition/collage.md +538 -320
- package/assets/docs/guide/create-composition/group-and-ungroup.md +216 -261
- package/assets/docs/guide/create-composition/layer-management.md +219 -257
- package/assets/docs/guide/create-composition/layout.md +513 -315
- package/assets/docs/guide/create-composition/lock-design.md +90 -109
- package/assets/docs/guide/create-composition/multi-page.md +133 -113
- package/assets/docs/guide/create-composition/overview.md +16 -4
- package/assets/docs/guide/create-composition/programmatic.md +288 -344
- package/assets/docs/guide/create-composition.md +10 -5
- package/assets/docs/guide/create-templates/add-dynamic-content/placeholders.md +443 -569
- package/assets/docs/guide/create-templates/add-dynamic-content/set-editing-constraints.md +567 -470
- package/assets/docs/guide/create-templates/add-dynamic-content/text-variables.md +179 -516
- package/assets/docs/guide/create-templates/add-dynamic-content.md +226 -224
- package/assets/docs/guide/create-templates/add-to-template-library.md +183 -193
- package/assets/docs/guide/create-templates/edit-or-remove.md +297 -303
- package/assets/docs/guide/create-templates/from-scratch.md +207 -268
- package/assets/docs/guide/create-templates/import/from-scene-file.md +158 -236
- package/assets/docs/guide/create-templates/import.md +145 -161
- package/assets/docs/guide/create-templates/lock.md +42 -295
- package/assets/docs/guide/create-templates/overview.md +33 -4
- package/assets/docs/guide/create-templates.md +9 -5
- package/assets/docs/guide/create-video/audio/adjust-speed.md +157 -207
- package/assets/docs/guide/create-video/audio/adjust-volume.md +116 -227
- package/assets/docs/guide/create-video/control.md +352 -193
- package/assets/docs/guide/create-video/limitations.md +175 -280
- package/assets/docs/guide/create-video.md +11 -10
- package/assets/docs/guide/edit-image/add-watermark.md +283 -330
- package/assets/docs/guide/edit-image/overview.md +29 -4
- package/assets/docs/guide/edit-image/remove-bg.md +283 -337
- package/assets/docs/guide/edit-image/replace-colors.md +424 -502
- package/assets/docs/guide/edit-image/transform/crop.md +463 -402
- package/assets/docs/guide/edit-image/transform/flip.md +353 -0
- package/assets/docs/guide/edit-image/transform/move.md +143 -100
- package/assets/docs/guide/edit-image/transform/resize.md +118 -88
- package/assets/docs/guide/edit-image/transform/rotate.md +132 -165
- package/assets/docs/guide/edit-image/transform/scale.md +230 -228
- package/assets/docs/guide/edit-image/transform.md +10 -5
- package/assets/docs/guide/edit-image.md +11 -7
- package/assets/docs/guide/edit-video/add-captions.md +344 -421
- package/assets/docs/guide/edit-video/add-watermark.md +312 -258
- package/assets/docs/guide/edit-video/join-and-arrange.md +237 -371
- package/assets/docs/guide/edit-video/redaction.md +419 -385
- package/assets/docs/guide/edit-video/split.md +243 -493
- package/assets/docs/guide/edit-video/transform/crop.md +21 -352
- package/assets/docs/guide/edit-video/transform/flip.md +102 -76
- package/assets/docs/guide/edit-video/transform/move.md +258 -310
- package/assets/docs/guide/edit-video/transform/resize.md +264 -428
- package/assets/docs/guide/edit-video/transform/rotate.md +265 -228
- package/assets/docs/guide/edit-video/transform/scale.md +320 -417
- package/assets/docs/guide/edit-video/transform.md +10 -6
- package/assets/docs/guide/edit-video/trim.md +448 -494
- package/assets/docs/guide/engine-interface.md +51 -62
- package/assets/docs/guide/export-save-publish/create-thumbnail.md +148 -184
- package/assets/docs/guide/export-save-publish/export/compress.md +161 -559
- package/assets/docs/guide/export-save-publish/export/overview.md +224 -373
- package/assets/docs/guide/export-save-publish/export/partial-export.md +386 -577
- package/assets/docs/guide/export-save-publish/export/size-limits.md +215 -310
- package/assets/docs/guide/export-save-publish/export/to-jpeg.md +132 -213
- package/assets/docs/guide/export-save-publish/export/to-pdf.md +139 -267
- package/assets/docs/guide/export-save-publish/export/to-png.md +121 -165
- package/assets/docs/guide/export-save-publish/export/to-raw-data.md +187 -234
- package/assets/docs/guide/export-save-publish/export/to-webp.md +160 -190
- package/assets/docs/guide/export-save-publish/export/with-color-mask.md +359 -203
- package/assets/docs/guide/export-save-publish/export.md +14 -11
- package/assets/docs/guide/export-save-publish/for-printing.md +141 -237
- package/assets/docs/guide/export-save-publish/for-social-media.md +124 -261
- package/assets/docs/guide/export-save-publish/pre-export-validation.md +436 -522
- package/assets/docs/guide/export-save-publish/save.md +167 -226
- package/assets/docs/guide/export-save-publish/store-custom-metadata.md +97 -162
- package/assets/docs/guide/file-format-support.md +9 -9
- package/assets/docs/guide/fills/color.md +370 -347
- package/assets/docs/guide/fills/image.md +167 -196
- package/assets/docs/guide/fills/overview.md +6 -4
- package/assets/docs/guide/fills/video.md +286 -438
- package/assets/docs/guide/fills.md +12 -8
- package/assets/docs/guide/filters-and-effects/apply.md +598 -664
- package/assets/docs/guide/filters-and-effects/blur.md +261 -159
- package/assets/docs/guide/filters-and-effects/chroma-key-green-screen.md +194 -293
- package/assets/docs/guide/filters-and-effects/create-custom-filters.md +548 -466
- package/assets/docs/guide/filters-and-effects/create-custom-lut-filter.md +176 -244
- package/assets/docs/guide/filters-and-effects/distortion.md +317 -384
- package/assets/docs/guide/filters-and-effects/duotone.md +221 -217
- package/assets/docs/guide/filters-and-effects/gradients.md +670 -813
- package/assets/docs/guide/filters-and-effects/overview.md +7 -7
- package/assets/docs/guide/filters-and-effects/support.md +97 -132
- package/assets/docs/guide/filters-and-effects.md +11 -6
- package/assets/docs/guide/get-started/agent-skills.md +20 -18
- package/assets/docs/guide/get-started/build-with-ai.md +7 -4
- package/assets/docs/guide/get-started/bun.md +219 -0
- package/assets/docs/guide/get-started/deno.md +161 -0
- package/assets/docs/guide/get-started/mcp-server.md +6 -4
- package/assets/docs/guide/get-started/overview.md +11 -6
- package/assets/docs/guide/get-started/vanilla-aws-lambda.md +506 -0
- package/assets/docs/guide/get-started/vanilla-clone-github-project.md +124 -0
- package/assets/docs/guide/get-started/vanilla.md +235 -0
- package/assets/docs/guide/guides/export-save-publish/export/audio.md +80 -66
- package/assets/docs/guide/guides.md +10 -9
- package/assets/docs/guide/import-media/asset-panel/refresh-assets.md +259 -288
- package/assets/docs/guide/import-media/concepts.md +20 -38
- package/assets/docs/guide/import-media/content-json-schema.md +145 -125
- package/assets/docs/guide/import-media/default-assets.md +113 -161
- package/assets/docs/guide/import-media/edit-or-remove-assets.md +391 -395
- package/assets/docs/guide/import-media/file-format-support.md +78 -61
- package/assets/docs/guide/import-media/from-remote-source/asset-versioning.md +273 -244
- package/assets/docs/guide/import-media/from-remote-source/remote-asset.md +152 -222
- package/assets/docs/guide/import-media/from-remote-source.md +9 -11
- package/assets/docs/guide/import-media/overview.md +5 -5
- package/assets/docs/guide/import-media/retrieve-mimetype.md +216 -108
- package/assets/docs/guide/import-media/size-limits.md +6 -4
- package/assets/docs/guide/import-media/source-sets.md +190 -251
- package/assets/docs/guide/import-media.md +10 -8
- package/assets/docs/guide/insert-media/audio.md +202 -195
- package/assets/docs/guide/insert-media/images.md +190 -188
- package/assets/docs/guide/insert-media/position-and-align.md +284 -551
- package/assets/docs/guide/insert-media/shapes-or-stickers.md +402 -418
- package/assets/docs/guide/insert-media/videos.md +236 -203
- package/assets/docs/guide/insert-media.md +10 -5
- package/assets/docs/guide/key-capabilities.md +36 -4
- package/assets/docs/guide/key-concepts.md +6 -4
- package/assets/docs/guide/licensing.md +6 -4
- package/assets/docs/guide/llms-txt.md +11 -7
- package/assets/docs/guide/open-the-editor/blank-canvas.md +102 -63
- package/assets/docs/guide/open-the-editor/from-image.md +157 -127
- package/assets/docs/guide/open-the-editor/from-template.md +131 -92
- package/assets/docs/guide/open-the-editor/from-video.md +204 -212
- package/assets/docs/guide/open-the-editor/import-design/from-archive.md +310 -360
- package/assets/docs/guide/open-the-editor/import-design/from-indesign.md +716 -513
- package/assets/docs/guide/open-the-editor/import-design/from-photoshop.md +667 -695
- package/assets/docs/guide/open-the-editor/import-design.md +228 -266
- package/assets/docs/guide/open-the-editor/load-scene.md +72 -68
- package/assets/docs/guide/open-the-editor/overview.md +6 -4
- package/assets/docs/guide/open-the-editor/uri-resolver.md +160 -251
- package/assets/docs/guide/open-the-editor.md +11 -9
- package/assets/docs/guide/outlines/overview.md +12 -4
- package/assets/docs/guide/outlines/shadows-and-glows.md +105 -410
- package/assets/docs/guide/outlines/strokes.md +218 -166
- package/assets/docs/guide/outlines.md +9 -4
- package/assets/docs/guide/overview.md +14 -6
- package/assets/docs/guide/performance.md +220 -113
- package/assets/docs/guide/plugins/print-ready-pdf.md +273 -368
- package/assets/docs/guide/plugins.md +10 -16
- package/assets/docs/guide/rules/asset-handling.md +7 -18
- package/assets/docs/guide/rules/common-pitfalls.md +25 -42
- package/assets/docs/guide/rules/content-fill-mode.md +4 -4
- package/assets/docs/guide/rules/enforce-brand-guidelines.md +398 -567
- package/assets/docs/guide/rules/lock-content.md +188 -231
- package/assets/docs/guide/rules/moderate-content.md +580 -571
- package/assets/docs/guide/rules/overview.md +345 -380
- package/assets/docs/guide/rules/silent-init-errors.md +4 -1
- package/assets/docs/guide/rules/verify-properties-before-use.md +2 -11
- package/assets/docs/guide/rules.md +10 -5
- package/assets/docs/guide/security.md +7 -5
- package/assets/docs/guide/serve-assets.md +57 -284
- package/assets/docs/guide/settings.md +96 -74
- package/assets/docs/guide/shapes.md +10 -5
- package/assets/docs/guide/stickers-and-shapes/combine.md +397 -583
- package/assets/docs/guide/stickers-and-shapes/create-cutout.md +181 -268
- package/assets/docs/guide/stickers-and-shapes/create-edit/create-shapes.md +418 -431
- package/assets/docs/guide/stickers-and-shapes/create-edit/create-stickers.md +147 -226
- package/assets/docs/guide/stickers-and-shapes/create-edit/edit-shapes.md +138 -123
- package/assets/docs/guide/stickers-and-shapes/insert-qr-code.md +151 -149
- package/assets/docs/guide/stickers.md +9 -4
- package/assets/docs/guide/text/add.md +470 -482
- package/assets/docs/guide/text/adjust-spacing.md +179 -214
- package/assets/docs/guide/text/auto-size.md +210 -271
- package/assets/docs/guide/text/edit.md +294 -309
- package/assets/docs/guide/text/effects.md +154 -190
- package/assets/docs/guide/text/emojis.md +199 -232
- package/assets/docs/guide/text/language-support.md +369 -382
- package/assets/docs/guide/text/overview.md +41 -4
- package/assets/docs/guide/text/styling.md +239 -273
- package/assets/docs/guide/text/text-designs.md +405 -544
- package/assets/docs/guide/text.md +10 -9
- package/assets/docs/guide/to-v1-19.md +12 -10
- package/assets/docs/guide/upgrade.md +8 -9
- package/assets/docs/guide/use-templates/apply-template.md +174 -163
- package/assets/docs/guide/use-templates/generate.md +171 -152
- package/assets/docs/guide/use-templates/overview.md +32 -4
- package/assets/docs/guide/use-templates/programmatic.md +266 -301
- package/assets/docs/guide/use-templates/replace-content.md +181 -171
- package/assets/docs/guide/what-is-cesdk.md +71 -282
- package/assets/docs/handbook/SKILL.md +24 -0
- package/dist/assets/inline.generated.d.ts.map +1 -1
- package/dist/assets/inline.generated.js +544 -406
- package/dist/assets/inline.generated.js.map +1 -1
- package/dist/assets/load-browser.d.ts +1 -1
- package/dist/assets/load-browser.js +1 -1
- package/dist/assets/load-browser.js.map +1 -1
- package/dist/assets/load-node.d.ts +1 -1
- package/dist/assets/load-node.js +1 -1
- package/dist/assets/load-node.js.map +1 -1
- package/dist/cli/http.d.ts.map +1 -1
- package/dist/cli/http.js +4 -28
- package/dist/cli/http.js.map +1 -1
- package/dist/cli/redirect-console.d.ts +1 -1
- package/dist/cli/redirect-console.d.ts.map +1 -1
- package/dist/cli/redirect-console.js +12 -3
- package/dist/cli/redirect-console.js.map +1 -1
- package/dist/cli/resolve-license.d.ts.map +1 -1
- package/dist/cli/resolve-license.js +8 -6
- package/dist/cli/resolve-license.js.map +1 -1
- package/dist/cli/stdio.d.ts +9 -0
- package/dist/cli/stdio.d.ts.map +1 -1
- package/dist/cli/stdio.js +48 -4
- package/dist/cli/stdio.js.map +1 -1
- package/dist/cli.js +10 -1
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts +11 -2
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +20 -1
- package/dist/config.js.map +1 -1
- package/dist/diagnostics/bundle.d.ts +10 -0
- package/dist/diagnostics/bundle.d.ts.map +1 -0
- package/dist/diagnostics/bundle.js +148 -0
- package/dist/diagnostics/bundle.js.map +1 -0
- package/dist/diagnostics/compose.d.ts +3 -0
- package/dist/diagnostics/compose.d.ts.map +1 -0
- package/dist/diagnostics/compose.js +15 -0
- package/dist/diagnostics/compose.js.map +1 -0
- package/dist/diagnostics/events.d.ts +34 -0
- package/dist/diagnostics/events.d.ts.map +1 -0
- package/dist/diagnostics/events.js +3 -0
- package/dist/diagnostics/events.js.map +1 -0
- package/dist/diagnostics/file-sink.d.ts +38 -0
- package/dist/diagnostics/file-sink.d.ts.map +1 -0
- package/dist/diagnostics/file-sink.js +157 -0
- package/dist/diagnostics/file-sink.js.map +1 -0
- package/dist/diagnostics/redact.d.ts +7 -0
- package/dist/diagnostics/redact.d.ts.map +1 -0
- package/dist/diagnostics/redact.js +43 -0
- package/dist/diagnostics/redact.js.map +1 -0
- package/dist/diagnostics/tool-call-adapter.d.ts +4 -0
- package/dist/diagnostics/tool-call-adapter.d.ts.map +1 -0
- package/dist/diagnostics/tool-call-adapter.js +21 -0
- package/dist/diagnostics/tool-call-adapter.js.map +1 -0
- package/dist/engine/cesdk-adapter.d.ts +5 -1
- package/dist/engine/cesdk-adapter.d.ts.map +1 -1
- package/dist/engine/cesdk-adapter.js +9 -2
- package/dist/engine/cesdk-adapter.js.map +1 -1
- package/dist/engine/index.d.ts +1 -0
- package/dist/engine/index.d.ts.map +1 -1
- package/dist/engine/index.js +4 -0
- package/dist/engine/index.js.map +1 -1
- package/dist/engine/scene-resource-schemes.d.ts +2 -0
- package/dist/engine/scene-resource-schemes.d.ts.map +1 -0
- package/dist/engine/scene-resource-schemes.js +20 -0
- package/dist/engine/scene-resource-schemes.js.map +1 -0
- package/dist/http/server.d.ts +0 -6
- package/dist/http/server.d.ts.map +1 -1
- package/dist/http/server.js +1 -2
- package/dist/http/server.js.map +1 -1
- package/dist/server.d.ts +0 -4
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +4 -60
- package/dist/server.js.map +1 -1
- package/dist/test/scripts/changelog-add.d.ts +8 -0
- package/dist/test/scripts/changelog-add.d.ts.map +1 -0
- package/dist/test/scripts/changelog-add.js +50 -0
- package/dist/test/scripts/changelog-add.js.map +1 -0
- package/dist/test/scripts/changelog-collate.d.ts +38 -0
- package/dist/test/scripts/changelog-collate.d.ts.map +1 -0
- package/dist/test/scripts/changelog-collate.js +171 -0
- package/dist/test/scripts/changelog-collate.js.map +1 -0
- package/dist/test/test/changelog.test.d.ts +2 -0
- package/dist/test/test/changelog.test.d.ts.map +1 -0
- package/dist/test/test/changelog.test.js +293 -0
- package/dist/test/test/changelog.test.js.map +1 -0
- package/dist/test/test/cli/dispatcher.test.js +10 -3
- package/dist/test/test/cli/dispatcher.test.js.map +1 -1
- package/dist/test/test/cli/redirect-console.test.js +31 -0
- package/dist/test/test/cli/redirect-console.test.js.map +1 -1
- package/dist/test/test/cli/resolve-license.test.js +10 -1
- package/dist/test/test/cli/resolve-license.test.js.map +1 -1
- package/dist/test/test/cli/stdio-diagnostics.test.d.ts +2 -0
- package/dist/test/test/cli/stdio-diagnostics.test.d.ts.map +1 -0
- package/dist/test/test/cli/stdio-diagnostics.test.js +31 -0
- package/dist/test/test/cli/stdio-diagnostics.test.js.map +1 -0
- package/dist/test/test/config.test.js +17 -13
- package/dist/test/test/config.test.js.map +1 -1
- package/dist/test/test/diagnostics/bundle.test.d.ts +2 -0
- package/dist/test/test/diagnostics/bundle.test.d.ts.map +1 -0
- package/dist/test/test/diagnostics/bundle.test.js +53 -0
- package/dist/test/test/diagnostics/bundle.test.js.map +1 -0
- package/dist/test/test/diagnostics/compose.test.d.ts +2 -0
- package/dist/test/test/diagnostics/compose.test.d.ts.map +1 -0
- package/dist/test/test/diagnostics/compose.test.js +31 -0
- package/dist/test/test/diagnostics/compose.test.js.map +1 -0
- package/dist/test/test/diagnostics/file-sink.test.d.ts +2 -0
- package/dist/test/test/diagnostics/file-sink.test.d.ts.map +1 -0
- package/dist/test/test/diagnostics/file-sink.test.js +113 -0
- package/dist/test/test/diagnostics/file-sink.test.js.map +1 -0
- package/dist/test/test/diagnostics/redact.test.d.ts +2 -0
- package/dist/test/test/diagnostics/redact.test.d.ts.map +1 -0
- package/dist/test/test/diagnostics/redact.test.js +59 -0
- package/dist/test/test/diagnostics/redact.test.js.map +1 -0
- package/dist/test/test/diagnostics/tool-call-adapter.test.d.ts +2 -0
- package/dist/test/test/diagnostics/tool-call-adapter.test.d.ts.map +1 -0
- package/dist/test/test/diagnostics/tool-call-adapter.test.js +34 -0
- package/dist/test/test/diagnostics/tool-call-adapter.test.js.map +1 -0
- package/dist/test/test/engine/cesdk-adapter.test.d.ts +2 -0
- package/dist/test/test/engine/cesdk-adapter.test.d.ts.map +1 -0
- package/dist/test/test/engine/cesdk-adapter.test.js +32 -0
- package/dist/test/test/engine/cesdk-adapter.test.js.map +1 -0
- package/dist/test/test/handbook-contract.test.js +6 -2
- package/dist/test/test/handbook-contract.test.js.map +1 -1
- package/dist/test/test/http/server.test.js +0 -36
- package/dist/test/test/http/server.test.js.map +1 -1
- package/dist/test/test/http/workspace-auth.test.js +0 -1
- package/dist/test/test/http/workspace-auth.test.js.map +1 -1
- package/dist/test/test/server.test.js +0 -40
- package/dist/test/test/server.test.js.map +1 -1
- package/dist/test/test/tools/edit-harness.d.ts +14 -0
- package/dist/test/test/tools/edit-harness.d.ts.map +1 -0
- package/dist/test/test/tools/edit-harness.js +30 -0
- package/dist/test/test/tools/edit-harness.js.map +1 -0
- package/dist/test/test/tools/edit.telemetry.test.d.ts +2 -0
- package/dist/test/test/tools/edit.telemetry.test.d.ts.map +1 -0
- package/dist/test/test/tools/edit.telemetry.test.js +46 -0
- package/dist/test/test/tools/edit.telemetry.test.js.map +1 -0
- package/dist/test/test/tools/export-harness.d.ts +13 -0
- package/dist/test/test/tools/export-harness.d.ts.map +1 -0
- package/dist/test/test/tools/export-harness.js +27 -0
- package/dist/test/test/tools/export-harness.js.map +1 -0
- package/dist/test/test/tools/export.telemetry.test.d.ts +2 -0
- package/dist/test/test/tools/export.telemetry.test.d.ts.map +1 -0
- package/dist/test/test/tools/export.telemetry.test.js +65 -0
- package/dist/test/test/tools/export.telemetry.test.js.map +1 -0
- package/dist/test/test/tools/import.test.d.ts +2 -0
- package/dist/test/test/tools/import.test.d.ts.map +1 -0
- package/dist/test/test/tools/import.test.js +122 -0
- package/dist/test/test/tools/import.test.js.map +1 -0
- package/dist/test/test/tools/index.test.js +78 -16
- package/dist/test/test/tools/index.test.js.map +1 -1
- package/dist/test/test/tools/load.integration.test.d.ts +2 -0
- package/dist/test/test/tools/load.integration.test.d.ts.map +1 -0
- package/dist/test/test/tools/load.integration.test.js +165 -0
- package/dist/test/test/tools/load.integration.test.js.map +1 -0
- package/dist/test/test/tools/load.test.d.ts +2 -0
- package/dist/test/test/tools/load.test.d.ts.map +1 -0
- package/dist/test/test/tools/load.test.js +387 -0
- package/dist/test/test/tools/load.test.js.map +1 -0
- package/dist/test/test/tools/preview-harness.d.ts +9 -0
- package/dist/test/test/tools/preview-harness.d.ts.map +1 -0
- package/dist/test/test/tools/preview-harness.js +23 -0
- package/dist/test/test/tools/preview-harness.js.map +1 -0
- package/dist/test/test/tools/preview.telemetry.test.d.ts +2 -0
- package/dist/test/test/tools/preview.telemetry.test.d.ts.map +1 -0
- package/dist/test/test/tools/preview.telemetry.test.js +36 -0
- package/dist/test/test/tools/preview.telemetry.test.js.map +1 -0
- package/dist/test/test/tools/schema-best-practices.d.ts +13 -0
- package/dist/test/test/tools/schema-best-practices.d.ts.map +1 -0
- package/dist/test/test/tools/schema-best-practices.js +169 -0
- package/dist/test/test/tools/schema-best-practices.js.map +1 -0
- package/dist/test/test/tools/schema-best-practices.test.d.ts +3 -0
- package/dist/test/test/tools/schema-best-practices.test.d.ts.map +1 -0
- package/dist/test/test/tools/schema-best-practices.test.js +194 -0
- package/dist/test/test/tools/schema-best-practices.test.js.map +1 -0
- package/dist/test/test/tools/spans.test.d.ts +2 -0
- package/dist/test/test/tools/spans.test.d.ts.map +1 -0
- package/dist/test/test/tools/spans.test.js +84 -0
- package/dist/test/test/tools/spans.test.js.map +1 -0
- package/dist/test/test/viewer/cesdk-cdn.test.d.ts +2 -0
- package/dist/test/test/viewer/cesdk-cdn.test.d.ts.map +1 -0
- package/dist/test/test/viewer/cesdk-cdn.test.js +19 -0
- package/dist/test/test/viewer/cesdk-cdn.test.js.map +1 -0
- package/dist/test/test/viewer/config-route.test.d.ts +2 -0
- package/dist/test/test/viewer/config-route.test.d.ts.map +1 -0
- package/dist/test/test/viewer/config-route.test.js +28 -0
- package/dist/test/test/viewer/config-route.test.js.map +1 -0
- package/dist/test/test/viewer/spa-version.test.d.ts +2 -0
- package/dist/test/test/viewer/spa-version.test.d.ts.map +1 -0
- package/dist/test/test/viewer/spa-version.test.js +14 -0
- package/dist/test/test/viewer/spa-version.test.js.map +1 -0
- package/dist/test/test/workspace/content-hash.test.d.ts +2 -0
- package/dist/test/test/workspace/content-hash.test.d.ts.map +1 -0
- package/dist/test/test/workspace/content-hash.test.js +17 -0
- package/dist/test/test/workspace/content-hash.test.js.map +1 -0
- package/dist/test/tsconfig.test.tsbuildinfo +1 -1
- package/dist/test/vitest.config.js +1 -1
- package/dist/test/vitest.config.js.map +1 -1
- package/dist/tools/asset-generate.d.ts.map +1 -1
- package/dist/tools/asset-generate.js +1 -8
- package/dist/tools/asset-generate.js.map +1 -1
- package/dist/tools/edit.d.ts +3 -0
- package/dist/tools/edit.d.ts.map +1 -1
- package/dist/tools/edit.js +145 -96
- package/dist/tools/edit.js.map +1 -1
- package/dist/tools/export.d.ts +3 -0
- package/dist/tools/export.d.ts.map +1 -1
- package/dist/tools/export.js +146 -108
- package/dist/tools/export.js.map +1 -1
- package/dist/tools/import.d.ts +12 -0
- package/dist/tools/import.d.ts.map +1 -0
- package/dist/tools/import.js +144 -0
- package/dist/tools/import.js.map +1 -0
- package/dist/tools/index.d.ts +3 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +44 -4
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/load.d.ts +26 -0
- package/dist/tools/load.d.ts.map +1 -0
- package/dist/tools/load.js +400 -0
- package/dist/tools/load.js.map +1 -0
- package/dist/tools/preview.d.ts +3 -0
- package/dist/tools/preview.d.ts.map +1 -1
- package/dist/tools/preview.js +79 -44
- package/dist/tools/preview.js.map +1 -1
- package/dist/tools/result.d.ts +1 -1
- package/dist/tools/result.js +2 -2
- package/dist/tools/result.js.map +1 -1
- package/dist/tools/spans.d.ts +45 -0
- package/dist/tools/spans.d.ts.map +1 -0
- package/dist/tools/spans.js +77 -0
- package/dist/tools/spans.js.map +1 -0
- package/dist/tools/telemetry-wrapper.d.ts +4 -0
- package/dist/tools/telemetry-wrapper.d.ts.map +1 -0
- package/dist/tools/telemetry-wrapper.js +43 -0
- package/dist/tools/telemetry-wrapper.js.map +1 -0
- package/dist/viewer/cesdk-cdn.d.ts +16 -0
- package/dist/viewer/cesdk-cdn.d.ts.map +1 -0
- package/dist/viewer/cesdk-cdn.js +30 -0
- package/dist/viewer/cesdk-cdn.js.map +1 -0
- package/dist/viewer/router.d.ts +6 -0
- package/dist/viewer/router.d.ts.map +1 -1
- package/dist/viewer/router.js +4 -1
- package/dist/viewer/router.js.map +1 -1
- package/dist/viewer/spa-assets.generated.d.ts.map +1 -1
- package/dist/viewer/spa-assets.generated.js +2 -3
- package/dist/viewer/spa-assets.generated.js.map +1 -1
- package/dist/workspace/content-hash.d.ts +2 -0
- package/dist/workspace/content-hash.d.ts.map +1 -0
- package/dist/workspace/content-hash.js +15 -0
- package/dist/workspace/content-hash.js.map +1 -0
- package/package.json +18 -9
- package/assets/docs/guide/actions.md +0 -1038
- package/assets/docs/guide/animation/overview.md +0 -22
- package/assets/docs/guide/automation/batch-processing.md +0 -474
- package/assets/docs/guide/browser-support.md +0 -38
- package/assets/docs/guide/concepts/edit-modes.md +0 -431
- package/assets/docs/guide/concepts/headless-mode/browser.md +0 -291
- package/assets/docs/guide/create-audio/audio.md +0 -336
- package/assets/docs/guide/create-video/overview.md +0 -224
- package/assets/docs/guide/create-video/timeline-editor.md +0 -622
- package/assets/docs/guide/create-video/update-caption-presets.md +0 -676
- package/assets/docs/guide/edit-image/vectorize.md +0 -204
- package/assets/docs/guide/export-save-publish/export/to-html5.md +0 -474
- package/assets/docs/guide/export-save-publish/export/to-mp4.md +0 -364
- package/assets/docs/guide/get-started/vanilla-js/quickstart.md +0 -175
- package/assets/docs/guide/grid-and-rulers.md +0 -222
- package/assets/docs/guide/guides/text/rendering-internals.md +0 -796
- package/assets/docs/guide/import-media/asset-library.md +0 -23
- package/assets/docs/guide/import-media/asset-panel/basics.md +0 -324
- package/assets/docs/guide/import-media/asset-panel/customize.md +0 -478
- package/assets/docs/guide/import-media/asset-panel/thumbnails.md +0 -633
- package/assets/docs/guide/import-media/capture-from-camera/record-video.md +0 -137
- package/assets/docs/guide/import-media/capture-from-camera.md +0 -20
- package/assets/docs/guide/import-media/from-local-source/user-upload.md +0 -438
- package/assets/docs/guide/import-media/from-local-source.md +0 -20
- package/assets/docs/guide/import-media/from-remote-source/getty-images.md +0 -627
- package/assets/docs/guide/import-media/from-remote-source/imgly-premium-assets.md +0 -625
- package/assets/docs/guide/import-media/from-remote-source/pexels.md +0 -692
- package/assets/docs/guide/import-media/from-remote-source/soundstripe.md +0 -497
- package/assets/docs/guide/import-media/from-remote-source/third-party.md +0 -51
- package/assets/docs/guide/import-media/from-remote-source/unsplash.md +0 -914
- package/assets/docs/guide/import-media/from-remote-source/your-server.md +0 -764
- package/assets/docs/guide/open-the-editor/from-htmlcanvas.md +0 -228
- package/assets/docs/guide/open-the-editor/set-zoom-level.md +0 -303
- package/assets/docs/guide/plugins/asset-sources.md +0 -553
- package/assets/docs/guide/starterkits/3d-mockup-editor.md +0 -748
- package/assets/docs/guide/starterkits/advanced-editor.md +0 -698
- package/assets/docs/guide/starterkits/advanced-video-editor.md +0 -696
- package/assets/docs/guide/starterkits/ai-editor.md +0 -749
- package/assets/docs/guide/starterkits/airtable-image-editor.md +0 -672
- package/assets/docs/guide/starterkits/apparel-ui.md +0 -188
- package/assets/docs/guide/starterkits/assets.md +0 -27
- package/assets/docs/guide/starterkits/auto-resize.md +0 -586
- package/assets/docs/guide/starterkits/automated-video-generation.md +0 -692
- package/assets/docs/guide/starterkits/background-removal-editor.md +0 -480
- package/assets/docs/guide/starterkits/content-moderation.md +0 -863
- package/assets/docs/guide/starterkits/creative-automation.md +0 -28
- package/assets/docs/guide/starterkits/custom-built-uis.md +0 -26
- package/assets/docs/guide/starterkits/customization.md +0 -29
- package/assets/docs/guide/starterkits/cutout-lines-editor.md +0 -470
- package/assets/docs/guide/starterkits/data-merge.md +0 -850
- package/assets/docs/guide/starterkits/design-editor.md +0 -698
- package/assets/docs/guide/starterkits/design-generation.md +0 -719
- package/assets/docs/guide/starterkits/design-validation.md +0 -808
- package/assets/docs/guide/starterkits/editor-ui-configurations.md +0 -14
- package/assets/docs/guide/starterkits/export-options.md +0 -724
- package/assets/docs/guide/starterkits/export-using-renderer.md +0 -708
- package/assets/docs/guide/starterkits/extensibility.md +0 -28
- package/assets/docs/guide/starterkits/force-crop-editor.md +0 -675
- package/assets/docs/guide/starterkits/form-based-template-adoption.md +0 -522
- package/assets/docs/guide/starterkits/getty-images-editor.md +0 -700
- package/assets/docs/guide/starterkits/html5-ads-exporter.md +0 -719
- package/assets/docs/guide/starterkits/indesign-template-import.md +0 -580
- package/assets/docs/guide/starterkits/layouts-editor.md +0 -724
- package/assets/docs/guide/starterkits/mobile-ui.md +0 -185
- package/assets/docs/guide/starterkits/mockup-editor.md +0 -745
- package/assets/docs/guide/starterkits/multi-image-generation.md +0 -542
- package/assets/docs/guide/starterkits/page-sizes-editor.md +0 -657
- package/assets/docs/guide/starterkits/pexels-image-editor.md +0 -665
- package/assets/docs/guide/starterkits/photo-editor.md +0 -755
- package/assets/docs/guide/starterkits/photo-ui.md +0 -186
- package/assets/docs/guide/starterkits/photobook-ui.md +0 -188
- package/assets/docs/guide/starterkits/placeholders.md +0 -678
- package/assets/docs/guide/starterkits/player.md +0 -405
- package/assets/docs/guide/starterkits/plugins.md +0 -25
- package/assets/docs/guide/starterkits/postcard-editor.md +0 -202
- package/assets/docs/guide/starterkits/pptx-template-import.md +0 -581
- package/assets/docs/guide/starterkits/print-ready-pdf-editor.md +0 -746
- package/assets/docs/guide/starterkits/product-editor.md +0 -773
- package/assets/docs/guide/starterkits/psd-template-import.md +0 -580
- package/assets/docs/guide/starterkits/qr-code-editor.md +0 -470
- package/assets/docs/guide/starterkits/single-page-editor.md +0 -661
- package/assets/docs/guide/starterkits/start-with-image.md +0 -684
- package/assets/docs/guide/starterkits/start-with-video.md +0 -651
- package/assets/docs/guide/starterkits/t-shirt-designer.md +0 -742
- package/assets/docs/guide/starterkits/templating.md +0 -23
- package/assets/docs/guide/starterkits/theming.md +0 -662
- package/assets/docs/guide/starterkits/translation-internationalization.md +0 -662
- package/assets/docs/guide/starterkits/unsplash-editor.md +0 -839
- package/assets/docs/guide/starterkits/vectorizer-editor.md +0 -466
- package/assets/docs/guide/starterkits/version-history.md +0 -745
- package/assets/docs/guide/starterkits/video-animations.md +0 -853
- package/assets/docs/guide/starterkits/video-captions.md +0 -884
- package/assets/docs/guide/starterkits/video-editing.md +0 -25
- package/assets/docs/guide/starterkits/video-editor.md +0 -696
- package/assets/docs/guide/starterkits/video-export-options.md +0 -676
- package/assets/docs/guide/starterkits/viewer.md +0 -400
- package/assets/docs/guide/starterkits.md +0 -41
- package/assets/docs/guide/stickers-and-shapes/create-edit/vector-edit.md +0 -362
- package/assets/docs/guide/text/custom-fonts.md +0 -401
- package/assets/docs/guide/text/decorations.md +0 -330
- package/assets/docs/guide/text/enumerations.md +0 -258
- package/assets/docs/guide/to-v1-10.md +0 -131
- package/assets/docs/guide/to-v1-13.md +0 -165
- package/assets/docs/guide/to-v1-32.md +0 -110
- package/assets/docs/guide/to-v1-69.md +0 -468
- package/assets/docs/guide/to-v1-72.md +0 -193
- package/assets/docs/guide/use-templates/library.md +0 -450
- package/assets/docs/guide/user-interface/ai-integration/audio-generation.md +0 -428
- package/assets/docs/guide/user-interface/ai-integration/auto-captions.md +0 -337
- package/assets/docs/guide/user-interface/ai-integration/custom-provider.md +0 -853
- package/assets/docs/guide/user-interface/ai-integration/gateway-provider.md +0 -1045
- package/assets/docs/guide/user-interface/ai-integration/image-generation.md +0 -641
- package/assets/docs/guide/user-interface/ai-integration/integrate.md +0 -966
- package/assets/docs/guide/user-interface/ai-integration/proxy-server.md +0 -99
- package/assets/docs/guide/user-interface/ai-integration/text-generation.md +0 -498
- package/assets/docs/guide/user-interface/ai-integration/video-generation.md +0 -493
- package/assets/docs/guide/user-interface/ai-integration.md +0 -30
- package/assets/docs/guide/user-interface/appearance/change-ui-font.md +0 -316
- package/assets/docs/guide/user-interface/appearance/custom-labels.md +0 -509
- package/assets/docs/guide/user-interface/appearance/icons.md +0 -373
- package/assets/docs/guide/user-interface/appearance/theming.md +0 -665
- package/assets/docs/guide/user-interface/appearance.md +0 -23
- package/assets/docs/guide/user-interface/build-your-own-ui.md +0 -620
- package/assets/docs/guide/user-interface/customization/canvas-menu.md +0 -412
- package/assets/docs/guide/user-interface/customization/canvas.md +0 -281
- package/assets/docs/guide/user-interface/customization/color-palette.md +0 -413
- package/assets/docs/guide/user-interface/customization/crop-presets.md +0 -384
- package/assets/docs/guide/user-interface/customization/disable-or-enable.md +0 -676
- package/assets/docs/guide/user-interface/customization/dock.md +0 -399
- package/assets/docs/guide/user-interface/customization/force-crop.md +0 -289
- package/assets/docs/guide/user-interface/customization/inspector-bar.md +0 -371
- package/assets/docs/guide/user-interface/customization/navigation-bar.md +0 -516
- package/assets/docs/guide/user-interface/customization/page-format.md +0 -436
- package/assets/docs/guide/user-interface/customization/panel.md +0 -605
- package/assets/docs/guide/user-interface/customization/quick-start/add-action-buttons.md +0 -531
- package/assets/docs/guide/user-interface/customization/quick-start/add-dock-buttons.md +0 -358
- package/assets/docs/guide/user-interface/customization/quick-start/create-custom-components.md +0 -374
- package/assets/docs/guide/user-interface/customization/quick-start/reorder-components.md +0 -323
- package/assets/docs/guide/user-interface/customization/quick-start/show-hide-components.md +0 -294
- package/assets/docs/guide/user-interface/customization/quick-start.md +0 -12
- package/assets/docs/guide/user-interface/customization/reference/component-order-api.md +0 -519
- package/assets/docs/guide/user-interface/customization/reference/component-reference.md +0 -333
- package/assets/docs/guide/user-interface/customization/reference.md +0 -12
- package/assets/docs/guide/user-interface/customization.md +0 -39
- package/assets/docs/guide/user-interface/localization.md +0 -633
- package/assets/docs/guide/user-interface/overview.md +0 -167
- package/assets/docs/guide/user-interface/ui-extensions/add-custom-feature.md +0 -411
- package/assets/docs/guide/user-interface/ui-extensions/asset-library.md +0 -721
- package/assets/docs/guide/user-interface/ui-extensions/create-custom-panel.md +0 -331
- package/assets/docs/guide/user-interface/ui-extensions/customize-behaviour.md +0 -553
- package/assets/docs/guide/user-interface/ui-extensions/notifications-and-dialogs.md +0 -672
- package/assets/docs/guide/user-interface/ui-extensions/quick-actions.md +0 -415
- package/assets/docs/guide/user-interface/ui-extensions/register-new-component.md +0 -521
- package/assets/docs/guide/user-interface/ui-extensions.md +0 -26
- package/assets/docs/guide/user-interface.md +0 -25
- package/assets/prompts/evals-assetGenerate.md +0 -12
- package/assets/prompts/evals-brutalistCore.md +0 -34
- package/assets/prompts/evals-danskCatalogue.md +0 -31
- package/assets/prompts/evals-exportRoundTrip.md +0 -12
- package/assets/prompts/evals-inspectPriorCode.md +0 -16
- package/assets/prompts/evals-listProjectFiles.md +0 -6
- package/assets/prompts/evals-readAndExplainScript.md +0 -6
- package/assets/prompts/evals-resumeAcrossRestart.md +0 -15
- package/assets/prompts/evals-rewindRecovery.md +0 -10
- package/assets/prompts/evals-searchAcrossFiles.md +0 -6
- package/assets/prompts/evals-weddingCard.md +0 -20
- package/assets/prompts/explain.md +0 -6
- package/assets/prompts/review.md +0 -6
- package/dist/frontmatter.d.ts +0 -15
- package/dist/frontmatter.d.ts.map +0 -1
- package/dist/frontmatter.js +0 -46
- package/dist/frontmatter.js.map +0 -1
- package/dist/test/test/frontmatter.test.d.ts +0 -2
- package/dist/test/test/frontmatter.test.d.ts.map +0 -1
- package/dist/test/test/frontmatter.test.js +0 -55
- package/dist/test/test/frontmatter.test.js.map +0 -1
|
@@ -1,253 +1,190 @@
|
|
|
1
|
-
> This is one page of the CE.SDK
|
|
2
|
-
|
|
3
|
-
**Navigation:** [Guides](./guides.md) > [Create and Edit Audio](./create-audio/audio.md) > [Add Music](./create-audio/audio/add-music.md)
|
|
1
|
+
> This is one page of the CE.SDK Node.js documentation. For a complete overview, see the [Node.js Documentation Index](https://img.ly/docs/cesdk/node.md). For all docs in one file, see [llms-full.txt](./llms-full.txt.md).
|
|
4
2
|
|
|
5
3
|
---
|
|
6
4
|
|
|
7
|
-
Add background music and audio tracks to video projects using
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-

|
|
5
|
+
Add background music and audio tracks to video projects programmatically using
|
|
6
|
+
CE.SDK's headless engine for server-side audio processing.
|
|
11
7
|
|
|
12
8
|
> **Reading time:** 10 minutes
|
|
13
9
|
>
|
|
14
10
|
> **Resources:**
|
|
15
11
|
>
|
|
16
12
|
> - [Download examples](https://github.com/imgly/cesdk-web-examples/archive/refs/tags/release-$UBQ_VERSION$.zip)
|
|
17
|
-
>
|
|
18
|
-
> - [
|
|
19
|
-
>
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
EffectsAssetSource,
|
|
33
|
-
FiltersAssetSource,
|
|
34
|
-
PagePresetsAssetSource,
|
|
35
|
-
StickerAssetSource,
|
|
36
|
-
TextAssetSource,
|
|
37
|
-
TextComponentAssetSource,
|
|
38
|
-
TypefaceAssetSource,
|
|
39
|
-
UploadAssetSources,
|
|
40
|
-
VectorShapeAssetSource
|
|
41
|
-
} from '@cesdk/cesdk-js/plugins';
|
|
42
|
-
import { VideoEditorConfig } from './video-editor/plugin';
|
|
43
|
-
import packageJson from './package.json';
|
|
13
|
+
>
|
|
14
|
+
> - [View source on GitHub](https://github.com/imgly/cesdk-web-examples/tree/release-$UBQ_VERSION$/guides-create-audio-add-music-server-js)
|
|
15
|
+
>
|
|
16
|
+
> - [Open in StackBlitz](https://stackblitz.com/github/imgly/cesdk-web-examples/tree/v$UBQ_VERSION$/guides-create-audio-add-music-server-js)
|
|
17
|
+
|
|
18
|
+
<NodejsVideoExportNotice {...props} />
|
|
19
|
+
|
|
20
|
+
Audio blocks are standalone time-based blocks that play alongside video content, independent of video fills. In headless server environments, you can create audio blocks, configure time-based position and volume, and manage multiple audio tracks programmatically using the Engine API.
|
|
21
|
+
|
|
22
|
+
```typescript file=@cesdk_web_examples/guides-create-audio-add-music-server-js/server-js.ts reference-only
|
|
23
|
+
import CreativeEngine from '@cesdk/node';
|
|
24
|
+
import { writeFileSync, mkdirSync, existsSync } from 'fs';
|
|
25
|
+
import { config } from 'dotenv';
|
|
26
|
+
|
|
27
|
+
config();
|
|
44
28
|
|
|
45
29
|
/**
|
|
46
|
-
* CE.SDK
|
|
30
|
+
* CE.SDK Server Guide: Add Music
|
|
47
31
|
*
|
|
48
32
|
* Demonstrates adding background music to video projects:
|
|
49
33
|
* - Creating audio blocks programmatically
|
|
50
34
|
* - Setting audio source URIs
|
|
51
35
|
* - Configuring timeline position and duration
|
|
52
|
-
* -
|
|
53
|
-
* -
|
|
54
|
-
* - Managing audio blocks
|
|
36
|
+
* - Setting volume levels
|
|
37
|
+
* - Managing multiple audio blocks
|
|
55
38
|
*/
|
|
56
|
-
class Example implements EditorPlugin {
|
|
57
|
-
name = packageJson.name;
|
|
58
|
-
|
|
59
|
-
version = packageJson.version;
|
|
60
|
-
|
|
61
|
-
async initialize({ cesdk }: EditorPluginContext): Promise<void> {
|
|
62
|
-
if (!cesdk) {
|
|
63
|
-
throw new Error('CE.SDK instance is required for this plugin');
|
|
64
|
-
}
|
|
65
|
-
await cesdk.addPlugin(new VideoEditorConfig());
|
|
66
|
-
|
|
67
|
-
// Add asset source plugins
|
|
68
|
-
await cesdk.addPlugin(new BlurAssetSource());
|
|
69
|
-
await cesdk.addPlugin(new CaptionPresetsAssetSource());
|
|
70
|
-
await cesdk.addPlugin(new ColorPaletteAssetSource());
|
|
71
|
-
await cesdk.addPlugin(new CropPresetsAssetSource());
|
|
72
|
-
await cesdk.addPlugin(
|
|
73
|
-
new UploadAssetSources({
|
|
74
|
-
include: [
|
|
75
|
-
'ly.img.image.upload',
|
|
76
|
-
'ly.img.video.upload',
|
|
77
|
-
'ly.img.audio.upload'
|
|
78
|
-
]
|
|
79
|
-
})
|
|
80
|
-
);
|
|
81
|
-
await cesdk.addPlugin(
|
|
82
|
-
new DemoAssetSources({
|
|
83
|
-
include: [
|
|
84
|
-
'ly.img.templates.video.*',
|
|
85
|
-
'ly.img.image.*',
|
|
86
|
-
'ly.img.audio.*',
|
|
87
|
-
'ly.img.video.*'
|
|
88
|
-
]
|
|
89
|
-
})
|
|
90
|
-
);
|
|
91
|
-
await cesdk.addPlugin(new EffectsAssetSource());
|
|
92
|
-
await cesdk.addPlugin(new FiltersAssetSource());
|
|
93
|
-
await cesdk.addPlugin(
|
|
94
|
-
new PagePresetsAssetSource({
|
|
95
|
-
include: [
|
|
96
|
-
'ly.img.page.presets.instagram.*',
|
|
97
|
-
'ly.img.page.presets.facebook.*',
|
|
98
|
-
'ly.img.page.presets.x.*',
|
|
99
|
-
'ly.img.page.presets.linkedin.*',
|
|
100
|
-
'ly.img.page.presets.pinterest.*',
|
|
101
|
-
'ly.img.page.presets.tiktok.*',
|
|
102
|
-
'ly.img.page.presets.youtube.*',
|
|
103
|
-
'ly.img.page.presets.video.*'
|
|
104
|
-
]
|
|
105
|
-
})
|
|
106
|
-
);
|
|
107
|
-
await cesdk.addPlugin(new StickerAssetSource());
|
|
108
|
-
await cesdk.addPlugin(new TextAssetSource());
|
|
109
|
-
await cesdk.addPlugin(new TextComponentAssetSource());
|
|
110
|
-
await cesdk.addPlugin(new TypefaceAssetSource());
|
|
111
|
-
await cesdk.addPlugin(new VectorShapeAssetSource());
|
|
112
|
-
|
|
113
|
-
await cesdk.actions.run('scene.create', {
|
|
114
|
-
layout: 'DepthStack',
|
|
115
|
-
page: { width: 1920, height: 1080, unit: 'Pixel' }
|
|
116
|
-
});
|
|
117
|
-
|
|
118
|
-
const engine = cesdk.engine;
|
|
119
|
-
const page = engine.scene.getCurrentPage();
|
|
120
|
-
if (!page) {
|
|
121
|
-
throw new Error('No page found in scene');
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
// Set page duration for timeline
|
|
125
|
-
engine.block.setDuration(page, 30);
|
|
126
|
-
|
|
127
|
-
// Enable audio and timeline features for the UI
|
|
128
|
-
cesdk.feature.enable('ly.img.video.timeline');
|
|
129
|
-
cesdk.feature.enable('ly.img.video.timeline.audio');
|
|
130
|
-
cesdk.feature.enable('ly.img.video.timeline.controls.playback');
|
|
131
|
-
|
|
132
|
-
// Create an audio block for background music
|
|
133
|
-
const audioBlock = engine.block.create('audio');
|
|
134
|
-
|
|
135
|
-
// Set the audio source file
|
|
136
|
-
const audioUri =
|
|
137
|
-
'https://cdn.img.ly/assets/demo/v3/ly.img.audio/audios/far_from_home.m4a';
|
|
138
|
-
engine.block.setString(audioBlock, 'audio/fileURI', audioUri);
|
|
139
|
-
|
|
140
|
-
// Append audio to the page (makes it part of the timeline)
|
|
141
|
-
engine.block.appendChild(page, audioBlock);
|
|
142
|
-
|
|
143
|
-
// Wait for audio to load to get duration
|
|
144
|
-
await engine.block.forceLoadAVResource(audioBlock);
|
|
145
|
-
|
|
146
|
-
// Get the total duration of the audio file
|
|
147
|
-
const totalDuration = engine.block.getAVResourceTotalDuration(audioBlock);
|
|
148
|
-
console.log('Audio total duration:', totalDuration, 'seconds');
|
|
149
|
-
|
|
150
|
-
// Set when the audio starts on the timeline (0 = beginning)
|
|
151
|
-
engine.block.setTimeOffset(audioBlock, 0);
|
|
152
|
-
|
|
153
|
-
// Set how long the audio plays (use full duration or page duration)
|
|
154
|
-
const playbackDuration = Math.min(totalDuration, 30);
|
|
155
|
-
engine.block.setDuration(audioBlock, playbackDuration);
|
|
156
|
-
|
|
157
|
-
// Set the audio volume (0.0 = mute, 1.0 = full volume)
|
|
158
|
-
engine.block.setVolume(audioBlock, 0.8);
|
|
159
|
-
|
|
160
|
-
// Get current volume
|
|
161
|
-
const currentVolume = engine.block.getVolume(audioBlock);
|
|
162
|
-
console.log('Audio volume:', currentVolume);
|
|
163
|
-
|
|
164
|
-
// Query available audio tracks from the asset library
|
|
165
|
-
const audioAssets = await engine.asset.findAssets('ly.img.audio', {
|
|
166
|
-
page: 0,
|
|
167
|
-
perPage: 10
|
|
168
|
-
});
|
|
169
|
-
|
|
170
|
-
console.log('Available audio assets:', audioAssets.assets.length);
|
|
171
|
-
|
|
172
|
-
// Log metadata for each audio asset
|
|
173
|
-
audioAssets.assets.forEach((asset) => {
|
|
174
|
-
console.log('Audio asset:', {
|
|
175
|
-
id: asset.id,
|
|
176
|
-
label: asset.label,
|
|
177
|
-
duration: asset.meta?.duration,
|
|
178
|
-
uri: asset.meta?.uri
|
|
179
|
-
});
|
|
180
|
-
});
|
|
181
|
-
|
|
182
|
-
// Find all audio blocks in the scene
|
|
183
|
-
const allAudioBlocks = engine.block.findByType('audio');
|
|
184
|
-
console.log('Total audio blocks:', allAudioBlocks.length);
|
|
185
|
-
|
|
186
|
-
// Get information about each audio block
|
|
187
|
-
allAudioBlocks.forEach((block, index) => {
|
|
188
|
-
const uri = engine.block.getString(block, 'audio/fileURI');
|
|
189
|
-
const timeOffset = engine.block.getTimeOffset(block);
|
|
190
|
-
const duration = engine.block.getDuration(block);
|
|
191
|
-
const volume = engine.block.getVolume(block);
|
|
192
|
-
|
|
193
|
-
console.log(`Audio block ${index + 1}:`, {
|
|
194
|
-
uri: uri.split('/').pop(), // Just filename
|
|
195
|
-
timeOffset: `${timeOffset}s`,
|
|
196
|
-
duration: `${duration}s`,
|
|
197
|
-
volume: `${(volume * 100).toFixed(0)}%`
|
|
198
|
-
});
|
|
199
|
-
});
|
|
200
|
-
|
|
201
|
-
// Example: Remove the second audio block if it exists
|
|
202
|
-
if (allAudioBlocks.length > 1) {
|
|
203
|
-
const blockToRemove = allAudioBlocks[1];
|
|
204
|
-
|
|
205
|
-
// Destroy the block to remove it and free resources
|
|
206
|
-
engine.block.destroy(blockToRemove);
|
|
207
|
-
|
|
208
|
-
console.log('Removed second audio block');
|
|
209
|
-
}
|
|
210
39
|
|
|
40
|
+
const engine = await CreativeEngine.init({
|
|
41
|
+
baseURL: process.env.IMGLY_LOCAL_ASSETS_URL
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
try {
|
|
45
|
+
// Create a scene with a page for audio content
|
|
46
|
+
engine.scene.create('DepthStack');
|
|
47
|
+
const page = engine.block.create('page');
|
|
48
|
+
engine.block.setWidth(page, 1920);
|
|
49
|
+
engine.block.setHeight(page, 1080);
|
|
50
|
+
engine.block.appendChild(engine.scene.get()!, page);
|
|
51
|
+
|
|
52
|
+
// Set page duration for timeline (30 seconds)
|
|
53
|
+
engine.block.setDuration(page, 30);
|
|
54
|
+
|
|
55
|
+
// Create an audio block for background music
|
|
56
|
+
const audioBlock = engine.block.create('audio');
|
|
57
|
+
|
|
58
|
+
// Set the audio source file
|
|
59
|
+
const audioUri =
|
|
60
|
+
'https://cdn.img.ly/assets/demo/v3/ly.img.audio/audios/far_from_home.m4a';
|
|
61
|
+
engine.block.setString(audioBlock, 'audio/fileURI', audioUri);
|
|
62
|
+
|
|
63
|
+
// Append audio to the page (makes it part of the timeline)
|
|
64
|
+
engine.block.appendChild(page, audioBlock);
|
|
65
|
+
|
|
66
|
+
// Wait for audio to load to get duration
|
|
67
|
+
await engine.block.forceLoadAVResource(audioBlock);
|
|
68
|
+
|
|
69
|
+
// Get the total duration of the audio file
|
|
70
|
+
const totalDuration = engine.block.getAVResourceTotalDuration(audioBlock);
|
|
71
|
+
console.log('Audio total duration:', totalDuration.toFixed(2), 'seconds');
|
|
72
|
+
|
|
73
|
+
// Set when the audio starts on the timeline (0 = beginning)
|
|
74
|
+
engine.block.setTimeOffset(audioBlock, 0);
|
|
75
|
+
|
|
76
|
+
// Set how long the audio plays (use full duration or page duration)
|
|
77
|
+
const playbackDuration = Math.min(totalDuration, 30);
|
|
78
|
+
engine.block.setDuration(audioBlock, playbackDuration);
|
|
79
|
+
|
|
80
|
+
// Set the audio volume (0.0 = mute, 1.0 = full volume)
|
|
81
|
+
engine.block.setVolume(audioBlock, 0.8);
|
|
82
|
+
|
|
83
|
+
// Get current volume
|
|
84
|
+
const currentVolume = engine.block.getVolume(audioBlock);
|
|
85
|
+
console.log('Audio volume:', `${(currentVolume * 100).toFixed(0)}%`);
|
|
86
|
+
|
|
87
|
+
// Add a second audio track with different settings
|
|
88
|
+
const secondAudioBlock = engine.block.create('audio');
|
|
89
|
+
const secondAudioUri =
|
|
90
|
+
'https://cdn.img.ly/assets/demo/v3/ly.img.audio/audios/dance_harder.m4a';
|
|
91
|
+
engine.block.setString(secondAudioBlock, 'audio/fileURI', secondAudioUri);
|
|
92
|
+
engine.block.appendChild(page, secondAudioBlock);
|
|
93
|
+
|
|
94
|
+
// Load and configure the second audio
|
|
95
|
+
await engine.block.forceLoadAVResource(secondAudioBlock);
|
|
96
|
+
const secondDuration =
|
|
97
|
+
engine.block.getAVResourceTotalDuration(secondAudioBlock);
|
|
98
|
+
|
|
99
|
+
// Start second audio after the first one ends, at lower volume
|
|
100
|
+
engine.block.setTimeOffset(secondAudioBlock, playbackDuration);
|
|
101
|
+
engine.block.setDuration(secondAudioBlock, Math.min(secondDuration, 15));
|
|
102
|
+
engine.block.setVolume(secondAudioBlock, 0.5);
|
|
103
|
+
|
|
104
|
+
// Find all audio blocks in the scene
|
|
105
|
+
const allAudioBlocks = engine.block.findByType('audio');
|
|
106
|
+
console.log('\nTotal audio blocks:', allAudioBlocks.length);
|
|
107
|
+
|
|
108
|
+
// Get information about each audio block
|
|
109
|
+
allAudioBlocks.forEach((block, index) => {
|
|
110
|
+
const uri = engine.block.getString(block, 'audio/fileURI');
|
|
111
|
+
const timeOffset = engine.block.getTimeOffset(block);
|
|
112
|
+
const duration = engine.block.getDuration(block);
|
|
113
|
+
const volume = engine.block.getVolume(block);
|
|
114
|
+
|
|
115
|
+
console.log(`\nAudio block ${index + 1}:`);
|
|
116
|
+
console.log(` File: ${uri.split('/').pop()}`);
|
|
117
|
+
console.log(` Time offset: ${timeOffset.toFixed(2)}s`);
|
|
118
|
+
console.log(` Duration: ${duration.toFixed(2)}s`);
|
|
119
|
+
console.log(` Volume: ${(volume * 100).toFixed(0)}%`);
|
|
120
|
+
});
|
|
121
|
+
|
|
122
|
+
// Demonstrate removing an audio block
|
|
123
|
+
if (allAudioBlocks.length > 1) {
|
|
124
|
+
const blockToRemove = allAudioBlocks[1];
|
|
125
|
+
|
|
126
|
+
// Destroy the block to remove it and free resources
|
|
127
|
+
engine.block.destroy(blockToRemove);
|
|
128
|
+
|
|
129
|
+
console.log('\nRemoved second audio block');
|
|
211
130
|
console.log(
|
|
212
|
-
'
|
|
131
|
+
'Remaining audio blocks:',
|
|
132
|
+
engine.block.findByType('audio').length
|
|
213
133
|
);
|
|
214
134
|
}
|
|
215
|
-
}
|
|
216
135
|
|
|
217
|
-
|
|
218
|
-
|
|
136
|
+
// Export the scene to a file
|
|
137
|
+
const outputDir = './output';
|
|
138
|
+
if (!existsSync(outputDir)) {
|
|
139
|
+
mkdirSync(outputDir, { recursive: true });
|
|
140
|
+
}
|
|
219
141
|
|
|
220
|
-
|
|
142
|
+
// Save the scene as a .scene file for later use or rendering
|
|
143
|
+
const sceneString = await engine.scene.saveToString();
|
|
144
|
+
writeFileSync(`${outputDir}/scene-with-audio.scene`, sceneString);
|
|
221
145
|
|
|
222
|
-
|
|
146
|
+
console.log('\nScene saved to output/scene-with-audio.scene');
|
|
147
|
+
console.log(
|
|
148
|
+
'The scene contains audio configuration that can be rendered using the CE.SDK Renderer.'
|
|
149
|
+
);
|
|
223
150
|
|
|
224
|
-
|
|
151
|
+
console.log('\nAdd Music guide complete!');
|
|
152
|
+
} finally {
|
|
153
|
+
engine.dispose();
|
|
154
|
+
}
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
This guide covers how to create and configure audio blocks programmatically using the Block API, manage multiple audio tracks, and export scene configurations for rendering.
|
|
225
158
|
|
|
226
|
-
|
|
159
|
+
## Setting Up the Engine
|
|
227
160
|
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
161
|
+
Initialize the CE.SDK engine in headless mode for server-side audio processing.
|
|
162
|
+
|
|
163
|
+
```typescript highlight=highlight-setup
|
|
164
|
+
const engine = await CreativeEngine.init({
|
|
165
|
+
baseURL: process.env.IMGLY_LOCAL_ASSETS_URL
|
|
166
|
+
});
|
|
233
167
|
```
|
|
234
168
|
|
|
235
|
-
|
|
169
|
+
The headless engine provides full API access to audio functionality without browser dependencies, making it ideal for batch processing, automated workflows, and server-side content generation.
|
|
170
|
+
|
|
171
|
+
## Creating a Scene
|
|
236
172
|
|
|
237
|
-
|
|
238
|
-
- `ly.img.video.timeline.audio` - Enables the audio library in the dock
|
|
239
|
-
- `ly.img.video.timeline.controls.playback` - Adds playback controls for previewing audio
|
|
173
|
+
Create a scene with a page to hold audio content. Set the page dimensions and duration to define the composition length.
|
|
240
174
|
|
|
241
|
-
|
|
175
|
+
```typescript highlight=highlight-create-scene
|
|
176
|
+
// Create a scene with a page for audio content
|
|
177
|
+
engine.scene.create('DepthStack');
|
|
178
|
+
const page = engine.block.create('page');
|
|
179
|
+
engine.block.setWidth(page, 1920);
|
|
180
|
+
engine.block.setHeight(page, 1080);
|
|
181
|
+
engine.block.appendChild(engine.scene.get()!, page);
|
|
242
182
|
|
|
243
|
-
|
|
183
|
+
// Set page duration for timeline (30 seconds)
|
|
184
|
+
engine.block.setDuration(page, 30);
|
|
185
|
+
```
|
|
244
186
|
|
|
245
|
-
|
|
246
|
-
2. **Select audio category** - Browse available music tracks
|
|
247
|
-
3. **Preview tracks** - Listen to audio before adding
|
|
248
|
-
4. **Drag to timeline** - Add audio to the project
|
|
249
|
-
5. **Position on timeline** - Adjust when audio starts and ends
|
|
250
|
-
6. **Adjust volume** - Use the inspector to set volume levels
|
|
187
|
+
The page duration determines the maximum playback length for the composition. Audio blocks attached to this page participate in the composition.
|
|
251
188
|
|
|
252
189
|
## Programmatic Audio Creation
|
|
253
190
|
|
|
@@ -255,39 +192,39 @@ With audio features enabled, users can add music through the interface:
|
|
|
255
192
|
|
|
256
193
|
We create audio blocks using `engine.block.create('audio')` and set the source file using the `audio/fileURI` property. The audio block must be appended to a page to become part of the composition.
|
|
257
194
|
|
|
258
|
-
```typescript highlight-create-audio-block
|
|
259
|
-
// Create an audio block for background music
|
|
260
|
-
const audioBlock = engine.block.create('audio');
|
|
195
|
+
```typescript highlight=highlight-create-audio-block
|
|
196
|
+
// Create an audio block for background music
|
|
197
|
+
const audioBlock = engine.block.create('audio');
|
|
261
198
|
|
|
262
|
-
// Set the audio source file
|
|
263
|
-
const audioUri =
|
|
264
|
-
|
|
265
|
-
engine.block.setString(audioBlock, 'audio/fileURI', audioUri);
|
|
199
|
+
// Set the audio source file
|
|
200
|
+
const audioUri =
|
|
201
|
+
'https://cdn.img.ly/assets/demo/v3/ly.img.audio/audios/far_from_home.m4a';
|
|
202
|
+
engine.block.setString(audioBlock, 'audio/fileURI', audioUri);
|
|
266
203
|
|
|
267
|
-
// Append audio to the page (makes it part of the timeline)
|
|
268
|
-
engine.block.appendChild(page, audioBlock);
|
|
204
|
+
// Append audio to the page (makes it part of the timeline)
|
|
205
|
+
engine.block.appendChild(page, audioBlock);
|
|
269
206
|
```
|
|
270
207
|
|
|
271
|
-
Audio blocks support common formats including M4A, MP3, and WAV. The source URI can point to any accessible URL
|
|
208
|
+
Audio blocks support common formats including M4A, MP3, and WAV. The source URI can point to any accessible URL.
|
|
272
209
|
|
|
273
210
|
### Configure Time Position
|
|
274
211
|
|
|
275
212
|
Audio blocks have time-based properties that control when and how long they play. We use `setTimeOffset()` to set the start time and `setDuration()` to control playback length.
|
|
276
213
|
|
|
277
|
-
```typescript highlight-configure-timeline
|
|
278
|
-
// Wait for audio to load to get duration
|
|
279
|
-
await engine.block.forceLoadAVResource(audioBlock);
|
|
214
|
+
```typescript highlight=highlight-configure-timeline
|
|
215
|
+
// Wait for audio to load to get duration
|
|
216
|
+
await engine.block.forceLoadAVResource(audioBlock);
|
|
280
217
|
|
|
281
|
-
// Get the total duration of the audio file
|
|
282
|
-
const totalDuration = engine.block.getAVResourceTotalDuration(audioBlock);
|
|
283
|
-
console.log('Audio total duration:', totalDuration, 'seconds');
|
|
218
|
+
// Get the total duration of the audio file
|
|
219
|
+
const totalDuration = engine.block.getAVResourceTotalDuration(audioBlock);
|
|
220
|
+
console.log('Audio total duration:', totalDuration.toFixed(2), 'seconds');
|
|
284
221
|
|
|
285
|
-
// Set when the audio starts on the timeline (0 = beginning)
|
|
286
|
-
engine.block.setTimeOffset(audioBlock, 0);
|
|
222
|
+
// Set when the audio starts on the timeline (0 = beginning)
|
|
223
|
+
engine.block.setTimeOffset(audioBlock, 0);
|
|
287
224
|
|
|
288
|
-
// Set how long the audio plays (use full duration or page duration)
|
|
289
|
-
const playbackDuration = Math.min(totalDuration, 30);
|
|
290
|
-
engine.block.setDuration(audioBlock, playbackDuration);
|
|
225
|
+
// Set how long the audio plays (use full duration or page duration)
|
|
226
|
+
const playbackDuration = Math.min(totalDuration, 30);
|
|
227
|
+
engine.block.setDuration(audioBlock, playbackDuration);
|
|
291
228
|
```
|
|
292
229
|
|
|
293
230
|
The `forceLoadAVResource()` method ensures the audio file is loaded before we access its duration. This is important when you need to know the total length of the audio file for timing calculations.
|
|
@@ -296,42 +233,39 @@ The `forceLoadAVResource()` method ensures the audio file is loaded before we ac
|
|
|
296
233
|
|
|
297
234
|
Volume is set using `setVolume()` with values from 0.0 (mute) to 1.0 (full volume). This volume level is applied during export and affects the final rendered output.
|
|
298
235
|
|
|
299
|
-
```typescript highlight-configure-volume
|
|
300
|
-
// Set the audio volume (0.0 = mute, 1.0 = full volume)
|
|
301
|
-
engine.block.setVolume(audioBlock, 0.8);
|
|
236
|
+
```typescript highlight=highlight-configure-volume
|
|
237
|
+
// Set the audio volume (0.0 = mute, 1.0 = full volume)
|
|
238
|
+
engine.block.setVolume(audioBlock, 0.8);
|
|
302
239
|
|
|
303
|
-
// Get current volume
|
|
304
|
-
const currentVolume = engine.block.getVolume(audioBlock);
|
|
305
|
-
console.log('Audio volume:', currentVolume);
|
|
240
|
+
// Get current volume
|
|
241
|
+
const currentVolume = engine.block.getVolume(audioBlock);
|
|
242
|
+
console.log('Audio volume:', `${(currentVolume * 100).toFixed(0)}%`);
|
|
306
243
|
```
|
|
307
244
|
|
|
308
|
-
##
|
|
309
|
-
|
|
310
|
-
### Query Audio Library
|
|
245
|
+
## Adding Multiple Audio Tracks
|
|
311
246
|
|
|
312
|
-
|
|
247
|
+
Add multiple audio tracks to create layered soundscapes. Each track can have independent timing, duration, and volume settings.
|
|
313
248
|
|
|
314
|
-
```typescript highlight-
|
|
315
|
-
//
|
|
316
|
-
const
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
249
|
+
```typescript highlight=highlight-add-second-audio
|
|
250
|
+
// Add a second audio track with different settings
|
|
251
|
+
const secondAudioBlock = engine.block.create('audio');
|
|
252
|
+
const secondAudioUri =
|
|
253
|
+
'https://cdn.img.ly/assets/demo/v3/ly.img.audio/audios/dance_harder.m4a';
|
|
254
|
+
engine.block.setString(secondAudioBlock, 'audio/fileURI', secondAudioUri);
|
|
255
|
+
engine.block.appendChild(page, secondAudioBlock);
|
|
320
256
|
|
|
321
|
-
|
|
257
|
+
// Load and configure the second audio
|
|
258
|
+
await engine.block.forceLoadAVResource(secondAudioBlock);
|
|
259
|
+
const secondDuration =
|
|
260
|
+
engine.block.getAVResourceTotalDuration(secondAudioBlock);
|
|
322
261
|
|
|
323
|
-
//
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
label: asset.label,
|
|
328
|
-
duration: asset.meta?.duration,
|
|
329
|
-
uri: asset.meta?.uri
|
|
330
|
-
});
|
|
331
|
-
});
|
|
262
|
+
// Start second audio after the first one ends, at lower volume
|
|
263
|
+
engine.block.setTimeOffset(secondAudioBlock, playbackDuration);
|
|
264
|
+
engine.block.setDuration(secondAudioBlock, Math.min(secondDuration, 15));
|
|
265
|
+
engine.block.setVolume(secondAudioBlock, 0.5);
|
|
332
266
|
```
|
|
333
267
|
|
|
334
|
-
|
|
268
|
+
When working with multiple audio sources, use different volume levels to create a balanced mix. A common approach is to keep primary audio at higher levels and background music at lower levels.
|
|
335
269
|
|
|
336
270
|
## Managing Audio Blocks
|
|
337
271
|
|
|
@@ -339,62 +273,97 @@ Each asset includes metadata such as duration, file URI, and thumbnail URL, whic
|
|
|
339
273
|
|
|
340
274
|
Use `findByType('audio')` to retrieve all audio blocks in the scene. This is useful for building audio management interfaces or batch operations.
|
|
341
275
|
|
|
342
|
-
```typescript highlight-list-audio-blocks
|
|
343
|
-
// Find all audio blocks in the scene
|
|
344
|
-
const allAudioBlocks = engine.block.findByType('audio');
|
|
345
|
-
console.log('
|
|
346
|
-
|
|
347
|
-
// Get information about each audio block
|
|
348
|
-
allAudioBlocks.forEach((block, index) => {
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
276
|
+
```typescript highlight=highlight-list-audio-blocks
|
|
277
|
+
// Find all audio blocks in the scene
|
|
278
|
+
const allAudioBlocks = engine.block.findByType('audio');
|
|
279
|
+
console.log('\nTotal audio blocks:', allAudioBlocks.length);
|
|
280
|
+
|
|
281
|
+
// Get information about each audio block
|
|
282
|
+
allAudioBlocks.forEach((block, index) => {
|
|
283
|
+
const uri = engine.block.getString(block, 'audio/fileURI');
|
|
284
|
+
const timeOffset = engine.block.getTimeOffset(block);
|
|
285
|
+
const duration = engine.block.getDuration(block);
|
|
286
|
+
const volume = engine.block.getVolume(block);
|
|
287
|
+
|
|
288
|
+
console.log(`\nAudio block ${index + 1}:`);
|
|
289
|
+
console.log(` File: ${uri.split('/').pop()}`);
|
|
290
|
+
console.log(` Time offset: ${timeOffset.toFixed(2)}s`);
|
|
291
|
+
console.log(` Duration: ${duration.toFixed(2)}s`);
|
|
292
|
+
console.log(` Volume: ${(volume * 100).toFixed(0)}%`);
|
|
359
293
|
});
|
|
360
|
-
});
|
|
361
294
|
```
|
|
362
295
|
|
|
363
296
|
### Remove Audio
|
|
364
297
|
|
|
365
298
|
To remove an audio block, call `destroy()` which removes it from the scene and frees its resources.
|
|
366
299
|
|
|
367
|
-
```typescript highlight-remove-audio
|
|
368
|
-
//
|
|
369
|
-
if (allAudioBlocks.length > 1) {
|
|
370
|
-
|
|
300
|
+
```typescript highlight=highlight-remove-audio
|
|
301
|
+
// Demonstrate removing an audio block
|
|
302
|
+
if (allAudioBlocks.length > 1) {
|
|
303
|
+
const blockToRemove = allAudioBlocks[1];
|
|
371
304
|
|
|
372
|
-
|
|
373
|
-
|
|
305
|
+
// Destroy the block to remove it and free resources
|
|
306
|
+
engine.block.destroy(blockToRemove);
|
|
374
307
|
|
|
375
|
-
|
|
376
|
-
|
|
308
|
+
console.log('\nRemoved second audio block');
|
|
309
|
+
console.log(
|
|
310
|
+
'Remaining audio blocks:',
|
|
311
|
+
engine.block.findByType('audio').length
|
|
312
|
+
);
|
|
313
|
+
}
|
|
314
|
+
```
|
|
315
|
+
|
|
316
|
+
Always destroy blocks that are no longer needed to prevent memory leaks, especially when processing multiple audio files in batch workflows.
|
|
317
|
+
|
|
318
|
+
## Exporting Results
|
|
319
|
+
|
|
320
|
+
Save the scene configuration for later use or rendering. In headless mode, export the scene as a `.scene` file that can be loaded and rendered using the CE.SDK Renderer.
|
|
321
|
+
|
|
322
|
+
```typescript highlight=highlight-export
|
|
323
|
+
// Export the scene to a file
|
|
324
|
+
const outputDir = './output';
|
|
325
|
+
if (!existsSync(outputDir)) {
|
|
326
|
+
mkdirSync(outputDir, { recursive: true });
|
|
327
|
+
}
|
|
328
|
+
|
|
329
|
+
// Save the scene as a .scene file for later use or rendering
|
|
330
|
+
const sceneString = await engine.scene.saveToString();
|
|
331
|
+
writeFileSync(`${outputDir}/scene-with-audio.scene`, sceneString);
|
|
332
|
+
|
|
333
|
+
console.log('\nScene saved to output/scene-with-audio.scene');
|
|
334
|
+
console.log(
|
|
335
|
+
'The scene contains audio configuration that can be rendered using the CE.SDK Renderer.'
|
|
336
|
+
);
|
|
377
337
|
```
|
|
378
338
|
|
|
379
|
-
|
|
339
|
+
The exported scene contains all audio configuration including source URIs, time positions, durations, and volume levels. Use the CE.SDK Renderer for server-side video rendering with audio.
|
|
340
|
+
|
|
341
|
+
## Troubleshooting
|
|
342
|
+
|
|
343
|
+
**Audio Resource Loading Fails**: Verify the audio URI is accessible from the server environment. Check network connectivity and URL validity. Ensure the audio format is supported (M4A, MP3, WAV).
|
|
344
|
+
|
|
345
|
+
**Duration Returns Zero**: Call `forceLoadAVResource()` before accessing duration. The audio metadata must be loaded first.
|
|
346
|
+
|
|
347
|
+
**Volume Not Applied**: Ensure volume is set before exporting the scene. Volume settings are stored in the scene and applied during rendering.
|
|
348
|
+
|
|
349
|
+
**Memory Issues with Multiple Files**: Destroy audio blocks when they are no longer needed. For batch processing, consider processing files in smaller batches.
|
|
380
350
|
|
|
381
351
|
## API Reference
|
|
382
352
|
|
|
383
|
-
| Method
|
|
384
|
-
|
|
|
385
|
-
| `
|
|
386
|
-
| `
|
|
387
|
-
| `
|
|
388
|
-
| `block.
|
|
389
|
-
| `block.
|
|
390
|
-
| `block.
|
|
391
|
-
| `block.
|
|
392
|
-
| `block.
|
|
393
|
-
| `block.
|
|
394
|
-
| `block.
|
|
395
|
-
| `block.
|
|
396
|
-
| `
|
|
397
|
-
| `asset.findAssets(sourceId, query)` | Query audio assets |
|
|
353
|
+
| Method | Description |
|
|
354
|
+
| ------------------------------------------- | ------------------------------ |
|
|
355
|
+
| `block.create('audio')` | Create a new audio block |
|
|
356
|
+
| `block.setString(id, 'audio/fileURI', uri)` | Set the audio source file |
|
|
357
|
+
| `block.appendChild(parent, child)` | Append audio to page |
|
|
358
|
+
| `block.setTimeOffset(id, seconds)` | Set when audio starts playing |
|
|
359
|
+
| `block.setDuration(id, seconds)` | Set audio playback duration |
|
|
360
|
+
| `block.setVolume(id, volume)` | Set volume (0.0 to 1.0) |
|
|
361
|
+
| `block.getVolume(id)` | Get current volume level |
|
|
362
|
+
| `block.getAVResourceTotalDuration(id)` | Get total audio file duration |
|
|
363
|
+
| `block.forceLoadAVResource(id)` | Force load audio resource |
|
|
364
|
+
| `block.findByType('audio')` | Find all audio blocks in scene |
|
|
365
|
+
| `block.destroy(id)` | Remove audio block |
|
|
366
|
+
| `scene.saveToString()` | Export scene as .scene file |
|
|
398
367
|
|
|
399
368
|
## Audio Type
|
|
400
369
|
|
|
@@ -402,29 +371,34 @@ A block for playing audio content.
|
|
|
402
371
|
|
|
403
372
|
This section describes the properties available for the **Audio Type** (`//ly.img.ubq/audio`) block type.
|
|
404
373
|
|
|
405
|
-
| Property
|
|
406
|
-
|
|
|
407
|
-
| `audio/fileURI`
|
|
408
|
-
| `audio/totalDuration`
|
|
409
|
-
| `contentFill/
|
|
410
|
-
| `
|
|
411
|
-
| `
|
|
412
|
-
| `playback/
|
|
413
|
-
| `playback/
|
|
414
|
-
| `playback/
|
|
415
|
-
| `playback/
|
|
416
|
-
| `playback/
|
|
417
|
-
| `playback/
|
|
418
|
-
| `playback/
|
|
419
|
-
| `playback/
|
|
420
|
-
| `playback/
|
|
421
|
-
| `
|
|
374
|
+
| Property | Type | Default | Description |
|
|
375
|
+
| --------------------------------- | -------- | ---------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
376
|
+
| `audio/fileURI` | `String` | `""` | A URI referencing an audio file. |
|
|
377
|
+
| `audio/totalDuration` | `Double` | `"-"` | The total duration of the audio file., *(read-only)* |
|
|
378
|
+
| `contentFill/horizontalAlignment` | `Enum` | `"Center"` | The horizontal alignment of the content fill inside the block. Only affects `Contain` and `Cover` fill modes; has no visible effect in `Crop` mode., Possible values: `"Left"`, `"Center"`, `"Right"` |
|
|
379
|
+
| `contentFill/mode` | `Enum` | `"Cover"` | Defines how content should be resized to fit its container., Possible values: `"Crop"`, `"Cover"`, `"Contain"` |
|
|
380
|
+
| `contentFill/verticalAlignment` | `Enum` | `"Center"` | The vertical alignment of the content fill inside the block. Only affects `Contain` and `Cover` fill modes; has no visible effect in `Crop` mode., Possible values: `"Top"`, `"Center"`, `"Bottom"` |
|
|
381
|
+
| `playback/duration` | `Double` | `null` | The duration in seconds for which this block should be visible. |
|
|
382
|
+
| `playback/looping` | `Bool` | `false` | Whether the medium should start from the beginning again or should stop. |
|
|
383
|
+
| `playback/muted` | `Bool` | `false` | Whether the audio is muted. |
|
|
384
|
+
| `playback/playing` | `Bool` | `false` | A tag that can be set on elements for their playback time to be progressed. |
|
|
385
|
+
| `playback/soloPlaybackEnabled` | `Bool` | `false` | A tag for blocks where playback should progress while the scene is paused. |
|
|
386
|
+
| `playback/speed` | `Float` | `1` | The playback speed multiplier. |
|
|
387
|
+
| `playback/time` | `Double` | `0` | The current playback time of the block contents in seconds. |
|
|
388
|
+
| `playback/timeOffset` | `Double` | `0` | The time in seconds relative to its parent at which this block should first appear. |
|
|
389
|
+
| `playback/trimLength` | `Double` | `"-"` | The relative duration of the clip for playback. |
|
|
390
|
+
| `playback/trimOffset` | `Double` | `"-"` | The time within the clip at which playback should begin, in seconds. |
|
|
391
|
+
| `playback/volume` | `Float` | `1` | Audio volume with a range of \[0, 1]. |
|
|
392
|
+
| `selected` | `Bool` | `false` | Indicates if the block is currently selected. |
|
|
393
|
+
|
|
394
|
+
|
|
395
|
+
|
|
422
396
|
|
|
423
397
|
---
|
|
424
398
|
|
|
425
399
|
## More Resources
|
|
426
400
|
|
|
427
|
-
- **[
|
|
401
|
+
- **[Node.js Documentation Index](https://img.ly/docs/cesdk/node.md)** - Browse all Node.js documentation
|
|
428
402
|
- **[Complete Documentation](./llms-full.txt.md)** - Full documentation in one file (for LLMs)
|
|
429
|
-
- **[Web Documentation](./
|
|
430
|
-
- **[Support](mailto:support@img.ly)** - Contact IMG.LY support
|
|
403
|
+
- **[Web Documentation](./node.md)** - Interactive documentation with examples
|
|
404
|
+
- **[Support](mailto:support@img.ly)** - Contact IMG.LY support
|