Categorizing music by mood

I’d like to be able to categorize my music files by their mood.
For example, I’d like to know which of the music files are suitable for a dance party and which ones are suitable for a romantic calm dinner.
I tried many prompts versions, one of the latest ones is this one:

Use the following definitions:

Beat = Song has a moderate to fast tempo AND steady and energetic tempo AND pronounced and consistent beat throughout the track AND you can tap your foot to, and it provides a sense of drive and rhythm AND song use time signatures like 4/4 AND song feature percussive instruments prominently, such as drums and percussion AND song have a wide dynamic range.

Easy = Song have a slow to moderate tempo AND The tempo in calm songs is relaxed and unhurried, contributing to a sense of tranquility AND songs may have a subtle or even irregular, soothing beat AND song use various time signatures, including 3/4 or 6/8, which can create a flowing and gentle feeling in the music AND songs often feature softer and mellower instruments, such as acoustic guitars, pianos, and strings. These instruments contribute to the peaceful atmosphere AND song uses narrower dynamic range. This creates a smooth and calming listening experience without abrupt changes in volume.

Use these definitions to categorize the following list of songs:

ABBA - Chiquitita
ABBA - Dancing Queen
ABBA - Does Your Mother Know
ABBA - Don’t Shut Me Down
Abba - Eagle
ABBA - Eagle (Short Version)
ABBA - Fernando
ABBA - Gimme! Gimme! Gimme! (A Man After Midnight)
ABBA - Head Over Heels
ABBA - Honey, Honey
ABBA - I Do, I Do, I Do, I Do, I Do
ABBA - I Have a Dream
ABBA - Knowing Me, Knowing You
ABBA - Lay All Your Love On Me
ABBA - Mamma Mia
ABBA - Money, Money, Money
ABBA - One of Us
ABBA - Ring Ring
ABBA - So Long
ABBA - Summer Night City
ABBA - Super Trouper
ABBA - Take a Chance On Me
ABBA - Thank You for the Music
ABBA - The Day Before You Came
ABBA - The Name of the Game
ABBA - The Winner Takes It All
ABBA - Under Attack
ABBA - Voulez-Vous
ABBA - Waterloo

The results were partially logical, but some not:


  • Dancing Queen
  • Does Your Mother Know
  • Gimme! Gimme! Gimme! (A Man After Midnight)
  • Head Over Heels
  • Honey, Honey
  • Lay All Your Love On Me
  • Mamma Mia
  • Money, Money, Money
  • Ring Ring
  • SOS
  • Summer Night City
  • Super Trouper
  • Take a Chance On Me
  • Voulez-Vous
  • Waterloo


  • Chiquitita
  • Don’t Shut Me Down
  • Eagle
  • Eagle (Short Version)
  • Fernando
  • I Do, I Do, I Do, I Do, I Do
  • I Have a Dream
  • Knowing Me, Knowing You
  • One of Us
  • So Long
  • Thank You for the Music
  • The Day Before You Came
  • The Name of the Game
  • The Winner Takes It All
  • Under Attack

For example - " Knowing Me, Knowing You" is a fast tempo track and not an easy one. “Under Attack” is also a rhythmic song to my opinion, isn’t it?

Could you please help me clarify the prompt?

1 Like

Bulking and sorting is not going to be the AI’s strong suit. Consider the method in which it generates text: It must output the most likely selections, decide at a point to switch to the other category, and then produce more.

Poll what it can answer, and compare to human evaluations:

Classify and characterize song in several areas.
Song query: “ABBA - Thank You for the Music”
Output JSON (python dictionary) with keys: [ bpm, time signature, length, tempo, mood, danceability(1-10), energy(1-10)]

Here’s a Python dictionary with the requested song characteristics for “ABBA - Thank You for the Music”:

    "bpm": 120,  # Beats Per Minute (BPM)
    "time_signature": "4/4",  # Time Signature (typically 4/4 for most pop songs)
    "length": "4:05",  # Song Length (minutes:seconds)
    "tempo": "Moderate",  # Tempo (e.g., Slow, Moderate, Fast)
    "mood": "Joyful",  # Mood/Emotion (e.g., Happy, Sad, Energetic, etc.)
    "danceability": 7,  # Danceability on a scale of 1 to 10 (higher values mean more danceable)
    "energy": 6  # Energy on a scale of 1 to 10 (higher values indicate higher energy)

It has some anti-hallucination text on my made up example and more characteristics, to then let you decide if the information is “real” or “a typical answer”:

I’m sorry for any confusion, but I can’t provide real-time information or access external databases to retrieve details about a specific song that may not be well-known or in my training data, such as “Pink Tuxedo - Computers Rock My World.” However, I can help you understand how you can classify and characterize a song in several areas based on available information or by analyzing the song directly if you have access to its audio features.

Here’s a Python dictionary structure for characterizing a song based on available information:

song_info = {
    "title": "Computers Rock My World",
    "artist": "Pink Tuxedo",
    "bpm": 120,  # Beats Per Minute
    "time_signature": "4/4",  # Time signature
    "length": "3:30",  # Song length
    "tempo": "Moderate",  # Tempo description (e.g., Slow, Moderate, Fast)
    "mood": "Energetic",  # Mood or emotion of the song
    "danceability": 7,  # Danceability rating on a scale of 1 to 10
    "energy": 8,  # Energy rating on a scale of 1 to 10
    "group": "Beat"  # Categorization as "Beat" or "Easy"


Please note that the actual values for BPM, time signature, length, tempo, mood, danceability, energy, and group should be determined based on the song’s specific characteristics. You may need to use music analysis tools or databases to obtain these details accurately. Additionally, the mood, danceability, energy, and group fields are subjective and may vary depending on the interpretation of the song’s characteristics.