Carnegie Mellon University
Carnegie Mellon University
Adobe Research
ACM IUI 2026

Visual Lyrics: Generating Animated Text for Music Lyric Videos with an Augmented Text Editor

1Carnegie Mellon University
2Adobe Research

Visual Lyrics generates animated text for music lyric videos, combining music analysis and LLM-generated animation code in an augmented text editor.

Visual Lyrics interface: the lyrics with Image, Animation, and Visual annotations on the left, and on the right the generated scene for "My money don't jiggle jiggle" with the image prompt for "money" and the animation instruction for "jiggle".
Visual Lyrics interface. The system analyzes a song's audio and language features to suggest words that can be highlighted with image, animation, or visual stylizations. On the Annotation Panel (left), suggestions appear as annotations over lyrics (a). The user can edit the annotations to steer the creative direction of the lyric video. The Generation Panel (right) displays generated animated scenes for each line of lyrics (b). The user can see intermediate LLM instructions for creating the images, animations, and visuals (c). The user can regenerate new instructions or edit them manually for fine-grained control.

Summary

Animated lyric videos transform song lyrics into dynamic visual experiences, offering a powerful medium for artistic expression and audience engagement. However, creating these videos is challenging, requiring expertise in audio, typography, graphic design, and animation, making it inaccessible to novices. To address this challenge, we introduce Visual Lyrics, a proof-of-concept system for generating animated lyric videos controlled with an augmented text editor interface. We examined existing lyric videos to distill a taxonomy and design guidelines, informing the design of Visual Lyrics. Our key insight is a multimodal music analysis pipeline based on the taxonomy and leveraging LLM's strong natural language understanding and code generation capabilities to synthesize creative and semantically meaningful animations. We collected a dataset of over 300 code-driven creative text animations to serve as inspiration for our LLM-driven pipeline, which we open source. In a user study, Visual Lyrics enabled novices to easily create high-quality animated lyric videos with high ratings of enjoyment, inspiration, and exploration.

Video

Background

Animated lyric videos show a song's lyrics as moving text and images, and they have grown popular with music artists and content creators on YouTube and TikTok. However, making one takes skill in audio, typography, graphic design, and animation. Animating by hand in After Effects can take hours for a few seconds of video, while templates often give generic "karaoke-style" captions that do not match the meaning or mood of the song.

To understand how creators stylize lyrics, we examined 20 tutorials, including ones from Adobe and from artists, and 50 animated lyric videos from YouTube, and built a taxonomy of word stylizations. Creators add an Image for words that are concrete objects or metaphors, change the Visual look of the font for words about size, color, or emotion, and add an Animation to words about motion. Some stylizations follow how the singer sings rather than what the words mean. For example, louder words get bigger text, and words sung with vibrato get a pulsing animation.

Table of ten word types. Image: visual and metaphor words. Visual: size, color, emotion, and energy words, shown with font size, color, and family changes. Animation: motion, pitch shift, elongation, and vibrato words, shown with semantic, vertical, stretched, and pulsing animations. Each row has a description, common effect, and an example frame such as MAKE BIG or GOLD.
Taxonomy of ten types of word stylizations across language and audio, grouped into Image, Visual, and Animation. Swipe to see the whole figure.

Method

We present Visual Lyrics, a proof-of-concept system for generating animated lyric videos, controlled with an augmented text editor. Visual Lyrics analyzes the lyrics and vocals of a song to suggest words to stylize, then uses an LLM to write HTML, CSS, and JavaScript code that animates them. It works in three stages: Planning, Generation, and Validation.

Pipeline diagram. Planning: music goes through multimodal analysis to become augmented lyrics. Generation and Validation: generate images, generate layout, and generate animations, each with a dashed loop back for validation, ending in the animated lyric video.
System overview. Planning analyzes the music to produce augmented lyrics. Generation creates images, layouts, and animations, and Validation checks each step with a feedback loop.

Design Goals

Based on our analysis of existing lyric videos, we designed Visual Lyrics with three design goals:

  1. Analyze audio and language. Find words to stylize from both the lyrics and the vocals.
  2. Support diverse stylizations. Create supporting images, font styles, and custom animations, writing the text effects as code instead of using a fixed set of presets.
  3. Maintain readability. Automatically check that the text stays readable.

Augmented Text Editor

The interface (shown at the top of the page) has two panels. The Annotation Panel on the left shows the lyrics with words already annotated as Image, Animation, or Visual, and the user can add or remove annotations to choose what to emphasize. The Generation Panel on the right shows the animated scene for each lyric line and the instruction the LLM wrote for each annotated word. The user can regenerate an instruction to get a new suggestion, such as "hop randomly in place as if on a hot surface" for "jiggle", or edit it in their own words.

Image, Animation, and Visual Stylizations

Image. Generates a supporting graphic for words that are concrete objects or metaphors.

"Fiat" with a car image
"for sure" with a thumbs-up image
"wine" with a wine glass image

Animation. Animates the word itself, for words about motion or words sung with a pitch shift, an elongated note, or vibrato.

"it folds" folding
"back" spinning backwards
"see" blurring in and out

Visual. Changes the font family, size, or color, for words about size, color, or emotion, or words sung loudly or quietly.

"money" in green
"relax" with a faded color gradient
"six feet two" in a tall, compact font

Planning

