Skip to content
intermediateaudio

Music Tagging

Multi-label music tagging following MagnaTagATune dataset format for instrument and genre annotation.

Get This Design

This design is available in our showcase. Copy the configuration below to get started.

Quick start:

bash
# Create your project folder
mkdir music-tagging
cd music-tagging
# Save config.yaml from this page into this folder
potato start config.yaml
Music Tagging annotation interface preview

Configuration File

yaml
annotation_task_name: "Music Tagging"
task_dir: "."

port: 8000

# Data configuration
data_files:
  - "data/music_clips.json"

item_properties:
  id_key: id
  text_key: text
instance_display:
  fields:
    - key: audio_url
      type: audio
      label: "Track"
    - key: text
      type: text
      label: "Notes"

# Annotation schemes
annotation_schemes:
  # Instruments
  - annotation_type: multiselect
    name: instruments
    description: "What instruments can you hear? (Select all)"
    labels:
      - Guitar (acoustic)
      - Guitar (electric)
      - Piano/keyboard
      - Drums/percussion
      - Bass
      - Violin/strings
      - Brass (trumpet, etc.)
      - Woodwind (flute, sax, etc.)
      - Synthesizer
      - No instruments

  # Vocals
  - annotation_type: multiselect
    name: vocals
    description: "Describe the vocals (if present)"
    labels:
      - Male vocals
      - Female vocals
      - Choir/group
      - Rapping/spoken word
      - Instrumental only (no vocals)

  # Genre tags
  - annotation_type: multiselect
    name: genre
    description: "What genre(s) does this fit? (Select up to 3)"
    labels:
      - Rock
      - Pop
      - Electronic/dance
      - Hip-hop/rap
      - Jazz
      - Classical
      - Folk/country
      - R&B/soul
      - Metal
      - Blues
      - World/ethnic
      - Ambient

  # Mood/emotion tags
  - annotation_type: multiselect
    name: mood
    description: "What mood/feeling does this evoke? (Select up to 3)"
    labels:
      - Happy/upbeat
      - Sad/melancholic
      - Energetic/exciting
      - Calm/relaxing
      - Aggressive/intense
      - Romantic
      - Dark/mysterious
      - Nostalgic

  # Acoustic features
  - annotation_type: radio
    name: tempo
    description: "How would you describe the tempo?"
    labels:
      - Very slow
      - Slow
      - Medium
      - Fast
      - Very fast

  # Production quality
  - annotation_type: likert
    name: quality
    description: "Rate the production/recording quality"
    size: 5
    min_label: "Low quality"
    max_label: "High quality"

  # Familiarity
  - annotation_type: radio
    name: familiarity
    description: "Do you recognize this song?"
    labels:
      - Yes, I know this song
      - Sounds familiar
      - Never heard it before

# User settings
require_password: false

# Output
output_annotation_dir: "annotation_output/"
export_annotation_format: "jsonl"

Sample Data

json
[
  {
    "id": "music_tagging_1",
    "audio_url": "https://upload.wikimedia.org/wikipedia/commons/b/b6/Wikipedia_guitar_solo.ogg",
    "text": "Solo guitar"
  },
  {
    "id": "music_tagging_2",
    "audio_url": "https://upload.wikimedia.org/wikipedia/commons/a/a8/Victor_Herbert_Orchestra_-_11_-_1910_-_LEncore.ogg",
    "text": "Orchestral recording from 1910"
  }
]

// ... and 3 more items

Details

Annotation Types

multiselectlikert

Domain

Audio

Use Cases

music tagginggenre classificationinstrument recognition

Tags

audiomusictagginggenreinstruments