---
title: "How to add an oscilloscope visualizer with Claude (tested prompt and ffmpeg command)"
description: "A glowing green X-Y trace on a small gridded scope screen blooms into looping curves on each kick drum, then shrinks back toward a dot. Install one skill and ask Claude Code, or run the ffmpeg command we tested yourself."
url: https://www.recharm.com/effects/oscilloscope-visualizer
---

# How to add an oscilloscope visualizer with Claude

A glowing green X-Y trace on a small gridded scope screen blooms into looping curves on each kick drum, then shrinks back toward a dot.

Made by the command on this page, from our own test clip.

## Get this effect

1. ### Switch to Code in your [Claude Desktop App](https://claude.com/download)

2. ### Install the skill (once)

   ```
   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/skills
   ```

3. ### Ask 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.

```
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.mp4
```

```
#!/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"
```

## More music-synced visuals

- [AI voice orb **AI voice orb**](https://www.recharm.com/effects/ai-voice-orb)
- [Audio-reactive blob **Audio-reactive blob**](https://www.recharm.com/effects/audio-reactive-blob)
- [Audio-reactive particles **Audio-reactive particles**](https://www.recharm.com/effects/audio-reactive-particles)
- [Audio-reactive text **Audio-reactive text**](https://www.recharm.com/effects/audio-reactive-text)
- [Audio waveform **Audio waveform**](https://www.recharm.com/effects/audio-waveform)

## Find 3x _winning ads_

Recharm cuts your ad footage into tagged, searchable clips: hooks, testimonials, product shots. Find the shots that win, add the effect with Claude, and ship 3x more ad edits.

[Start 14-day free trial](https://www.recharm.com/get-started)
