task_categories:text-generation language:en license:mit size_categories:100K<n<1M format:csv modality:text library:datasets library:pandas library:mlcroissant library:polars region:us
---
license: mit
task_categories:
- text-generation
language:
- en
pretty_name: melodyGPT song chords
---
# melodyGPT song chords dataset

<!-- Provide a quick summary of the dataset. -->
This dataset contains the text representation of song chords.

## Dataset Details

### Dataset Description

<!-- Provide a longer summary of what this dataset is. -->

This dataset is created by aggregating the chords of each song given by the [Chords and Lyrics Dataset](https://www.kaggle.com/datasets/eitanbentora/chords-and-lyrics-dataset). 
You can see in the dataset folder of the [Github repository of melodyGPT](https://github.com/lluccardoner/melodyGPT) notebooks with the code used to do so.
Also, the special characters that are not chords are analysed briefly and this information will be used to create better datasets in the future or to improve tokenization.

- **Curated by:** Lluc Cardoner
- **License:** You are free to use this dataset for your own projects

### Dataset Sources

<!-- Provide the basic links for the dataset. -->

- **Repository:** [melodyGPT](https://github.com/lluccardoner/melodyGPT)


## Dataset Structure

<!-- This section provides a description of the dataset fields, and additional information about the dataset structure such as criteria used to create the splits, relationships between data points, etc. -->

- **genres:** a list of music generes for the given song
- **artist_name:** the name of the song's artist
- **song_name:** the namne of the song
- **chords_str:** the song chords as one text string

## Dataset Creation

### Curation Rationale

The idea of this dataset was to be able to have a single chord representation for each song in text format.

### Source Data

<!-- This section describes the source data (e.g. news text and headlines, social media posts, translated sentences, ...). -->

The dataset original source data comes from [Chords and Lyrics Dataset](https://www.kaggle.com/datasets/eitanbentora/chords-and-lyrics-dataset).

#### Data Collection and Processing

<!-- This section describes the data collection and processing process such as data selection criteria, filtering and normalization methods, tools and libraries used, etc. -->

In this dataset, there has been no pre-processing besid. Some special characters have been analysied and will be used in the future to create more curated versions of this dataset.


These are some of the special characters that are found that do not represent a specific music chord:
```
special_tokens = [
    # Special characters
    "|", "||", "-", "(", ")", ":", "?", "%", ",", "*", "Q", "}", "{", 
    "//", "\\", "...", "..", ".", "S", "^", "~", "--", ":||", "->",
    "\n\t", "\t\t", "\t\t\t", 
        
    # Written anotations and other words
    "hide", "this", "tab",
    "repeats", "for", "the", "rest",
    "Repeat", "repeat", 
    "(repeat", "and", "fade)",
    "sinner?",
    "I", "hear", "voices"
    "and", "a",
    "Som", "que", "mexa", "e", "estremeça", "com",
    "até", "o", "final"

    # Structure parts
    "Intro:", "INTRO", "Introdução:", "(intro)", "(Intro)", "intro", "intro:", "(intro", "Introdução", "Intro.:", "Intr.:", "Introd:", "intro)", "Introd.:",
    "Bridge:", "BRIDGE", "BRIDGE:", "(bridge)", "(Bridge)", "bridge",  
    "Riff", "riff", "(Riff", "(riff)", "RIFF",
    "Solo", "Solo:", "SOLO", "solo", "SOLO:", "(solo)", "solo:", "(Solo)", "solo", "(solo)"
    "Interlude:", "Interlude", "INTERLUDE:",
    "Instrumental:", "Instrumental", "Musica:", 
    "Final", "Final:", "FINAL:",
    "Outro:", "OUTRO:", "Outro",
    "Break", "Break:", "BREAK:", "break", 
    "Verse", "Verse:", 
    "Guitar", "Guit.",
    "Chorus", "Chorus:",
    "(stop)",

    # Repetition
    "(2x)", "x2", "(x2)", "2x", "X2", "(2X)", "2X", "2x)", "(X2)", "2x:", "(2)",
    "(4x)", "x4", "(x4)", "4x", 
    "(3x)", "3x", "(x3)", "x3", "(x3)", "3x",
    "x8",
    "1", "2", "2:", "4", "1:", "3", "2)", "1)", "X", "x",
    
    
    # Chord fingering
    "x32013", "xx0235",

    
    "E|------------------------------------------|",
    "E|----------------------------------------------------|",
    "A|------------------------------------------|",
    "E|---------------------------------------------------------------------------|",
    "D|------------------------------------------|",
    "A|---------------------------------------------------------------------------|",
    "D|---------------------------------------------------------------------------|",
    "A|----------------------------------------------------|",
    "D|----------------------------------------------------|"
    "E|---------------------------------------------------",
    "G|---------------------------------------------------------------------------|",
    "G|------------------------------------------|",
    "B|------------------------------------------|",
    "B|-------------------------6p5h6p5-6/8-5-8--|"
]
```