Promptpan

All · Motion graphics · Music · lyrics

057Spectrum Music Cover — bars that dance to your song, lows and highs apart, in a 16-second vertical video

Add a song file and title: the AI finds the most energetic part and makes a vertical MP4 where a spectrum under the cover moves to the real sound.

What you get

  • A vertical MP4 (about 16 seconds, 60fps, with your song)
  • An HTML file with a settings panel to change the text and colors
  • A render script that makes a new MP4 for a new song with one command
Example — made from the field examples with GPT-6 Astra · the sound is a free test track (turn the sound on)

Made with GPT
  • GPT-6 Astra Made with this AI

Fill in the fields

  1. 1Fill in the fields
  2. 2Copy the prompt
  3. 3Paste it into an AI that can run code (Claude Opus 5.5 · GPT-6 Astra · Gemini Argon)
  4. 4It builds the HTML, renders it itself and leaves an MP4
  5. 5To change it, edit the settings panel at the top of the HTML and run one render command No new request
Ideas
Ideas
Ideas
Ideas
Output format

Choose a mode, then set the size.

Full prompt 3,906 characters
Make a vertical music cover loop video from my song as one self-contained HTML file and render it to MP4. The idea: a song release post where one original square album cover floats in the upper middle and a frequency spectrum under it visibly dances to the real song. It should feel warm, cute and alive. Do the whole job now without asking questions.

[Inputs (use the default when empty)]
Song title: "【Song title】" — default Today's Song
Artist name: "【Artist name】" — default Promptpan
Cover idea: "【Cover idea】" — default a small window and the moon
Palette: "【Palette】" — Night purple = background #17142B→#2C2450, accent #FFC98B, text #FFF6E9 / Dawn blue = #101D33→#27476B, #A9E4FF, #F2FBFF / Sunset apricot = #3A1E2E→#8A4A4F, #FFD9A8, #FFF7EE
Song file: "【Song file】" (in this folder).
Aspect ratio: 9:16 (1080×1920), 60 fps.

[Song]
Read the real length of the file and detect its tempo. Find the most energetic part of the song and take the whole number of bars closest to 16 seconds from it, starting on a bar line. Fade the audio in over 0.3 s and out over 0.6 s; do not change the song in any other way. Show the real position: the counter starts at that part's real time and counts up with the audio, and the label at the right shows the song's real total length.

[Spectrum — this is the heart of the video]
Analyze the audio with a real FFT at the video frame rate before drawing, and save the data into the HTML so seek(t) stays deterministic. Draw 48 rounded bars from the center line, mirrored up and down. Bands are logarithmic: lows at the left, highs at the right, so that kick and bass hit the left side while hi-hats and vocals move the right side separately. Each band is normalized to its own recent level, so quiet highs still move clearly. Attack is instant and release is smooth, over about 150 ms. Kick hits must be obvious to the eye: on strong low-frequency hits, the cover swells by at most 2% and its accent glow lifts a little, then both relax. Never use a fake or random wave.

[Picture]
Draw everything in 2D on a single canvas. The cover is an original flat illustration made with simple shapes from the cover idea: soft gradients, a little grain, rounded corners, a soft shadow. Small things move inside it. Dust specks drift behind. Nothing flashes or shakes.

[Layout rules]
Safe margin: 96 px at the sides, 180 px top and bottom. Reserve separate zones: cover, title, artist, spectrum, progress. No moving object may ever cross text. Song title at least 76 px, artist name at least 44 px, time labels at least 36 px. Use a warm rounded font embedded in the file, and check that every character renders. Print each input exactly once and add no other words, no logo, no fake app name and no imitation of a real music service.

[Build]
One HTML file. The script starts with a `const CONFIG` holding every input plus fps and seed; a settings panel above the preview edits it live. All drawing comes from a pure `seek(t)`. Write render.mjs so that `node render.mjs other-song.mp3` analyzes a new song and makes a new MP4 with one command. Render with headless Chromium when it runs here, otherwise another way; say which in your last message.

[Check before finishing]
Render 8 stills from loud moments into contact-sheet.jpg. Confirm the left and right bars differ between stills, kick hits show in the low bars, the text is spelled exactly, and nothing overlaps text. Fix what fails and render again.

[Deliver]
motion.mp4, film.html, render.mjs, contact-sheet.jpg. Keep your last message short.

[Final output format]
Output size 1080x1920 pixels, 9:16 portrait story. Keep all text inside the central 80% of the height.
This selected output format takes priority over any fixed canvas size or aspect ratio elsewhere in this template. Adapt the composition, text zones and margins to the selected canvas without stretching or cropping essential content. Device safe areas apply only when a device is selected. Never print these format instructions on the image.

Browse more cards

How to use it · FAQ

The bars follow your real song

This is not a fake wave. The AI analyzes the song, so the left bars react to kick and bass while the right bars react to hi-hats and vocals. On a strong kick the cover swells a little and relaxes. The time label shows the real position and full length of the song.

Keep the song in the same folder

Put the song file in the AI's working folder and type its exact file name in the Song file field. The AI picks the most energetic part, about 16 seconds. Check the rights of any song you use, and check Suno's own terms for songs made there.

Changing the song costs no tokens

After the first run, `node render.mjs other-song.mp3` makes a new video without asking the AI again. It took 79 seconds on our PC. The title and cover stay the same, so change the title in the settings panel at the top of the result HTML when the song changes.

How we tested it

We made it with GPT-6 Astra and ran the song-change command for real. We have not tested it with Claude yet, and the test track was a free track, not a Suno song.

What your PC needs

Your PC may slow down briefly while the video is made. That is normal, and it recovers when the job ends. This prompt is for an AI that writes and runs code, so an image AI will not produce the video. Check each outside service for its own pricing and terms.