• Stars
    star
    154
  • Rank 242,095 (Top 5 %)
  • Language
    Jupyter Notebook
  • License
    MIT License
  • Created over 5 years ago
  • Updated 9 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

The Harmonix Set: Beats, Downbeats, and Structural Annotations for Pop Music

The Harmonix Set

Beats, downbeats, and functional structural annotations for 912 Pop tracks.

Introduction

This repository contains human annotated labels for 912 Western Pop music tracks, gathered by Harmonix.

Audio Data (UPDATED December 2020):

The mel-scale spectrograms for the entire dataset can be downloaded from Dropbox: Harmonix_melspecs.tgz (~1.2GB).

Information about the spectrograms is included in the info.json file within the compressed file. Users must agree to the License included before using these data.

Annotation Data Overview

The annotations can be found in the dataset directory, which contains the following:

  • beats_and_downbeats: Directory with a tab-separated file for each track in the dataset, with the following three fields per line containing beats and downbeats:
    • beat_time_stamp: The placement of the beat in seconds (and downbeat, if beat_position_in_bar = 1).
    • beat_position_in_bar: The number of beat within a bar (when 1, the beat also represents a downbeat).
    • bar_number: The number of the bar.
  • segments: Directory with a tab-separated file for each track in the dataset, with the following two fields per line containing segmentation data:
    • boundary_time_stamp: The placement of a functional segmentation boundary in seconds.
    • label: The label of the segment that starts on the current boundary.
  • metadata.tsv: Metadata of the Harmonix Set in a comma-separated file containing the following fields:
    • File: File name, used to identify each of the tracks in the dataset.
    • Title: Title of the track.
    • Artist: Name of the artist of the given track.
    • Release: Name of the release (e.g., album, compilation, EP) where the track is found.
    • Duration: Duration of the track in seconds.
    • BPM: Beats per minute.
    • Ratio Bars in 4: Percentage of bars that have 4 beats.
    • Time Signature: The time signature of the track.
    • Genre: The music genre of the track.
    • MusicBrainz Id: The MusicBrainz identifier of the track.
    • Acoustid Id: The AcoustID identifier of the current track (when available).
  • jams: Directory containing JAMS files, one per track, with beats, downbeats, segmentation, and metadata (using JAMS version 0.3.3).
  • YouTube URLs: URLs with the associated YouTube video.
  • YouTube Alignment Scores: Alignment scores based on Dynamic Time Warping when aligning audio from YouTube videos to the original audio used to annotate the dataset.

Experiment Results

You may find the raw results in the results folder.

Segmentation Results

These results include song-level segmentation metrics for the entire dataset, using three different types of beat-synchronized Constant-Q Transform features:

These results were computed using the following libraries with their default parameters:

  • librosa 0.6.3 (on a macOS 10.13.6 with its default CoreAudio MP3 decoder)
  • madmom 0.16.1
  • mir_eval 0.5
  • msaf 0.1.8-dev

Additional Content

A couple of Jupyter notebooks are also included:

  • Dataset Analysis: The plots of the original publication [1] were produced using this notebook, which employs the results discussed above.
  • JAMS Creation: This notebook was used to generate the JAMS files of the Harmonix Set.
  • Audio Alignment: Notebook containing the code to align the audio from YouTube to the original audio used for annotating the dataset. It uses DTW to generate the final audio files and get an alignment score to get a sense of how close the audio from YouTube is from the original one.

Cite

Please, cite the following paper if you're planning to publish results using this dataset:

[1] Nieto, O., McCallum, M., Davies., M., Robertson, A., Stark, A., Egozy, E., The Harmonix Set: Beats, Downbeats, and Functional Segment Annotations of Western Popular Music, Proc. of the 20th International Society for Music Information Retrieval Conference (ISMIR), Delft, The Netherlands, 2019 (PDF).

More Repositories

1

msaf

Music Structure Analysis Framework
Python
484
star
2

msaf-data

Datasets for the Music Structure Analysis Framework
Jupyter Notebook
44
star
3

LargeScaleCoverSongId

Source code for the article "Data Driven and Discriminative Projections for Large-Scale Cover Song Identification"
Python
37
star
4

MotivesExtractor

Extract Polyphonic Musical Motives from Audio Recordings
Jupyter Notebook
20
star
5

SegmenterMIREX2014

Segmentation algorithm for MIREX 2014
Python
14
star
6

jams

A JSON Annotated Music Specification for Reproducible MIR Research
Python
13
star
7

meshuggahme

Convert any song into a Meshuggah song!
Python
9
star
8

msaf-gpl

Algorithms for MSAF published under a GPL license
C++
8
star
9

msaf-experiments

Experiments on Music Structure Analysis using MSAF published on ISMIR 2016
Jupyter Notebook
7
star
10

AudiOS

iOS Audio Library
Objective-C
5
star
11

similarity_classification

Capturing the similarity between different parts of an audio track using classifiers
TeX
4
star
12

struct_experiments

Experiments on music structural analysis
Jupyter Notebook
4
star
13

summus

Automatic generator of Music Summaries
Python
4
star
14

hier_eval

Hierarchical Evaluation for Music Segmentation
TeX
3
star
15

slicer

Slicing audio files using some Machine Learning magic
Jupyter Notebook
3
star
16

annotators_agreement

Analizing the agreement between different music structure annotators for the SPAM and SALAMI sets
Jupyter Notebook
2
star
17

deep_xor

Because standard XOR is boring
Jupyter Notebook
2
star
18

msd_downloader

Little script to download the MSD audio files in parallel
Python
2
star
19

diana

Dynamic Interactive Audio and Noise Analyzer
C++
2
star
20

py-sound

A library of Python code for manipulating sounds.
Python
2
star
21

karaoke-analysis

Jupyter Notebook
1
star
22

telegram_downloader

Downloads data from Telegram
Python
1
star
23

lighttracker

A little (very little) library in C to obtain the Light Sensor information of your OS X
C
1
star
24

rawzoom

Convert multi-channel raw audio data from Zoom to WAV
Jupyter Notebook
1
star
25

urinieto.com

My personal website
CSS
1
star