Virtuoso Composer
00:00:00:00 opening

Desk

Voice submix 0.0
Music 0.0
Master bus 0.0
OUT
-inf
0 clips
Type a level into any box, or drag the fader. Double click anything to reset it. Space plays and pauses. Alt click a solo to make it exclusive.

Assembled live in the browser from the Compose layers. Picture is a reduced size proxy for speed, the geometry and timing are the real numbers.

Write to recipe

Writes everything in one go: mix, chain, clips, angle and all four formats. Lands in the Recipe tab at once and drops a json the watcher merges into ad_recipes.json.

Format

Event plates

The real per event renders from the city data folder. Bury St Edmunds, 6 Nov 2026.

flag
1080 × 130
date
1080 × 240
address
806 × 588

Composer generating these itself is the next piece of work. For now it places the ones After Effects already rendered.

Interchangeable videos

Two slots in the picture, measured off the delivered ad. Everywhere else the bed is pixel identical.

Bury’s own clips have been cleared from its cache, so these are Grimsby’s, standing in to prove the slots and the switching.

Geometry

Real frame pixels. Scale is a percentage of the strip's native 1080 × 150.

End card,

Written once per outro. Scale is a percentage of the plate’s own size. The values here were measured off the delivered ads as a starting point, they are close but not exact.

Layers

Caption states

One fit per line, locked by its longest state. Gold rows are the three interchangeable reads, generated from the chosen angle’s word timings. Click a row to jump.

#lineinoutdurword / linecolourfit

Captions stop at the outro boundary, 0:00:53:13. The closing "we'll see you there" sits inside the outro and is not a caption.

Composer, live

Every Composer parameter as it stands right now, and exactly how it is written to products.discovery_v2_v4base.composer. nothing saved yet

{}

Discovery v2, v4 base

Live read of ad_recipes.json, product discovery_v2_v4base.

Build steps

Gates

Length recipe