beginneraudio
Music Genre Classification
Classify music clips into genres and subgenres with mood and instrumentation tags.
🎧
audio annotation
Configuration Fileconfig.yaml
# Music Genre Classification Configuration
# Classify music clips into genres with mood and instrumentation tags
annotation_task_name: "Music Genre Classification"
data_files:
- "data/music_clips.json"
item_properties:
id_key: "id"
audio_key: "audio_url"
text_display_key: "title"
user_config:
allow_all_users: true
annotation_schemes:
- annotation_type: "radio"
name: "primary_genre"
description: "What is the primary genre of this music?"
labels:
- name: "Rock"
key_value: "1"
- name: "Pop"
key_value: "2"
- name: "Hip-Hop/Rap"
key_value: "3"
- name: "Electronic/Dance"
key_value: "4"
- name: "Jazz"
key_value: "5"
- name: "Classical"
key_value: "6"
- name: "R&B/Soul"
key_value: "7"
- name: "Country"
key_value: "8"
- name: "Folk/Acoustic"
key_value: "9"
- name: "Metal"
key_value: "0"
- annotation_type: "multiselect"
name: "subgenres"
description: "Select any applicable subgenres"
labels:
- name: "Indie"
- name: "Alternative"
- name: "Punk"
- name: "Blues"
- name: "Reggae"
- name: "Latin"
- name: "World Music"
- name: "Ambient"
- name: "Lo-fi"
- name: "Synthwave"
- annotation_type: "multiselect"
name: "mood"
description: "What mood does this music convey?"
labels:
- name: "Happy/Upbeat"
- name: "Sad/Melancholic"
- name: "Energetic"
- name: "Calm/Relaxing"
- name: "Aggressive"
- name: "Romantic"
- name: "Dark/Mysterious"
- name: "Nostalgic"
- annotation_type: "multiselect"
name: "instruments"
description: "What instruments are prominent?"
labels:
- name: "Vocals"
- name: "Electric Guitar"
- name: "Acoustic Guitar"
- name: "Piano/Keys"
- name: "Drums"
- name: "Bass"
- name: "Synthesizer"
- name: "Strings"
- name: "Brass"
- name: "Woodwinds"
- annotation_type: "radio"
name: "tempo"
description: "Approximate tempo"
labels:
- name: "Slow (< 80 BPM)"
- name: "Medium (80-120 BPM)"
- name: "Fast (> 120 BPM)"
audio_display:
show_waveform: true
playback_controls: true
allow_speed_control: false
output: "annotation_output/"
Sample Datasample-data.json
[
{
"id": "music_001",
"audio_url": "https://example.com/audio/clip1.mp3",
"title": "Track A - 30 second preview",
"duration": 30
},
{
"id": "music_002",
"audio_url": "https://example.com/audio/clip2.mp3",
"title": "Track B - 30 second preview",
"duration": 30
}
]
// ... and 1 more itemsGet This Design
View on GitHub
Clone or download from the repository
Quick start:
git clone https://github.com/davidjurgens/potato-showcase.git cd potato-showcase/music-genre-classification potato start config.yaml
Details
Annotation Types
radiomultiselect
Domain
musicentertainment
Use Cases
genre-classificationmusic-tagging
Tags
audiomusicgenreclassificationtagging
Found an issue or want to improve this design?
Open an IssueRelated Designs
Respiratory Sound Classification
Classify lung and respiratory sounds for medical diagnosis following ICBHI 2017 Challenge format.
radiomultiselect
CheXpert Chest X-Ray Classification
Multi-label classification of chest radiographs for 14 observations (Irvin et al., AAAI 2019). Annotate chest X-rays with pathology labels including uncertainty handling for clinical findings.
radiomultiselect
Clickbait Detection (Webis Clickbait Corpus)
Classify headlines and social media posts as clickbait or non-clickbait based on the Webis Clickbait Corpus. Identify manipulative content designed to attract clicks through sensationalism, curiosity gaps, or misleading framing.
radiomultiselect