mcut
@mcut/timeline

getAngleTransitionAt

Generated TypeScript API reference for the public mcut SDK.

mcut SDK


mcut SDK / timeline/src / getAngleTransitionAt

Function: getAngleTransitionAt()

function getAngleTransitionAt(element, localMs):
  | AngleTransitionWindow
  | null;

Defined in: packages/timeline/src/multicam.ts:104

The angle-cut transition window containing element-local localMs, or null (no angleTransition, or between windows). Each window is centered on its cut and clamped to half the span to the neighboring cuts (and the element bounds), so consecutive windows never overlap — render, frame requests, and export must all enumerate through this to agree.

Parameters

element

angles

object[] = ...

angleTransition?

{ durationMs: number; type: string; } = ...

Uniform transition blended at EVERY angle cut (omit = hard jump cuts). One setting standardizes the whole switch list; the window is centered on each cut and clamped so neighboring windows never overlap.

angleTransition.durationMs

number = ...

Total blend window, centered on the cut.

angleTransition.type

string = transitionTypeSchema

audioSource?

string = ...

Key of the source whose audio plays (omit to mute all sources).

blendMode?

| "color" | "normal" | "multiply" | "screen" | "overlay" | "darken" | "lighten" | "color-dodge" | "color-burn" | "hard-light" | "soft-light" | "difference" | "exclusion" | "hue" | "saturation" | "luminosity" = ...

Compositing blend mode against the layers below. Absent = normal.

durationMs

number = ...

effects?

Effect[] = ...

Ordered effect stack, compiled to a canvas filter. See effects.ts.

fadeInMs?

number = ...

Audio fade-in length from the clip's start (ms). Absent = none.

fadeOutMs?

number = ...

Audio fade-out length before the clip's end (ms). Absent = none.

groupId?

`g-${string}` = ...

Elements sharing a groupId are one editable timeline item made from multiple clips. This is separate from linkId, which remains audio/link-pair semantics.

id

`e-${string}` = elementIdSchema

keyframes?

Partial<Record< | "blur" | "rotation" | "position.x" | "position.y" | "scale.x" | "scale.y" | "opacity" | "volume" | "letterSpacing", object[]>> = ...

Armed fixed-effect properties (Premiere stopwatch on): per-property keyframe tracks, sorted and unique by element-local timeMs.

linkId?

string = ...

Elements sharing a linkId are linked (e.g. video + its detached audio): UIs select and move them together. The engine stores the linkage; it does not enforce cascading edits.

motionBlur?

{ enabled: boolean; shutterAngle: number; } = ...

Sub-frame motion blur on keyframed transform motion. Absent = off. See effects.ts.

motionBlur.enabled

boolean = ...

motionBlur.shutterAngle

number = ...

Shutter angle in degrees: 360° exposes the full frame interval, 180° (the default) is the film-camera look — half the interval.

muted

boolean = ...

opacity

number = ...

sources

object[] = ...

startMs

number = ...

timeMap?

object[] = ...

Time remap (speed) for the whole multicam; see speed.ts.

transform

{ rotation: number; scaleX: number; scaleY: number; x: number; y: number; } = transformSchema

transform.rotation

number = ...

transform.scaleX

number = ...

transform.scaleY

number = ...

transform.x

number = ...

transform.y

number = ...

transition?

{ durationMs: number; type: string; } = ...

Transition INTO the next exactly-adjacent clip on the same track; this element is the left side of the pair. See transitions.ts.

transition.durationMs

number = ...

Total blend window, centered on the cut.

transition.type

string = transitionTypeSchema

type

"multicam" = ...

volume

number = ...

localMs

number

Returns

| AngleTransitionWindow | null

On this page