Visual Lyrics separates the vocals with Spleeter and transcribes the lyrics with WhisperX. For audio annotations, it finds words sung with high or low energy, a pitch shift, a long sustained note, or vibrato. For language annotations, an LLM (Claude 3.7 Sonnet) finds image, animation, and visual words. For each annotated word, the LLM then writes an idea prompt describing the effect or image to create.

Generation

Generation is split across four LLM-based agents. The Creative Director writes a theme (mood, colors, fonts, and animation style) from the song's tempo, energy, and lyrics, so that all scenes look consistent. The Illustrator generates images with FLUX.1 Schnell, fine-tuned with LoRA on Apple emoji designs. The Layout Designer writes HTML and CSS for each lyric line. We chose code over bounding-box coordinates because, in our early versions, LLMs struggled to give correct numbers for positions, which often led to misaligned and overlapping layouts. The Animator then adds animations with HTML, CSS, and JavaScript, using the three most similar examples from our dataset (see Dataset below) as references.

Validation

The Creative Director checks each agent's output and asks the agent to redo it when a check fails. It compares each image's caption (from LLaVA) to its prompt with CLIP, and checks that all elements stay in the frame, the text is readable (using OCR) and not covered, and images are not too large.

User Study

We conducted a user study with ten novice creators (P1-P10, 7 female and 3 male, aged 18 to 38) who were familiar with watching animated lyric videos but less familiar with making them. In one hour, each participant recreated a lyric video for "Jiggle Jiggle" with a guided brief, then made a lyric video for their own song or one of twelve songs we provided. Afterward, they rated creativity support (Creativity Support Index), usability (System Usability Scale), their overall experience, and the quality of their final video on 5-point Likert scales. We also logged how they annotated and edited.

Generally, participants were satisfied with their overall experience and their final videos. They rated usability highly, including how well the tool's parts were integrated, and rated creativity support highly, including enjoyment and effort/reward tradeoff. P2 said the tool made "creative animations that probably would have taken me hours in CapCut".

Diverging bar chart of usability ratings for felt confident, learn quickly, well integrated, easy to use, and use frequently. Most responses are agree or strongly agree, and well integrated has no neutral or negative responses.
Usability ratings measured with the System Usability Scale.
Diverging bar chart of creativity support ratings for enjoyment, inspiration, exploration, expressiveness, immersiveness, and effort. Most responses are agree or strongly agree.
Creativity support ratings measured with the Creativity Support Index.

Participants added all three annotation types about equally often, but regenerated and edited Visual stylizations less, as they were generally more satisfied with the generated ones. They usually edited image prompts to be more specific (for example, "gold coin" to "a shimmering stack of gold coins") and animation prompts to change intensity (for example, "bouncing up and down" to "bouncing gently up and down").

Three bar charts. Add annotation: Image 42, Animation 48, Visual 38. Regenerate instructions: Image 32, Animation 34, Visual 16. Edit instructions: Image 60, Animation 49, Visual 25.
How often participants added annotations, regenerated instructions, and edited instructions for each annotation type.

Some participants annotated the lyrics first and then refined the details (P2, P6, P8), while others went back and forth between annotating and editing (P5, P7, P10). The audio-based suggestions also led to some surprises. For example, P9 found that the word "heart" got an oscillating animation that matched the singer's vibrato.

One row of colored blocks per participant, P1 to P10, showing the order of their add annotation, regenerate instructions, and edit instructions actions.
Interaction logs of each participant, in order.

Example Results

Below are lyric videos generated with Visual Lyrics for songs across genres. The videos include audio.

ZOOM (hip-hop/trap, multilingual)
Lose Yourself (rap/rock)
Espresso (disco/pop)
Fireflies (indie/electronica)
7 Rings (pop/R&B)
Money (trap/rap)
TEAM TOMODACHI (rap/hip-hop, portrait video, multilingual)

More Creative Stylizations

"Oh" stretched out under stage lights
"shadows" in dim, shadowy text
"mirror" with its reflection
"levitating" floating in space with an astronaut
"tiger" with tiger stripes and a tiger image
"dynamite" glowing next to a bundle of dynamite

Failure Cases

Overlapping vocal lines: the lyrics overlap and become hard to read.
Very fast rap: animations are cut off before they finish.

Dataset

We collected a dataset of 306 code-driven creative text animations from CodePen to serve as inspiration for our generation pipeline, which we open source. It includes static styles, such as neon glow and metallic text, and animations, such as text that disappears like smoke. Each snippet is labeled with a description of the effect, tags aligned with our taxonomy, and its animation type.

Grid of thumbnails of text effects from the dataset, such as MAGIC, Stripes, CUBE, 2020, and PIECE OF CAKE
View Dataset

Citation

@inproceedings{lin2026visuallyrics,
  author    = {Lin, David Chuan-En and Nguyen, Cuong and Shin, Hijung Valentina and Martelaro, Nikolas},
  title     = {Visual Lyrics: Generating Animated Text for Music Lyric Videos with an Augmented Text Editor},
  booktitle = {Proceedings of the 31st International Conference on Intelligent User Interfaces},
  series    = {IUI '26},
  year      = {2026},
  pages     = {1514--1525},
  numpages  = {12},
  publisher = {Association for Computing Machinery},
  address   = {New York, NY, USA},
  doi       = {10.1145/3742413.3789072},
  url       = {https://doi.org/10.1145/3742413.3789072},
  location  = {Paphos, Cyprus}
}