Install any skill in seconds. Free to start, no credit card required.
Get Started Free →A creative-direction (taste) layer for music videos and short-form edits in the angelcore / cloud-trance / hyperpop visual family. Distills a named-genre aesthetic vocabulary, a mood + color + light system, and a beat-synced editing grammar, then chains ECC's video skills (video-editing, fal-ai-media, remotion-video-creation, motion-*, content-engine) into one production pipeline. Use when the work is not just making a video function but making it feel intentional, when building a music video, a
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 91% | 0% |
| case-02 | ✗→✓ | ▲ Improved | 51% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 120% | 0% |
| case-04 | ✗→✓ | ▲ Improved | 166% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 177% | 0% |
Most AI video advice stops at how to render frames. This skill is the layer above that: what the frames should look like, in what order, cut to what rhythm, so the result reads as one intentional thing instead of a pile of generations.
It encodes a specific taste — the angelcore / cloud-trance / hyperpop family (Bladee "Silver Surfer"-era ethereal trance crossed with heavy angelcore) — distilled from a corpus of saved Reels and a tour through a ~70-entry visual-genre library. It is opinionated on purpose. Taste is a point of view, not a menu.
> The companion file references/genre-taxonomy.md holds the full named-genre catalog. > This file is the actionable layer: mood, grammar, pipeline, and a beat-mapped shot plan.
coherent direction instead of one-off vibes.
"cloud trance", "hyperpop edit", "Bladee", "dreamcore", or names a saved reference.
This skill sits on top of video-editing (the mechanics) and remotion-video-creation (the renderer). Use those for how. Use this for what and why.
video-editing correctlysays taste is the final human pass. The trap: if you only decide taste at the end, every generation and cut upstream was a guess. Pick the direction before the first prompt, then let it constrain everything.
genre (below) is a constraint that buys coherence for free.
Every hard cut lands on a beat or a transient. Frame math is in the pipeline section.
not make taste. You still throw away 80%.
The reference corpus tours a large library of named visual genres. The full list lives in references/genre-taxonomy.md. The useful move is not memorizing 70 names — it is seeing that a genre name is a complete prompt-and-grade preset. When you pick one, you inherit its palette, texture, lighting, and subject matter as a unit.
The genres cluster into families. Pick a primary family and at most one accent:
| Family | Genres in it | Reads as | |--------|-------------|----------| | Ethereal / divine | spiritualism, glacial folk, beacons, zen core, fairy tale | weightless, holy, glowing, soft | | Hyperpop / Y2K-cyber | cyberdelia, acid house, acid nora, neo aggressano, new liquid | glossy, chrome, neon, kawaii-cyber | | Dark / occult | dark academia, smoke nostalgia, communist core, abstract tech | high-contrast, ominous, grain | | Retro / print | retro surfers, art deco, adventure pulp, classic advertising, magazine collage, bumper stickers | flat, graphic, halftone, nostalgic | | Organic / textural | microbiology core, weaving patterns, fruitage retro, cozy blanket, pacific punk wave | tactile, macro, woven, wet | | Systemic / data | numbers, mazes, code web, heatmap, pixel, 8-bit | gridded, generative, schematic |
For the current project, the primary is Ethereal / divine with a Hyperpop / Y2K-cyber accent — i.e. holy light and crystalline bloom, punctuated by chrome and neon. That pairing is the angelcore × cloud-trance brief.
Distilled directly from the strongest reference reels. This is the concrete grade.
hyperpop bloom, used in bright frames.
shock cuts only.
Rule: one accent per shot. Gold lives in dark frames; iridescence lives in light frames; never both in one shot.
From the reference edits, the techniques that recur and define the style:
feel the BPM.
held for 1–2 beats, then cut. Rhythmic montage of these = the cloud-trance signature.
then resolves into the next shot. The "divine flash" transition.
gold flame, pink hair) punches through on the downbeat.
drop, hard-cut to tempo on the one.
words highlighted in the accent color, synced to the vocal. Use for lyric video, not for the pure visualizer.
b-roll. Out of scope for the music video itself; documented because the corpus uses it heavily.
Do-nots: crossfade transitions in tempo sections; more than one accent color per shot; a shot held past its musical phrase; readable on-screen UI chrome (crop it out); mixed aspect ratios in one timeline.
This skill is the conductor. Each ECC skill is an instrument. Do not skip layers.
0. TASTE (this skill) decide genre + mood + grammar BEFORE anything renders
1. STRUCTURE (video-editing) map the song: timestamps for intro/verse/drop/bridge/outro
2. GENERATE (fal-ai-media) make b-roll per genre prompt-presets; throw away 80%
3. CUT (video-editing/FFmpeg) beat-cut + reframe to 9:16; assemble selects on the grid
4. COMPOSE (remotion-video-creation) overlays, blooms, lyric text, beat-synced sequencing
5. MOTION (motion-* skills) easing curves, light-leak/particle motion, transition timing
6. AUDIO (fal-ai-media) transition risers/impacts to sell the cuts (track itself is in Ableton)
7. POLISH grade to the palette above, final pacing pass, export
8. DISTRIBUTE (content-engine) platform-native versions + caption/cover| Step | ECC skill to load | What it does here | |------|-------------------|-------------------| | Structure & cut | video-editing | FFmpeg cut/concat/reframe, EDL, scene/silence detection | | Generate b-roll | fal-ai-media | image/video models per genre preset | | Compose & overlay | remotion-video-creation | beat-synced <Sequence>s, text, blooms, masks | | Motion timing | motion-foundations, motion-patterns, motion-advanced, motion-ui | easing, springs, light/particle motion | | Server-side video | videodb | smart reframe, indexing if footage is large | | Distribution | content-engine | per-platform cuts, covers, captions | | Voice/lyric VO | video-editing (ElevenLabs section) | only if a spoken layer is needed |
The current track is 138 BPM, B minor. Constants:
seconds_per_beat = 60 / 138 = 0.43478sframes_per_beat = fps × 0.43478 → 24fps: 10.43, 30fps: 13.04, 60fps: 26.091 bar (4 beats) = 1.7391s → 30fps: 52.17 frames8-bar phrase = 13.913s → the loop length from the trackIn Remotion, snap every from={} to a beat:
tsconst FPS = 30; const BPM = 138; const beat = (n: number) => Math.round(n * (60 / BPM) * FPS); // beat(n) → frame // cut on beats 0,4,8,... : <Sequence from={beat(0)} durationInFrames={beat(4)}> ...
The song arrangement (from the project's own notes) is Intro → Verse → Drop → Bridge → Drop → Outro (~2:05). Map taste to each section:
| Section | Genre/mood lean | Grammar | Shot ideas | |---------|-----------------|---------|------------| | Intro | Ethereal/divine, near-black | slow push, no cuts | ember bloom in the void; a single shaft of gold; dust rising | | Verse | Dark + macro hero-on-black | hard cuts every 2 beats | key, eye, gear, water drop, petal — rhythmic macro montage | | Drop | Hyperpop bloom + crystalline | speed-ramp in, cut on the one, fast | candy-pink figure, chrome, iridescent bokeh, winged ascension | | Bridge | Spiritualism, weightless | one long held shot, color-pop | clouds + halo; single red accent punches once | | Drop 2 | as Drop, intensify | add divine-flash blooms on transients | wings open, glitter burst, light leaks maxed | | Outro | Glacial folk, cold calm | slow fade to black | crystalline structure dissolving; ember dies out |
Use with fal-ai-media. Each preset is the genre rendered to the project palette. Append 9:16, vertical, cinematic, film grain, volumetric light, no text, no watermark to all.
deep shadow, one warm light source, weightless dust particles, holy, high contrast"
centered on pure black negative space, razor-sharp detail, single rim light"
refraction, dreamy lens flares, heavenly glow, soft focus, hyperpop angelcore"
Y2K hyperpop, clean gloss, saturated, kawaii-cyber"
gold, volumetric god-rays, ethereal, religious iconography, soft"
and bone white, minimal, calm, fading to black"
Generate 6–10 per preset, keep 2–3. For motion, animate stills with an image-to-video model or generate short clips directly; keep camera moves slow per the Motion rules.
bash# Reframe any landscape/raw clip to 9:16 (center crop) ffmpeg -i in.mp4 -vf "crop=ih*9/16:ih,scale=1080:1920" v.mp4 # Beat-cut a clip to exactly N beats at 138 BPM (e.g. 2 beats = 0.8696s) ffmpeg -i in.mp4 -t 0.8696 -c copy beat2.mp4 # Concatenate beat-selects into the verse montage for f in selects/*.mp4; do echo "file '$f'"; done > concat.txt ffmpeg -f concat -safe 0 -i concat.txt -c copy verse.mp4 # Strip UI chrome / status bar from a screen-recorded reference (crop top+bottom) ffmpeg -i reel.mp4 -vf "crop=iw:ih-300:0:150" clean.mp4
tsximport { AbsoluteFill, Sequence, Video, Img, useCurrentFrame, interpolate } from "remotion"; const FPS = 30, BPM = 138; const beat = (n: number) => Math.round(n * (60 / BPM) * FPS); const Bloom: React.FC = () => { const f = useCurrentFrame(); const o = interpolate(f, [0, 3, 12], [0, 1, 0], { extrapolateRight: "clamp" }); // divine flash on a transient return <AbsoluteFill style={{ background: "radial-gradient(#fff,#ffb24d)", opacity: o, mixBlendMode: "screen" }} />; }; export const AngelcoreMV: React.FC = () => ( <AbsoluteFill style={{ background: "#05060a" }}> {/* Verse: macro hero-on-black, hard cut every 2 beats */} <Sequence from={beat(0)} durationInFrames={beat(2)}><Video src="/selects/key.mp4" /></Sequence> <Sequence from={beat(2)} durationInFrames={beat(2)}><Video src="/selects/eye.mp4" /></Sequence> <Sequence from={beat(4)} durationInFrames={beat(2)}><Video src="/selects/gear.mp4" /></Sequence> {/* Drop: crystalline bloom + flash on the one */} <Sequence from={beat(8)} durationInFrames={beat(16)}><Video src="/selects/crystalline.mp4" /></Sequence> <Sequence from={beat(8)} durationInFrames={beat(1)}><Bloom /></Sequence> </AbsoluteFill> );
Render: npx remotion render src/index.ts AngelcoreMV out.mp4. See remotion-video-creation for project setup, audio track binding, and render flags.
video-editing — the mechanical pipeline (FFmpeg, reframe, EDL, polish) this sits on top ofremotion-video-creation — programmable beat-synced composition and renderingfal-ai-media — generate the b-roll, transition SFX, and risersmotion-foundations, motion-patterns, motion-advanced, motion-ui — easing and motion timingvideodb — server-side smart reframe and indexing for large footagecontent-engine — platform-native distribution, covers, captionsfrontend-design-direction — the same "decide a direction first" discipline, for UIOther measured skills in the registry, with their headline benchmark lift.