@hyperframes/core 0.8.145 → 0.8.146
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/adapters/gsap.d.ts +0 -1
- package/dist/adapters/gsap.js +0 -1
- package/dist/adapters/index.d.ts +0 -1
- package/dist/adapters/index.js +0 -1
- package/dist/adapters/types.d.ts +0 -1
- package/dist/adapters/types.js +0 -1
- package/dist/atomicFile.d.ts +0 -1
- package/dist/atomicFile.js +0 -1
- package/dist/audibleVideo.d.ts +0 -1
- package/dist/audibleVideo.js +0 -1
- package/dist/audio/audioFxAutomation.d.ts +0 -1
- package/dist/audio/audioFxAutomation.js +0 -1
- package/dist/audio/audioFxGraph.d.ts +4 -1
- package/dist/audio/audioFxGraph.js +9 -3
- package/dist/audio/audioFxTail.d.ts +2 -1
- package/dist/audio/audioFxTail.js +11 -2
- package/dist/audio/audioFxTruePeak.d.ts +7 -0
- package/dist/audio/audioFxTruePeak.js +164 -0
- package/dist/audio/audioFxWorklets.d.ts +0 -1
- package/dist/audio/audioFxWorklets.js +9 -9
- package/dist/audioAutomation.d.ts +0 -1
- package/dist/audioAutomation.js +0 -1
- package/dist/audioCarve.d.ts +0 -1
- package/dist/audioCarve.js +0 -1
- package/dist/audioFade.d.ts +0 -1
- package/dist/audioFade.js +0 -1
- package/dist/audioFx.d.ts +0 -1
- package/dist/audioFx.js +47 -6
- package/dist/audioFxCopy.d.ts +0 -1
- package/dist/audioFxCopy.js +22 -6
- package/dist/audioFxEq.d.ts +0 -1
- package/dist/audioFxEq.js +1 -2
- package/dist/audioFxJobs.d.ts +0 -1
- package/dist/audioFxJobs.js +2 -3
- package/dist/audioFxPresets.d.ts +0 -1
- package/dist/audioFxPresets.js +6 -7
- package/dist/audioFxProfiles.d.ts +0 -1
- package/dist/audioFxProfiles.js +0 -1
- package/dist/audioGain.d.ts +0 -1
- package/dist/audioGain.js +0 -1
- package/dist/audioGroups.d.ts +0 -1
- package/dist/audioGroups.js +0 -1
- package/dist/audioLeveller.d.ts +0 -1
- package/dist/audioLeveller.js +1 -2
- package/dist/beats/beatDetection.d.ts +0 -1
- package/dist/beats/beatDetection.js +0 -1
- package/dist/beats/beatFile.d.ts +0 -1
- package/dist/beats/beatFile.js +0 -1
- package/dist/beats/index.d.ts +0 -1
- package/dist/beats/index.js +0 -1
- package/dist/canary.d.ts +0 -1
- package/dist/canary.js +0 -1
- package/dist/canaryRegistry.d.ts +0 -1
- package/dist/canaryRegistry.js +0 -1
- package/dist/clipFacts.d.ts +0 -1
- package/dist/clipFacts.js +0 -1
- package/dist/colorGrading.d.ts +0 -1
- package/dist/colorGrading.js +0 -1
- package/dist/colorGradingCurves.d.ts +0 -1
- package/dist/colorGradingCurves.js +0 -1
- package/dist/colorLuts.d.ts +0 -1
- package/dist/colorLuts.js +0 -1
- package/dist/compiler/assetPaths.d.ts +0 -1
- package/dist/compiler/assetPaths.js +0 -1
- package/dist/compiler/compositionAssembly.d.ts +0 -1
- package/dist/compiler/compositionAssembly.js +0 -1
- package/dist/compiler/compositionScoping.d.ts +0 -1
- package/dist/compiler/compositionScoping.js +0 -1
- package/dist/compiler/externalScripts.d.ts +0 -1
- package/dist/compiler/externalScripts.js +0 -1
- package/dist/compiler/htmlBundler.d.ts +0 -1
- package/dist/compiler/htmlBundler.js +0 -1
- package/dist/compiler/htmlCompiler.d.ts +0 -1
- package/dist/compiler/htmlCompiler.js +0 -1
- package/dist/compiler/htmlDocument.d.ts +0 -1
- package/dist/compiler/htmlDocument.js +0 -1
- package/dist/compiler/htmlParityContract.d.ts +0 -1
- package/dist/compiler/htmlParityContract.js +0 -1
- package/dist/compiler/importMaps.d.ts +0 -1
- package/dist/compiler/importMaps.js +0 -1
- package/dist/compiler/index.d.ts +0 -1
- package/dist/compiler/index.js +0 -1
- package/dist/compiler/inlineSubCompositions.d.ts +0 -1
- package/dist/compiler/inlineSubCompositions.js +0 -1
- package/dist/compiler/mediaRenderIds.d.ts +0 -1
- package/dist/compiler/mediaRenderIds.js +0 -1
- package/dist/compiler/rewriteSubCompPaths.d.ts +0 -1
- package/dist/compiler/rewriteSubCompPaths.js +0 -1
- package/dist/compiler/scenePartsManifest.d.ts +0 -1
- package/dist/compiler/scenePartsManifest.js +0 -1
- package/dist/compiler/scriptRuns.d.ts +0 -1
- package/dist/compiler/scriptRuns.js +0 -1
- package/dist/compiler/selectorIdTokens.d.ts +0 -1
- package/dist/compiler/selectorIdTokens.js +0 -1
- package/dist/compiler/standaloneEntry.d.ts +0 -1
- package/dist/compiler/standaloneEntry.js +0 -1
- package/dist/compiler/staticGuard.d.ts +0 -1
- package/dist/compiler/staticGuard.js +0 -1
- package/dist/compiler/subCompositionValidity.d.ts +0 -1
- package/dist/compiler/subCompositionValidity.js +0 -1
- package/dist/compiler/svgIdNamespacing.d.ts +0 -1
- package/dist/compiler/svgIdNamespacing.js +0 -1
- package/dist/compiler/svgSelectorAliases.d.ts +0 -1
- package/dist/compiler/svgSelectorAliases.js +0 -1
- package/dist/compiler/timingCompiler.d.ts +0 -1
- package/dist/compiler/timingCompiler.js +0 -1
- package/dist/compiler/timingResolver.d.ts +0 -1
- package/dist/compiler/timingResolver.js +0 -1
- package/dist/compositionContract.d.ts +0 -1
- package/dist/compositionContract.js +0 -1
- package/dist/compositionReadiness.d.ts +0 -1
- package/dist/compositionReadiness.js +0 -1
- package/dist/core.types.d.ts +0 -1
- package/dist/core.types.js +0 -1
- package/dist/editing/affordances.d.ts +0 -1
- package/dist/editing/affordances.js +0 -1
- package/dist/editing/draftMarkers.d.ts +0 -1
- package/dist/editing/draftMarkers.js +0 -1
- package/dist/figma/assetSnippet.d.ts +0 -1
- package/dist/figma/assetSnippet.js +0 -1
- package/dist/figma/bindings.d.ts +0 -1
- package/dist/figma/bindings.js +0 -1
- package/dist/figma/client.d.ts +0 -1
- package/dist/figma/client.js +9 -10
- package/dist/figma/color.d.ts +0 -1
- package/dist/figma/color.js +0 -1
- package/dist/figma/emitTimelineScript.d.ts +0 -1
- package/dist/figma/emitTimelineScript.js +1 -2
- package/dist/figma/freeze.d.ts +0 -1
- package/dist/figma/freeze.js +0 -1
- package/dist/figma/index.d.ts +0 -1
- package/dist/figma/index.js +0 -1
- package/dist/figma/jsonl.d.ts +0 -1
- package/dist/figma/jsonl.js +0 -1
- package/dist/figma/manifest.d.ts +0 -1
- package/dist/figma/manifest.js +0 -1
- package/dist/figma/mediaIndex.d.ts +0 -1
- package/dist/figma/mediaIndex.js +0 -1
- package/dist/figma/motionContextToDocs.d.ts +0 -1
- package/dist/figma/motionContextToDocs.js +0 -1
- package/dist/figma/motionEase.d.ts +0 -1
- package/dist/figma/motionEase.js +0 -1
- package/dist/figma/motionToGsap.d.ts +0 -1
- package/dist/figma/motionToGsap.js +0 -1
- package/dist/figma/nodeDocument.d.ts +0 -1
- package/dist/figma/nodeDocument.js +0 -1
- package/dist/figma/nodeToHtml.d.ts +0 -1
- package/dist/figma/nodeToHtml.js +0 -1
- package/dist/figma/parseFigmaRef.d.ts +0 -1
- package/dist/figma/parseFigmaRef.js +0 -1
- package/dist/figma/resolveBindings.d.ts +0 -1
- package/dist/figma/resolveBindings.js +0 -1
- package/dist/figma/sanitizeSvg.d.ts +0 -1
- package/dist/figma/sanitizeSvg.js +0 -1
- package/dist/figma/tokensToVariables.d.ts +0 -1
- package/dist/figma/tokensToVariables.js +0 -1
- package/dist/figma/types.d.ts +0 -1
- package/dist/figma/types.js +0 -1
- package/dist/fonts/aliases.d.ts +0 -1
- package/dist/fonts/aliases.js +0 -1
- package/dist/fonts/authoredGoogleFonts.d.ts +0 -1
- package/dist/fonts/authoredGoogleFonts.js +0 -1
- package/dist/fonts/deterministicFonts.d.ts +0 -1
- package/dist/fonts/deterministicFonts.js +3 -4
- package/dist/fonts/fontCompression.d.ts +0 -1
- package/dist/fonts/fontCompression.js +0 -1
- package/dist/fonts/fontData.generated.d.ts +0 -1
- package/dist/fonts/fontData.generated.js +0 -1
- package/dist/fonts/fontDiagnostics.d.ts +0 -1
- package/dist/fonts/fontDiagnostics.js +0 -1
- package/dist/fonts/systemFontLocator.d.ts +0 -1
- package/dist/fonts/systemFontLocator.js +0 -1
- package/dist/generated/audio-fx-runtime-inline.d.ts +0 -1
- package/dist/generated/audio-fx-runtime-inline.js +1 -2
- package/dist/generated/position-edits-render-inline.d.ts +0 -1
- package/dist/generated/position-edits-render-inline.js +1 -2
- package/dist/generated/runtime-inline.d.ts +0 -1
- package/dist/generated/runtime-inline.js +1 -2
- package/dist/generated/svg-selector-aliases-inline.d.ts +0 -1
- package/dist/generated/svg-selector-aliases-inline.js +0 -1
- package/dist/generators/hyperframes.d.ts +0 -1
- package/dist/generators/hyperframes.js +0 -1
- package/dist/generators/richTextHtml.d.ts +0 -1
- package/dist/generators/richTextHtml.js +0 -1
- package/dist/gsapCdn.d.ts +0 -1
- package/dist/gsapCdn.js +0 -1
- package/dist/hdrToneMap.d.ts +0 -1
- package/dist/hdrToneMap.js +0 -1
- package/dist/hyperframe.runtime.iife.js +214 -68
- package/dist/index.d.ts +0 -1
- package/dist/index.js +0 -1
- package/dist/inline-scripts/hyperframe.d.ts +0 -1
- package/dist/inline-scripts/hyperframe.js +0 -1
- package/dist/inline-scripts/hyperframesRuntime.engine.d.ts +0 -1
- package/dist/inline-scripts/hyperframesRuntime.engine.js +0 -1
- package/dist/inline-scripts/parityContract.d.ts +1 -2
- package/dist/inline-scripts/parityContract.js +3 -1
- package/dist/inline-scripts/pickerApi.d.ts +0 -1
- package/dist/inline-scripts/pickerApi.js +0 -1
- package/dist/inline-scripts/runtimeContract.d.ts +0 -1
- package/dist/inline-scripts/runtimeContract.js +0 -1
- package/dist/lint/index.d.ts +0 -1
- package/dist/lint/index.js +0 -1
- package/dist/lottieReadiness.d.ts +0 -1
- package/dist/lottieReadiness.js +0 -1
- package/dist/media/gif.d.ts +0 -1
- package/dist/media/gif.js +0 -1
- package/dist/mediaGradeAnalyzer.d.ts +0 -1
- package/dist/mediaGradeAnalyzer.js +0 -1
- package/dist/mediaLink.d.ts +0 -1
- package/dist/mediaLink.js +0 -1
- package/dist/mediaTiming.d.ts +18 -3
- package/dist/mediaTiming.js +19 -4
- package/dist/parsers/gsapConstants.d.ts +0 -1
- package/dist/parsers/gsapConstants.js +0 -1
- package/dist/parsers/gsapParserAcorn.d.ts +0 -1
- package/dist/parsers/gsapParserAcorn.js +0 -1
- package/dist/parsers/gsapParserExports.d.ts +0 -1
- package/dist/parsers/gsapParserExports.js +0 -1
- package/dist/parsers/gsapWriterAcorn.d.ts +0 -1
- package/dist/parsers/gsapWriterAcorn.js +0 -1
- package/dist/parsers/hfIds.d.ts +0 -1
- package/dist/parsers/hfIds.js +0 -1
- package/dist/parsers/springEase.d.ts +0 -1
- package/dist/parsers/springEase.js +0 -1
- package/dist/playbackRateBounds.d.ts +0 -1
- package/dist/playbackRateBounds.js +0 -1
- package/dist/previewProxyBox.d.ts +0 -1
- package/dist/previewProxyBox.js +0 -1
- package/dist/projectRule.d.ts +0 -1
- package/dist/projectRule.js +0 -1
- package/dist/projects.d.ts +0 -1
- package/dist/projects.js +0 -1
- package/dist/registry/index.d.ts +0 -1
- package/dist/registry/index.js +0 -1
- package/dist/registry/types.d.ts +0 -1
- package/dist/registry/types.js +0 -1
- package/dist/runtime/adapters/seek-dispatch.d.ts +0 -1
- package/dist/runtime/adapters/seek-dispatch.js +0 -1
- package/dist/runtime/analytics.d.ts +0 -1
- package/dist/runtime/analytics.js +0 -1
- package/dist/runtime/applyVariableBindings.d.ts +0 -1
- package/dist/runtime/applyVariableBindings.js +0 -1
- package/dist/runtime/audioAutomationVolume.d.ts +0 -1
- package/dist/runtime/audioAutomationVolume.js +0 -1
- package/dist/runtime/authoredTiming.d.ts +0 -1
- package/dist/runtime/authoredTiming.js +0 -1
- package/dist/runtime/bridge.d.ts +0 -1
- package/dist/runtime/bridge.js +0 -1
- package/dist/runtime/clipTree.d.ts +0 -1
- package/dist/runtime/clipTree.js +3 -3
- package/dist/runtime/clipWindow.d.ts +0 -1
- package/dist/runtime/clipWindow.js +0 -1
- package/dist/runtime/clock.d.ts +0 -1
- package/dist/runtime/clock.js +0 -1
- package/dist/runtime/compositionDimension.d.ts +0 -1
- package/dist/runtime/compositionDimension.js +0 -1
- package/dist/runtime/compositionLength.d.ts +0 -1
- package/dist/runtime/compositionLength.js +0 -1
- package/dist/runtime/customEase.d.ts +0 -1
- package/dist/runtime/customEase.js +0 -1
- package/dist/runtime/diagnostics.d.ts +2 -1
- package/dist/runtime/diagnostics.js +13 -1
- package/dist/runtime/domRealm.d.ts +0 -1
- package/dist/runtime/domRealm.js +0 -1
- package/dist/runtime/flattenedRoot.d.ts +0 -1
- package/dist/runtime/flattenedRoot.js +0 -1
- package/dist/runtime/getVariables.d.ts +0 -1
- package/dist/runtime/getVariables.js +1 -2
- package/dist/runtime/globals.d.ts +0 -1
- package/dist/runtime/globals.js +0 -1
- package/dist/runtime/levelTap.d.ts +0 -1
- package/dist/runtime/levelTap.js +0 -1
- package/dist/runtime/media.d.ts +4 -1
- package/dist/runtime/media.js +29 -16
- package/dist/runtime/mediaVolumeEnvelope.d.ts +0 -1
- package/dist/runtime/mediaVolumeEnvelope.js +0 -1
- package/dist/runtime/playbackRate.d.ts +0 -1
- package/dist/runtime/playbackRate.js +0 -1
- package/dist/runtime/positionEdits.d.ts +0 -1
- package/dist/runtime/positionEdits.js +0 -1
- package/dist/runtime/protocol.d.ts +0 -1
- package/dist/runtime/protocol.js +0 -1
- package/dist/runtime/proxySrc.d.ts +0 -1
- package/dist/runtime/proxySrc.js +0 -1
- package/dist/runtime/renderFrameSibling.d.ts +0 -1
- package/dist/runtime/renderFrameSibling.js +0 -1
- package/dist/runtime/stackingContext.d.ts +0 -1
- package/dist/runtime/stackingContext.js +0 -1
- package/dist/runtime/startExpression.d.ts +0 -1
- package/dist/runtime/startExpression.js +0 -1
- package/dist/runtime/startResolver.d.ts +2 -1
- package/dist/runtime/startResolver.js +82 -111
- package/dist/runtime/state.d.ts +0 -1
- package/dist/runtime/state.js +0 -1
- package/dist/runtime/timeline.d.ts +0 -1
- package/dist/runtime/timeline.js +17 -17
- package/dist/runtime/timelineDuration.d.ts +3 -0
- package/dist/runtime/timelineDuration.js +14 -0
- package/dist/runtime/types.d.ts +0 -1
- package/dist/runtime/types.js +0 -1
- package/dist/runtime/validateVariables.d.ts +0 -1
- package/dist/runtime/validateVariables.js +0 -1
- package/dist/runtime/variableScope.d.ts +0 -1
- package/dist/runtime/variableScope.js +0 -1
- package/dist/runtime/webAudioRoute.d.ts +0 -1
- package/dist/runtime/webAudioRoute.js +1 -2
- package/dist/runtime/wiggleEase.d.ts +0 -1
- package/dist/runtime/wiggleEase.js +0 -1
- package/dist/safePath.d.ts +0 -1
- package/dist/safePath.js +0 -1
- package/dist/sceneParts.d.ts +0 -1
- package/dist/sceneParts.js +0 -1
- package/dist/slideshow/index.d.ts +0 -1
- package/dist/slideshow/index.js +0 -1
- package/dist/speedRamp.d.ts +0 -1
- package/dist/speedRamp.js +0 -1
- package/dist/storyboard/editStoryboard.d.ts +0 -1
- package/dist/storyboard/editStoryboard.js +0 -1
- package/dist/storyboard/index.d.ts +0 -1
- package/dist/storyboard/index.js +0 -1
- package/dist/storyboard/parseStoryboard.d.ts +0 -1
- package/dist/storyboard/parseStoryboard.js +0 -1
- package/dist/storyboard/types.d.ts +0 -1
- package/dist/storyboard/types.js +0 -1
- package/dist/studio-api/helpers/draftMarkers.d.ts +0 -1
- package/dist/studio-api/helpers/draftMarkers.js +0 -1
- package/dist/studio-api/helpers/finiteMutation.d.ts +0 -1
- package/dist/studio-api/helpers/finiteMutation.js +0 -1
- package/dist/studio-api/helpers/manualEditsRenderScript.d.ts +0 -1
- package/dist/studio-api/helpers/manualEditsRenderScript.js +0 -1
- package/dist/studio-api/helpers/screenshotClip.d.ts +0 -1
- package/dist/studio-api/helpers/screenshotClip.js +0 -1
- package/dist/studio-api/helpers/studioMotionRenderScript.d.ts +0 -1
- package/dist/studio-api/helpers/studioMotionRenderScript.js +0 -1
- package/dist/studio-api/index.d.ts +0 -1
- package/dist/studio-api/index.js +0 -1
- package/dist/studioPreviewMark.d.ts +0 -1
- package/dist/studioPreviewMark.js +0 -1
- package/dist/telemetryRedaction.d.ts +0 -1
- package/dist/telemetryRedaction.js +0 -1
- package/dist/templates/base.d.ts +0 -1
- package/dist/templates/base.js +0 -1
- package/dist/templates/constants.d.ts +0 -1
- package/dist/templates/constants.js +0 -1
- package/dist/text/fitTextFontSize.d.ts +0 -1
- package/dist/text/fitTextFontSize.js +0 -1
- package/dist/text/index.d.ts +0 -1
- package/dist/text/index.js +0 -1
- package/dist/text/pretext.d.ts +0 -1
- package/dist/text/pretext.js +0 -1
- package/dist/timelineAssetId.d.ts +0 -1
- package/dist/timelineAssetId.js +0 -1
- package/dist/tokenSlug.d.ts +0 -1
- package/dist/tokenSlug.js +0 -1
- package/dist/utils/cssSelector.d.ts +0 -1
- package/dist/utils/cssSelector.js +0 -1
- package/dist/utils/htmlAttrSafety.d.ts +0 -1
- package/dist/utils/htmlAttrSafety.js +0 -1
- package/dist/utils/renderOutputTimestamp.d.ts +0 -1
- package/dist/utils/renderOutputTimestamp.js +0 -1
- package/dist/utils/richTextSanitize.d.ts +0 -1
- package/dist/utils/richTextSanitize.js +0 -1
- package/dist/utils/urlPath.d.ts +0 -1
- package/dist/utils/urlPath.js +0 -1
- package/dist/variables.d.ts +0 -1
- package/dist/variables.js +0 -1
- package/dist/vfx/displacementMap.frag.d.ts +0 -1
- package/dist/vfx/displacementMap.frag.js +0 -1
- package/dist/vfx/fractalNoise.frag.d.ts +0 -1
- package/dist/vfx/fractalNoise.frag.js +0 -1
- package/dist/vfx/lumaMatte.frag.d.ts +0 -1
- package/dist/vfx/lumaMatte.frag.js +1 -2
- package/dist/vfx/noise.frag.d.ts +0 -1
- package/dist/vfx/noise.frag.js +1 -2
- package/dist/vfx/refs/displacementMap.d.ts +0 -1
- package/dist/vfx/refs/displacementMap.js +0 -1
- package/dist/vfx/refs/fractalNoise.d.ts +0 -1
- package/dist/vfx/refs/fractalNoise.js +0 -1
- package/dist/vfx/refs/lumaMatte.d.ts +0 -1
- package/dist/vfx/refs/lumaMatte.js +0 -1
- package/dist/vfx/refs/noise.d.ts +0 -1
- package/dist/vfx/refs/noise.js +0 -1
- package/dist/vfx/refs/waveWarp.d.ts +0 -1
- package/dist/vfx/refs/waveWarp.js +0 -1
- package/dist/vfx/waveWarp.frag.d.ts +0 -1
- package/dist/vfx/waveWarp.frag.js +0 -1
- package/dist/vfx.d.ts +0 -1
- package/dist/vfx.js +0 -1
- package/package.json +4 -6
- package/dist/adapters/gsap.d.ts.map +0 -1
- package/dist/adapters/gsap.js.map +0 -1
- package/dist/adapters/index.d.ts.map +0 -1
- package/dist/adapters/index.js.map +0 -1
- package/dist/adapters/types.d.ts.map +0 -1
- package/dist/adapters/types.js.map +0 -1
- package/dist/atomicFile.d.ts.map +0 -1
- package/dist/atomicFile.js.map +0 -1
- package/dist/audibleVideo.d.ts.map +0 -1
- package/dist/audibleVideo.js.map +0 -1
- package/dist/audio/audioFxAutomation.d.ts.map +0 -1
- package/dist/audio/audioFxAutomation.js.map +0 -1
- package/dist/audio/audioFxGraph.d.ts.map +0 -1
- package/dist/audio/audioFxGraph.js.map +0 -1
- package/dist/audio/audioFxTail.d.ts.map +0 -1
- package/dist/audio/audioFxTail.js.map +0 -1
- package/dist/audio/audioFxWorklets.d.ts.map +0 -1
- package/dist/audio/audioFxWorklets.js.map +0 -1
- package/dist/audioAutomation.d.ts.map +0 -1
- package/dist/audioAutomation.js.map +0 -1
- package/dist/audioCarve.d.ts.map +0 -1
- package/dist/audioCarve.js.map +0 -1
- package/dist/audioFade.d.ts.map +0 -1
- package/dist/audioFade.js.map +0 -1
- package/dist/audioFx.d.ts.map +0 -1
- package/dist/audioFx.js.map +0 -1
- package/dist/audioFxCopy.d.ts.map +0 -1
- package/dist/audioFxCopy.js.map +0 -1
- package/dist/audioFxEq.d.ts.map +0 -1
- package/dist/audioFxEq.js.map +0 -1
- package/dist/audioFxJobs.d.ts.map +0 -1
- package/dist/audioFxJobs.js.map +0 -1
- package/dist/audioFxPresets.d.ts.map +0 -1
- package/dist/audioFxPresets.js.map +0 -1
- package/dist/audioFxProfiles.d.ts.map +0 -1
- package/dist/audioFxProfiles.js.map +0 -1
- package/dist/audioGain.d.ts.map +0 -1
- package/dist/audioGain.js.map +0 -1
- package/dist/audioGroups.d.ts.map +0 -1
- package/dist/audioGroups.js.map +0 -1
- package/dist/audioLeveller.d.ts.map +0 -1
- package/dist/audioLeveller.js.map +0 -1
- package/dist/beats/beatDetection.d.ts.map +0 -1
- package/dist/beats/beatDetection.js.map +0 -1
- package/dist/beats/beatFile.d.ts.map +0 -1
- package/dist/beats/beatFile.js.map +0 -1
- package/dist/beats/index.d.ts.map +0 -1
- package/dist/beats/index.js.map +0 -1
- package/dist/canary.d.ts.map +0 -1
- package/dist/canary.js.map +0 -1
- package/dist/canaryRegistry.d.ts.map +0 -1
- package/dist/canaryRegistry.js.map +0 -1
- package/dist/clipFacts.d.ts.map +0 -1
- package/dist/clipFacts.js.map +0 -1
- package/dist/colorGrading.d.ts.map +0 -1
- package/dist/colorGrading.js.map +0 -1
- package/dist/colorGradingCurves.d.ts.map +0 -1
- package/dist/colorGradingCurves.js.map +0 -1
- package/dist/colorLuts.d.ts.map +0 -1
- package/dist/colorLuts.js.map +0 -1
- package/dist/compiler/assetPaths.d.ts.map +0 -1
- package/dist/compiler/assetPaths.js.map +0 -1
- package/dist/compiler/compositionAssembly.d.ts.map +0 -1
- package/dist/compiler/compositionAssembly.js.map +0 -1
- package/dist/compiler/compositionScoping.d.ts.map +0 -1
- package/dist/compiler/compositionScoping.js.map +0 -1
- package/dist/compiler/externalScripts.d.ts.map +0 -1
- package/dist/compiler/externalScripts.js.map +0 -1
- package/dist/compiler/htmlBundler.d.ts.map +0 -1
- package/dist/compiler/htmlBundler.js.map +0 -1
- package/dist/compiler/htmlCompiler.d.ts.map +0 -1
- package/dist/compiler/htmlCompiler.js.map +0 -1
- package/dist/compiler/htmlDocument.d.ts.map +0 -1
- package/dist/compiler/htmlDocument.js.map +0 -1
- package/dist/compiler/htmlParityContract.d.ts.map +0 -1
- package/dist/compiler/htmlParityContract.js.map +0 -1
- package/dist/compiler/importMaps.d.ts.map +0 -1
- package/dist/compiler/importMaps.js.map +0 -1
- package/dist/compiler/index.d.ts.map +0 -1
- package/dist/compiler/index.js.map +0 -1
- package/dist/compiler/inlineSubCompositions.d.ts.map +0 -1
- package/dist/compiler/inlineSubCompositions.js.map +0 -1
- package/dist/compiler/mediaRenderIds.d.ts.map +0 -1
- package/dist/compiler/mediaRenderIds.js.map +0 -1
- package/dist/compiler/rewriteSubCompPaths.d.ts.map +0 -1
- package/dist/compiler/rewriteSubCompPaths.js.map +0 -1
- package/dist/compiler/scenePartsManifest.d.ts.map +0 -1
- package/dist/compiler/scenePartsManifest.js.map +0 -1
- package/dist/compiler/scriptRuns.d.ts.map +0 -1
- package/dist/compiler/scriptRuns.js.map +0 -1
- package/dist/compiler/selectorIdTokens.d.ts.map +0 -1
- package/dist/compiler/selectorIdTokens.js.map +0 -1
- package/dist/compiler/standaloneEntry.d.ts.map +0 -1
- package/dist/compiler/standaloneEntry.js.map +0 -1
- package/dist/compiler/staticGuard.d.ts.map +0 -1
- package/dist/compiler/staticGuard.js.map +0 -1
- package/dist/compiler/subCompositionValidity.d.ts.map +0 -1
- package/dist/compiler/subCompositionValidity.js.map +0 -1
- package/dist/compiler/svgIdNamespacing.d.ts.map +0 -1
- package/dist/compiler/svgIdNamespacing.js.map +0 -1
- package/dist/compiler/svgSelectorAliases.d.ts.map +0 -1
- package/dist/compiler/svgSelectorAliases.js.map +0 -1
- package/dist/compiler/timingCompiler.d.ts.map +0 -1
- package/dist/compiler/timingCompiler.js.map +0 -1
- package/dist/compiler/timingResolver.d.ts.map +0 -1
- package/dist/compiler/timingResolver.js.map +0 -1
- package/dist/compositionContract.d.ts.map +0 -1
- package/dist/compositionContract.js.map +0 -1
- package/dist/compositionReadiness.d.ts.map +0 -1
- package/dist/compositionReadiness.js.map +0 -1
- package/dist/core.types.d.ts.map +0 -1
- package/dist/core.types.js.map +0 -1
- package/dist/editing/affordances.d.ts.map +0 -1
- package/dist/editing/affordances.js.map +0 -1
- package/dist/editing/draftMarkers.d.ts.map +0 -1
- package/dist/editing/draftMarkers.js.map +0 -1
- package/dist/figma/assetSnippet.d.ts.map +0 -1
- package/dist/figma/assetSnippet.js.map +0 -1
- package/dist/figma/bindings.d.ts.map +0 -1
- package/dist/figma/bindings.js.map +0 -1
- package/dist/figma/client.d.ts.map +0 -1
- package/dist/figma/client.js.map +0 -1
- package/dist/figma/color.d.ts.map +0 -1
- package/dist/figma/color.js.map +0 -1
- package/dist/figma/emitTimelineScript.d.ts.map +0 -1
- package/dist/figma/emitTimelineScript.js.map +0 -1
- package/dist/figma/freeze.d.ts.map +0 -1
- package/dist/figma/freeze.js.map +0 -1
- package/dist/figma/index.d.ts.map +0 -1
- package/dist/figma/index.js.map +0 -1
- package/dist/figma/jsonl.d.ts.map +0 -1
- package/dist/figma/jsonl.js.map +0 -1
- package/dist/figma/manifest.d.ts.map +0 -1
- package/dist/figma/manifest.js.map +0 -1
- package/dist/figma/mediaIndex.d.ts.map +0 -1
- package/dist/figma/mediaIndex.js.map +0 -1
- package/dist/figma/motionContextToDocs.d.ts.map +0 -1
- package/dist/figma/motionContextToDocs.js.map +0 -1
- package/dist/figma/motionEase.d.ts.map +0 -1
- package/dist/figma/motionEase.js.map +0 -1
- package/dist/figma/motionToGsap.d.ts.map +0 -1
- package/dist/figma/motionToGsap.js.map +0 -1
- package/dist/figma/nodeDocument.d.ts.map +0 -1
- package/dist/figma/nodeDocument.js.map +0 -1
- package/dist/figma/nodeToHtml.d.ts.map +0 -1
- package/dist/figma/nodeToHtml.js.map +0 -1
- package/dist/figma/parseFigmaRef.d.ts.map +0 -1
- package/dist/figma/parseFigmaRef.js.map +0 -1
- package/dist/figma/resolveBindings.d.ts.map +0 -1
- package/dist/figma/resolveBindings.js.map +0 -1
- package/dist/figma/sanitizeSvg.d.ts.map +0 -1
- package/dist/figma/sanitizeSvg.js.map +0 -1
- package/dist/figma/tokensToVariables.d.ts.map +0 -1
- package/dist/figma/tokensToVariables.js.map +0 -1
- package/dist/figma/types.d.ts.map +0 -1
- package/dist/figma/types.js.map +0 -1
- package/dist/fonts/aliases.d.ts.map +0 -1
- package/dist/fonts/aliases.js.map +0 -1
- package/dist/fonts/authoredGoogleFonts.d.ts.map +0 -1
- package/dist/fonts/authoredGoogleFonts.js.map +0 -1
- package/dist/fonts/deterministicFonts.d.ts.map +0 -1
- package/dist/fonts/deterministicFonts.js.map +0 -1
- package/dist/fonts/fontCompression.d.ts.map +0 -1
- package/dist/fonts/fontCompression.js.map +0 -1
- package/dist/fonts/fontData.generated.d.ts.map +0 -1
- package/dist/fonts/fontData.generated.js.map +0 -1
- package/dist/fonts/fontDiagnostics.d.ts.map +0 -1
- package/dist/fonts/fontDiagnostics.js.map +0 -1
- package/dist/fonts/systemFontLocator.d.ts.map +0 -1
- package/dist/fonts/systemFontLocator.js.map +0 -1
- package/dist/generated/audio-fx-runtime-inline.d.ts.map +0 -1
- package/dist/generated/audio-fx-runtime-inline.js.map +0 -1
- package/dist/generated/position-edits-render-inline.d.ts.map +0 -1
- package/dist/generated/position-edits-render-inline.js.map +0 -1
- package/dist/generated/runtime-inline.d.ts.map +0 -1
- package/dist/generated/runtime-inline.js.map +0 -1
- package/dist/generated/svg-selector-aliases-inline.d.ts.map +0 -1
- package/dist/generated/svg-selector-aliases-inline.js.map +0 -1
- package/dist/generators/hyperframes.d.ts.map +0 -1
- package/dist/generators/hyperframes.js.map +0 -1
- package/dist/generators/richTextHtml.d.ts.map +0 -1
- package/dist/generators/richTextHtml.js.map +0 -1
- package/dist/gsapCdn.d.ts.map +0 -1
- package/dist/gsapCdn.js.map +0 -1
- package/dist/hdrToneMap.d.ts.map +0 -1
- package/dist/hdrToneMap.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/inline-scripts/hyperframe.d.ts.map +0 -1
- package/dist/inline-scripts/hyperframe.js.map +0 -1
- package/dist/inline-scripts/hyperframesRuntime.engine.d.ts.map +0 -1
- package/dist/inline-scripts/hyperframesRuntime.engine.js.map +0 -1
- package/dist/inline-scripts/parityContract.d.ts.map +0 -1
- package/dist/inline-scripts/parityContract.js.map +0 -1
- package/dist/inline-scripts/pickerApi.d.ts.map +0 -1
- package/dist/inline-scripts/pickerApi.js.map +0 -1
- package/dist/inline-scripts/runtimeContract.d.ts.map +0 -1
- package/dist/inline-scripts/runtimeContract.js.map +0 -1
- package/dist/lint/index.d.ts.map +0 -1
- package/dist/lint/index.js.map +0 -1
- package/dist/lottieReadiness.d.ts.map +0 -1
- package/dist/lottieReadiness.js.map +0 -1
- package/dist/media/gif.d.ts.map +0 -1
- package/dist/media/gif.js.map +0 -1
- package/dist/mediaGradeAnalyzer.d.ts.map +0 -1
- package/dist/mediaGradeAnalyzer.js.map +0 -1
- package/dist/mediaLink.d.ts.map +0 -1
- package/dist/mediaLink.js.map +0 -1
- package/dist/mediaTiming.d.ts.map +0 -1
- package/dist/mediaTiming.js.map +0 -1
- package/dist/parsers/gsapConstants.d.ts.map +0 -1
- package/dist/parsers/gsapConstants.js.map +0 -1
- package/dist/parsers/gsapParserAcorn.d.ts.map +0 -1
- package/dist/parsers/gsapParserAcorn.js.map +0 -1
- package/dist/parsers/gsapParserExports.d.ts.map +0 -1
- package/dist/parsers/gsapParserExports.js.map +0 -1
- package/dist/parsers/gsapWriterAcorn.d.ts.map +0 -1
- package/dist/parsers/gsapWriterAcorn.js.map +0 -1
- package/dist/parsers/hfIds.d.ts.map +0 -1
- package/dist/parsers/hfIds.js.map +0 -1
- package/dist/parsers/springEase.d.ts.map +0 -1
- package/dist/parsers/springEase.js.map +0 -1
- package/dist/playbackRateBounds.d.ts.map +0 -1
- package/dist/playbackRateBounds.js.map +0 -1
- package/dist/previewProxyBox.d.ts.map +0 -1
- package/dist/previewProxyBox.js.map +0 -1
- package/dist/projectRule.d.ts.map +0 -1
- package/dist/projectRule.js.map +0 -1
- package/dist/projects.d.ts.map +0 -1
- package/dist/projects.js.map +0 -1
- package/dist/registry/index.d.ts.map +0 -1
- package/dist/registry/index.js.map +0 -1
- package/dist/registry/types.d.ts.map +0 -1
- package/dist/registry/types.js.map +0 -1
- package/dist/runtime/adapters/seek-dispatch.d.ts.map +0 -1
- package/dist/runtime/adapters/seek-dispatch.js.map +0 -1
- package/dist/runtime/analytics.d.ts.map +0 -1
- package/dist/runtime/analytics.js.map +0 -1
- package/dist/runtime/applyVariableBindings.d.ts.map +0 -1
- package/dist/runtime/applyVariableBindings.js.map +0 -1
- package/dist/runtime/audioAutomationVolume.d.ts.map +0 -1
- package/dist/runtime/audioAutomationVolume.js.map +0 -1
- package/dist/runtime/authoredTiming.d.ts.map +0 -1
- package/dist/runtime/authoredTiming.js.map +0 -1
- package/dist/runtime/bridge.d.ts.map +0 -1
- package/dist/runtime/bridge.js.map +0 -1
- package/dist/runtime/clipTree.d.ts.map +0 -1
- package/dist/runtime/clipTree.js.map +0 -1
- package/dist/runtime/clipWindow.d.ts.map +0 -1
- package/dist/runtime/clipWindow.js.map +0 -1
- package/dist/runtime/clock.d.ts.map +0 -1
- package/dist/runtime/clock.js.map +0 -1
- package/dist/runtime/compositionDimension.d.ts.map +0 -1
- package/dist/runtime/compositionDimension.js.map +0 -1
- package/dist/runtime/compositionLength.d.ts.map +0 -1
- package/dist/runtime/compositionLength.js.map +0 -1
- package/dist/runtime/customEase.d.ts.map +0 -1
- package/dist/runtime/customEase.js.map +0 -1
- package/dist/runtime/diagnostics.d.ts.map +0 -1
- package/dist/runtime/diagnostics.js.map +0 -1
- package/dist/runtime/domRealm.d.ts.map +0 -1
- package/dist/runtime/domRealm.js.map +0 -1
- package/dist/runtime/flattenedRoot.d.ts.map +0 -1
- package/dist/runtime/flattenedRoot.js.map +0 -1
- package/dist/runtime/getVariables.d.ts.map +0 -1
- package/dist/runtime/getVariables.js.map +0 -1
- package/dist/runtime/globals.d.ts.map +0 -1
- package/dist/runtime/globals.js.map +0 -1
- package/dist/runtime/levelTap.d.ts.map +0 -1
- package/dist/runtime/levelTap.js.map +0 -1
- package/dist/runtime/media.d.ts.map +0 -1
- package/dist/runtime/media.js.map +0 -1
- package/dist/runtime/mediaVolumeEnvelope.d.ts.map +0 -1
- package/dist/runtime/mediaVolumeEnvelope.js.map +0 -1
- package/dist/runtime/playbackRate.d.ts.map +0 -1
- package/dist/runtime/playbackRate.js.map +0 -1
- package/dist/runtime/positionEdits.d.ts.map +0 -1
- package/dist/runtime/positionEdits.js.map +0 -1
- package/dist/runtime/protocol.d.ts.map +0 -1
- package/dist/runtime/protocol.js.map +0 -1
- package/dist/runtime/proxySrc.d.ts.map +0 -1
- package/dist/runtime/proxySrc.js.map +0 -1
- package/dist/runtime/renderFrameSibling.d.ts.map +0 -1
- package/dist/runtime/renderFrameSibling.js.map +0 -1
- package/dist/runtime/stackingContext.d.ts.map +0 -1
- package/dist/runtime/stackingContext.js.map +0 -1
- package/dist/runtime/startExpression.d.ts.map +0 -1
- package/dist/runtime/startExpression.js.map +0 -1
- package/dist/runtime/startResolver.d.ts.map +0 -1
- package/dist/runtime/startResolver.js.map +0 -1
- package/dist/runtime/state.d.ts.map +0 -1
- package/dist/runtime/state.js.map +0 -1
- package/dist/runtime/timeline.d.ts.map +0 -1
- package/dist/runtime/timeline.js.map +0 -1
- package/dist/runtime/types.d.ts.map +0 -1
- package/dist/runtime/types.js.map +0 -1
- package/dist/runtime/validateVariables.d.ts.map +0 -1
- package/dist/runtime/validateVariables.js.map +0 -1
- package/dist/runtime/variableScope.d.ts.map +0 -1
- package/dist/runtime/variableScope.js.map +0 -1
- package/dist/runtime/webAudioRoute.d.ts.map +0 -1
- package/dist/runtime/webAudioRoute.js.map +0 -1
- package/dist/runtime/wiggleEase.d.ts.map +0 -1
- package/dist/runtime/wiggleEase.js.map +0 -1
- package/dist/safePath.d.ts.map +0 -1
- package/dist/safePath.js.map +0 -1
- package/dist/sceneParts.d.ts.map +0 -1
- package/dist/sceneParts.js.map +0 -1
- package/dist/slideshow/index.d.ts.map +0 -1
- package/dist/slideshow/index.js.map +0 -1
- package/dist/speedRamp.d.ts.map +0 -1
- package/dist/speedRamp.js.map +0 -1
- package/dist/storyboard/editStoryboard.d.ts.map +0 -1
- package/dist/storyboard/editStoryboard.js.map +0 -1
- package/dist/storyboard/index.d.ts.map +0 -1
- package/dist/storyboard/index.js.map +0 -1
- package/dist/storyboard/parseStoryboard.d.ts.map +0 -1
- package/dist/storyboard/parseStoryboard.js.map +0 -1
- package/dist/storyboard/types.d.ts.map +0 -1
- package/dist/storyboard/types.js.map +0 -1
- package/dist/studio-api/helpers/draftMarkers.d.ts.map +0 -1
- package/dist/studio-api/helpers/draftMarkers.js.map +0 -1
- package/dist/studio-api/helpers/finiteMutation.d.ts.map +0 -1
- package/dist/studio-api/helpers/finiteMutation.js.map +0 -1
- package/dist/studio-api/helpers/manualEditsRenderScript.d.ts.map +0 -1
- package/dist/studio-api/helpers/manualEditsRenderScript.js.map +0 -1
- package/dist/studio-api/helpers/screenshotClip.d.ts.map +0 -1
- package/dist/studio-api/helpers/screenshotClip.js.map +0 -1
- package/dist/studio-api/helpers/studioMotionRenderScript.d.ts.map +0 -1
- package/dist/studio-api/helpers/studioMotionRenderScript.js.map +0 -1
- package/dist/studio-api/index.d.ts.map +0 -1
- package/dist/studio-api/index.js.map +0 -1
- package/dist/studioPreviewMark.d.ts.map +0 -1
- package/dist/studioPreviewMark.js.map +0 -1
- package/dist/telemetryRedaction.d.ts.map +0 -1
- package/dist/telemetryRedaction.js.map +0 -1
- package/dist/templates/base.d.ts.map +0 -1
- package/dist/templates/base.js.map +0 -1
- package/dist/templates/constants.d.ts.map +0 -1
- package/dist/templates/constants.js.map +0 -1
- package/dist/text/fitTextFontSize.d.ts.map +0 -1
- package/dist/text/fitTextFontSize.js.map +0 -1
- package/dist/text/index.d.ts.map +0 -1
- package/dist/text/index.js.map +0 -1
- package/dist/text/pretext.d.ts.map +0 -1
- package/dist/text/pretext.js.map +0 -1
- package/dist/timelineAssetId.d.ts.map +0 -1
- package/dist/timelineAssetId.js.map +0 -1
- package/dist/tokenSlug.d.ts.map +0 -1
- package/dist/tokenSlug.js.map +0 -1
- package/dist/utils/cssSelector.d.ts.map +0 -1
- package/dist/utils/cssSelector.js.map +0 -1
- package/dist/utils/htmlAttrSafety.d.ts.map +0 -1
- package/dist/utils/htmlAttrSafety.js.map +0 -1
- package/dist/utils/renderOutputTimestamp.d.ts.map +0 -1
- package/dist/utils/renderOutputTimestamp.js.map +0 -1
- package/dist/utils/richTextSanitize.d.ts.map +0 -1
- package/dist/utils/richTextSanitize.js.map +0 -1
- package/dist/utils/urlPath.d.ts.map +0 -1
- package/dist/utils/urlPath.js.map +0 -1
- package/dist/variables.d.ts.map +0 -1
- package/dist/variables.js.map +0 -1
- package/dist/vfx/displacementMap.frag.d.ts.map +0 -1
- package/dist/vfx/displacementMap.frag.js.map +0 -1
- package/dist/vfx/fractalNoise.frag.d.ts.map +0 -1
- package/dist/vfx/fractalNoise.frag.js.map +0 -1
- package/dist/vfx/lumaMatte.frag.d.ts.map +0 -1
- package/dist/vfx/lumaMatte.frag.js.map +0 -1
- package/dist/vfx/noise.frag.d.ts.map +0 -1
- package/dist/vfx/noise.frag.js.map +0 -1
- package/dist/vfx/refs/displacementMap.d.ts.map +0 -1
- package/dist/vfx/refs/displacementMap.js.map +0 -1
- package/dist/vfx/refs/fractalNoise.d.ts.map +0 -1
- package/dist/vfx/refs/fractalNoise.js.map +0 -1
- package/dist/vfx/refs/lumaMatte.d.ts.map +0 -1
- package/dist/vfx/refs/lumaMatte.js.map +0 -1
- package/dist/vfx/refs/noise.d.ts.map +0 -1
- package/dist/vfx/refs/noise.js.map +0 -1
- package/dist/vfx/refs/waveWarp.d.ts.map +0 -1
- package/dist/vfx/refs/waveWarp.js.map +0 -1
- package/dist/vfx/waveWarp.frag.d.ts.map +0 -1
- package/dist/vfx/waveWarp.frag.js.map +0 -1
- package/dist/vfx.d.ts.map +0 -1
- package/dist/vfx.js.map +0 -1
package/dist/adapters/gsap.d.ts
CHANGED
package/dist/adapters/gsap.js
CHANGED
package/dist/adapters/index.d.ts
CHANGED
package/dist/adapters/index.js
CHANGED
package/dist/adapters/types.d.ts
CHANGED
package/dist/adapters/types.js
CHANGED
package/dist/atomicFile.d.ts
CHANGED
|
@@ -11,4 +11,3 @@ export declare function createFileAtomically(filePath: string, content: string |
|
|
|
11
11
|
/** The file a write to `filePath` lands on: folder links and file links followed as the system does. */
|
|
12
12
|
export declare function resolveWritePath(filePath: string): string;
|
|
13
13
|
export {};
|
|
14
|
-
//# sourceMappingURL=atomicFile.d.ts.map
|
package/dist/atomicFile.js
CHANGED
package/dist/audibleVideo.d.ts
CHANGED
package/dist/audibleVideo.js
CHANGED
|
@@ -60,4 +60,3 @@ export declare function scheduleChainAutomation(automation: HfAutomation, chain:
|
|
|
60
60
|
presets?: Record<string, FxParamTarget[]>): FxParamTarget[];
|
|
61
61
|
/** The track's volume lane, if it has one. */
|
|
62
62
|
export declare function volumeLane(automation: HfAutomation): HfAutomationLane | null;
|
|
63
|
-
//# sourceMappingURL=audioFxAutomation.d.ts.map
|
|
@@ -36,6 +36,8 @@ export interface FxNodeHandle {
|
|
|
36
36
|
* parameter key. Absent for a node whose values cannot be scheduled.
|
|
37
37
|
*/
|
|
38
38
|
automation?: Record<string, FxParamTarget[]>;
|
|
39
|
+
/** Drop internal state (delay lines, held gain) when the signal jumps, as on a seek. */
|
|
40
|
+
reset?(): void;
|
|
39
41
|
dispose(): void;
|
|
40
42
|
}
|
|
41
43
|
/** Effect ids whose Web Audio node needs a worklet module registered first. */
|
|
@@ -58,6 +60,8 @@ export interface FxChainHandle {
|
|
|
58
60
|
presets: Record<string, FxParamTarget[]>;
|
|
59
61
|
/** Re-parameterise in place when the shape is unchanged; false if a rebuild is needed. */
|
|
60
62
|
update(chain: HfAudioFxChain): boolean;
|
|
63
|
+
/** Clear the state of every effect that carries signal history. */
|
|
64
|
+
reset(): void;
|
|
61
65
|
dispose(): void;
|
|
62
66
|
}
|
|
63
67
|
/**
|
|
@@ -70,4 +74,3 @@ export interface FxChainHandle {
|
|
|
70
74
|
*/
|
|
71
75
|
export declare function buildFxChain(ctx: BaseAudioContext, chain: HfAudioFxChain, elapsed?: number): FxChainHandle;
|
|
72
76
|
export { audioFxWorkletsReady, ensureAudioFxWorklets };
|
|
73
|
-
//# sourceMappingURL=audioFxGraph.d.ts.map
|
|
@@ -183,13 +183,14 @@ function onePoleBuilder(kind) {
|
|
|
183
183
|
return simple(node, () => { });
|
|
184
184
|
};
|
|
185
185
|
}
|
|
186
|
-
function workletBuilder(processor) {
|
|
186
|
+
function workletBuilder(processor, resettable = false) {
|
|
187
187
|
return (ctx, p) => {
|
|
188
188
|
const node = new AudioWorkletNode(ctx, processor, { processorOptions: { ...p } });
|
|
189
189
|
return {
|
|
190
190
|
input: node,
|
|
191
191
|
output: node,
|
|
192
192
|
update: (v) => node.port.postMessage({ ...v }),
|
|
193
|
+
...(resettable ? { reset: () => node.port.postMessage({ __hfReset: true }) } : {}),
|
|
193
194
|
dispose: () => {
|
|
194
195
|
// Disconnecting is not enough to retire an AudioWorkletProcessor: it
|
|
195
196
|
// lives until its `process()` returns false, and these all returned
|
|
@@ -429,6 +430,7 @@ const BUILDERS = {
|
|
|
429
430
|
"biquad-lowpass": biquad("lowpass", false),
|
|
430
431
|
"worklet-compressor": workletBuilder("hf-compressor"),
|
|
431
432
|
"worklet-limiter": workletBuilder("hf-limiter"),
|
|
433
|
+
"worklet-truepeak": workletBuilder("hf-truepeak", true),
|
|
432
434
|
"worklet-gate": workletBuilder("hf-gate"),
|
|
433
435
|
"worklet-bitcrush": workletBuilder("hf-bitcrush"),
|
|
434
436
|
"worklet-pitchshift": workletBuilder("hf-pitchshift"),
|
|
@@ -511,7 +513,8 @@ function shapeOf(chain) {
|
|
|
511
513
|
// author's own node while the render, which rebuilds, blended out the
|
|
512
514
|
// preset's.
|
|
513
515
|
const run = node.fromPreset ? `%${node.fromPreset}` : "";
|
|
514
|
-
|
|
516
|
+
const lookahead = node.type === "truepeak" ? `^${p.lookahead}` : "";
|
|
517
|
+
return `${node.type}${poles}${fixedFreq}${wave}${lookahead}${run}`;
|
|
515
518
|
})
|
|
516
519
|
.join("|");
|
|
517
520
|
}
|
|
@@ -629,6 +632,10 @@ export function buildFxChain(ctx, chain, elapsed = 0) {
|
|
|
629
632
|
// join per observer tick to write back the string that was already there.
|
|
630
633
|
return true;
|
|
631
634
|
},
|
|
635
|
+
reset() {
|
|
636
|
+
for (const { handle } of handles)
|
|
637
|
+
handle.reset?.();
|
|
638
|
+
},
|
|
632
639
|
dispose() {
|
|
633
640
|
for (const { handle } of handles)
|
|
634
641
|
handle.dispose();
|
|
@@ -647,4 +654,3 @@ export function buildFxChain(ctx, chain, elapsed = 0) {
|
|
|
647
654
|
};
|
|
648
655
|
}
|
|
649
656
|
export { audioFxWorkletsReady, ensureAudioFxWorklets };
|
|
650
|
-
//# sourceMappingURL=audioFxGraph.js.map
|
|
@@ -25,4 +25,5 @@ export declare const MAX_FX_TAIL_SECONDS = 5;
|
|
|
25
25
|
* each of its repeats to the room and the last one still gets a full tail.
|
|
26
26
|
*/
|
|
27
27
|
export declare function chainTailSeconds(chain: HfAudioFxChain, automation?: HfAutomation): number;
|
|
28
|
-
|
|
28
|
+
/** Samples the offline render trims so a lookahead limiter does not shift a clip. */
|
|
29
|
+
export declare function chainLatencySamples(chain: HfAudioFxChain, sampleRate: number): number;
|
|
@@ -8,7 +8,8 @@
|
|
|
8
8
|
* the room it needs.
|
|
9
9
|
*/
|
|
10
10
|
import { fxAutomationTarget } from "../audioAutomation.js";
|
|
11
|
-
import { normalizeAudioFxParams } from "../audioFx.js";
|
|
11
|
+
import { enabledAudioFxNodes, normalizeAudioFxParams, } from "../audioFx.js";
|
|
12
|
+
import { truePeakLatencySamples } from "./audioFxTruePeak.js";
|
|
12
13
|
/**
|
|
13
14
|
* Ceiling on the extension, in seconds.
|
|
14
15
|
*
|
|
@@ -107,4 +108,12 @@ export function chainTailSeconds(chain, automation) {
|
|
|
107
108
|
const total = chain.nodes.reduce((sum, node) => sum + nodeTail(node, automation), 0);
|
|
108
109
|
return Math.min(MAX_FX_TAIL_SECONDS, total);
|
|
109
110
|
}
|
|
110
|
-
|
|
111
|
+
/** Samples the offline render trims so a lookahead limiter does not shift a clip. */
|
|
112
|
+
export function chainLatencySamples(chain, sampleRate) {
|
|
113
|
+
return enabledAudioFxNodes(chain)
|
|
114
|
+
.filter((node) => node.type === "truepeak")
|
|
115
|
+
.reduce((sum, node) => {
|
|
116
|
+
const { lookahead } = normalizeAudioFxParams(node.type, node.params);
|
|
117
|
+
return sum + truePeakLatencySamples(Number(lookahead), sampleRate);
|
|
118
|
+
}, 0);
|
|
119
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The `hf-truepeak` worklet: a lookahead limiter that holds a 4x estimate of the
|
|
3
|
+
* true peak at a ceiling in dBTP; full-band noise can end up to 1.7 dB over.
|
|
4
|
+
*/
|
|
5
|
+
/** Samples between a sample entering the limiter and leaving it. */
|
|
6
|
+
export declare function truePeakLatencySamples(lookaheadMs: number, sampleRate: number): number;
|
|
7
|
+
export declare const TRUE_PEAK_WORKLET_SOURCE = "\nconst TP_OS = 4;\nconst TP_HALF = 64;\nconst TP_BRANCH = 33;\nconst TP_DELAY = 16;\n\nfunction besselI0(x) {\n let sum = 1, term = 1;\n for (let k = 1; k < 40; k++) {\n term *= (x / (2 * k)) * (x / (2 * k));\n sum += term;\n }\n return sum;\n}\n\n/** Kaiser-windowed sinc, one array per polyphase branch, newest tap first. */\nfunction tpBranches() {\n const beta = 6;\n const norm = besselI0(beta);\n const branches = [];\n for (let p = 0; p < TP_OS; p++) {\n const taps = new Float64Array(TP_BRANCH);\n let sum = 0;\n for (let j = 0; j < TP_BRANCH; j++) {\n const k = p + TP_OS * j;\n if (k > 2 * TP_HALF) continue;\n const t = (k - TP_HALF) / TP_OS;\n const sinc = t === 0 ? 1 : Math.sin(Math.PI * t) / (Math.PI * t);\n const r = (k - TP_HALF) / TP_HALF;\n taps[j] = sinc * (besselI0(beta * Math.sqrt(Math.max(0, 1 - r * r))) / norm);\n sum += taps[j];\n }\n // Unity gain at DC on every branch, so a steady level reads as itself.\n for (let j = 0; j < TP_BRANCH; j++) taps[j] /= sum;\n branches.push(taps);\n }\n return branches;\n}\n\nclass HfTruePeak extends AudioWorkletProcessor {\n constructor(o) {\n super();\n this.p = o.processorOptions || {};\n this.look = Math.max(1, Math.round((this.p.lookahead ?? 3) * sampleRate / 1000));\n this.delayLen = this.look + TP_DELAY;\n this.branches = tpBranches();\n this.setLevels();\n this.clear();\n this.port.onmessage = (e) => {\n if (e.data && e.data.__hfDispose) { this.dead = true; return; }\n if (e.data && e.data.__hfReset) { this.clear(); return; }\n this.p = { ...this.p, ...e.data };\n this.setLevels();\n };\n }\n /** Back to the state of a fresh processor: no audio in the delay line, no gain reduction. */\n clear() {\n this.ch = [];\n this.rel = 1;\n this.dqIdx = new Int32Array(this.look + 2);\n this.dqVal = new Float64Array(this.look + 2);\n this.dqHead = 0;\n this.dqTail = 0;\n this.t = 0;\n this.avgRing = new Float64Array(this.look + 1).fill(1);\n this.avgPos = 0;\n this.avgSum = this.look + 1;\n }\n setLevels() {\n this.ceiling = Math.pow(10, (this.p.ceiling ?? -1) / 20);\n this.relCoef = 1 - Math.exp(-1 / (sampleRate * Math.max(1e-4, (this.p.release ?? 80) / 1000)));\n }\n channel(c) {\n if (!this.ch[c]) {\n this.ch[c] = {\n delay: new Float32Array(this.delayLen),\n w: 0,\n hist: new Float32Array(TP_BRANCH * 2),\n pos: 0,\n };\n }\n return this.ch[c];\n }\n /** Largest interpolated magnitude across channels for the newest sample. */\n peak(chans, inputs, n) {\n let peak = 0;\n for (let c = 0; c < chans; c++) {\n const s = this.channel(c);\n const x = inputs[c][n];\n s.pos = (s.pos + 1) % TP_BRANCH;\n s.hist[s.pos] = x;\n s.hist[s.pos + TP_BRANCH] = x;\n const base = s.pos + TP_BRANCH;\n for (let p = 0; p < TP_OS; p++) {\n const taps = this.branches[p];\n let acc = 0;\n for (let j = 0; j < TP_BRANCH; j++) acc += taps[j] * s.hist[base - j];\n const a = acc < 0 ? -acc : acc;\n if (a > peak) peak = a;\n }\n }\n return peak;\n }\n /** Windowed minimum of the required gain over the last look + 1 values. */\n windowMin(v) {\n const cap = this.dqIdx.length;\n while (this.dqTail !== this.dqHead && this.dqVal[(this.dqTail + cap - 1) % cap] >= v) {\n this.dqTail = (this.dqTail + cap - 1) % cap;\n }\n this.dqIdx[this.dqTail] = this.t;\n this.dqVal[this.dqTail] = v;\n this.dqTail = (this.dqTail + 1) % cap;\n while (this.dqIdx[this.dqHead] <= this.t - (this.look + 1)) {\n this.dqHead = (this.dqHead + 1) % cap;\n }\n this.t++;\n return this.dqVal[this.dqHead];\n }\n process(inputs, outputs) {\n if (this.dead) return false;\n const i = inputs[0], o = outputs[0];\n if (!i || !i.length) return true;\n const chans = i.length;\n const frames = i[0].length;\n for (let n = 0; n < frames; n++) {\n const peak = this.peak(chans, i, n);\n const need = peak > this.ceiling ? this.ceiling / peak : 1;\n const m = this.windowMin(need);\n this.avgSum += m - this.avgRing[this.avgPos];\n this.avgRing[this.avgPos] = m;\n this.avgPos = (this.avgPos + 1) % this.avgRing.length;\n const target = Math.min(1, this.avgSum / this.avgRing.length);\n const released = this.rel + (1 - this.rel) * this.relCoef;\n this.rel = released < target ? released : target;\n if (target >= 1 && this.rel > 0.9999999) this.rel = 1;\n for (let c = 0; c < chans; c++) {\n const s = this.channel(c);\n o[c][n] = s.delay[s.w] * this.rel;\n s.delay[s.w] = i[c][n];\n s.w = (s.w + 1) % this.delayLen;\n }\n }\n return true;\n }\n}\nregisterProcessor(\"hf-truepeak\", HfTruePeak);\n";
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The `hf-truepeak` worklet: a lookahead limiter that holds a 4x estimate of the
|
|
3
|
+
* true peak at a ceiling in dBTP; full-band noise can end up to 1.7 dB over.
|
|
4
|
+
*/
|
|
5
|
+
const TRUE_PEAK_OVERSAMPLE = 4;
|
|
6
|
+
/** Group delay of the interpolator, in input samples. */
|
|
7
|
+
const TRUE_PEAK_DETECTOR_DELAY = 16;
|
|
8
|
+
const KERNEL_HALF = TRUE_PEAK_OVERSAMPLE * TRUE_PEAK_DETECTOR_DELAY;
|
|
9
|
+
/** Taps per polyphase branch: the longest branch of a 2 * KERNEL_HALF + 1 kernel. */
|
|
10
|
+
const BRANCH_TAPS = 2 * TRUE_PEAK_DETECTOR_DELAY + 1;
|
|
11
|
+
function truePeakLookaheadSamples(lookaheadMs, sampleRate) {
|
|
12
|
+
return Math.max(1, Math.round((lookaheadMs * sampleRate) / 1000));
|
|
13
|
+
}
|
|
14
|
+
/** Samples between a sample entering the limiter and leaving it. */
|
|
15
|
+
export function truePeakLatencySamples(lookaheadMs, sampleRate) {
|
|
16
|
+
return truePeakLookaheadSamples(lookaheadMs, sampleRate) + TRUE_PEAK_DETECTOR_DELAY;
|
|
17
|
+
}
|
|
18
|
+
export const TRUE_PEAK_WORKLET_SOURCE = `
|
|
19
|
+
const TP_OS = ${TRUE_PEAK_OVERSAMPLE};
|
|
20
|
+
const TP_HALF = ${KERNEL_HALF};
|
|
21
|
+
const TP_BRANCH = ${BRANCH_TAPS};
|
|
22
|
+
const TP_DELAY = ${TRUE_PEAK_DETECTOR_DELAY};
|
|
23
|
+
|
|
24
|
+
function besselI0(x) {
|
|
25
|
+
let sum = 1, term = 1;
|
|
26
|
+
for (let k = 1; k < 40; k++) {
|
|
27
|
+
term *= (x / (2 * k)) * (x / (2 * k));
|
|
28
|
+
sum += term;
|
|
29
|
+
}
|
|
30
|
+
return sum;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
/** Kaiser-windowed sinc, one array per polyphase branch, newest tap first. */
|
|
34
|
+
function tpBranches() {
|
|
35
|
+
const beta = 6;
|
|
36
|
+
const norm = besselI0(beta);
|
|
37
|
+
const branches = [];
|
|
38
|
+
for (let p = 0; p < TP_OS; p++) {
|
|
39
|
+
const taps = new Float64Array(TP_BRANCH);
|
|
40
|
+
let sum = 0;
|
|
41
|
+
for (let j = 0; j < TP_BRANCH; j++) {
|
|
42
|
+
const k = p + TP_OS * j;
|
|
43
|
+
if (k > 2 * TP_HALF) continue;
|
|
44
|
+
const t = (k - TP_HALF) / TP_OS;
|
|
45
|
+
const sinc = t === 0 ? 1 : Math.sin(Math.PI * t) / (Math.PI * t);
|
|
46
|
+
const r = (k - TP_HALF) / TP_HALF;
|
|
47
|
+
taps[j] = sinc * (besselI0(beta * Math.sqrt(Math.max(0, 1 - r * r))) / norm);
|
|
48
|
+
sum += taps[j];
|
|
49
|
+
}
|
|
50
|
+
// Unity gain at DC on every branch, so a steady level reads as itself.
|
|
51
|
+
for (let j = 0; j < TP_BRANCH; j++) taps[j] /= sum;
|
|
52
|
+
branches.push(taps);
|
|
53
|
+
}
|
|
54
|
+
return branches;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
class HfTruePeak extends AudioWorkletProcessor {
|
|
58
|
+
constructor(o) {
|
|
59
|
+
super();
|
|
60
|
+
this.p = o.processorOptions || {};
|
|
61
|
+
this.look = Math.max(1, Math.round((this.p.lookahead ?? 3) * sampleRate / 1000));
|
|
62
|
+
this.delayLen = this.look + TP_DELAY;
|
|
63
|
+
this.branches = tpBranches();
|
|
64
|
+
this.setLevels();
|
|
65
|
+
this.clear();
|
|
66
|
+
this.port.onmessage = (e) => {
|
|
67
|
+
if (e.data && e.data.__hfDispose) { this.dead = true; return; }
|
|
68
|
+
if (e.data && e.data.__hfReset) { this.clear(); return; }
|
|
69
|
+
this.p = { ...this.p, ...e.data };
|
|
70
|
+
this.setLevels();
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
/** Back to the state of a fresh processor: no audio in the delay line, no gain reduction. */
|
|
74
|
+
clear() {
|
|
75
|
+
this.ch = [];
|
|
76
|
+
this.rel = 1;
|
|
77
|
+
this.dqIdx = new Int32Array(this.look + 2);
|
|
78
|
+
this.dqVal = new Float64Array(this.look + 2);
|
|
79
|
+
this.dqHead = 0;
|
|
80
|
+
this.dqTail = 0;
|
|
81
|
+
this.t = 0;
|
|
82
|
+
this.avgRing = new Float64Array(this.look + 1).fill(1);
|
|
83
|
+
this.avgPos = 0;
|
|
84
|
+
this.avgSum = this.look + 1;
|
|
85
|
+
}
|
|
86
|
+
setLevels() {
|
|
87
|
+
this.ceiling = Math.pow(10, (this.p.ceiling ?? -1) / 20);
|
|
88
|
+
this.relCoef = 1 - Math.exp(-1 / (sampleRate * Math.max(1e-4, (this.p.release ?? 80) / 1000)));
|
|
89
|
+
}
|
|
90
|
+
channel(c) {
|
|
91
|
+
if (!this.ch[c]) {
|
|
92
|
+
this.ch[c] = {
|
|
93
|
+
delay: new Float32Array(this.delayLen),
|
|
94
|
+
w: 0,
|
|
95
|
+
hist: new Float32Array(TP_BRANCH * 2),
|
|
96
|
+
pos: 0,
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
return this.ch[c];
|
|
100
|
+
}
|
|
101
|
+
/** Largest interpolated magnitude across channels for the newest sample. */
|
|
102
|
+
peak(chans, inputs, n) {
|
|
103
|
+
let peak = 0;
|
|
104
|
+
for (let c = 0; c < chans; c++) {
|
|
105
|
+
const s = this.channel(c);
|
|
106
|
+
const x = inputs[c][n];
|
|
107
|
+
s.pos = (s.pos + 1) % TP_BRANCH;
|
|
108
|
+
s.hist[s.pos] = x;
|
|
109
|
+
s.hist[s.pos + TP_BRANCH] = x;
|
|
110
|
+
const base = s.pos + TP_BRANCH;
|
|
111
|
+
for (let p = 0; p < TP_OS; p++) {
|
|
112
|
+
const taps = this.branches[p];
|
|
113
|
+
let acc = 0;
|
|
114
|
+
for (let j = 0; j < TP_BRANCH; j++) acc += taps[j] * s.hist[base - j];
|
|
115
|
+
const a = acc < 0 ? -acc : acc;
|
|
116
|
+
if (a > peak) peak = a;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
return peak;
|
|
120
|
+
}
|
|
121
|
+
/** Windowed minimum of the required gain over the last look + 1 values. */
|
|
122
|
+
windowMin(v) {
|
|
123
|
+
const cap = this.dqIdx.length;
|
|
124
|
+
while (this.dqTail !== this.dqHead && this.dqVal[(this.dqTail + cap - 1) % cap] >= v) {
|
|
125
|
+
this.dqTail = (this.dqTail + cap - 1) % cap;
|
|
126
|
+
}
|
|
127
|
+
this.dqIdx[this.dqTail] = this.t;
|
|
128
|
+
this.dqVal[this.dqTail] = v;
|
|
129
|
+
this.dqTail = (this.dqTail + 1) % cap;
|
|
130
|
+
while (this.dqIdx[this.dqHead] <= this.t - (this.look + 1)) {
|
|
131
|
+
this.dqHead = (this.dqHead + 1) % cap;
|
|
132
|
+
}
|
|
133
|
+
this.t++;
|
|
134
|
+
return this.dqVal[this.dqHead];
|
|
135
|
+
}
|
|
136
|
+
process(inputs, outputs) {
|
|
137
|
+
if (this.dead) return false;
|
|
138
|
+
const i = inputs[0], o = outputs[0];
|
|
139
|
+
if (!i || !i.length) return true;
|
|
140
|
+
const chans = i.length;
|
|
141
|
+
const frames = i[0].length;
|
|
142
|
+
for (let n = 0; n < frames; n++) {
|
|
143
|
+
const peak = this.peak(chans, i, n);
|
|
144
|
+
const need = peak > this.ceiling ? this.ceiling / peak : 1;
|
|
145
|
+
const m = this.windowMin(need);
|
|
146
|
+
this.avgSum += m - this.avgRing[this.avgPos];
|
|
147
|
+
this.avgRing[this.avgPos] = m;
|
|
148
|
+
this.avgPos = (this.avgPos + 1) % this.avgRing.length;
|
|
149
|
+
const target = Math.min(1, this.avgSum / this.avgRing.length);
|
|
150
|
+
const released = this.rel + (1 - this.rel) * this.relCoef;
|
|
151
|
+
this.rel = released < target ? released : target;
|
|
152
|
+
if (target >= 1 && this.rel > 0.9999999) this.rel = 1;
|
|
153
|
+
for (let c = 0; c < chans; c++) {
|
|
154
|
+
const s = this.channel(c);
|
|
155
|
+
o[c][n] = s.delay[s.w] * this.rel;
|
|
156
|
+
s.delay[s.w] = i[c][n];
|
|
157
|
+
s.w = (s.w + 1) % this.delayLen;
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
return true;
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
registerProcessor("hf-truepeak", HfTruePeak);
|
|
164
|
+
`;
|
|
@@ -5,4 +5,3 @@ export declare function audioFxWorkletsReady(ctx: BaseAudioContext): boolean;
|
|
|
5
5
|
* addModule throws if the same processor name is registered twice.
|
|
6
6
|
*/
|
|
7
7
|
export declare function ensureAudioFxWorklets(ctx: BaseAudioContext): Promise<void>;
|
|
8
|
-
//# sourceMappingURL=audioFxWorklets.d.ts.map
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { TRUE_PEAK_WORKLET_SOURCE } from "./audioFxTruePeak.js";
|
|
1
2
|
/**
|
|
2
3
|
* AudioWorklet processors for the effects Web Audio has no native node for.
|
|
3
4
|
*
|
|
@@ -18,7 +19,7 @@ const dbToLin = (db) => Math.pow(10, db / 20);
|
|
|
18
19
|
* Per channel matters: the followers advance once per sample, so a single shared
|
|
19
20
|
* follower stepped once per channel per sample. On stereo that ran a 20 ms attack
|
|
20
21
|
* as 10 ms, and gave the right channel a gain computed from an envelope that had
|
|
21
|
-
* already traversed the left
|
|
22
|
+
* already traversed the left, so the two channels ducked by different amounts
|
|
22
23
|
* from the same input and the image pumped.
|
|
23
24
|
*/
|
|
24
25
|
class EnvBank {
|
|
@@ -230,7 +231,7 @@ function readTap(ring, write, delaySamples) {
|
|
|
230
231
|
return ring[i0] * (1 - frac) + ring[i1] * frac;
|
|
231
232
|
}
|
|
232
233
|
|
|
233
|
-
/** Equal-power-ish crossfade, zero at a tap's reset point
|
|
234
|
+
/** Equal-power-ish crossfade, zero at a tap's reset point, which hides the splice. */
|
|
234
235
|
function xfade(phase) {
|
|
235
236
|
return Math.sin(Math.PI * phase);
|
|
236
237
|
}
|
|
@@ -242,7 +243,7 @@ function xfade(phase) {
|
|
|
242
243
|
* out, which hides the splice each tap makes when it wraps.
|
|
243
244
|
*
|
|
244
245
|
* write/phase are block-level state, advanced once per SAMPLE across all
|
|
245
|
-
* channels together (not once per channel)
|
|
246
|
+
* channels together (not once per channel). Advancing them inside the
|
|
246
247
|
* per-channel loop would move the tap 2x/4x too fast on a stereo/quad input.
|
|
247
248
|
*/
|
|
248
249
|
class HfPitchshift extends AudioWorkletProcessor {
|
|
@@ -255,13 +256,13 @@ class HfPitchshift extends AudioWorkletProcessor {
|
|
|
255
256
|
this.phase = 0;
|
|
256
257
|
// Samples written so far, capped at one grain. The taps read up to a grain
|
|
257
258
|
// behind the write head, so until this fills they would read the ring's
|
|
258
|
-
// zeros
|
|
259
|
+
// zeros, so the head of every clip came out attenuated or silent.
|
|
259
260
|
this.filled = 0;
|
|
260
261
|
// How much of the wet (pitch-shifted) path is currently in the output, and
|
|
261
262
|
// where it is heading. Crossing between dry and wet is a ~50 ms jump in the
|
|
262
263
|
// signal, so it is RAMPED rather than switched: a hard swap either way is a
|
|
263
264
|
// click. Ramping in both directions is also what lets a node return to true
|
|
264
|
-
// bypass at semitones 0
|
|
265
|
+
// bypass at semitones 0. A one-way latch left preview stuck with the delay
|
|
265
266
|
// that the render, building a fresh node from the attribute, does not have.
|
|
266
267
|
this.wet = 0;
|
|
267
268
|
this.wetTarget = 0;
|
|
@@ -289,7 +290,7 @@ class HfPitchshift extends AudioWorkletProcessor {
|
|
|
289
290
|
|
|
290
291
|
// Nothing to shift, or mixed fully out. The grain delay is ~grain/2
|
|
291
292
|
// whatever the ratio, so at semitones=0 this degenerated into a pure 50 ms
|
|
292
|
-
// delay of the signal
|
|
293
|
+
// delay of the signal, while the copy for that exact setting reads
|
|
293
294
|
// "Unchanged pitch".
|
|
294
295
|
this.wetTarget = semitones === 0 ? 0 : mix;
|
|
295
296
|
|
|
@@ -345,7 +346,7 @@ class HfPitchshift extends AudioWorkletProcessor {
|
|
|
345
346
|
}
|
|
346
347
|
}
|
|
347
348
|
registerProcessor("hf-pitchshift", HfPitchshift);
|
|
348
|
-
|
|
349
|
+
` + TRUE_PEAK_WORKLET_SOURCE;
|
|
349
350
|
// Registration is per context, not per module: a processor registered on one
|
|
350
351
|
// AudioContext does not exist on another, so caching a single promise made
|
|
351
352
|
// every context after the first believe it was ready when it was not.
|
|
@@ -364,7 +365,7 @@ export function ensureAudioFxWorklets(ctx) {
|
|
|
364
365
|
if (!modulePromise) {
|
|
365
366
|
modulePromise = (async () => {
|
|
366
367
|
if (!ctx.audioWorklet) {
|
|
367
|
-
throw new Error("AudioWorklet is unavailable
|
|
368
|
+
throw new Error("AudioWorklet is unavailable: the page needs a secure context (https, localhost or file://)");
|
|
368
369
|
}
|
|
369
370
|
// A data: URL rather than a blob:, because a blob inherits the page origin
|
|
370
371
|
// and is treated as opaque on a file:// page, where the module then fails
|
|
@@ -386,4 +387,3 @@ export function ensureAudioFxWorklets(ctx) {
|
|
|
386
387
|
}
|
|
387
388
|
return modulePromise;
|
|
388
389
|
}
|
|
389
|
-
//# sourceMappingURL=audioFxWorklets.js.map
|
|
@@ -200,4 +200,3 @@ export declare function isConstantLane(lane: HfAutomationLane): boolean;
|
|
|
200
200
|
* volume envelope, and the lane's own drawing code.
|
|
201
201
|
*/
|
|
202
202
|
export declare function sampleAutomationCurve(lane: HfAutomationLane, from: number, to: number, count: number, scale?: "linear" | "log"): Float32Array;
|
|
203
|
-
//# sourceMappingURL=audioAutomation.d.ts.map
|
package/dist/audioAutomation.js
CHANGED
package/dist/audioCarve.d.ts
CHANGED
|
@@ -240,4 +240,3 @@ export declare function analyseCarveDuck(voice: Float32Array, bed: Float32Array,
|
|
|
240
240
|
}[];
|
|
241
241
|
/** Carve bands as an ordinary FX chain of peaking filters. */
|
|
242
242
|
export declare function carveBandsToChain(bands: HfCarveBand[]): HfAudioFxChain;
|
|
243
|
-
//# sourceMappingURL=audioCarve.d.ts.map
|
package/dist/audioCarve.js
CHANGED
package/dist/audioFade.d.ts
CHANGED
|
@@ -21,4 +21,3 @@ export declare function clampFadesToDuration(fades: AudioFades, duration: number
|
|
|
21
21
|
export declare function fadeGain(elapsed: number, duration: number, fades: AudioFades): number;
|
|
22
22
|
/** Attribute text Studio writes: up to 2 decimals, no trailing zeros. */
|
|
23
23
|
export declare function formatFadeSeconds(seconds: number): string;
|
|
24
|
-
//# sourceMappingURL=audioFade.d.ts.map
|
package/dist/audioFade.js
CHANGED
package/dist/audioFx.d.ts
CHANGED
package/dist/audioFx.js
CHANGED
|
@@ -37,7 +37,7 @@ const freq = (key = "frequency", label = "Frequency", def = 1000, min = 20, max
|
|
|
37
37
|
scale: "log",
|
|
38
38
|
automatable: true,
|
|
39
39
|
});
|
|
40
|
-
const qParam = (def = 0.707, hint = "Bandwidth
|
|
40
|
+
const qParam = (def = 0.707, hint = "Bandwidth: higher is narrower.") => ({
|
|
41
41
|
kind: "number",
|
|
42
42
|
key: "q",
|
|
43
43
|
label: "Q",
|
|
@@ -118,7 +118,7 @@ export const HF_AUDIO_FX = [
|
|
|
118
118
|
id: "highpass",
|
|
119
119
|
label: "High-pass",
|
|
120
120
|
group: "filter",
|
|
121
|
-
description: "Remove low frequencies
|
|
121
|
+
description: "Remove low frequencies: the usual fix for rumble on a voice.",
|
|
122
122
|
params: [freq("frequency", "Cutoff", 300, 20, 20000), qParam(0.707), poles],
|
|
123
123
|
web: "biquad-highpass",
|
|
124
124
|
},
|
|
@@ -126,7 +126,7 @@ export const HF_AUDIO_FX = [
|
|
|
126
126
|
id: "lowpass",
|
|
127
127
|
label: "Low-pass",
|
|
128
128
|
group: "filter",
|
|
129
|
-
description: "Remove high frequencies
|
|
129
|
+
description: "Remove high frequencies, which darkens or muffles a track.",
|
|
130
130
|
params: [freq("frequency", "Cutoff", 8000, 100, 20000), qParam(0.707), poles],
|
|
131
131
|
web: "biquad-lowpass",
|
|
132
132
|
},
|
|
@@ -218,7 +218,7 @@ export const HF_AUDIO_FX = [
|
|
|
218
218
|
id: "limiter",
|
|
219
219
|
label: "Limiter",
|
|
220
220
|
group: "dynamics",
|
|
221
|
-
description: "Hard ceiling
|
|
221
|
+
description: "Hard ceiling: nothing gets past the limit.",
|
|
222
222
|
params: [
|
|
223
223
|
{
|
|
224
224
|
kind: "number",
|
|
@@ -264,6 +264,48 @@ export const HF_AUDIO_FX = [
|
|
|
264
264
|
],
|
|
265
265
|
web: "worklet-limiter",
|
|
266
266
|
},
|
|
267
|
+
{
|
|
268
|
+
id: "truepeak",
|
|
269
|
+
label: "True-peak limiter",
|
|
270
|
+
group: "dynamics",
|
|
271
|
+
description: "Lookahead limiter that holds a 4x estimate of the inter-sample peak at a dBTP ceiling; full-band noise can land up to about 1.7 dB above it. Adds lookahead plus about 0.3 ms of latency.",
|
|
272
|
+
params: [
|
|
273
|
+
{
|
|
274
|
+
kind: "number",
|
|
275
|
+
key: "ceiling",
|
|
276
|
+
label: "Ceiling",
|
|
277
|
+
unit: "dBTP",
|
|
278
|
+
min: -24,
|
|
279
|
+
max: 0,
|
|
280
|
+
step: 0.1,
|
|
281
|
+
default: -1,
|
|
282
|
+
hint: "Target true peak, measured on a 4x oversampled signal. Dense full-band sound can end up to about 1.7 dB above it.",
|
|
283
|
+
},
|
|
284
|
+
{
|
|
285
|
+
kind: "number",
|
|
286
|
+
key: "lookahead",
|
|
287
|
+
label: "Lookahead",
|
|
288
|
+
unit: "ms",
|
|
289
|
+
min: 0.5,
|
|
290
|
+
max: 10,
|
|
291
|
+
step: 0.1,
|
|
292
|
+
default: 3,
|
|
293
|
+
hint: "How far ahead the gain starts falling. Longer is smoother and adds the same latency.",
|
|
294
|
+
},
|
|
295
|
+
{
|
|
296
|
+
kind: "number",
|
|
297
|
+
key: "release",
|
|
298
|
+
label: "Release",
|
|
299
|
+
unit: "ms",
|
|
300
|
+
min: 10,
|
|
301
|
+
max: 2000,
|
|
302
|
+
step: 1,
|
|
303
|
+
default: 80,
|
|
304
|
+
scale: "log",
|
|
305
|
+
},
|
|
306
|
+
],
|
|
307
|
+
web: "worklet-truepeak",
|
|
308
|
+
},
|
|
267
309
|
{
|
|
268
310
|
id: "gate",
|
|
269
311
|
label: "Noise Gate",
|
|
@@ -419,7 +461,7 @@ export const HF_AUDIO_FX = [
|
|
|
419
461
|
max: 250,
|
|
420
462
|
step: 1,
|
|
421
463
|
default: 1,
|
|
422
|
-
hint: "Repeats each sample N times
|
|
464
|
+
hint: "Repeats each sample N times, a crude downsample.",
|
|
423
465
|
},
|
|
424
466
|
{
|
|
425
467
|
kind: "number",
|
|
@@ -878,4 +920,3 @@ function withoutUndefined(obj) {
|
|
|
878
920
|
}
|
|
879
921
|
return obj;
|
|
880
922
|
}
|
|
881
|
-
//# sourceMappingURL=audioFx.js.map
|
package/dist/audioFxCopy.d.ts
CHANGED