From 9419e5bfdb4b4ec988043ebd14109de655d20eee Mon Sep 17 00:00:00 2001 From: spacedevin Date: Sun, 1 Nov 2026 22:39:39 -0800 Subject: [PATCH] feat(runtime): add addTitle, nestClips, syncAngles, normalizeAudio and transcribeSequence Plugins can add titles, nest clips (multicam too), sync angles by sound, normalize audio and caption a sequence from its speech, as Edit mode does. --- src/runtime/main.ts | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/runtime/main.ts b/src/runtime/main.ts index ef548da..74243c9 100644 --- a/src/runtime/main.ts +++ b/src/runtime/main.ts @@ -251,6 +251,16 @@ export function createMainApi(rpc: RpcClient = createRpcClient()) { */ editSequence: (opts?: PopCraftCommandArgs) => rpc.call('editSequence', opts || {}), getSequence: (opts?: PopCraftCommandArgs) => rpc.call('getSequence', opts || {}), + /** A title, lower third or subtitle as a clip on a track above V1 (`{ id?, text, style?, track?, start?, length? }`). */ + addTitle: (opts?: PopCraftCommandArgs) => rpc.call('addTitle', opts || {}), + /** Clips on V2 and up nested into a new sequence; `multicam: true` makes them camera angles (`{ id?, clips, multicam? }`). */ + nestClips: (opts?: PopCraftCommandArgs) => rpc.call('nestClips', opts || {}), + /** A multicam clip's angles lined up by their sound (`{ id?, clip }`). */ + syncAngles: (opts?: PopCraftCommandArgs) => rpc.call('syncAngles', opts || {}), + /** Audio clips brought to one peak level (`{ id?, clips?, to? }`, dBFS, default −1). */ + normalizeAudio: (opts?: PopCraftCommandArgs) => rpc.call('normalizeAudio', opts || {}), + /** Captions from the sequence's own speech, with word timings (`{ id?, language? }`); spends the user's AI credits. */ + transcribeSequence: (opts?: PopCraftCommandArgs) => rpc.call('transcribeSequence', opts || {}), editStateMachine: (opts?: PopCraftCommandArgs) => rpc.call('editStateMachine', opts || {}), getStateMachine: (opts?: PopCraftCommandArgs) => rpc.call('getStateMachine', opts || {}), applyMotionPreset: (opts?: PopCraftCommandArgs) => rpc.call('applyMotionPreset', opts || {}),