JamendoMaxCaps is a large-scale dataset of over 362,000 instrumental tracks sourced from the Jamendo platform. It includes generated music captions and original metadata. Additionally, we introduce a retrieval system that utilizes both musical features and metadata to identify similar songs, which are then used to impute missing metadata via a local large language model (LLLM).
This dataset facilitates research in:
For details on the retrieval system and metadata imputation, visit our GitHub repository.
The dataset is stored in parquet format within the data folder. Each entry contains:
array: The audio file stored as an array.path: The unique identifier for the MP3 file (<unique_id>.mp3).To convert the stored audio arrays into MP3 files, use the following script:
import os
import soundfile as sf
from datasets import load_dataset
def read_jamendo_max():
dataset = load_dataset("amaai-lab/JamendoMaxCaps", data_dir="data")
return dataset
def save_mp3_files(dataset, output_dir="mp3_files"):
os.makedirs(output_dir, exist_ok=True)
for example in dataset['train']:
audio = example['audio']['array']
sample_rate = example['audio']['sampling_rate']
path = example['audio']['path']
output_path = os.path.join(output_dir, path)
sf.write(output_path, audio, sample_rate, format='MP3')
print(f"Saved file: {output_path}")
if __name__ == "__main__":
dataset = read_jamendo_max()
save_mp3_files(dataset)
Original metadata is provided in multiple JSONL files for easy handling. Each entry follows this structure:
{
"id": "882977",
"name": "A Singleness of Intention 04",
"duration": 154,
"artist_id": "362132",
"artist_name": "Matthew VandenBrook",
"album_name": "A Singleness of Intention",
"album_id": "103795",
"license_ccurl": "http://creativecommons.org/licenses/by-nc-nd/3.0/",
"releasedate": "2011-12-18",
"audio": "https://prod-1.storage.jamendo.com/?trackid=882977&format=mp31",
"audiodownload": "https://prod-1.storage.jamendo.com/download/track/882977/mp32/",
"musicinfo": {
"vocalinstrumental": "instrumental",
"speed": "medium",
"tags": {
"genres": [],
"instruments": [],
"vartags": []
}
},
"audiodownload_allowed": true
}
id: Unique identifier for each song.musicinfo: Contains attributes like instrumental/vocal classification and tempo (e.g., medium speed).audio & audiodownload: Links to the track's online and downloadable versions.We provide captions for 30-second segments using Qwen2-Audio. Captions are stored in final_caption30sec.jsonl. Example:
{
"start_time": 60.0,
"end_time": 90.0,
"caption": "The music is a fast-paced electronic track in F# minor with a tempo of 84 BPM featuring heavy drum beats and a complex chord progression. The genre includes breakbeat, drum and bass, easy listening, electronic, IDM, and lounge. It creates an energetic mood and could be suitable for a mobile car racing game soundtrack.",
"id": "1176956"
}
If you use this dataset, please cite:
@article{roy2025jamendomaxcaps,
title={JamendoMaxCaps: A Large Scale Music-caption Dataset with Imputed Metadata},
author={Roy, Abhinaba and Liu, Renhang and Lu, Tongyu and Herremans, Dorien},
journal={arXiv:2502.07461},
year={2025}
}
License: CC-BY-SA 3.0
JamendoMaxCaps is a large-scale dataset of over 362,000 instrumental tracks sourced from the Jamendo platform. It includes generated music captions and original metadata. Additionally, we introduce a retrieval system that utilizes both musical features and metadata to identify similar songs, which are then used to impute missing metadata via a local large language model (LLLM).
This dataset facilitates research in:
For details on the retrieval system and metadata imputation, visit our GitHub repository.
The dataset is stored in parquet format within the data folder. Each entry contains:
array: The audio file stored as an array.path: The unique identifier for the MP3 file (<unique_id>.mp3).To convert the stored audio arrays into MP3 files, use the following script:
import os
import soundfile as sf
from datasets import load_dataset
def read_jamendo_max():
dataset = load_dataset("amaai-lab/JamendoMaxCaps", data_dir="data")
return dataset
def save_mp3_files(dataset, output_dir="mp3_files"):
os.makedirs(output_dir, exist_ok=True)
for example in dataset['train']:
audio = example['audio']['array']
sample_rate = example['audio']['sampling_rate']
path = example['audio']['path']
output_path = os.path.join(output_dir, path)
sf.write(output_path, audio, sample_rate, format='MP3')
print(f"Saved file: {output_path}")
if __name__ == "__main__":
dataset = read_jamendo_max()
save_mp3_files(dataset)
Original metadata is provided in multiple JSONL files for easy handling. Each entry follows this structure:
{
"id": "882977",
"name": "A Singleness of Intention 04",
"duration": 154,
"artist_id": "362132",
"artist_name": "Matthew VandenBrook",
"album_name": "A Singleness of Intention",
"album_id": "103795",
"license_ccurl": "http://creativecommons.org/licenses/by-nc-nd/3.0/",
"releasedate": "2011-12-18",
"audio": "https://prod-1.storage.jamendo.com/?trackid=882977&format=mp31",
"audiodownload": "https://prod-1.storage.jamendo.com/download/track/882977/mp32/",
"musicinfo": {
"vocalinstrumental": "instrumental",
"speed": "medium",
"tags": {
"genres": [],
"instruments": [],
"vartags": []
}
},
"audiodownload_allowed": true
}
id: Unique identifier for each song.musicinfo: Contains attributes like instrumental/vocal classification and tempo (e.g., medium speed).audio & audiodownload: Links to the track's online and downloadable versions.We provide captions for 30-second segments using Qwen2-Audio. Captions are stored in final_caption30sec.jsonl. Example:
{
"start_time": 60.0,
"end_time": 90.0,
"caption": "The music is a fast-paced electronic track in F# minor with a tempo of 84 BPM featuring heavy drum beats and a complex chord progression. The genre includes breakbeat, drum and bass, easy listening, electronic, IDM, and lounge. It creates an energetic mood and could be suitable for a mobile car racing game soundtrack.",
"id": "1176956"
}
If you use this dataset, please cite:
@article{roy2025jamendomaxcaps,
title={JamendoMaxCaps: A Large Scale Music-caption Dataset with Imputed Metadata},
author={Roy, Abhinaba and Liu, Renhang and Lu, Tongyu and Herremans, Dorien},
journal={arXiv:2502.07461},
year={2025}
}
License: CC-BY-SA 3.0