Skip to content
All posts
Behind the Scenes2026-04-116 min readBy the SongForgeAI team

From ChatGPT Protest Song to Working-Class Anthem: A Before/After Case Study

We wrote an anti-war protest song with ChatGPT last year. Then we ran it through our own system. The result: every cliché replaced, every character named, and a completely different emotional register.

Last year, we wrote a protest song with ChatGPT. An anti-war anthem about leaders who send other people's children to die. The anger was real. The message was clear. The lyrics sounded like a song.

Then we ran it through our own system — the same SongForgeAI pipeline every user gets. What came out the other side was a fundamentally different song. Same anger, same message, but now it belonged to real people in a real place. Here are both versions.

The original — written with ChatGPT, 2025

[Verse 1]
Clean suits, dirty wars,
Boys sent to die in lands unknown.
Their children safe, ours fall,
Silent laughs, the world appalled.
Leaders, do you hear the call?

[Chorus]
Crimson claws, you beast of war,
Hearts you break, and laws you spit on.
What peace have you ever wrought?
Just mothers weeping for their sons.
What have you ever sown?
Just fathers mourning for their sons.

[Verse 2]
Silken lies, banners high,
"For freedom," they cry.
Do your sons bleed where mine have bled?
Or do they watch as mine are led?
Are your words just hollow rhetoric?

[Bridge]
No more drums, no more sand,
No more bones in foreign lands.
No more drums, no more sand,
Leaders, build with peace in hand.

[Outro]
Fire in our eyes, we rise,
We resist, we proclaim:
End your wars, end your lies,
Not numbers, but names,
Remember the fallen, their faces, their flames.
Now we rise, now we rise, NOW WE RISE!

We liked it at the time. The energy was real. The anger was genuine. But reading it a year later, with fresh eyes — nearly every image is a protest-song cliché. Abstract outrage without a single named person, specific place, or concrete detail that makes the listener see something they have not seen before.

After SongForgeAI

[Verse 1]
Tommy's in the ground as of yesterday
Dirt still under my nails from the work
My phone won't stop buzzing with how much they made
Off the war that took him
Standing here in my interview shirt
The one that never got me anywhere
Tommy's dog tags heavy in my pocket

[Pre-Chorus]
Your sons got Harvard
Mine got body bags

[Chorus]
Now I rise with dirt under my nails
Now I speak the names you won't say
Now I count the cost in working-class graves
While you count your money in marble halls

[Verse 2]
Marcus shipped out straight from high school
Had to choose between debt and deployment
Sarah's mom still works double shifts
To pay for a funeral she never should have planned
And they're toasting champagne we'll never taste
Celebrating blood money in boardrooms I'll never see

[Pre-Chorus]
Your sons got Harvard
Mine got body bags

[Chorus]
Now I rise with dirt under my nails
Now I speak the names you won't say
Now I count the cost in working-class graves
While you count your money in marble halls

[Bridge]
[Stripped to voice and single guitar]
I held his mother while she cried
You got on TV about freedom
I carried his coffin
You carried a briefcase full of checks
[Building]

[Final Chorus]
[FULL BAND EXPLOSION]
Now we rise with dirt under our nails
Now we speak the names you won't say
Now we count the cost in working-class graves
While you count your money in marble halls

[Outro]
[Whispered, fading]
Tommy's in the ground
Marcus won't come home
But their stocks keep rising

What changed — and why

The most important change was the simplest: the system named the dead. Tommy. Marcus. Sarah's mom. Abstract "boys sent to die in lands unknown" became a guy whose dog tags are still in someone's pocket. Generic "mothers weeping" became a woman working double shifts to pay for a funeral she should never have had to plan.

The chorus stopped accusing and started counting. Not rhetorical questions — a cold, specific ledger: working-class graves on one side, money in marble halls on the other.

The bridge became the emotional peak. Stripped to voice and guitar: holding a mother while she cried, contrasted with a politician on television talking about freedom. Then the devastating parallel: "I carried his coffin / You carried a briefcase full of checks."

The outro went quiet. A whisper: names of the dead, fading, while stocks keep rising. The silence after that line does more work than any crescendo could.

Why specificity changes everything in protest music

Generic protest songs preach to the converted. They let the listener nod along without feeling anything new. Specific protest songs create witnesses. When you name a person, you create obligation — the listener cannot unhear the name.

The pre-chorus that emerged — two lines, no decoration — draws one line between two worlds. No metaphor. No poetry. Just the fact, stated plainly, and the devastation of its simplicity.

This is what SongForgeAI's Specificity metric measures and what the multi-round rewrite process targets. Not "add more detail" — but "replace every abstraction with a human being in a real moment." The anger does not diminish. It gets a face.

What this means for your lyrics

If you have a song with a strong message but generic language — protest, worship, love, loss, anything — the fix is always the same. Name someone. Put them somewhere. Give them something to hold. Let the listener see what you see instead of hearing what you think.

The original lyric was not bad. It was unfinished. The message was right. The craft was not there yet. Five minutes through the pipeline, and every cliché had a name, every abstraction had a street address, and every declaration had been replaced by a scene that proves it.

You can hear the finished version — listen to "Dirt Under My Nails" with full audio, score breakdown, and Suno style prompt. Try it with your own lyrics — paste what you have, and see what happens when the obvious lines are gone.

Ready to write something worth recording?

Start Free