Get this effect
Switch to Code in your Claude Desktop App
Install the skill (once)
Show the prompt
Install the Recharm video effects skill: download https://recharm-growth-staging.s3.us-east-2.amazonaws.com/website/downloads/recharm-video-effects.zip and unzip it into ~/.claude/skillsAsk for the effect
Add an oscilloscope visualizer to input.mp4 Trace: rc=12:gc=140:bc=40
Several videos, several effects, one ask
Put your clips in the folder, mention them with @, and ask for everything at once. Claude runs one tested script after another on each clip, then joins them.
Add an oscilloscope visualizer to @clip1.mp4, put a sale badge on @clip2.mp4, give @clip3.mp4 a VHS look, then join all three with crossfades.
Settings you can change
Ask Claude to change any of these, or edit them at the top of the command.
| Setting | Default | What it does |
|---|---|---|
SIZE | 260 | Scope screen width and height in pixels. |
X, Y | 0.5, 0.84 | Screen center, as shares of the frame width and height. |
START | 0.5 | Second the scope switches on. |
LOWPASS | 700 | The trace follows the sound below this many Hz; higher gives busier, spikier curves. |
DELAY | 5 | Milliseconds the vertical axis lags the horizontal one; it opens the trace into loops. |
ZOOM | 1.2 | How far the trace reaches toward the screen edge. |
TRACE | rc=12:gc=140:bc=40 | How much red, green and blue each pass of the trace adds. |
FADE | 60 | How fast old trace fades, 0-255 per frame. |
GLOW | 5 | Blur radius of the glow around the trace. |
Without the skill
Don’t want to install the skill? Paste this prompt into Claude Code and Claude writes the command itself.
Show the prompt
Add an oscilloscope visualizer to input.mp4 using ffmpeg. Draw a 260x260 pixel scope screen centered at 50% across and 84% down the frame: fill it with dark green (6, 20, 12), draw a 6 by 6 grid of thin (30, 106, 54) lines and a 3 pixel (60, 154, 85) border. On it, draw the soundtrack as an X-Y trace with ffmpeg's avectorscope filter (mode=lissajous_xy, draw=aaline, scale=sqrt, zoom=1.2): take the audio as mono, low-pass it at 700 Hz, and feed it as the horizontal channel with a copy delayed by 5 ms as the vertical one, so it draws loops even from mono sound. Make the trace bright green (about (40, 255, 120)) with a soft glow: add a copy blurred with a Gaussian of sigma 5 and brightened about 3x, and let old trace fade at 60 per frame. Show the scope from 0.5 seconds to the end, and nothing before. Leave the rest of the frame untouched. Don't use ffmpeg's drawtext filter (and draw any text with Pillow if you add some), keep the size, 30 fps and the audio, and save it as output.mp4.Run it without Claude
This is the exact command we tested. Save it as oscilloscope-visualizer.sh and run:
sh oscilloscope-visualizer.sh input.mp4 output.mp4Show the command
#!/bin/sh
# Oscilloscope visualizer: a glowing green X-Y trace on a dark scope screen blooms into loops on every beat.
# Usage: sh oscilloscope-visualizer.sh input.mp4 output.mp4 (the input needs an audio track)
# Needs ffmpeg with the avectorscope filter (most builds have it, Homebrew's included).
set -e
IN="$1"; OUT="$2"
SIZE=260 # scope screen width and height in pixels
X=0.5; Y=0.84 # screen center (0-1 across and down the frame)
START=0.5 # second the scope switches on
LOWPASS=700 # Hz; the trace follows the sound below this, which keeps the loops smooth
DELAY=5 # ms the vertical axis lags the horizontal one, so any sound (mono too) draws loops, not a line
ZOOM=1.2 # how far the trace reaches toward the screen edge
TRACE="rc=12:gc=140:bc=40" # how much red, green and blue each pass of the trace adds
FADE=60 # how fast old trace fades (0-255 per frame)
GLOW=5 # blur radius of the glow around the trace
ffmpeg -y -v error -i "$IN" -filter_complex "
[0:a]aformat=channel_layouts=mono,lowpass=f=$LOWPASS,asplit[x][y];
[y]adelay=$DELAY[ylag];
[x][ylag]amerge=inputs=2,avectorscope=s=${SIZE}x${SIZE}:r=30:mode=lissajous_xy:draw=aaline:scale=sqrt:zoom=$ZOOM:$TRACE:ac=255:rf=$FADE:gf=$FADE:bf=$FADE:af=$FADE,format=gbrap,split[sharp][soft];
[soft]gblur=sigma=$GLOW,colorlevels=rimax=0.35:gimax=0.35:bimax=0.35[glow];
[glow][sharp]blend=all_mode=addition[trace];
color=c=0x06140c:s=${SIZE}x${SIZE}:r=30,drawgrid=w=$((SIZE / 6)):h=$((SIZE / 6)):c=0x1e6a36,drawbox=c=0x3c9a55:t=3,format=gbrap[screen];
[screen][trace]blend=all_mode=lighten[scope];
[0:v][scope]overlay=x=W*$X-w/2:y=H*$Y-h/2:enable='gte(t,$START)':shortest=1,format=yuv420p[v]" \
-map "[v]" -map 0:a -c:v libx264 -crf 18 -r 30 -c:a copy "$OUT"





