Initializing

mirdata.initialize(dataset_name, data_home=None, version='default')[source]

Load a mirdata dataset by name

Example

orchset = mirdata.initialize('orchset')  # get the orchset dataset
orchset.download()  # download orchset
orchset.validate()  # validate orchset
track = orchset.choice_track()  # load a random track
print(track)  # see what data a track contains
orchset.track_ids()  # load all track ids
Parameters
  • dataset_name (str) – the dataset’s name see mirdata.DATASETS for a complete list of possibilities

  • data_home (str or None) – path where the data lives. If None uses the default location.

  • version (str or None) – which version of the dataset to load. If None, the default version is loaded.

Returns

Dataset – a mirdata.core.Dataset object

mirdata.list_datasets()[source]

Get a list of all mirdata dataset names

Returns

list – list of dataset names as strings

Dataset Loaders

acousticbrainz_genre

Acoustic Brainz Genre dataset

class mirdata.datasets.acousticbrainz_genre.Dataset(data_home=None, version='default')[source]

The acousticbrainz genre dataset

Variables
  • data_home (str) – path where mirdata will look for the dataset

  • version (str) –

  • name (str) – the identifier of the dataset

  • bibtex (str or None) – dataset citation/s in bibtex format

  • indexes (dict or None) –

  • remotes (dict or None) – data to be downloaded

  • readme (str) – information about the dataset

  • track (function) – a function mapping a track_id to a mirdata.core.Track

  • multitrack (function) – a function mapping a mtrack_id to a mirdata.core.Multitrack

choice_multitrack()[source]

Choose a random multitrack

Returns

Multitrack – a Multitrack object instantiated by a random mtrack_id

choice_track()[source]

Choose a random track

Returns

Track – a Track object instantiated by a random track_id

cite()[source]

Print the reference

property default_path

Get the default path for the dataset

Returns

str – Local path to the dataset

download(partial_download=None, force_overwrite=False, cleanup=False)[source]

Download data to save_dir and optionally print a message.

Parameters
  • partial_download (list or None) – A list of keys of remotes to partially download. If None, all data is downloaded

  • force_overwrite (bool) – If True, existing files are overwritten by the downloaded files.

  • cleanup (bool) – Whether to delete any zip/tar files after extracting.

Raises
  • ValueError – if invalid keys are passed to partial_download

  • IOError – if a downloaded file’s checksum is different from expected

filter_index(search_key)[source]

Load from AcousticBrainz genre dataset the indexes that match with search_key.

Parameters

search_key (str) – regex to match with folds, mbid or genres

Returns

dict – {track_id: track data}

license()[source]

Print the license

load_all_train()[source]

Load from AcousticBrainz genre dataset the tracks that are used for training across the four different datasets.

Returns

dict – {track_id: track data}

load_all_validation()[source]

Load from AcousticBrainz genre dataset the tracks that are used for validating across the four different datasets.

Returns

dict – {track_id: track data}

load_allmusic_train()[source]

Load from AcousticBrainz genre dataset the tracks that are used for validation in allmusic dataset.

Returns

dict – {track_id: track data}

load_allmusic_validation()[source]

Load from AcousticBrainz genre dataset the tracks that are used for validation in allmusic dataset.

Returns

dict – {track_id: track data}

load_discogs_train()[source]

Load from AcousticBrainz genre dataset the tracks that are used for training in discogs dataset.

Returns

dict – {track_id: track data}

load_discogs_validation()[source]

Load from AcousticBrainz genre dataset the tracks that are used for validation in tagtraum dataset.

Returns

dict – {track_id: track data}

load_extractor(*args, **kwargs)[source]

Load a AcousticBrainz Dataset json file with all the features and metadata.

Parameters

fhandle (str or file-like) – path or file-like object pointing to a json file

Returns

  • np.ndarray - the mono audio signal

  • float - The sample rate of the audio file

load_lastfm_train()[source]

Load from AcousticBrainz genre dataset the tracks that are used for training in lastfm dataset.

Returns

dict – {track_id: track data}

load_lastfm_validation()[source]

Load from AcousticBrainz genre dataset the tracks that are used for validation in lastfm dataset.

Returns

dict – {track_id: track data}

load_multitracks()[source]

Load all multitracks in the dataset

Returns

dict – {mtrack_id: multitrack data}

Raises

NotImplementedError – If the dataset does not support Multitracks

load_tagtraum_train()[source]

Load from AcousticBrainz genre dataset the tracks that are used for training in tagtraum dataset.

Returns

dict – {track_id: track data}

load_tagtraum_validation()[source]

Load from AcousticBrainz genre dataset the tracks that are used for validating in tagtraum dataset.

Returns

dict – {track_id: track data}

load_tracks()[source]

Load all tracks in the dataset

Returns

dict – {track_id: track data}

Raises

NotImplementedError – If the dataset does not support Tracks

mtrack_ids[source]

Return track ids

Returns

list – A list of track ids

track_ids[source]

Return track ids

Returns

list – A list of track ids

validate(verbose=True)[source]

Validate if the stored dataset is a valid version

Parameters

verbose (bool) – If False, don’t print output

Returns

  • list - files in the index but are missing locally

  • list - files which have an invalid checksum

class mirdata.datasets.acousticbrainz_genre.Track(track_id, data_home, dataset_name, index, metadata)[source]

AcousticBrainz Genre Dataset track class

Parameters
  • track_id (str) – track id of the track

  • data_home (str) – Local path where the dataset is stored. If None, looks for the data in the default directory, ~/mir_datasets

Variables
  • track_id (str) – track id

  • genre (list) – human-labeled genre and subgenres list

  • mbid (str) – musicbrainz id

  • mbid_group (str) – musicbrainz id group

  • artist (list) – the track’s artist/s

  • title (list) – the track’s title

  • date (list) – the track’s release date/s

  • filename (str) – the track’s filename

  • album (list) – the track’s album/s

  • track_number (list) – the track number/s

  • tonal (dict) – dictionary of acousticbrainz tonal features

  • low_level (dict) – dictionary of acousticbrainz low-level features

  • rhythm (dict) – dictionary of acousticbrainz rhythm features

Other Parameters

acousticbrainz_metadata (dict) – dictionary of metadata provided by AcousticBrainz

property album

metadata album annotation

Returns

list – album

property artist

metadata artist annotation

Returns

list – artist

property date

metadata date annotation

Returns

list – date

property file_name

metadata file_name annotation

Returns

str – file name

get_path(key)[source]

Get absolute path to track audio and annotations. Returns None if the path in the index is None

Parameters

key (string) – Index key of the audio or annotation type

Returns

str or None – joined path string or None

property low_level

low_level track descriptors.

Returns

dict

  • ‘average_loudness’: dynamic range descriptor. It rescales average loudness, computed on 2sec windows with 1 sec overlap, into the [0,1] interval. The value of 0 corresponds to signals with large dynamic range, 1 corresponds to signal with little dynamic range. Algorithms: Loudness

  • ’dynamic_complexity’: dynamic complexity computed on 2sec windows with 1sec overlap. Algorithms: DynamicComplexity

  • ’silence_rate_20dB’, ‘silence_rate_30dB’, ‘silence_rate_60dB’: rate of silent frames in a signal for thresholds of 20, 30, and 60 dBs. Algorithms: SilenceRate

  • ’spectral_rms’: spectral RMS. Algorithms: RMS

  • ’spectral_flux’: spectral flux of a signal computed using L2-norm. Algorithms: Flux

  • ’spectral_centroid’, ‘spectral_kurtosis’, ‘spectral_spread’, ‘spectral_skewness’: centroid and central moments statistics describing the spectral shape. Algorithms: Centroid, CentralMoments

  • ’spectral_rolloff’: the roll-off frequency of a spectrum. Algorithms: RollOff

  • ’spectral_decrease’: spectral decrease. Algorithms: Decrease

  • ’hfc’: high frequency content descriptor as proposed by Masri. Algorithms: HFC

  • ’zerocrossingrate’ zero-crossing rate. Algorithms: ZeroCrossingRate

  • ’spectral_energy’: spectral energy. Algorithms: Energy

  • ’spectral_energyband_low’, ‘spectral_energyband_middle_low’, ‘spectral_energyband_middle_high’,

  • ’spectral_energyband_high’: spectral energy in frequency bands [20Hz, 150Hz], [150Hz, 800Hz], [800Hz, 4kHz], and [4kHz, 20kHz]. Algorithms EnergyBand

  • ’barkbands’: spectral energy in 27 Bark bands. Algorithms: BarkBands

  • ’melbands’: spectral energy in 40 mel bands. Algorithms: MFCC

  • ’erbbands’: spectral energy in 40 ERB bands. Algorithms: ERBBands

  • ’mfcc’: the first 13 mel frequency cepstrum coefficients. See algorithm: MFCC

  • ’gfcc’: the first 13 gammatone feature cepstrum coefficients. Algorithms: GFCC

  • ’barkbands_crest’, ‘barkbands_flatness_db’: crest and flatness computed over energies in Bark bands. Algorithms: Crest, FlatnessDB

  • ’barkbands_kurtosis’, ‘barkbands_skewness’, ‘barkbands_spread’: central moments statistics over energies in Bark bands. Algorithms: CentralMoments

  • ’melbands_crest’, ‘melbands_flatness_db’: crest and flatness computed over energies in mel bands. Algorithms: Crest, FlatnessDB

  • ’melbands_kurtosis’, ‘melbands_skewness’, ‘melbands_spread’: central moments statistics over energies in mel bands. Algorithms: CentralMoments

  • ’erbbands_crest’, ‘erbbands_flatness_db’: crest and flatness computed over energies in ERB bands. Algorithms: Crest, FlatnessDB

  • ’erbbands_kurtosis’, ‘erbbands_skewness’, ‘erbbands_spread’: central moments statistics over energies in ERB bands. Algorithms: CentralMoments

  • ’dissonance’: sensory dissonance of a spectrum. Algorithms: Dissonance

  • ’spectral_entropy’: Shannon entropy of a spectrum. Algorithms: Entropy

  • ’pitch_salience’: pitch salience of a spectrum. Algorithms: PitchSalience

  • ’spectral_complexity’: spectral complexity. Algorithms: SpectralComplexity

  • ’spectral_contrast_coeffs’, ‘spectral_contrast_valleys’: spectral contrast features. Algorithms: SpectralContrast

property rhythm

rhythm essentia extractor descriptors

Returns

dict

  • ‘beats_position’: time positions [sec] of detected beats using beat tracking algorithm by Degara et al., 2012. Algorithms: RhythmExtractor2013, BeatTrackerDegara

  • ’beats_count’: number of detected beats

  • ’bpm’: BPM value according to detected beats

  • ’bpm_histogram_first_peak_bpm’, ‘bpm_histogram_first_peak_spread’, ‘bpm_histogram_first_peak_weight’,

  • ’bpm_histogram_second_peak_bpm’, ‘bpm_histogram_second_peak_spread’, ‘bpm_histogram_second_peak_weight’: descriptors characterizing highest and second highest peak of the BPM histogram. Algorithms: BpmHistogramDescriptors

  • ’beats_loudness’, ‘beats_loudness_band_ratio’: spectral energy computed on beats segments of audio across the whole spectrum, and ratios of energy in 6 frequency bands. Algorithms: BeatsLoudness, SingleBeatLoudness

  • ’onset_rate’: number of detected onsets per second. Algorithms: OnsetRate

  • ’danceability’: danceability estimate. Algorithms: Danceability

property title

metadata title annotation

Returns

list – title

to_jams()[source]

the track’s data in jams format

Returns

jams.JAMS – return track data in jam format

property tonal

tonal features

Returns

dict

  • ‘tuning_frequency’: estimated tuning frequency [Hz]. Algorithms: TuningFrequency

  • ’tuning_nontempered_energy_ratio’ and ‘tuning_equal_tempered_deviation’

  • ’hpcp’, ‘thpcp’: 32-dimensional harmonic pitch class profile (HPCP) and its transposed version. Algorithms: HPCP

  • ’hpcp_entropy’: Shannon entropy of a HPCP vector. Algorithms: Entropy

  • ’key_key’, ‘key_scale’: Global key feature. Algorithms: Key

  • ’chords_key’, ‘chords_scale’: Global key extracted from chords detection.

  • ’chords_strength’, ‘chords_histogram’: : strength of estimated chords and normalized histogram of their progression; Algorithms: ChordsDetection, ChordsDescriptors

  • ’chords_changes_rate’, ‘chords_number_rate’: chords change rate in the progression; ratio of different chords from the total number of chords in the progression; Algorithms: ChordsDetection, ChordsDescriptors

property tracknumber

metadata tracknumber annotation

Returns

list – tracknumber

mirdata.datasets.acousticbrainz_genre.load_extractor(fhandle)[source]

Load a AcousticBrainz Dataset json file with all the features and metadata.

Parameters

fhandle (str or file-like) – path or file-like object pointing to a json file

Returns

  • np.ndarray - the mono audio signal

  • float - The sample rate of the audio file

beatles

Beatles Dataset Loader

class mirdata.datasets.beatles.Dataset(data_home=None, version='default')[source]

The beatles dataset

Variables
  • data_home (str) – path where mirdata will look for the dataset

  • version (str) –

  • name (str) – the identifier of the dataset

  • bibtex (str or None) – dataset citation/s in bibtex format

  • indexes (dict or None) –

  • remotes (dict or None) – data to be downloaded

  • readme (str) – information about the dataset

  • track (function) – a function mapping a track_id to a mirdata.core.Track

  • multitrack (function) – a function mapping a mtrack_id to a mirdata.core.Multitrack

choice_multitrack()[source]

Choose a random multitrack

Returns

Multitrack – a Multitrack object instantiated by a random mtrack_id

choice_track()[source]

Choose a random track

Returns

Track – a Track object instantiated by a random track_id

cite()[source]

Print the reference

property default_path

Get the default path for the dataset

Returns

str – Local path to the dataset

download(partial_download=None, force_overwrite=False, cleanup=False)[source]

Download data to save_dir and optionally print a message.

Parameters
  • partial_download (list or None) – A list of keys of remotes to partially download. If None, all data is downloaded

  • force_overwrite (bool) – If True, existing files are overwritten by the downloaded files.

  • cleanup (bool) – Whether to delete any zip/tar files after extracting.

Raises
  • ValueError – if invalid keys are passed to partial_download

  • IOError – if a downloaded file’s checksum is different from expected

license()[source]

Print the license

load_audio(*args, **kwargs)[source]

Load a Beatles audio file.

Parameters

fhandle (str or file-like) – path or file-like object pointing to an audio file

Returns

  • np.ndarray - the mono audio signal

  • float - The sample rate of the audio file

load_beats(*args, **kwargs)[source]

Load Beatles format beat data from a file

Parameters

fhandle (str or file-like) – path or file-like object pointing to a beat annotation file

Returns

BeatData – loaded beat data

load_chords(*args, **kwargs)[source]

Load Beatles format chord data from a file

Parameters

fhandle (str or file-like) – path or file-like object pointing to a chord annotation file

Returns

ChordData – loaded chord data

load_multitracks()[source]

Load all multitracks in the dataset

Returns

dict – {mtrack_id: multitrack data}

Raises

NotImplementedError – If the dataset does not support Multitracks

load_sections(*args, **kwargs)[source]

Load Beatles format section data from a file

Parameters

fhandle (str or file-like) – path or file-like object pointing to a section annotation file

Returns

SectionData – loaded section data

load_tracks()[source]

Load all tracks in the dataset

Returns

dict – {track_id: track data}

Raises

NotImplementedError – If the dataset does not support Tracks

mtrack_ids[source]

Return track ids

Returns

list – A list of track ids

track_ids[source]

Return track ids

Returns

list – A list of track ids

validate(verbose=True)[source]

Validate if the stored dataset is a valid version

Parameters

verbose (bool) – If False, don’t print output

Returns

  • list - files in the index but are missing locally

  • list - files which have an invalid checksum

class mirdata.datasets.beatles.Track(track_id, data_home, dataset_name, index, metadata)[source]

Beatles track class

Parameters
  • track_id (str) – track id of the track

  • data_home (str) – path where the data lives

Variables
  • audio_path (str) – track audio path

  • beats_path (str) – beat annotation path

  • chords_path (str) – chord annotation path

  • keys_path (str) – key annotation path

  • sections_path (str) – sections annotation path

  • title (str) – title of the track

  • track_id (str) – track id

Other Parameters
  • beats (BeatData) – human-labeled beat annotations

  • chords (ChordData) – human-labeled chord annotations

  • key (KeyData) – local key annotations

  • sections (SectionData) – section annotations

property audio

The track’s audio

Returns

  • np.ndarray - audio signal

  • float - sample rate

get_path(key)[source]

Get absolute path to track audio and annotations. Returns None if the path in the index is None

Parameters

key (string) – Index key of the audio or annotation type

Returns

str or None – joined path string or None

to_jams()[source]

the track’s data in jams format

Returns

jams.JAMS – return track data in jam format

mirdata.datasets.beatles.load_audio(fhandle: BinaryIO) → Tuple[numpy.ndarray, float][source]

Load a Beatles audio file.

Parameters

fhandle (str or file-like) – path or file-like object pointing to an audio file

Returns

  • np.ndarray - the mono audio signal

  • float - The sample rate of the audio file

mirdata.datasets.beatles.load_beats(fhandle: TextIO)mirdata.annotations.BeatData[source]

Load Beatles format beat data from a file

Parameters

fhandle (str or file-like) – path or file-like object pointing to a beat annotation file

Returns

BeatData – loaded beat data

mirdata.datasets.beatles.load_chords(fhandle: TextIO)mirdata.annotations.ChordData[source]

Load Beatles format chord data from a file

Parameters

fhandle (str or file-like) – path or file-like object pointing to a chord annotation file

Returns

ChordData – loaded chord data

mirdata.datasets.beatles.load_key(fhandle: TextIO)mirdata.annotations.KeyData[source]

Load Beatles format key data from a file

Parameters

fhandle (str or file-like) – path or file-like object pointing to a key annotation file

Returns

KeyData – loaded key data

mirdata.datasets.beatles.load_sections(fhandle: TextIO)mirdata.annotations.SectionData[source]

Load Beatles format section data from a file

Parameters

fhandle (str or file-like) – path or file-like object pointing to a section annotation file

Returns

SectionData – loaded section data

beatport_key

beatport_key Dataset Loader

class mirdata.datasets.beatport_key.Dataset(data_home=None, version='default')[source]

The beatport_key dataset

Variables
  • data_home (str) – path where mirdata will look for the dataset

  • version (str) –

  • name (str) – the identifier of the dataset

  • bibtex (str or None) – dataset citation/s in bibtex format

  • indexes (dict or None) –

  • remotes (dict or None) – data to be downloaded

  • readme (str) – information about the dataset

  • track (function) – a function mapping a track_id to a mirdata.core.Track

  • multitrack (function) – a function mapping a mtrack_id to a mirdata.core.Multitrack

choice_multitrack()[source]

Choose a random multitrack

Returns

Multitrack – a Multitrack object instantiated by a random mtrack_id

choice_track()[source]

Choose a random track

Returns

Track – a Track object instantiated by a random track_id

cite()[source]

Print the reference

property default_path

Get the default path for the dataset

Returns

str – Local path to the dataset

download(partial_download=None, force_overwrite=False, cleanup=False)[source]

Download the dataset

Parameters
  • partial_download (list or None) – A list of keys of remotes to partially download. If None, all data is downloaded

  • force_overwrite (bool) – If True, existing files are overwritten by the downloaded files.

  • cleanup (bool) – Whether to delete any zip/tar files after extracting.

Raises
  • ValueError – if invalid keys are passed to partial_download

  • IOError – if a downloaded file’s checksum is different from expected

license()[source]

Print the license

load_artist(*args, **kwargs)[source]

Load beatport_key tempo data from a file

Parameters

fhandle (str or file-like) – path or file-like object pointing to metadata file

Returns

list – list of artists involved in the track.

load_audio(*args, **kwargs)[source]

Load a beatport_key audio file.

Parameters

fpath (str) – path to an audio file

Returns

  • np.ndarray - the mono audio signal

  • float - The sample rate of the audio file

load_genre(*args, **kwargs)[source]

Load beatport_key genre data from a file

Parameters

fhandle (str or file-like) – path or file-like object pointing to metadata file

Returns

dict – with the list with genres [‘genres’] and list with sub-genres [‘sub_genres’]

load_key(*args, **kwargs)[source]

Load beatport_key format key data from a file

Parameters

fhandle (str or file-like) – path or file-like object pointing to a key annotation file

Returns

list – list of annotated keys

load_multitracks()[source]

Load all multitracks in the dataset

Returns

dict – {mtrack_id: multitrack data}

Raises

NotImplementedError – If the dataset does not support Multitracks

load_tempo(*args, **kwargs)[source]

Load beatport_key tempo data from a file

Parameters

fhandle (str or file-like) – path or file-like object pointing to metadata file

Returns

str – tempo in beats per minute

load_tracks()[source]

Load all tracks in the dataset

Returns

dict – {track_id: track data}

Raises

NotImplementedError – If the dataset does not support Tracks

mtrack_ids[source]

Return track ids

Returns

list – A list of track ids

track_ids[source]

Return track ids

Returns

list – A list of track ids

validate(verbose=True)[source]

Validate if the stored dataset is a valid version

Parameters

verbose (bool) – If False, don’t print output

Returns

  • list - files in the index but are missing locally

  • list - files which have an invalid checksum

class mirdata.datasets.beatport_key.Track(track_id, data_home, dataset_name, index, metadata)[source]

beatport_key track class

Parameters
  • track_id (str) – track id of the track

  • data_home (str) – Local path where the dataset is stored.

Variables
  • audio_path (str) – track audio path

  • keys_path (str) – key annotation path

  • metadata_path (str) – sections annotation path

  • title (str) – title of the track

  • track_id (str) – track id

Other Parameters
  • key (list) – list of annotated musical keys

  • artists (list) – artists involved in the track

  • genre (dict) – genres and subgenres

  • tempo (int) – tempo in beats per minute

property audio

The track’s audio

Returns

  • np.ndarray - audio signal

  • float - sample rate

get_path(key)[source]

Get absolute path to track audio and annotations. Returns None if the path in the index is None

Parameters

key (string) – Index key of the audio or annotation type

Returns

str or None – joined path string or None

to_jams()[source]

Get the track’s data in jams format

Returns

jams.JAMS – the track’s data in jams format

mirdata.datasets.beatport_key.load_artist(fhandle)[source]

Load beatport_key tempo data from a file

Parameters

fhandle (str or file-like) – path or file-like object pointing to metadata file

Returns

list – list of artists involved in the track.

mirdata.datasets.beatport_key.load_audio(fpath)[source]

Load a beatport_key audio file.

Parameters

fpath (str) – path to an audio file

Returns

  • np.ndarray - the mono audio signal

  • float - The sample rate of the audio file

mirdata.datasets.beatport_key.load_genre(fhandle)[source]

Load beatport_key genre data from a file

Parameters

fhandle (str or file-like) – path or file-like object pointing to metadata file

Returns

dict – with the list with genres [‘genres’] and list with sub-genres [‘sub_genres’]

mirdata.datasets.beatport_key.load_key(fhandle)[source]

Load beatport_key format key data from a file

Parameters

fhandle (str or file-like) – path or file-like object pointing to a key annotation file

Returns

list – list of annotated keys

mirdata.datasets.beatport_key.load_tempo(fhandle)[source]

Load beatport_key tempo data from a file

Parameters

fhandle (str or file-like) – path or file-like object pointing to metadata file

Returns

str – tempo in beats per minute

billboard

McGill Billboard Dataset Loader

class mirdata.datasets.billboard.Dataset(data_home=None, version='default')[source]

The McGill Billboard dataset

Variables
  • data_home (str) – path where mirdata will look for the dataset

  • version (str) –

  • name (str) – the identifier of the dataset

  • bibtex (str or None) – dataset citation/s in bibtex format

  • indexes (dict or None) –

  • remotes (dict or None) – data to be downloaded

  • readme (str) – information about the dataset

  • track (function) – a function mapping a track_id to a mirdata.core.Track

  • multitrack (function) – a function mapping a mtrack_id to a mirdata.core.Multitrack

choice_multitrack()[source]

Choose a random multitrack

Returns

Multitrack – a Multitrack object instantiated by a random mtrack_id

choice_track()[source]

Choose a random track

Returns

Track – a Track object instantiated by a random track_id

cite()[source]

Print the reference

property default_path

Get the default path for the dataset

Returns

str – Local path to the dataset

download(partial_download=None, force_overwrite=False, cleanup=False)[source]

Download data to save_dir and optionally print a message.

Parameters
  • partial_download (list or None) – A list of keys of remotes to partially download. If None, all data is downloaded

  • force_overwrite (bool) – If True, existing files are overwritten by the downloaded files.

  • cleanup (bool) – Whether to delete any zip/tar files after extracting.

Raises
  • ValueError – if invalid keys are passed to partial_download

  • IOError – if a downloaded file’s checksum is different from expected

license()[source]

Print the license

load_audio(*args, **kwargs)[source]

Load a Billboard audio file.

Parameters

fhandle (str or file-like) – File-like object or path to audio file

Returns

  • np.ndarray - the mono audio signal

  • float - The sample rate of the audio file

load_chords(*args, **kwargs)[source]

Load chords from a Salami LAB file.

Parameters

fhandle (str or file-like) – path to audio file

Returns

ChordData – chord data

load_multitracks()[source]

Load all multitracks in the dataset

Returns

dict – {mtrack_id: multitrack data}

Raises

NotImplementedError – If the dataset does not support Multitracks

load_named_sections(*args, **kwargs)[source]

Load name-annotated sections from a Salami LAB file.

Parameters

fpath (str) – path to sections file

Returns

SectionData – section data

load_sections(*args, **kwargs)[source]

Load letter-annotated sections from a Salami LAB file.

Parameters

fpath (str) – path to sections file

Returns

SectionData – section data

load_tracks()[source]

Load all tracks in the dataset

Returns

dict – {track_id: track data}

Raises

NotImplementedError – If the dataset does not support Tracks

mtrack_ids[source]

Return track ids

Returns

list – A list of track ids

track_ids[source]

Return track ids

Returns

list – A list of track ids

validate(verbose=True)[source]

Validate if the stored dataset is a valid version

Parameters

verbose (bool) – If False, don’t print output

Returns

  • list - files in the index but are missing locally

  • list - files which have an invalid checksum

class mirdata.datasets.billboard.Track(track_id, data_home, dataset_name, index, metadata)[source]

McGill Billboard Dataset Track class

Parameters

track_id (str) – track id of the track

Variables
  • track_id (str) – the index for the sample entry

  • audio_path (str) – audio path of the track

  • date (chart) – the date of the chart for the entry

  • rank (peak) – the desired rank on that chart

  • rank – the rank of the song actually annotated, which may be up to 2 ranks higher or lower than the target rank

  • title (str) – the title of the song annotated

  • artist (str) – the name of the artist performing the song annotated

  • rank – the highest rank the song annotated ever achieved on the Billboard Hot 100

  • on chart (weeks) – the number of weeks the song annotated spent on the Billboard Hot 100 chart in total

Other Parameters
  • chords_full (ChordData) – HTK-style LAB files for the chord annotations (full)

  • chords_majmin7 (ChordData) – HTK-style LAB files for the chord annotations (majmin7)

  • chords_majmin7inv (ChordData) – HTK-style LAB files for the chord annotations (majmin7inv)

  • chords_majmin (ChordData) – HTK-style LAB files for the chord annotations (majmin)

  • chords_majmininv (ChordData) – HTK-style LAB files for the chord annotations(majmininv)

  • chroma (np.array) – Array containing the non-negative-least-squares chroma vectors

  • tuning (list) – List containing the tuning estimates

  • sections (SectionData) – Letter-annotated section data (A,B,A’)

  • named_sections (SectionData) – Name-annotated section data (intro, verse, chorus)

  • salami_metadata (dict) – Metadata of the Salami LAB file

property audio

The track’s audio

Returns

  • np.ndarray - audio signal

  • float - sample rate

chroma

Non-negative-least-squares (NNLS) chroma vectors from the Chordino Vamp plug-in

Returns

np.ndarray - NNLS chroma vector

get_path(key)[source]

Get absolute path to track audio and annotations. Returns None if the path in the index is None

Parameters

key (string) – Index key of the audio or annotation type

Returns

str or None – joined path string or None

to_jams()[source]

Get the track’s data in jams format

Returns

jams.JAMS – the track’s data in jams format

tuning

Tuning estimates from the Chordino Vamp plug-in

Returns

list - list of of tuning estimates []

mirdata.datasets.billboard.load_audio(fhandle: BinaryIO) → Tuple[numpy.ndarray, float][source]

Load a Billboard audio file.

Parameters

fhandle (str or file-like) – File-like object or path to audio file

Returns

  • np.ndarray - the mono audio signal

  • float - The sample rate of the audio file

mirdata.datasets.billboard.load_chords(fhandle: TextIO)[source]

Load chords from a Salami LAB file.

Parameters

fhandle (str or file-like) – path to audio file

Returns

ChordData – chord data

mirdata.datasets.billboard.load_named_sections(fpath: str)[source]

Load name-annotated sections from a Salami LAB file.

Parameters

fpath (str) – path to sections file

Returns

SectionData – section data

mirdata.datasets.billboard.load_sections(fpath: str)[source]

Load letter-annotated sections from a Salami LAB file.

Parameters

fpath (str) – path to sections file

Returns

SectionData – section data

cante100

cante100 Loader

class mirdata.datasets.cante100.Dataset(data_home=None, version='default')[source]

The cante100 dataset

Variables
  • data_home (str) – path where mirdata will look for the dataset

  • version (str) –

  • name (str) – the identifier of the dataset

  • bibtex (str or None) – dataset citation/s in bibtex format

  • indexes (dict or None) –

  • remotes (dict or None) – data to be downloaded

  • readme (str) – information about the dataset

  • track (function) – a function mapping a track_id to a mirdata.core.Track

  • multitrack (function) – a function mapping a mtrack_id to a mirdata.core.Multitrack

choice_multitrack()[source]

Choose a random multitrack

Returns

Multitrack – a Multitrack object instantiated by a random mtrack_id

choice_track()[source]

Choose a random track

Returns

Track – a Track object instantiated by a random track_id

cite()[source]

Print the reference

property default_path

Get the default path for the dataset

Returns

str – Local path to the dataset

download(partial_download=None, force_overwrite=False, cleanup=False)[source]

Download data to save_dir and optionally print a message.

Parameters
  • partial_download (list or None) – A list of keys of remotes to partially download. If None, all data is downloaded

  • force_overwrite (bool) – If True, existing files are overwritten by the downloaded files.

  • cleanup (bool) – Whether to delete any zip/tar files after extracting.

Raises
  • ValueError – if invalid keys are passed to partial_download

  • IOError – if a downloaded file’s checksum is different from expected

license()[source]

Print the license

load_audio(*args, **kwargs)[source]

Load a cante100 audio file.

Parameters

fpath (str) – path to audio file

Returns

  • np.ndarray - the mono audio signal

  • float - The sample rate of the audio file

load_melody(*args, **kwargs)[source]

Load cante100 f0 annotations

Parameters

fhandle (str or file-like) – path or file-like object pointing to melody annotation file

Returns

F0Data – predominant melody

load_multitracks()[source]

Load all multitracks in the dataset

Returns

dict – {mtrack_id: multitrack data}

Raises

NotImplementedError – If the dataset does not support Multitracks

load_notes(*args, **kwargs)[source]

Load note data from the annotation files

Parameters

fhandle (str or file-like) – path or file-like object pointing to a notes annotation file

Returns

NoteData – note annotations

load_spectrogram(*args, **kwargs)[source]

Load a cante100 dataset spectrogram file.

Parameters

fhandle (str or file-like) – path or file-like object pointing to an audio file

Returns

np.ndarray – spectrogram

load_tracks()[source]

Load all tracks in the dataset

Returns

dict – {track_id: track data}

Raises

NotImplementedError – If the dataset does not support Tracks

mtrack_ids[source]

Return track ids

Returns

list – A list of track ids

track_ids[source]

Return track ids

Returns

list – A list of track ids

validate(verbose=True)[source]

Validate if the stored dataset is a valid version

Parameters

verbose (bool) – If False, don’t print output

Returns

  • list - files in the index but are missing locally

  • list - files which have an invalid checksum

class mirdata.datasets.cante100.Track(track_id, data_home, dataset_name, index, metadata)[source]

cante100 track class

Parameters
  • track_id (str) – track id of the track

  • data_home (str) – Local path where the dataset is stored. If None, looks for the data in the default directory, ~/mir_datasets/cante100

Variables
  • track_id (str) – track id

  • identifier (str) – musicbrainz id of the track

  • artist (str) – performing artists

  • title (str) – title of the track song

  • release (str) – release where the track can be found

  • duration (str) – duration in seconds of the track

Other Parameters
  • melody (F0Data) – annotated melody

  • notes (NoteData) – annotated notes

property audio

The track’s audio

Returns

  • np.ndarray - audio signal

  • float - sample rate

get_path(key)[source]

Get absolute path to track audio and annotations. Returns None if the path in the index is None

Parameters

key (string) – Index key of the audio or annotation type

Returns

str or None – joined path string or None

property spectrogram

spectrogram of The track’s audio

Returns

np.ndarray – spectrogram

to_jams()[source]

Get the track’s data in jams format

Returns

jams.JAMS – the track’s data in jams format

mirdata.datasets.cante100.load_audio(fpath: str) → Tuple[numpy.ndarray, float][source]

Load a cante100 audio file.

Parameters

fpath (str) – path to audio file

Returns

  • np.ndarray - the mono audio signal

  • float - The sample rate of the audio file

mirdata.datasets.cante100.load_melody(fhandle: TextIO) → Optional[mirdata.annotations.F0Data][source]

Load cante100 f0 annotations

Parameters

fhandle (str or file-like) – path or file-like object pointing to melody annotation file

Returns

F0Data – predominant melody

mirdata.datasets.cante100.load_notes(fhandle: TextIO)mirdata.annotations.NoteData[source]

Load note data from the annotation files

Parameters

fhandle (str or file-like) – path or file-like object pointing to a notes annotation file

Returns

NoteData – note annotations

mirdata.datasets.cante100.load_spectrogram(fhandle: TextIO)numpy.ndarray[source]

Load a cante100 dataset spectrogram file.

Parameters

fhandle (str or file-like) – path or file-like object pointing to an audio file

Returns

np.ndarray – spectrogram

compmusic_jingju_acappella

Jingju A Cappella Singing Dataset Loader

class mirdata.datasets.compmusic_jingju_acappella.Dataset(data_home=None, version='default')[source]

The compmusic_jingju_acappella dataset

Variables
  • data_home (str) – path where mirdata will look for the dataset

  • version (str) –

  • name (str) – the identifier of the dataset

  • bibtex (str or None) – dataset citation/s in bibtex format

  • indexes (dict or None) –

  • remotes (dict or None) – data to be downloaded

  • readme (str) – information about the dataset

  • track (function) – a function mapping a track_id to a mirdata.core.Track

  • multitrack (function) – a function mapping a mtrack_id to a mirdata.core.Multitrack

choice_multitrack()[source]

Choose a random multitrack

Returns

Multitrack – a Multitrack object instantiated by a random mtrack_id

choice_track()[source]

Choose a random track

Returns

Track – a Track object instantiated by a random track_id

cite()[source]

Print the reference

property default_path

Get the default path for the dataset

Returns

str – Local path to the dataset

download(partial_download=None, force_overwrite=False, cleanup=False)[source]

Download data to save_dir and optionally print a message.

Parameters
  • partial_download (list or None) – A list of keys of remotes to partially download. If None, all data is downloaded

  • force_overwrite (bool) – If True, existing files are overwritten by the downloaded files.

  • cleanup (bool) – Whether to delete any zip/tar files after extracting.

Raises
  • ValueError – if invalid keys are passed to partial_download

  • IOError – if a downloaded file’s checksum is different from expected

license()[source]

Print the license

load_multitracks()[source]

Load all multitracks in the dataset

Returns

dict – {mtrack_id: multitrack data}

Raises

NotImplementedError – If the dataset does not support Multitracks

load_phonemes(*args, **kwargs)[source]

Load phonemes

Parameters

fhandle (str or file-like) – path or file-like object pointing to a phoneme annotation file

Returns

LyricData – phoneme annotation

load_phrases(*args, **kwargs)[source]

Load lyric phrases annotation

Parameters

fhandle (str or file-like) – path or file-like object pointing to a lyric annotation file

Returns

LyricData – lyric phrase annotation

load_syllable(*args, **kwargs)[source]

Load syllable

Parameters

fhandle (str or file-like) – path or file-like object pointing to a syllable annotation file

Returns

LyricData – syllable annotation

load_tracks()[source]

Load all tracks in the dataset

Returns

dict – {track_id: track data}

Raises

NotImplementedError – If the dataset does not support Tracks

mtrack_ids[source]

Return track ids

Returns

list – A list of track ids

track_ids[source]

Return track ids

Returns

list – A list of track ids

validate(verbose=True)[source]

Validate if the stored dataset is a valid version

Parameters

verbose (bool) – If False, don’t print output

Returns

  • list - files in the index but are missing locally

  • list - files which have an invalid checksum

class mirdata.datasets.compmusic_jingju_acappella.Track(track_id, data_home, dataset_name, index, metadata)[source]

Jingju A Cappella Singing Track class

Parameters
  • track_id (str) – track id of the track

  • data_home (str) – Local path where the dataset is stored. default=None If None, looks for the data in the default directory, ~/mir_datasets

Variables
  • audio_path (str) – local path where the audio is stored

  • phoneme_path (str) – local path where the phoneme annotation is stored

  • phrase_char_path (str) – local path where the lyric phrase annotation in chinese is stored

  • phrase_path (str) – local path where the lyric phrase annotation in western characters is stored

  • syllable_path (str) – local path where the syllable annotation is stored

  • work (str) – string referring to the work where the track belongs

  • details (float) – string referring to additional details about the track

Other Parameters
  • phoneme (EventData) – phoneme annotation

  • phrase_char (LyricsData) – lyric phrase annotation in chinese

  • phrase (LyricsData) – lyric phrase annotation in western characters

  • syllable (EventData) – syllable annotation

property audio

The track’s audio

Returns

  • np.ndarray - audio signal

  • float - sample rate

get_path(key)[source]

Get absolute path to track audio and annotations. Returns None if the path in the index is None

Parameters

key (string) – Index key of the audio or annotation type

Returns

str or None – joined path string or None

to_jams()[source]

Get the track’s data in jams format

Returns

jams.JAMS – the track’s data in jams format

mirdata.datasets.compmusic_jingju_acappella.load_audio(fhandle: BinaryIO) → Tuple[numpy.ndarray, float][source]

Load Jingju A Cappella Singing audio file.

Parameters

fhandle (str or file-like) – File-like object or path to audio file

Returns

  • np.ndarray - the mono audio signal

  • float - The sample rate of the audio file

mirdata.datasets.compmusic_jingju_acappella.load_phonemes(fhandle: TextIO)mirdata.annotations.LyricData[source]

Load phonemes

Parameters

fhandle (str or file-like) – path or file-like object pointing to a phoneme annotation file

Returns

LyricData – phoneme annotation

mirdata.datasets.compmusic_jingju_acappella.load_phrases(fhandle: TextIO)mirdata.annotations.LyricData[source]

Load lyric phrases annotation

Parameters

fhandle (str or file-like) – path or file-like object pointing to a lyric annotation file

Returns

LyricData – lyric phrase annotation

mirdata.datasets.compmusic_jingju_acappella.load_syllable(fhandle: TextIO)mirdata.annotations.LyricData[source]

Load syllable

Parameters

fhandle (str or file-like) – path or file-like object pointing to a syllable annotation file

Returns

LyricData – syllable annotation

compmusic_otmm_makam

OTMM Makam Recognition Dataset Loader

class mirdata.datasets.compmusic_otmm_makam.Dataset(data_home=None, version='default')[source]

The compmusic_otmm_makam dataset

Variables
  • data_home (str) – path where mirdata will look for the dataset

  • version (str) –

  • name (str) – the identifier of the dataset

  • bibtex (str or None) – dataset citation/s in bibtex format

  • indexes (dict or None) –

  • remotes (dict or None) – data to be downloaded

  • readme (str) – information about the dataset

  • track (function) – a function mapping a track_id to a mirdata.core.Track

  • multitrack (function) – a function mapping a mtrack_id to a mirdata.core.Multitrack

choice_multitrack()[source]

Choose a random multitrack

Returns

Multitrack – a Multitrack object instantiated by a random mtrack_id

choice_track()[source]

Choose a random track

Returns

Track – a Track object instantiated by a random track_id

cite()[source]

Print the reference

property default_path

Get the default path for the dataset

Returns

str – Local path to the dataset

download(partial_download=None, force_overwrite=False, cleanup=False)[source]

Download data to save_dir and optionally print a message.

Parameters
  • partial_download (list or None) – A list of keys of remotes to partially download. If None, all data is downloaded

  • force_overwrite (bool) – If True, existing files are overwritten by the downloaded files.

  • cleanup (bool) – Whether to delete any zip/tar files after extracting.

Raises
  • ValueError – if invalid keys are passed to partial_download

  • IOError – if a downloaded file’s checksum is different from expected

license()[source]

Print the license

load_mb_tags(*args, **kwargs)[source]

Load track metadata

Parameters

fhandle (str or file-like) – path or file-like object pointing to musicbrainz metadata file

Returns

Dict – metadata of the track

load_multitracks()[source]

Load all multitracks in the dataset

Returns

dict – {mtrack_id: multitrack data}

Raises

NotImplementedError – If the dataset does not support Multitracks

load_pitch(*args, **kwargs)[source]

Load pitch

Parameters

fhandle (str or file-like) – path or file-like object pointing to a pitch annotation file

Returns

F0Data – pitch annotation

load_tracks()[source]

Load all tracks in the dataset

Returns

dict – {track_id: track data}

Raises

NotImplementedError – If the dataset does not support Tracks

mtrack_ids[source]

Return track ids

Returns

list – A list of track ids

track_ids[source]

Return track ids

Returns

list – A list of track ids

validate(verbose=True)[source]

Validate if the stored dataset is a valid version

Parameters

verbose (bool) – If False, don’t print output

Returns

  • list - files in the index but are missing locally

  • list - files which have an invalid checksum

class mirdata.datasets.compmusic_otmm_makam.Track(track_id, data_home, dataset_name, index, metadata)[source]

OTMM Makam Track class

Parameters
  • track_id (str) – track id of the track

  • data_home (str) – Local path where the dataset is stored. default=None If None, looks for the data in the default directory, ~/mir_datasets

Variables
  • pitch_path (str) – local path where the pitch annotation is stored

  • mb_tags_path (str) – local path where the MusicBrainz tags annotation is stored

  • makam (str) – string referring to the makam represented in the track

  • tonic (float) – tonic annotation

  • mbid (str) – MusicBrainz ID of the track

Other Parameters
  • pitch (F0Data) – pitch annotation

  • mb_tags (dict) – dictionary containing the raw editorial track metadata from MusicBrainz

get_path(key)[source]

Get absolute path to track audio and annotations. Returns None if the path in the index is None

Parameters

key (string) – Index key of the audio or annotation type

Returns

str or None – joined path string or None

to_jams()[source]

Get the track’s data in jams format

Returns

jams.JAMS – the track’s data in jams format

mirdata.datasets.compmusic_otmm_makam.load_mb_tags(fhandle: TextIO) → dict[source]

Load track metadata

Parameters

fhandle (str or file-like) – path or file-like object pointing to musicbrainz metadata file

Returns

Dict – metadata of the track

mirdata.datasets.compmusic_otmm_makam.load_pitch(fhandle: TextIO)mirdata.annotations.F0Data[source]

Load pitch

Parameters

fhandle (str or file-like) – path or file-like object pointing to a pitch annotation file

Returns

F0Data – pitch annotation

dagstuhl_choirset

Dagstuhl ChoirSet Dataset Loader

class mirdata.datasets.dagstuhl_choirset.Dataset(data_home=None, version='default')[source]

The Dagstuhl ChoirSet dataset

Variables
  • data_home (str) – path where mirdata will look for the dataset

  • version (str) –

  • name (str) – the identifier of the dataset

  • bibtex (str or None) – dataset citation/s in bibtex format

  • indexes (dict or None) –

  • remotes (dict or None) – data to be downloaded

  • readme (str) – information about the dataset

  • track (function) – a function mapping a track_id to a mirdata.core.Track

  • multitrack (function) – a function mapping a mtrack_id to a mirdata.core.Multitrack

choice_multitrack()[source]

Choose a random multitrack

Returns

Multitrack – a Multitrack object instantiated by a random mtrack_id

choice_track()[source]

Choose a random track

Returns

Track – a Track object instantiated by a random track_id

cite()[source]

Print the reference

property default_path

Get the default path for the dataset

Returns

str – Local path to the dataset

download(partial_download=None, force_overwrite=False, cleanup=False)[source]

Download data to save_dir and optionally print a message.

Parameters
  • partial_download (list or None) – A list of keys of remotes to partially download. If None, all data is downloaded

  • force_overwrite (bool) – If True, existing files are overwritten by the downloaded files.

  • cleanup (bool) – Whether to delete any zip/tar files after extracting.

Raises
  • ValueError – if invalid keys are passed to partial_download

  • IOError – if a downloaded file’s checksum is different from expected

license()[source]

Print the license

load_audio(*args, **kwargs)[source]

Load a Dagstuhl ChoirSet audio file.

Parameters

audio_path (str) – path pointing to an audio file

Returns

  • np.ndarray - the audio signal

  • float - The sample rate of the audio file

load_beat(*args, **kwargs)[source]

Load a Dagstuhl ChoirSet beat annotation.

Parameters

fhandle (str or file-like) – File-like object or path to beat annotation file

Returns

BeatData Object - the beat annotation

load_f0(*args, **kwargs)[source]

Load a Dagstuhl ChoirSet F0-trajectory.

Parameters

fhandle (str or file-like) – File-like object or path to F0 file

Returns

F0Data Object - the F0-trajectory

load_multitracks()[source]

Load all multitracks in the dataset

Returns

dict – {mtrack_id: multitrack data}

Raises

NotImplementedError – If the dataset does not support Multitracks

load_score(*args, **kwargs)[source]

Load a Dagstuhl ChoirSet time-aligned score representation.

Parameters

fhandle (str or file-like) – File-like object or path to score representation file

Returns

NoteData Object - the time-aligned score representation

load_tracks()[source]

Load all tracks in the dataset

Returns

dict – {track_id: track data}

Raises

NotImplementedError – If the dataset does not support Tracks

mtrack_ids[source]

Return track ids

Returns

list – A list of track ids

track_ids[source]

Return track ids

Returns

list – A list of track ids

validate(verbose=True)[source]

Validate if the stored dataset is a valid version

Parameters

verbose (bool) – If False, don’t print output

Returns

  • list - files in the index but are missing locally

  • list - files which have an invalid checksum

class mirdata.datasets.dagstuhl_choirset.MultiTrack(mtrack_id, data_home, dataset_name, index, track_class, metadata)[source]

Dagstuhl ChoirSet multitrack class

Parameters
  • mtrack_id (str) – multitrack id

  • data_home (str) – Local path where the dataset is stored. If None, looks for the data in the default directory, ~/mir_datasets/dagstuhl_choirset

Variables
  • audio_stm_path (str) – path to room mic (mono mixdown) audio file

  • audio_str_path (str) – path to room mic (right channel) audio file

  • audio_stl_path (str) – path to room mic (left channel) audio file

  • audio_rev_path (str) – path to room mic with artifical reverb (mono mixdown) audio file

  • audio_spl_path (str) – path to piano accompaniment (left channel) audio file

  • audio_spr_path (str) – path to piano accompaniement (right channel) audio file

  • beat_path (str) – path to beat annotation file

Other Parameters

beat (annotations.BeatData) – Beat annotation

property audio_rev

The audio for the room mic with artifical reverb (mono mixdown)

Returns

  • np.ndarray - audio signal

  • float - sample rate

property audio_spl

The audio for the piano accompaniment DI (left channel)

Returns

  • np.ndarray - audio signal

  • float - sample rate

property audio_spr

The audio for the piano accompaniment DI (right channel)

Returns

  • np.ndarray - audio signal

  • float - sample rate

property audio_stl

The audio for the room mic (left channel)

Returns

  • np.ndarray - audio signal

  • float - sample rate

property audio_stm

The audio for the room mic (mono mixdown)

Returns

  • np.ndarray - audio signal

  • float - sample rate

property audio_str

The audio for the room mic (right channel)

Returns

  • np.ndarray - audio signal

  • float - sample rate

get_mix()[source]

Create a linear mixture given a subset of tracks.

Parameters

track_keys (list) – list of track keys to mix together

Returns

np.ndarray – mixture audio with shape (n_samples, n_channels)

get_path(key)[source]

Get absolute path to multitrack audio and annotations. Returns None if the path in the index is None

Parameters

key (string) – Index key of the audio or annotation type

Returns

str or None – joined path string or None

get_random_target(n_tracks=None, min_weight=0.3, max_weight=1.0)[source]

Get a random target by combining a random selection of tracks with random weights

Parameters
  • n_tracks (int or None) – number of tracks to randomly mix. If None, uses all tracks

  • min_weight (float) – minimum possible weight when mixing

  • max_weight (float) – maximum possible weight when mixing

Returns

  • np.ndarray - mixture audio with shape (n_samples, n_channels)

  • list - list of keys of included tracks

  • list - list of weights used to mix tracks

get_target(track_keys, weights=None, average=True, enforce_length=True)[source]

Get target which is a linear mixture of tracks

Parameters
  • track_keys (list) – list of track keys to mix together

  • weights (list or None) – list of positive scalars to be used in the average

  • average (bool) – if True, computes a weighted average of the tracks if False, computes a weighted sum of the tracks

  • enforce_length (bool) – If True, raises ValueError if the tracks are not the same length. If False, pads audio with zeros to match the length of the longest track

Returns

np.ndarray – target audio with shape (n_channels, n_samples)

Raises

ValueError – if sample rates of the tracks are not equal if enforce_length=True and lengths are not equal

to_jams()[source]

Jams: the track’s data in jams format

class mirdata.datasets.dagstuhl_choirset.Track(track_id, data_home, dataset_name, index, metadata)[source]

Dagstuhl ChoirSet Track class

Parameters

track_id (str) – track id of the track

Variables
  • audio_dyn_path (str) – dynamic microphone audio path

  • audio_hsm_path (str) – headset microphone audio path

  • audio_lrx_path (str) – larynx microphone audio path

  • f0_crepe_dyn_path (str) – crepe f0 annotation for dynamic microphone path

  • f0_crepe_hsm_path (str) – crepe f0 annotation for headset microphone path

  • f0_crepe_lrx_path (str) – crepe f0 annotation for larynx microphone path

  • f0_pyin_dyn_path (str) – pyin f0 annotation for dynamic microphone path

  • f0_pyin_hsm_path (str) – pyin f0 annotation for headset microphone path

  • f0_pyin_lrx_path (str) – pyin f0 annotation for larynx microphone path

  • f0_manual_lrx_path (str) – manual f0 annotation for larynx microphone path

  • score_path (str) – score annotation path

Other Parameters
  • f0_crepe_dyn (F0Data) – algorithm-labeled (crepe) f0 annotations for dynamic microphone

  • f0_crepe_hsn (F0Data) – algorithm-labeled (crepe) f0 annotations for headset microphone

  • f0_crepe_lrx (F0Data) – algorithm-labeled (crepe) f0 annotations for larynx microphone

  • f0_pyin_dyn (F0Data) – algorithm-labeled (pyin) f0 annotations for dynamic microphone

  • f0_pyin_hsn (F0Data) – algorithm-labeled (pyin) f0 annotations for headset microphone

  • f0_pyin_lrx (F0Data) – algorithm-labeled (pyin) f0 annotations for larynx microphone

  • f0_manual_lrx (F0Data) – manually labeled f0 annotations for larynx microphone

  • score (NoteData) – time-aligned score representation

property audio_dyn

The audio for the track’s dynamic microphone (if available)

Returns

  • np.ndarray - audio signal

  • float - sample rate

property audio_hsm

The audio for the track’s headset microphone (if available)

Returns

  • np.ndarray - audio signal

  • float - sample rate

property audio_lrx

The audio for the track’s larynx microphone (if available)

Returns

  • np.ndarray - audio signal

  • float - sample rate

get_path(key)[source]

Get absolute path to track audio and annotations. Returns None if the path in the index is None

Parameters

key (string) – Index key of the audio or annotation type

Returns

str or None – joined path string or None

to_jams()[source]

Jams: the track’s data in jams format

mirdata.datasets.dagstuhl_choirset.load_audio(fhandle: BinaryIO) → Tuple[numpy.ndarray, float][source]

Load a Dagstuhl ChoirSet audio file.

Parameters

audio_path (str) – path pointing to an audio file

Returns

  • np.ndarray - the audio signal

  • float - The sample rate of the audio file

mirdata.datasets.dagstuhl_choirset.load_beat(fhandle: TextIO)mirdata.annotations.BeatData[source]

Load a Dagstuhl ChoirSet beat annotation.

Parameters

fhandle (str or file-like) – File-like object or path to beat annotation file

Returns

BeatData Object - the beat annotation

mirdata.datasets.dagstuhl_choirset.load_f0(fhandle: TextIO)mirdata.annotations.F0Data[source]

Load a Dagstuhl ChoirSet F0-trajectory.

Parameters

fhandle (str or file-like) – File-like object or path to F0 file

Returns

F0Data Object - the F0-trajectory

mirdata.datasets.dagstuhl_choirset.load_score(fhandle: TextIO)mirdata.annotations.NoteData[source]

Load a Dagstuhl ChoirSet time-aligned score representation.

Parameters

fhandle (str or file-like) – File-like object or path to score representation file

Returns

NoteData Object - the time-aligned score representation

dali

DALI Dataset Loader

class mirdata.datasets.dali.Dataset(data_home=None, version='default')[source]

The dali dataset

Variables
  • data_home (str) – path where mirdata will look for the dataset

  • version (str) –

  • name (str) – the identifier of the dataset

  • bibtex (str or None) – dataset citation/s in bibtex format

  • indexes (dict or None) –

  • remotes (dict or None) – data to be downloaded

  • readme (str) – information about the dataset

  • track (function) – a function mapping a track_id to a mirdata.core.Track

  • multitrack (function) – a function mapping a mtrack_id to a mirdata.core.Multitrack

choice_multitrack()[source]

Choose a random multitrack

Returns

Multitrack – a Multitrack object instantiated by a random mtrack_id

choice_track()[source]

Choose a random track

Returns

Track – a Track object instantiated by a random track_id

cite()[source]

Print the reference

property default_path

Get the default path for the dataset

Returns

str – Local path to the dataset

download(partial_download=None, force_overwrite=False, cleanup=False)[source]

Download data to save_dir and optionally print a message.

Parameters
  • partial_download (list or None) – A list of keys of remotes to partially download. If None, all data is downloaded

  • force_overwrite (bool) – If True, existing files are overwritten by the downloaded files.

  • cleanup (bool) – Whether to delete any zip/tar files after extracting.

Raises
  • ValueError – if invalid keys are passed to partial_download

  • IOError – if a downloaded file’s checksum is different from expected

license()[source]

Print the license

load_annotations_class(*args, **kwargs)[source]

Load full annotations into the DALI class object

Parameters

annotations_path (str) – path to a DALI annotation file

Returns

DALI.annotations – DALI annotations object

load_annotations_granularity(*args, **kwargs)[source]

Load annotations at the specified level of granularity

Parameters
  • annotations_path (str) – path to a DALI annotation file

  • granularity (str) – one of ‘notes’, ‘words’, ‘lines’, ‘paragraphs’

Returns

NoteData for granularity=’notes’ or LyricData otherwise

load_audio(*args, **kwargs)[source]

Load a DALI audio file.

Parameters

fhandle (str or file-like) – path or file-like object pointing to an audio file

Returns

  • np.ndarray - the mono audio signal

  • float - The sample rate of the audio file

load_multitracks()[source]

Load all multitracks in the dataset

Returns

dict – {mtrack_id: multitrack data}

Raises

NotImplementedError – If the dataset does not support Multitracks

load_tracks()[source]

Load all tracks in the dataset

Returns

dict – {track_id: track data}

Raises

NotImplementedError – If the dataset does not support Tracks

mtrack_ids[source]

Return track ids

Returns

list – A list of track ids

track_ids[source]

Return track ids

Returns

list – A list of track ids

validate(verbose=True)[source]

Validate if the stored dataset is a valid version

Parameters

verbose (bool) – If False, don’t print output

Returns

  • list - files in the index but are missing locally

  • list - files which have an invalid checksum

class mirdata.datasets.dali.Track(track_id, data_home, dataset_name, index, metadata)[source]

DALI melody Track class

Parameters

track_id (str) – track id of the track

Variables
  • album (str) – the track’s album

  • annotation_path (str) – path to the track’s annotation file

  • artist (str) – the track’s artist

  • audio_path (str) – path to the track’s audio file

  • audio_url (str) – youtube ID

  • dataset_version (int) – dataset annotation version

  • ground_truth (bool) – True if the annotation is verified

  • language (str) – sung language

  • release_date (str) – year the track was released

  • scores_manual (int) – manual score annotations

  • scores_ncc (float) – ncc score annotations

  • title (str) – the track’s title

  • track_id (str) – the unique track id

  • url_working (bool) – True if the youtube url was valid

Other Parameters
  • notes (NoteData) – vocal notes

  • words (LyricData) – word-level lyrics

  • lines (LyricData) – line-level lyrics

  • paragraphs (LyricData) – paragraph-level lyrics

  • annotation-object (DALI.Annotations) – DALI annotation object

property audio

The track’s audio

Returns

  • np.ndarray - audio signal

  • float - sample rate

get_path(key)[source]

Get absolute path to track audio and annotations. Returns None if the path in the index is None

Parameters

key (string) – Index key of the audio or annotation type

Returns

str or None – joined path string or None

to_jams()[source]

Get the track’s data in jams format

Returns

jams.JAMS – the track’s data in jams format

mirdata.datasets.dali.load_annotations_class(annotations_path)[source]

Load full annotations into the DALI class object

Parameters

annotations_path (str) – path to a DALI annotation file

Returns

DALI.annotations – DALI annotations object

mirdata.datasets.dali.load_annotations_granularity(annotations_path, granularity)[source]

Load annotations at the specified level of granularity

Parameters
  • annotations_path (str) – path to a DALI annotation file

  • granularity (str) – one of ‘notes’, ‘words’, ‘lines’, ‘paragraphs’

Returns

NoteData for granularity=’notes’ or LyricData otherwise

mirdata.datasets.dali.load_audio(fhandle: BinaryIO) → Optional[Tuple[numpy.ndarray, float]][source]

Load a DALI audio file.

Parameters

fhandle (str or file-like) – path or file-like object pointing to an audio file

Returns

  • np.ndarray - the mono audio signal

  • float - The sample rate of the audio file

freesound_one_shot_percussive_sounds

Freesound One-Shot Percussive Sounds Dataset Loader

class mirdata.datasets.freesound_one_shot_percussive_sounds.Dataset(data_home=None, version='default')[source]

The Freesound One-Shot Percussive Sounds dataset

Variables
  • data_home (str) – path where mirdata will look for the dataset

  • version (str) –

  • name (str) – the identifier of the dataset

  • bibtex (str or None) – dataset citation/s in bibtex format

  • indexes (dict or None) –

  • remotes (dict or None) – data to be downloaded

  • readme (str) – information about the dataset

  • track (function) – a function mapping a track_id to a mirdata.core.Track

  • multitrack (function) – a function mapping a mtrack_id to a mirdata.core.Multitrack

choice_multitrack()[source]

Choose a random multitrack

Returns

Multitrack – a Multitrack object instantiated by a random mtrack_id

choice_track()[source]

Choose a random track

Returns

Track – a Track object instantiated by a random track_id

cite()[source]

Print the reference

property default_path

Get the default path for the dataset

Returns

str – Local path to the dataset

download(partial_download=None, force_overwrite=False, cleanup=False)[source]

Download data to save_dir and optionally print a message.

Parameters
  • partial_download (list or None) – A list of keys of remotes to partially download. If None, all data is downloaded

  • force_overwrite (bool) – If True, existing files are overwritten by the downloaded files.

  • cleanup (bool) – Whether to delete any zip/tar files after extracting.

Raises
  • ValueError – if invalid keys are passed to partial_download

  • IOError – if a downloaded file’s checksum is different from expected

license()[source]

Print the license

load_audio(*args, **kwargs)[source]

Load the track audio file.

Parameters

fhandle (str) – path to an audio file

Returns

  • np.ndarray - the mono audio signal

  • float - The sample rate of the audio file

load_file_metadata(*args, **kwargs)[source]

Extract file metadata from analysis json file

Parameters

fhandle (str or file-like) – path or file-like object pointing to f0 annotation file

Returns

analysis – track analysis dict

load_multitracks()[source]

Load all multitracks in the dataset

Returns

dict – {mtrack_id: multitrack data}

Raises

NotImplementedError – If the dataset does not support Multitracks

load_tracks()[source]

Load all tracks in the dataset

Returns

dict – {track_id: track data}

Raises

NotImplementedError – If the dataset does not support Tracks

mtrack_ids[source]

Return track ids

Returns

list – A list of track ids

track_ids[source]

Return track ids

Returns

list – A list of track ids

validate(verbose=True)[source]

Validate if the stored dataset is a valid version

Parameters

verbose (bool) – If False, don’t print output

Returns

  • list - files in the index but are missing locally

  • list - files which have an invalid checksum

class mirdata.datasets.freesound_one_shot_percussive_sounds.Track(track_id, data_home, dataset_name, index, metadata)[source]

Freesound one-shot percussive sounds track class

Parameters
  • track_id (str) – track id of the track

  • data_home (str) – Local path where the dataset is stored. If None, looks for the data in the default directory, ~/mir_datasets/freesound_one_shot_percussive_sounds

Variables
  • file_metadata_path (str) – local path where the analysis file is stored and from where we get the file metadata

  • audio_path (str) – local path where audio file is stored

  • track_id (str) – track id

  • filename (str) – filename of the track

  • username (str) – username of the Freesound uploader of the track

  • license (str) – link to license of the track file

  • tags (list) – list of tags of the track

  • freesound_preview_urls (dict) – dict of Freesound previews urls of the track

  • freesound_analysis (str) – dict of analysis parameters computed in Freesound using Essentia extractor

  • audiocommons_analysis (str) – dict of analysis parameters computed using AudioCommons Extractor

Other Parameters

file_metadata (dict) – metadata parameters of the track file in form of Python dictionary

property audio

The track’s audio

Returns

  • np.ndarray - audio signal

  • float - sample rate

get_path(key)[source]

Get absolute path to track audio and annotations. Returns None if the path in the index is None

Parameters

key (string) – Index key of the audio or annotation type

Returns

str or None – joined path string or None

to_jams()[source]

Get the track’s data in jams format

Returns

jams.JAMS – the track’s data in jams format

mirdata.datasets.freesound_one_shot_percussive_sounds.load_audio(fhandle: BinaryIO) → Tuple[numpy.ndarray, float][source]

Load the track audio file.

Parameters

fhandle (str) – path to an audio file

Returns

  • np.ndarray - the mono audio signal

  • float - The sample rate of the audio file

mirdata.datasets.freesound_one_shot_percussive_sounds.load_file_metadata(fhandle: TextIO) → Optional[dict][source]

Extract file metadata from analysis json file

Parameters

fhandle (str or file-like) – path or file-like object pointing to f0 annotation file

Returns

analysis – track analysis dict

giantsteps_key

giantsteps_key Dataset Loader

class mirdata.datasets.giantsteps_key.Dataset(data_home=None, version='default')[source]

The giantsteps_key dataset

Variables
  • data_home (str) – path where mirdata will look for the dataset

  • version (str) –

  • name (str) – the identifier of the dataset

  • bibtex (str or None) – dataset citation/s in bibtex format

  • indexes (dict or None) –

  • remotes (dict or None) – data to be downloaded

  • readme (str) – information about the dataset

  • track (function) – a function mapping a track_id to a mirdata.core.Track

  • multitrack (function) – a function mapping a mtrack_id to a mirdata.core.Multitrack

choice_multitrack()[source]

Choose a random multitrack

Returns

Multitrack – a Multitrack object instantiated by a random mtrack_id

choice_track()[source]

Choose a random track

Returns

Track – a Track object instantiated by a random track_id

cite()[source]

Print the reference

property default_path

Get the default path for the dataset

Returns

str – Local path to the dataset

download(partial_download=None, force_overwrite=False, cleanup=False)[source]

Download data to save_dir and optionally print a message.

Parameters
  • partial_download (list or None) – A list of keys of remotes to partially download. If None, all data is downloaded

  • force_overwrite (bool) – If True, existing files are overwritten by the downloaded files.

  • cleanup (bool) – Whether to delete any zip/tar files after extracting.

Raises
  • ValueError – if invalid keys are passed to partial_download

  • IOError – if a downloaded file’s checksum is different from expected

license()[source]

Print the license

load_artist(*args, **kwargs)[source]

Load giantsteps_key tempo data from a file

Parameters

fhandle (str or file-like) – File-like object or path pointing to metadata annotation file

Returns

list – list of artists involved in the track.

load_audio(*args, **kwargs)[source]

Load a giantsteps_key audio file.

Parameters

fpath (str) – str pointing to an audio file

Returns

  • np.ndarray - the mono audio signal

  • float - The sample rate of the audio file

load_genre(*args, **kwargs)[source]

Load giantsteps_key genre data from a file

Parameters

fhandle (str or file-like) – File-like object or path pointing to metadata annotation file

Returns

dict{‘genres’: […], ‘subgenres’: […]}

load_key(*args, **kwargs)[source]

Load giantsteps_key format key data from a file

Parameters

fhandle (str or file-like) – File like object or string pointing to key annotation file

Returns

str – loaded key data

load_multitracks()[source]

Load all multitracks in the dataset

Returns

dict – {mtrack_id: multitrack data}

Raises

NotImplementedError – If the dataset does not support Multitracks

load_tempo(*args, **kwargs)[source]

Load giantsteps_key tempo data from a file

Parameters

fhandle (str or file-like) – File-like object or string pointing to metadata annotation file

Returns

str – loaded tempo data

load_tracks()[source]

Load all tracks in the dataset

Returns

dict – {track_id: track data}

Raises

NotImplementedError – If the dataset does not support Tracks

mtrack_ids[source]

Return track ids

Returns

list – A list of track ids

track_ids[source]

Return track ids

Returns

list – A list of track ids

validate(verbose=True)[source]

Validate if the stored dataset is a valid version

Parameters

verbose (bool) – If False, don’t print output

Returns

  • list - files in the index but are missing locally

  • list - files which have an invalid checksum

class mirdata.datasets.giantsteps_key.Track(track_id, data_home, dataset_name, index, metadata)[source]

giantsteps_key track class

Parameters

track_id (str) – track id of the track

Variables
  • audio_path (str) – track audio path

  • keys_path (str) – key annotation path

  • metadata_path (str) – sections annotation path

  • title (str) – title of the track

  • track_id (str) – track id

Other Parameters
  • key (str) – musical key annotation

  • artists (list) – list of artists involved

  • genres (dict) – genres and subgenres

  • tempo (int) – crowdsourced tempo annotations in beats per minute

property audio

The track’s audio

Returns

  • np.ndarray - audio signal

  • float - sample rate

get_path(key)[source]

Get absolute path to track audio and annotations. Returns None if the path in the index is None

Parameters

key (string) – Index key of the audio or annotation type

Returns

str or None – joined path string or None

to_jams()[source]

Get the track’s data in jams format

Returns

jams.JAMS – the track’s data in jams format

mirdata.datasets.giantsteps_key.load_artist(fhandle: TextIO) → List[str][source]

Load giantsteps_key tempo data from a file

Parameters

fhandle (str or file-like) – File-like object or path pointing to metadata annotation file

Returns

list – list of artists involved in the track.

mirdata.datasets.giantsteps_key.load_audio(fpath: str) → Tuple[numpy.ndarray, float][source]

Load a giantsteps_key audio file.

Parameters

fpath (str) – str pointing to an audio file

Returns

  • np.ndarray - the mono audio signal

  • float - The sample rate of the audio file

mirdata.datasets.giantsteps_key.load_genre(fhandle: TextIO) → Dict[str, List[str]][source]

Load giantsteps_key genre data from a file

Parameters

fhandle (str or file-like) – File-like object or path pointing to metadata annotation file

Returns

dict{‘genres’: […], ‘subgenres’: […]}

mirdata.datasets.giantsteps_key.load_key(fhandle: TextIO) → str[source]

Load giantsteps_key format key data from a file

Parameters

fhandle (str or file-like) – File like object or string pointing to key annotation file

Returns

str – loaded key data

mirdata.datasets.giantsteps_key.load_tempo(fhandle: TextIO) → str[source]

Load giantsteps_key tempo data from a file

Parameters

fhandle (str or file-like) – File-like object or string pointing to metadata annotation file

Returns

str – loaded tempo data

giantsteps_tempo

giantsteps_tempo Dataset Loader

class mirdata.datasets.giantsteps_tempo.Dataset(data_home=None, version='default')[source]

The giantsteps_tempo dataset

Variables
  • data_home (str) – path where mirdata will look for the dataset

  • version (str) –

  • name (str) – the identifier of the dataset

  • bibtex (str or None) – dataset citation/s in bibtex format

  • indexes (dict or None) –

  • remotes (dict or None) – data to be downloaded

  • readme (str) – information about the dataset

  • track (function) – a function mapping a track_id to a mirdata.core.Track

  • multitrack (function) – a function mapping a mtrack_id to a mirdata.core.Multitrack

choice_multitrack()[source]

Choose a random multitrack

Returns

Multitrack – a Multitrack object instantiated by a random mtrack_id

choice_track()[source]

Choose a random track

Returns

Track – a Track object instantiated by a random track_id

cite()[source]

Print the reference

property default_path

Get the default path for the dataset

Returns

str – Local path to the dataset

download(partial_download=None, force_overwrite=False, cleanup=False)[source]

Download data to save_dir and optionally print a message.

Parameters
  • partial_download (list or None) – A list of keys of remotes to partially download. If None, all data is downloaded

  • force_overwrite (bool) – If True, existing files are overwritten by the downloaded files.

  • cleanup (bool) – Whether to delete any zip/tar files after extracting.

Raises
  • ValueError – if invalid keys are passed to partial_download

  • IOError – if a downloaded file’s checksum is different from expected

license()[source]

Print the license

load_audio(*args, **kwargs)[source]

Load a giantsteps_tempo audio file.

Parameters

fhandle (str or file-like) – path to audio file

Returns

  • np.ndarray - the mono audio signal

  • float - The sample rate of the audio file

load_genre(*args, **kwargs)[source]

Load genre data from a file

Parameters

path (str) – path to metadata annotation file

Returns

str – loaded genre data

load_multitracks()[source]

Load all multitracks in the dataset

Returns

dict – {mtrack_id: multitrack data}

Raises

NotImplementedError – If the dataset does not support Multitracks

load_tempo(*args, **kwargs)[source]

Load giantsteps_tempo tempo data from a file ordered by confidence

Parameters

fhandle (str or file-like) – File-like object or path to tempo annotation file

Returns

annotations.TempoData – Tempo data

load_tracks()[source]

Load all tracks in the dataset

Returns

dict – {track_id: track data}

Raises

NotImplementedError – If the dataset does not support Tracks

mtrack_ids[source]

Return track ids

Returns

list – A list of track ids

track_ids[source]

Return track ids

Returns

list – A list of track ids

validate(verbose=True)[source]

Validate if the stored dataset is a valid version

Parameters

verbose (bool) – If False, don’t print output

Returns

  • list - files in the index but are missing locally

  • list - files which have an invalid checksum

class mirdata.datasets.giantsteps_tempo.Track(track_id, data_home, dataset_name, index, metadata)[source]

giantsteps_tempo track class

Parameters

track_id (str) – track id of the track

Variables
  • audio_path (str) – track audio path

  • title (str) – title of the track

  • track_id (str) – track id

  • annotation_v1_path (str) – track annotation v1 path

  • annotation_v2_path (str) – track annotation v2 path

Other Parameters
  • genre (dict) – Human-labeled metadata annotation

  • tempo (list) – List of annotations.TempoData, ordered by confidence

  • tempo_v2 (list) – List of annotations.TempoData for version 2, ordered by confidence

property audio

The track’s audio

Returns

  • np.ndarray - audio signal

  • float - sample rate

get_path(key)[source]

Get absolute path to track audio and annotations. Returns None if the path in the index is None

Parameters

key (string) – Index key of the audio or annotation type

Returns

str or None – joined path string or None

to_jams()[source]

Get the track’s data in jams format

Returns

jams.JAMS – the track’s data in jams format

to_jams_v2()[source]

Get the track’s data in jams format

Returns

jams.JAMS – the track’s data in jams format

mirdata.datasets.giantsteps_tempo.load_audio(fhandle: str) → Tuple[numpy.ndarray, float][source]

Load a giantsteps_tempo audio file.

Parameters

fhandle (str or file-like) – path to audio file

Returns

  • np.ndarray - the mono audio signal

  • float - The sample rate of the audio file

mirdata.datasets.giantsteps_tempo.load_genre(fhandle: TextIO) → str[source]

Load genre data from a file

Parameters

path (str) – path to metadata annotation file

Returns

str – loaded genre data

mirdata.datasets.giantsteps_tempo.load_tempo(fhandle: TextIO)mirdata.annotations.TempoData[source]

Load giantsteps_tempo tempo data from a file ordered by confidence

Parameters

fhandle (str or file-like) – File-like object or path to tempo annotation file

Returns

annotations.TempoData – Tempo data

good_sounds

Good-Sounds Dataset Loader

class mirdata.datasets.good_sounds.Dataset(data_home=None, version='default')[source]

The GOOD-SOUNDS dataset

Variables
  • data_home (str) – path where mirdata will look for the dataset

  • version (str) –

  • name (str) – the identifier of the dataset

  • bibtex (str or None) – dataset citation/s in bibtex format

  • indexes (dict or None) –

  • remotes (dict or None) – data to be downloaded

  • readme (str) – information about the dataset

  • track (function) – a function mapping a track_id to a mirdata.core.Track

  • multitrack (function) – a function mapping a mtrack_id to a mirdata.core.Multitrack

choice_multitrack()[source]

Choose a random multitrack

Returns

Multitrack – a Multitrack object instantiated by a random mtrack_id

choice_track()[source]

Choose a random track

Returns

Track – a Track object instantiated by a random track_id

cite()[source]

Print the reference

property default_path

Get the default path for the dataset

Returns

str – Local path to the dataset

download(partial_download=None, force_overwrite=False, cleanup=False)[source]

Download data to save_dir and optionally print a message.

Parameters
  • partial_download (list or None) – A list of keys of remotes to partially download. If None, all data is downloaded

  • force_overwrite (bool) – If True, existing files are overwritten by the downloaded files.

  • cleanup (bool) – Whether to delete any zip/tar files after extracting.

Raises
  • ValueError – if invalid keys are passed to partial_download

  • IOError – if a downloaded file’s checksum is different from expected

license()[source]

Print the license

load_audio(*args, **kwargs)[source]

Load a Beatles audio file.

Parameters

fhandle (str or file-like) – path or file-like object pointing to an audio file

Returns

  • np.ndarray - the mono audio signal

  • float - The sample rate of the audio file

load_multitracks()[source]

Load all multitracks in the dataset

Returns

dict – {mtrack_id: multitrack data}

Raises

NotImplementedError – If the dataset does not support Multitracks

load_tracks()[source]

Load all tracks in the dataset

Returns

dict – {track_id: track data}

Raises

NotImplementedError – If the dataset does not support Tracks

mtrack_ids[source]

Return track ids

Returns

list – A list of track ids

track_ids[source]

Return track ids

Returns

list – A list of track ids

validate(verbose=True)[source]

Validate if the stored dataset is a valid version

Parameters

verbose (bool) – If False, don’t print output

Returns

  • list - files in the index but are missing locally

  • list - files which have an invalid checksum

class mirdata.datasets.good_sounds.Track(track_id, data_home, dataset_name, index, metadata)[source]

GOOD-SOUNDS Track class

Parameters

track_id (str) – track id of the track

Variables

audio_path (str) – Path to the audio file

Other Parameters
  • ratings_info (dict) – A dictionary containing the entity Ratings.

  • Some musicians self-rated their performance in a 0-10 goodness scale for the user evaluation of the first project

  • prototype. Please read the paper for more detailed information.

    • id

    • mark: the rate or score.

    • type: the klass of the sound. Related to the tags of the sound.

    • created_at

    • comments

    • sound_id

    • rater: the musician who rated the sound.

  • pack_info (dict) – A dictionary containing the entity Pack. A pack is a group of sounds from the same recording session. The audio files are organised in the sound_files directory in subfolders with the pack name to which they belong. The following metadata is associated with the entity Pack. - id - name - description

  • sound_info (dict) – A dictionary containing the entity Sound. A sound can have several takes as some of them were recorded using different microphones at the same time. The following metadata is associated with the entity Sound. - id - instrument: flute, cello, clarinet, trumpet, violin, sax_alto, sax_tenor, sax_baritone, sax_soprano, oboe, piccolo, bass - note - octave - dynamics: for some sounds, the musical notation of the loudness level (p, mf, f..) - recorded_at: recording date and time - location: recording place - player: the musician who recorded. For detailed information about the musicians contact us. - bow_velocity: for some string instruments the velocity of the bow (slow, medieum, fast) - bridge_position: for some string instruments the position of the bow (tasto, middle, ponticello) - string: for some string instruments the number of the string in which the sound it’s played (1: lowest in pitch) - csv_file: used for creation of the DB - csv_id: used for creation of the DB - pack_filename: used for creation of the DB - pack_id: used for creation of the DB - attack: for single notes, manual annotation of the onset in samples. - decay: for single notes, manual annotation of the decay in samples. - sustain: for single notes, manual annotation of the beginnig of the sustained part in samples. - release: for single notes, manual annotation of the beginnig of the release part in samples. - offset: for single notes, manual annotation of the offset in samples - reference: 1 if sound was used to create the models in the good-sounds project, 0 if not. - Other tags regarding tonal characteristics are also available. - comments: if any - semitone: midi note - pitch_reference: the reference pitch - klass: user generated tags of the tonal qualities of the sound. They also contain information about the exercise, that could be single note or scale. * “good-sound”: good examples of single note * “bad”: bad example of one of the sound attributes defined in the project (please read the papers for a detailed explanation) * “scale-good”: good example of a one octave scale going up and down (15 notes). If the scale is minor a tagged “minor” is also available. * “scale-bad”: bad example scale of one of the sounds defined in the project. (15 notes up and down).

  • take_info (dict) – A dictionary containing the entity Take. A sound can have several takes as some of them were recorded using different microphones at the same time. Each take has an associated audio file. The annotations. Each take has an associated audio file. The following metadata is associated with the entity Sound. - id - microphone - filename: the name of the associated audio file - original_filename: - freesound_id: for some sounds uploaded to freesound.org - sound_id: the id of the sound in the DB - goodsound_id: for some of the sounds available in good-sounds.org

  • microphone (str) – the microphone used to record the take.

  • instrument (str) – the instrument recorded (flute, cello, clarinet, trumpet, violin, sax_alto, sax_tenor, sax_baritone, sax_soprano, oboe, piccolo, bass).

  • klass (str) – user generated tags of the tonal qualities of the sound. They also contain information about the exercise, that could be single note or scale. * “good-sound”: good examples of single note * “bad”: bad example of one of the sound attributes defined in the project (please read the papers for a detailed explanation) * “scale-good”: good example of a one octave scale going up and down (15 notes). If the scale is minor a tagged “minor” is also available. * “scale-bad”: bad example scale of one of the sounds defined in the project. (15 notes up and down).

  • semitone (int) – midi note

  • pitch_reference (int) – the reference pitch

property audio

The track’s audio

Returns

  • np.ndarray - audio signal

  • float - sample rate

get_path(key)[source]

Get absolute path to track audio and annotations. Returns None if the path in the index is None

Parameters

key (string) – Index key of the audio or annotation type

Returns

str or None – joined path string or None

mirdata.datasets.good_sounds.load_audio(fhandle: BinaryIO) → Tuple[numpy.ndarray, float][source]

Load a Beatles audio file.

Parameters

fhandle (str or file-like) – path or file-like object pointing to an audio file

Returns

  • np.ndarray - the mono audio signal

  • float - The sample rate of the audio file

groove_midi

Groove MIDI Loader

class mirdata.datasets.groove_midi.Dataset(data_home=None, version='default')[source]

The groove_midi dataset

Variables
  • data_home (str) – path where mirdata will look for the dataset

  • version (str) –

  • name (str) – the identifier of the dataset

  • bibtex (str or None) – dataset citation/s in bibtex format

  • indexes (dict or None) –

  • remotes (dict or None) – data to be downloaded

  • readme (str) – information about the dataset

  • track (function) – a function mapping a track_id to a mirdata.core.Track

  • multitrack (function) – a function mapping a mtrack_id to a mirdata.core.Multitrack

choice_multitrack()[source]

Choose a random multitrack

Returns

Multitrack – a Multitrack object instantiated by a random mtrack_id

choice_track()[source]

Choose a random track

Returns

Track – a Track object instantiated by a random track_id

cite()[source]

Print the reference

property default_path

Get the default path for the dataset

Returns

str – Local path to the dataset

download(partial_download=None, force_overwrite=False, cleanup=False)[source]

Download data to save_dir and optionally print a message.

Parameters
  • partial_download (list or None) – A list of keys of remotes to partially download. If None, all data is downloaded

  • force_overwrite (bool) – If True, existing files are overwritten by the downloaded files.

  • cleanup (bool) – Whether to delete any zip/tar files after extracting.

Raises
  • ValueError – if invalid keys are passed to partial_download

  • IOError – if a downloaded file’s checksum is different from expected

license()[source]

Print the license

load_audio(*args, **kwargs)[source]

Load a Groove MIDI audio file.

Parameters

path – path to an audio file

Returns

  • np.ndarray - the mono audio signal

  • float - The sample rate of the audio file

load_beats(*args, **kwargs)[source]

Load beat data from the midi file.

Parameters
  • midi_path (str) – path to midi file

  • midi (pretty_midi.PrettyMIDI) – pre-loaded midi object or None if None, the midi object is loaded using midi_path

Returns

annotations.BeatData – machine generated beat data

load_drum_events(*args, **kwargs)[source]

Load drum events from the midi file.

Parameters
  • midi_path (str) – path to midi file

  • midi (pretty_midi.PrettyMIDI) – pre-loaded midi object or None if None, the midi object is loaded using midi_path

Returns

annotations.EventData – drum event data

load_midi(*args, **kwargs)[source]

Load a Groove MIDI midi file.

Parameters

fhandle (str or file-like) – File-like object or path to midi file

Returns

midi_data (pretty_midi.PrettyMIDI) – pretty_midi object

load_multitracks()[source]

Load all multitracks in the dataset

Returns

dict – {mtrack_id: multitrack data}

Raises

NotImplementedError – If the dataset does not support Multitracks

load_tracks()[source]

Load all tracks in the dataset

Returns

dict – {track_id: track data}

Raises

NotImplementedError – If the dataset does not support Tracks

mtrack_ids[source]

Return track ids

Returns

list – A list of track ids

track_ids[source]

Return track ids

Returns

list – A list of track ids

validate(verbose=True)[source]

Validate if the stored dataset is a valid version

Parameters

verbose (bool) – If False, don’t print output

Returns

  • list - files in the index but are missing locally

  • list - files which have an invalid checksum

class mirdata.datasets.groove_midi.Track(track_id, data_home, dataset_name, index, metadata)[source]

Groove MIDI Track class

Parameters

track_id (str) – track id of the track

Variables
  • drummer (str) – Drummer id of the track (ex. ‘drummer1’)

  • session (str) – Type of session (ex. ‘session1’, ‘eval_session’)

  • track_id (str) – track id of the track (ex. ‘drummer1/eval_session/1’)

  • style (str) – Style (genre, groove type) of the track (ex. ‘funk/groove1’)

  • tempo (int) – track tempo in beats per minute (ex. 138)

  • beat_type (str) – Whether the track is a beat or a fill (ex. ‘beat’)

  • time_signature (str) – Time signature of the track (ex. ‘4-4’, ‘6-8’)

  • midi_path (str) – Path to the midi file

  • audio_path (str) – Path to the audio file

  • duration (float) – Duration of the midi file in seconds

  • split (str) – Whether the track is for a train/valid/test set. One of ‘train’, ‘valid’ or ‘test’.

Other Parameters
  • beats (BeatData) – Machine-generated beat annotations

  • drum_events (EventData) – Annotated drum kit events

  • midi (pretty_midi.PrettyMIDI) – object containing MIDI information

property audio

The track’s audio

Returns

  • np.ndarray - audio signal

  • float - sample rate

get_path(key)[source]

Get absolute path to track audio and annotations. Returns None if the path in the index is None

Parameters

key (string) – Index key of the audio or annotation type

Returns

str or None – joined path string or None

to_jams()[source]

Get the track’s data in jams format

Returns

jams.JAMS – the track’s data in jams format

mirdata.datasets.groove_midi.load_audio(path: str) → Tuple[Optional[numpy.ndarray], Optional[float]][source]

Load a Groove MIDI audio file.

Parameters

path – path to an audio file

Returns

  • np.ndarray - the mono audio signal

  • float - The sample rate of the audio file

mirdata.datasets.groove_midi.load_beats(midi_path, midi=None)[source]

Load beat data from the midi file.

Parameters
  • midi_path (str) – path to midi file

  • midi (pretty_midi.PrettyMIDI) – pre-loaded midi object or None if None, the midi object is loaded using midi_path

Returns

annotations.BeatData – machine generated beat data

mirdata.datasets.groove_midi.load_drum_events(midi_path, midi=None)[source]

Load drum events from the midi file.

Parameters
  • midi_path (str) – path to midi file

  • midi (pretty_midi.PrettyMIDI) – pre-loaded midi object or None if None, the midi object is loaded using midi_path

Returns

annotations.EventData – drum event data

mirdata.datasets.groove_midi.load_midi(fhandle: BinaryIO) → Optional[pretty_midi.PrettyMIDI][source]

Load a Groove MIDI midi file.

Parameters

fhandle (str or file-like) – File-like object or path to midi file

Returns

midi_data (pretty_midi.PrettyMIDI) – pretty_midi object

gtzan_genre

GTZAN-Genre Dataset Loader

class mirdata.datasets.gtzan_genre.Dataset(data_home=None, version='default')[source]

The gtzan_genre dataset

Variables
  • data_home (str) – path where mirdata will look for the dataset

  • version (str) –

  • name (str) – the identifier of the dataset

  • bibtex (str or None) – dataset citation/s in bibtex format

  • indexes (dict or None) –

  • remotes (dict or None) – data to be downloaded

  • readme (str) – information about the dataset

  • track (function) – a function mapping a track_id to a mirdata.core.Track

  • multitrack (function) – a function mapping a mtrack_id to a mirdata.core.Multitrack

choice_multitrack()[source]

Choose a random multitrack

Returns

Multitrack – a Multitrack object instantiated by a random mtrack_id

choice_track()[source]

Choose a random track

Returns

Track – a Track object instantiated by a random track_id

cite()[source]

Print the reference

property default_path

Get the default path for the dataset

Returns

str – Local path to the dataset

download(partial_download=None, force_overwrite=False, cleanup=False)[source]

Download data to save_dir and optionally print a message.

Parameters
  • partial_download (list or None) – A list of keys of remotes to partially download. If None, all data is downloaded

  • force_overwrite (bool) – If True, existing files are overwritten by the downloaded files.

  • cleanup (bool) – Whether to delete any zip/tar files after extracting.

Raises
  • ValueError – if invalid keys are passed to partial_download

  • IOError – if a downloaded file’s checksum is different from expected

license()[source]

Print the license

load_audio(*args, **kwargs)[source]

Load a GTZAN audio file.

Parameters

fhandle (str or file-like) – File-like object or path to audio file

Returns

  • np.ndarray - the mono audio signal

  • float - The sample rate of the audio file

load_multitracks()[source]

Load all multitracks in the dataset

Returns

dict – {mtrack_id: multitrack data}

Raises

NotImplementedError – If the dataset does not support Multitracks

load_tracks()[source]

Load all tracks in the dataset

Returns

dict – {track_id: track data}

Raises

NotImplementedError – If the dataset does not support Tracks

mtrack_ids[source]

Return track ids

Returns

list – A list of track ids

track_ids[source]

Return track ids

Returns

list – A list of track ids

validate(verbose=True)[source]

Validate if the stored dataset is a valid version

Parameters

verbose (bool) – If False, don’t print output

Returns

  • list - files in the index but are missing locally

  • list - files which have an invalid checksum

class mirdata.datasets.gtzan_genre.Track(track_id, data_home, dataset_name, index, metadata)[source]

gtzan_genre Track class

Parameters

track_id (str) – track id of the track

Variables
  • audio_path (str) – path to the audio file

  • genre (str) – annotated genre

  • track_id (str) – track id

property audio

The track’s audio

Returns

  • np.ndarray - audio signal

  • float - sample rate

get_path(key)[source]

Get absolute path to track audio and annotations. Returns None if the path in the index is None

Parameters

key (string) – Index key of the audio or annotation type

Returns

str or None – joined path string or None

to_jams()[source]

Get the track’s data in jams format

Returns

jams.JAMS – the track’s data in jams format

mirdata.datasets.gtzan_genre.load_audio(fhandle: BinaryIO) → Tuple[numpy.ndarray, float][source]

Load a GTZAN audio file.

Parameters

fhandle (str or file-like) – File-like object or path to audio file

Returns

  • np.ndarray - the mono audio signal

  • float - The sample rate of the audio file

guitarset

GuitarSet Loader

class mirdata.datasets.guitarset.Dataset(data_home=None, version='default')[source]

The guitarset dataset

Variables
  • data_home (str) – path where mirdata will look for the dataset

  • version (str) –

  • name (str) – the identifier of the dataset

  • bibtex (str or None) – dataset citation/s in bibtex format

  • indexes (dict or None) –

  • remotes (dict or None) – data to be downloaded

  • readme (str) – information about the dataset

  • track (function) – a function mapping a track_id to a mirdata.core.Track

  • multitrack (function) – a function mapping a mtrack_id to a mirdata.core.Multitrack

choice_multitrack()[source]

Choose a random multitrack

Returns

Multitrack – a Multitrack object instantiated by a random mtrack_id

choice_track()[source]

Choose a random track

Returns

Track – a Track object instantiated by a random track_id

cite()[source]

Print the reference

property default_path

Get the default path for the dataset

Returns

str – Local path to the dataset

download(partial_download=None, force_overwrite=False, cleanup=False)[source]

Download data to save_dir and optionally print a message.

Parameters
  • partial_download (list or None) – A list of keys of remotes to partially download. If None, all data is downloaded

  • force_overwrite (bool) – If True, existing files are overwritten by the downloaded files.

  • cleanup (bool) – Whether to delete any zip/tar files after extracting.

Raises
  • ValueError – if invalid keys are passed to partial_download

  • IOError – if a downloaded file’s checksum is different from expected

license()[source]

Print the license

load_audio(*args, **kwargs)[source]

Load a Guitarset audio file.

Parameters

fhandle (str or file-like) – File-like object or path to audio file

Returns

  • np.ndarray - the mono audio signal

  • float - The sample rate of the audio file

load_beats(*args, **kwargs)[source]

Load a Guitarset beats annotation.

Parameters

fhandle (str or file-like) – File-like object or path of the jams annotation file

Returns

BeatData – Beat data

load_chords(*args, **kwargs)[source]

Load a guitarset chord annotation.

Parameters
  • jams_path (str) – path to the jams annotation file

  • leadsheet_version (Bool) – Whether or not to load the leadsheet version of the chord annotation If False, load the infered version.

Returns

ChordData – Chord data

load_key_mode(*args, **kwargs)[source]

Load a Guitarset key-mode annotation.

Parameters

fhandle (str or file-like) – File-like object or path of the jams annotation file

Returns

KeyData – Key data

load_multitrack_audio(*args, **kwargs)[source]

Load a Guitarset multitrack audio file.

Parameters

fhandle (str or file-like) – File-like object or path to audio file

Returns

  • np.ndarray - the mono audio signal

  • float - The sample rate of the audio file

load_multitracks()[source]

Load all multitracks in the dataset

Returns

dict – {mtrack_id: multitrack data}

Raises

NotImplementedError – If the dataset does not support Multitracks

load_notes(*args, **kwargs)[source]

Load a guitarset note annotation for a given string

Parameters
  • jams_path (str) – path to the jams annotation file

  • string_num (int), in range(6) – Which string to load. 0 is the Low E string, 5 is the high e string.

Returns

NoteData – Note data for the given string

load_pitch_contour(*args, **kwargs)[source]

Load a guitarset pitch contour annotation for a given string

Parameters
  • jams_path (str) – path to the jams annotation file

  • string_num (int), in range(6) – Which string to load. 0 is the Low E string, 5 is the high e string.

Returns

F0Data – Pitch contour data for the given string

load_tracks()[source]

Load all tracks in the dataset

Returns

dict – {track_id: track data}

Raises

NotImplementedError – If the dataset does not support Tracks

mtrack_ids[source]

Return track ids

Returns

list – A list of track ids

track_ids[source]

Return track ids

Returns

list – A list of track ids

validate(verbose=True)[source]

Validate if the stored dataset is a valid version

Parameters

verbose (bool) – If False, don’t print output

Returns

  • list - files in the index but are missing locally

  • list - files which have an invalid checksum

class mirdata.datasets.guitarset.Track(track_id, data_home, dataset_name, index, metadata)[source]

guitarset Track class

Parameters

track_id (str) – track id of the track

Variables
  • audio_hex_cln_path (str) – path to the debleeded hex wave file

  • audio_hex_path (str) – path to the original hex wave file

  • audio_mic_path (str) – path to the mono wave via microphone

  • audio_mix_path (str) – path to the mono wave via downmixing hex pickup

  • jams_path (str) – path to the jams file

  • mode (str) – one of [‘solo’, ‘comp’] For each excerpt, players are asked to first play in ‘comp’ mode and later play a ‘solo’ version on top of the already recorded comp.

  • player_id (str) – ID of the different players. one of [‘00’, ‘01’, … , ‘05’]

  • style (str) – one of [‘Jazz’, ‘Bossa Nova’, ‘Rock’, ‘Singer-Songwriter’, ‘Funk’]

  • tempo (float) – BPM of the track

  • track_id (str) – track id

Other Parameters
  • beats (BeatData) – beat positions

  • leadsheet_chords (ChordData) – chords as written in the leadsheet

  • inferred_chords (ChordData) – chords inferred from played transcription

  • key_mode (KeyData) – key and mode

  • pitch_contours (dict) – Pitch contours per string - ‘E’: F0Data(…) - ‘A’: F0Data(…) - ‘D’: F0Data(…) - ‘G’: F0Data(…) - ‘B’: F0Data(…) - ‘e’: F0Data(…)

  • multif0 (MultiF0Data) – all pitch contour data as one multif0 annotation

  • notes (dict) – Notes per string - ‘E’: NoteData(…) - ‘A’: NoteData(…) - ‘D’: NoteData(…) - ‘G’: NoteData(…) - ‘B’: NoteData(…) - ‘e’: NoteData(…)

  • notes_all (NoteData) – all note data as one note annotation

property audio_hex

Hexaphonic audio (6-channels) with one channel per string

Returns

  • np.ndarray - audio signal

  • float - sample rate

property audio_hex_cln
Hexaphonic audio (6-channels) with one channel per string

after bleed removal

Returns

  • np.ndarray - audio signal

  • float - sample rate

property audio_mic

The track’s audio

Returns

  • np.ndarray - audio signal

  • float - sample rate

property audio_mix

Mixture audio (mono)

Returns

  • np.ndarray - audio signal

  • float - sample rate

get_path(key)[source]

Get absolute path to track audio and annotations. Returns None if the path in the index is None

Parameters

key (string) – Index key of the audio or annotation type

Returns

str or None – joined path string or None

to_jams()[source]

Get the track’s data in jams format

Returns

jams.JAMS – the track’s data in jams format

mirdata.datasets.guitarset.load_audio(fhandle: BinaryIO) → Tuple[numpy.ndarray, float][source]

Load a Guitarset audio file.

Parameters

fhandle (str or file-like) – File-like object or path to audio file

Returns

  • np.ndarray - the mono audio signal

  • float - The sample rate of the audio file

mirdata.datasets.guitarset.load_beats(fhandle: TextIO)mirdata.annotations.BeatData[source]

Load a Guitarset beats annotation.

Parameters

fhandle (str or file-like) – File-like object or path of the jams annotation file

Returns

BeatData – Beat data

mirdata.datasets.guitarset.load_chords(jams_path, leadsheet_version)[source]

Load a guitarset chord annotation.

Parameters
  • jams_path (str) – path to the jams annotation file

  • leadsheet_version (Bool) – Whether or not to load the leadsheet version of the chord annotation If False, load the infered version.

Returns

ChordData – Chord data

mirdata.datasets.guitarset.load_key_mode(fhandle: TextIO)mirdata.annotations.KeyData[source]

Load a Guitarset key-mode annotation.

Parameters

fhandle (str or file-like) – File-like object or path of the jams annotation file

Returns

KeyData – Key data

mirdata.datasets.guitarset.load_multitrack_audio(fhandle: BinaryIO) → Tuple[numpy.ndarray, float][source]

Load a Guitarset multitrack audio file.

Parameters

fhandle (str or file-like) – File-like object or path to audio file

Returns

  • np.ndarray - the mono audio signal

  • float - The sample rate of the audio file

mirdata.datasets.guitarset.load_notes(jams_path, string_num)[source]

Load a guitarset note annotation for a given string

Parameters
  • jams_path (str) – path to the jams annotation file

  • string_num (int), in range(6) – Which string to load. 0 is the Low E string, 5 is the high e string.

Returns

NoteData – Note data for the given string

mirdata.datasets.guitarset.load_pitch_contour(jams_path, string_num)[source]

Load a guitarset pitch contour annotation for a given string

Parameters
  • jams_path (str) – path to the jams annotation file

  • string_num (int), in range(6) – Which string to load. 0 is the Low E string, 5 is the high e string.

Returns

F0Data – Pitch contour data for the given string

haydn_op20

haydn op20 Dataset Loader

class mirdata.datasets.haydn_op20.Dataset(data_home=None, version='default')[source]

The haydn op20 dataset

Variables
  • data_home (str) – path where mirdata will look for the dataset

  • version (str) –

  • name (str) – the identifier of the dataset

  • bibtex (str or None) – dataset citation/s in bibtex format

  • indexes (dict or None) –

  • remotes (dict or None) – data to be downloaded

  • readme (str) – information about the dataset

  • track (function) – a function mapping a track_id to a mirdata.core.Track

  • multitrack (function) – a function mapping a mtrack_id to a mirdata.core.Multitrack

choice_multitrack()[source]

Choose a random multitrack

Returns

Multitrack – a Multitrack object instantiated by a random mtrack_id

choice_track()[source]

Choose a random track

Returns

Track – a Track object instantiated by a random track_id

cite()[source]

Print the reference

property default_path

Get the default path for the dataset

Returns

str – Local path to the dataset

download(partial_download=None, force_overwrite=False, cleanup=False)[source]

Download data to save_dir and optionally print a message.

Parameters
  • partial_download (list or None) – A list of keys of remotes to partially download. If None, all data is downloaded

  • force_overwrite (bool) – If True, existing files are overwritten by the downloaded files.

  • cleanup (bool) – Whether to delete any zip/tar files after extracting.

Raises
  • ValueError – if invalid keys are passed to partial_download

  • IOError – if a downloaded file’s checksum is different from expected

license()[source]

Print the license

load_chords(*args, **kwargs)[source]

Load haydn op20 chords data from a file

Parameters
  • fhandle (str or file-like) – path to chord annotations

  • resolution (int) – the number of pulses, or ticks, per quarter note (PPQ)

Returns

ChordData – chord annotations

load_chords_music21(*args, **kwargs)[source]

Load haydn op20 chords data from a file in music21 format

Parameters
  • fhandle (str or file-like) – path to chord annotations

  • resolution (int) – the number of pulses, or ticks, per quarter note (PPQ)

Returns

list – musical chords data and relative time (offset (Music21Object.offset) * resolution) [(time in PPQ, chord)]

load_key(*args, **kwargs)[source]

Load haydn op20 key data from a file

Parameters
  • fhandle (str or file-like) – path to key annotations

  • resolution (int) – the number of pulses, or ticks, per quarter note (PPQ)

Returns

KeyData – loaded key data

load_key_music21(*args, **kwargs)[source]

Load haydn op20 key data from a file in music21 format

Parameters
  • fhandle (str or file-like) – path to key annotations

  • resolution (int) – the number of pulses, or ticks, per quarter note (PPQ)

Returns

list – musical key data and relative time (offset (Music21Object.offset) * resolution) [(time in PPQ, local key)]

load_midi_path(*args, **kwargs)[source]

convert to midi file and return the midi path

Parameters

fhandle (str or file-like) – path to score file

Returns

str – midi file path

load_multitracks()[source]

Load all multitracks in the dataset

Returns

dict – {mtrack_id: multitrack data}

Raises

NotImplementedError – If the dataset does not support Multitracks

load_roman_numerals(*args, **kwargs)[source]

Load haydn op20 roman numerals data from a file

Parameters
  • fhandle (str or file-like) – path to roman numeral annotations

  • resolution (int) – the number of pulses, or ticks, per quarter note (PPQ)

Returns

list – musical roman numerals data and relative time (offset (Music21Object.offset) * resolution) [(time in PPQ, roman numerals)]

load_score(*args, **kwargs)[source]

Load haydn op20 score with annotations from a file with music21 format (music21.stream.Score).

Parameters

fhandle (str or file-like) – path to score

Returns

music21.stream.Score – score in music21 format

load_tracks()[source]

Load all tracks in the dataset

Returns

dict – {track_id: track data}

Raises

NotImplementedError – If the dataset does not support Tracks

mtrack_ids[source]

Return track ids

Returns

list – A list of track ids

track_ids[source]

Return track ids

Returns

list – A list of track ids

validate(verbose=True)[source]

Validate if the stored dataset is a valid version

Parameters

verbose (bool) – If False, don’t print output

Returns

  • list - files in the index but are missing locally

  • list - files which have an invalid checksum

class mirdata.datasets.haydn_op20.Track(track_id, data_home, dataset_name, index, metadata)[source]

haydn op20 track class

Parameters

track_id (str) – track id of the track

Variables
  • title (str) – title of the track

  • track_id (str) – track id

  • humdrum_annotated_path (str) – path to humdrum annotated score

Other Parameters
  • keys (KeyData) – annotated local keys.

  • keys_music21 (list) – annotated local keys.

  • roman_numerals (list) – annotated roman_numerals.

  • chords (ChordData) – annotated chords.

  • chords_music21 (list) – annotated chords.

  • duration (int) – relative duration

  • midi_path (str) – path to midi

  • score (music21.stream.Score) – music21 score

get_path(key)[source]

Get absolute path to track audio and annotations. Returns None if the path in the index is None

Parameters

key (string) – Index key of the audio or annotation type

Returns

str or None – joined path string or None

to_jams()[source]

Get the track’s data in jams format

Returns

jams.JAMS – the track’s data in jams format

mirdata.datasets.haydn_op20.convert_and_save_to_midi(fhandle: TextIO)[source]

convert to midi file and return the midi path

Parameters

fhandle (str or file-like) – path to score file

Returns

str – midi file path

mirdata.datasets.haydn_op20.load_chords(fhandle: TextIO, resolution: int = 28)[source]

Load haydn op20 chords data from a file

Parameters
  • fhandle (str or file-like) – path to chord annotations

  • resolution (int) – the number of pulses, or ticks, per quarter note (PPQ)

Returns

ChordData – chord annotations

mirdata.datasets.haydn_op20.load_chords_music21(fhandle: TextIO, resolution: int = 28)[source]

Load haydn op20 chords data from a file in music21 format

Parameters
  • fhandle (str or file-like) – path to chord annotations

  • resolution (int) – the number of pulses, or ticks, per quarter note (PPQ)

Returns

list – musical chords data and relative time (offset (Music21Object.offset) * resolution) [(time in PPQ, chord)]

mirdata.datasets.haydn_op20.load_key(fhandle: TextIO, resolution=28)[source]

Load haydn op20 key data from a file

Parameters
  • fhandle (str or file-like) – path to key annotations

  • resolution (int) – the number of pulses, or ticks, per quarter note (PPQ)

Returns

KeyData – loaded key data

mirdata.datasets.haydn_op20.load_key_music21(fhandle: TextIO, resolution=28)[source]

Load haydn op20 key data from a file in music21 format

Parameters
  • fhandle (str or file-like) – path to key annotations

  • resolution (int) – the number of pulses, or ticks, per quarter note (PPQ)

Returns

list – musical key data and relative time (offset (Music21Object.offset) * resolution) [(time in PPQ, local key)]

mirdata.datasets.haydn_op20.load_roman_numerals(fhandle: TextIO, resolution=28)[source]

Load haydn op20 roman numerals data from a file

Parameters
  • fhandle (str or file-like) – path to roman numeral annotations

  • resolution (int) – the number of pulses, or ticks, per quarter note (PPQ)

Returns

list – musical roman numerals data and relative time (offset (Music21Object.offset) * resolution) [(time in PPQ, roman numerals)]

mirdata.datasets.haydn_op20.load_score(fhandle: TextIO)[source]

Load haydn op20 score with annotations from a file with music21 format (music21.stream.Score).

Parameters

fhandle (str or file-like) – path to score

Returns

music21.stream.Score – score in music21 format

ikala

iKala Dataset Loader

class mirdata.datasets.ikala.Dataset(data_home=None, version='default')[source]

The ikala dataset

Variables
  • data_home (str) – path where mirdata will look for the dataset

  • version (str) –

  • name (str) – the identifier of the dataset

  • bibtex (str or None) – dataset citation/s in bibtex format

  • indexes (dict or None) –

  • remotes (dict or None) – data to be downloaded

  • readme (str) – information about the dataset

  • track (function) – a function mapping a track_id to a mirdata.core.Track

  • multitrack (function) – a function mapping a mtrack_id to a mirdata.core.Multitrack

choice_multitrack()[source]

Choose a random multitrack

Returns

Multitrack – a Multitrack object instantiated by a random mtrack_id

choice_track()[source]

Choose a random track

Returns

Track – a Track object instantiated by a random track_id

cite()[source]

Print the reference

property default_path

Get the default path for the dataset

Returns

str – Local path to the dataset

download(partial_download=None, force_overwrite=False, cleanup=False)[source]

Download data to save_dir and optionally print a message.

Parameters
  • partial_download (list or None) – A list of keys of remotes to partially download. If None, all data is downloaded

  • force_overwrite (bool) – If True, existing files are overwritten by the downloaded files.

  • cleanup (bool) – Whether to delete any zip/tar files after extracting.

Raises
  • ValueError – if invalid keys are passed to partial_download

  • IOError – if a downloaded file’s checksum is different from expected

license()[source]

Print the license

load_f0(*args, **kwargs)[source]

Load an ikala f0 annotation

Parameters

fhandle (str or file-like) – File-like object or path to f0 annotation file

Raises

IOError – If f0_path does not exist

Returns

F0Data – the f0 annotation data

load_instrumental_audio(*args, **kwargs)[source]

Load ikala instrumental audio

Parameters

fhandle (str or file-like) – File-like object or path to audio file

Returns

  • np.ndarray - audio signal

  • float - sample rate

load_lyrics(*args, **kwargs)[source]

Load an ikala lyrics annotation

Parameters

fhandle (str or file-like) – File-like object or path to lyric annotation file

Raises

IOError – if lyrics_path does not exist

Returns

LyricData – lyric annotation data

load_mix_audio(*args, **kwargs)[source]

Load an ikala mix.

Parameters

fhandle (str or file-like) – File-like object or path to audio file

Returns

  • np.ndarray - audio signal

  • float - sample rate

load_multitracks()[source]

Load all multitracks in the dataset

Returns

dict – {mtrack_id: multitrack data}

Raises

NotImplementedError – If the dataset does not support Multitracks

load_notes(*args, **kwargs)[source]

load a note annotation file

Parameters

fhandle (str or file-like) – str or file-like to note annotation file

Raises

IOError – if file doesn’t exist

Returns

NoteData – note annotation

load_pronunciations(*args, **kwargs)[source]

Load an ikala pronunciation annotation

Parameters

fhandle (str or file-like) – File-like object or path to lyric annotation file

Raises

IOError – if lyrics_path does not exist

Returns

LyricData – pronunciation annotation data

load_tracks()[source]

Load all tracks in the dataset

Returns

dict – {track_id: track data}

Raises

NotImplementedError – If the dataset does not support Tracks

load_vocal_audio(*args, **kwargs)[source]

Load ikala vocal audio

Parameters

fhandle (str or file-like) – File-like object or path to audio file

Returns

  • np.ndarray - audio signal

  • float - sample rate

mtrack_ids[source]

Return track ids

Returns

list – A list of track ids

track_ids[source]

Return track ids

Returns

list – A list of track ids

validate(verbose=True)[source]

Validate if the stored dataset is a valid version

Parameters

verbose (bool) – If False, don’t print output

Returns

  • list - files in the index but are missing locally

  • list - files which have an invalid checksum

class mirdata.datasets.ikala.Track(track_id, data_home, dataset_name, index, metadata)[source]

ikala Track class

Parameters

track_id (str) – track id of the track

Variables
  • audio_path (str) – path to the track’s audio file

  • f0_path (str) – path to the track’s f0 annotation file

  • notes_pyin_path (str) – path to the note annotation file

  • lyrics_path (str) – path to the track’s lyric annotation file

  • section (str) – section. Either ‘verse’ or ‘chorus’

  • singer_id (str) – singer id

  • song_id (str) – song id of the track

  • track_id (str) – track id

Other Parameters
  • f0 (F0Data) – human-annotated singing voice pitch

  • notes_pyin (NoteData) – notes estimated by the pyin algorithm

  • lyrics (LyricsData) – human-annotated lyrics

  • pronunciations (LyricsData) – human-annotation lyric pronunciations

get_path(key)[source]

Get absolute path to track audio and annotations. Returns None if the path in the index is None

Parameters

key (string) – Index key of the audio or annotation type

Returns

str or None – joined path string or None

property instrumental_audio

instrumental audio (mono)

Returns

  • np.ndarray - audio signal

  • float - sample rate

property mix_audio

mixture audio (mono)

Returns

  • np.ndarray - audio signal

  • float - sample rate

to_jams()[source]

Get the track’s data in jams format

Returns

jams.JAMS – the track’s data in jams format

property vocal_audio

solo vocal audio (mono)

Returns

  • np.ndarray - audio signal

  • float - sample rate

mirdata.datasets.ikala.load_f0(fhandle: TextIO)mirdata.annotations.F0Data[source]

Load an ikala f0 annotation

Parameters

fhandle (str or file-like) – File-like object or path to f0 annotation file

Raises

IOError – If f0_path does not exist

Returns

F0Data – the f0 annotation data

mirdata.datasets.ikala.load_instrumental_audio(fhandle: BinaryIO) → Tuple[numpy.ndarray, float][source]

Load ikala instrumental audio

Parameters

fhandle (str or file-like) – File-like object or path to audio file

Returns

  • np.ndarray - audio signal

  • float - sample rate

mirdata.datasets.ikala.load_lyrics(fhandle: TextIO)mirdata.annotations.LyricData[source]

Load an ikala lyrics annotation

Parameters

fhandle (str or file-like) – File-like object or path to lyric annotation file

Raises

IOError – if lyrics_path does not exist

Returns

LyricData – lyric annotation data

mirdata.datasets.ikala.load_mix_audio(fhandle: BinaryIO) → Tuple[numpy.ndarray, float][source]

Load an ikala mix.

Parameters

fhandle (str or file-like) – File-like object or path to audio file

Returns

  • np.ndarray - audio signal

  • float - sample rate

mirdata.datasets.ikala.load_notes(fhandle: TextIO) → Optional[mirdata.annotations.NoteData][source]

load a note annotation file

Parameters

fhandle (str or file-like) – str or file-like to note annotation file

Raises

IOError – if file doesn’t exist

Returns

NoteData – note annotation

mirdata.datasets.ikala.load_pronunciations(fhandle: TextIO)mirdata.annotations.LyricData[source]

Load an ikala pronunciation annotation

Parameters

fhandle (str or file-like) – File-like object or path to lyric annotation file

Raises

IOError – if lyrics_path does not exist

Returns

LyricData – pronunciation annotation data

mirdata.datasets.ikala.load_vocal_audio(fhandle: BinaryIO) → Tuple[numpy.ndarray, float][source]

Load ikala vocal audio

Parameters

fhandle (str or file-like) – File-like object or path to audio file

Returns

  • np.ndarray - audio signal

  • float - sample rate

irmas

IRMAS Loader

class mirdata.datasets.irmas.Dataset(data_home=None, version='default')[source]

The irmas dataset

Variables
  • data_home (str) – path where mirdata will look for the dataset

  • version (str) –

  • name (str) – the identifier of the dataset

  • bibtex (str or None) – dataset citation/s in bibtex format

  • indexes (dict or None) –

  • remotes (dict or None) – data to be downloaded

  • readme (str) – information about the dataset

  • track (function) – a function mapping a track_id to a mirdata.core.Track

  • multitrack (function) – a function mapping a mtrack_id to a mirdata.core.Multitrack

choice_multitrack()[source]

Choose a random multitrack

Returns

Multitrack – a Multitrack object instantiated by a random mtrack_id

choice_track()[source]

Choose a random track

Returns

Track – a Track object instantiated by a random track_id

cite()[source]

Print the reference

property default_path

Get the default path for the dataset

Returns

str – Local path to the dataset

download(partial_download=None, force_overwrite=False, cleanup=False)[source]

Download data to save_dir and optionally print a message.

Parameters
  • partial_download (list or None) – A list of keys of remotes to partially download. If None, all data is downloaded

  • force_overwrite (bool) – If True, existing files are overwritten by the downloaded files.

  • cleanup (bool) – Whether to delete any zip/tar files after extracting.

Raises
  • ValueError – if invalid keys are passed to partial_download

  • IOError – if a downloaded file’s checksum is different from expected

license()[source]

Print the license

load_audio(*args, **kwargs)[source]

Load a IRMAS dataset audio file.

Parameters

fhandle (str or file-like) – File-like object or path to audio file

Returns

  • np.ndarray - the mono audio signal

  • float - The sample rate of the audio file

load_multitracks()[source]

Load all multitracks in the dataset

Returns

dict – {mtrack_id: multitrack data}

Raises

NotImplementedError – If the dataset does not support Multitracks

load_pred_inst(*args, **kwargs)[source]

Load predominant instrument of track

Parameters

fhandle (str or file-like) – File-like object or path where the test annotations are stored.

Returns

list(str) – test track predominant instrument(s) annotations

load_tracks()[source]

Load all tracks in the dataset

Returns

dict – {track_id: track data}

Raises

NotImplementedError – If the dataset does not support Tracks

mtrack_ids[source]

Return track ids

Returns

list – A list of track ids

track_ids[source]

Return track ids

Returns

list – A list of track ids

validate(verbose=True)[source]

Validate if the stored dataset is a valid version

Parameters

verbose (bool) – If False, don’t print output

Returns

  • list - files in the index but are missing locally

  • list - files which have an invalid checksum

class mirdata.datasets.irmas.Track(track_id, data_home, dataset_name, index, metadata)[source]

IRMAS track class

Parameters
  • track_id (str) – track id of the track

  • data_home (str) – Local path where the dataset is stored. If None, looks for the data in the default directory, ~/mir_datasets/Mridangam-Stroke

Variables
  • track_id (str) – track id

  • predominant_instrument (list) – Training tracks predominant instrument

  • train (bool) – flag to identify if the track is from the training of the testing dataset

  • genre (str) – string containing the namecode of the genre of the track.

  • drum (bool) – flag to identify if the track contains drums or not.

Other Parameters

instrument (list) – list of predominant instruments as str

property audio

The track’s audio signal

Returns

  • np.ndarray - the mono audio signal

  • float - The sample rate of the audio file

get_path(key)[source]

Get absolute path to track audio and annotations. Returns None if the path in the index is None

Parameters

key (string) – Index key of the audio or annotation type

Returns

str or None – joined path string or None

to_jams()[source]

the track’s data in jams format

Returns

jams.JAMS – return track data in jam format

mirdata.datasets.irmas.load_audio(fhandle: BinaryIO) → Tuple[numpy.ndarray, float][source]

Load a IRMAS dataset audio file.

Parameters

fhandle (str or file-like) – File-like object or path to audio file

Returns

  • np.ndarray - the mono audio signal

  • float - The sample rate of the audio file

mirdata.datasets.irmas.load_pred_inst(fhandle: TextIO) → List[str][source]

Load predominant instrument of track

Parameters

fhandle (str or file-like) – File-like object or path where the test annotations are stored.

Returns

list(str) – test track predominant instrument(s) annotations

maestro

MAESTRO Dataset Loader

class mirdata.datasets.maestro.Dataset(data_home=None, version='default')[source]

The maestro dataset

Variables
  • data_home (str) – path where mirdata will look for the dataset

  • version (str) –

  • name (str) – the identifier of the dataset

  • bibtex (str or None) – dataset citation/s in bibtex format

  • indexes (dict or None) –

  • remotes (dict or None) – data to be downloaded

  • readme (str) – information about the dataset

  • track (function) – a function mapping a track_id to a mirdata.core.Track

  • multitrack (function) – a function mapping a mtrack_id to a mirdata.core.Multitrack

choice_multitrack()[source]

Choose a random multitrack

Returns

Multitrack – a Multitrack object instantiated by a random mtrack_id

choice_track()[source]

Choose a random track

Returns

Track – a Track object instantiated by a random track_id

cite()[source]

Print the reference

property default_path

Get the default path for the dataset

Returns

str – Local path to the dataset

download(partial_download=None, force_overwrite=False, cleanup=False)[source]

Download the dataset

Parameters
  • partial_download (list or None) – A list of keys of remotes to partially download. If None, all data is downloaded

  • force_overwrite (bool) – If True, existing files are overwritten by the downloaded files.

  • cleanup (bool) – Whether to delete any zip/tar files after extracting.

Raises
  • ValueError – if invalid keys are passed to partial_download

  • IOError – if a downloaded file’s checksum is different from expected

license()[source]

Print the license

load_audio(*args, **kwargs)[source]

Load a MAESTRO audio file.

Parameters

fhandle (str or file-like) – File-like object or path to audio file

Returns

  • np.ndarray - the mono audio signal

  • float - The sample rate of the audio file

load_midi(*args, **kwargs)[source]

Load a MAESTRO midi file.

Parameters

fhandle (str or file-like) – File-like object or path to midi file

Returns

pretty_midi.PrettyMIDI – pretty_midi object

load_multitracks()[source]

Load all multitracks in the dataset

Returns

dict – {mtrack_id: multitrack data}

Raises

NotImplementedError – If the dataset does not support Multitracks

load_notes(*args, **kwargs)[source]

Load note data from the midi file.

Parameters
  • midi_path (str) – path to midi file

  • midi (pretty_midi.PrettyMIDI) – pre-loaded midi object or None if None, the midi object is loaded using midi_path

Returns

NoteData – note annotations

load_tracks()[source]

Load all tracks in the dataset

Returns

dict – {track_id: track data}

Raises

NotImplementedError – If the dataset does not support Tracks

mtrack_ids[source]

Return track ids

Returns

list – A list of track ids

track_ids[source]

Return track ids

Returns

list – A list of track ids

validate(verbose=True)[source]

Validate if the stored dataset is a valid version

Parameters

verbose (bool) – If False, don’t print output

Returns

  • list - files in the index but are missing locally

  • list - files which have an invalid checksum

class mirdata.datasets.maestro.Track(track_id, data_home, dataset_name, index, metadata)[source]

MAESTRO Track class

Parameters

track_id (str) – track id of the track

Variables
  • audio_path (str) – Path to the track’s audio file

  • canonical_composer (str) – Composer of the piece, standardized on a single spelling for a given name.

  • canonical_title (str) – Title of the piece. Not guaranteed to be standardized to a single representation.

  • duration (float) – Duration in seconds, based on the MIDI file.

  • midi_path (str) – Path to the track’s MIDI file

  • split (str) – Suggested train/validation/test split.

  • track_id (str) – track id

  • year (int) – Year of performance.

Cached Property:

midi (pretty_midi.PrettyMIDI): object containing MIDI annotations notes (NoteData): annotated piano notes

property audio

The track’s audio

Returns

  • np.ndarray - audio signal

  • float - sample rate

get_path(key)[source]

Get absolute path to track audio and annotations. Returns None if the path in the index is None

Parameters

key (string) – Index key of the audio or annotation type

Returns

str or None – joined path string or None

to_jams()[source]

Get the track’s data in jams format

Returns

jams.JAMS – the track’s data in jams format

mirdata.datasets.maestro.load_audio(fhandle: BinaryIO) → Tuple[numpy.ndarray, float][source]

Load a MAESTRO audio file.

Parameters

fhandle (str or file-like) – File-like object or path to audio file

Returns

  • np.ndarray - the mono audio signal

  • float - The sample rate of the audio file

mirdata.datasets.maestro.load_midi(fhandle: BinaryIO)pretty_midi.PrettyMIDI[source]

Load a MAESTRO midi file.

Parameters

fhandle (str or file-like) – File-like object or path to midi file

Returns

pretty_midi.PrettyMIDI – pretty_midi object

mirdata.datasets.maestro.load_notes(midi_path, midi=None)[source]

Load note data from the midi file.

Parameters
  • midi_path (str) – path to midi file

  • midi (pretty_midi.PrettyMIDI) – pre-loaded midi object or None if None, the midi object is loaded using midi_path

Returns

NoteData – note annotations

medley_solos_db

Medley-solos-DB Dataset Loader.

class mirdata.datasets.medley_solos_db.Dataset(data_home=None, version='default')[source]

The medley_solos_db dataset

Variables
  • data_home (str) – path where mirdata will look for the dataset

  • version (str) –

  • name (str) – the identifier of the dataset

  • bibtex (str or None) – dataset citation/s in bibtex format

  • indexes (dict or None) –

  • remotes (dict or None) – data to be downloaded

  • readme (str) – information about the dataset

  • track (function) – a function mapping a track_id to a mirdata.core.Track

  • multitrack (function) – a function mapping a mtrack_id to a mirdata.core.Multitrack

choice_multitrack()[source]

Choose a random multitrack

Returns

Multitrack – a Multitrack object instantiated by a random mtrack_id

choice_track()[source]

Choose a random track

Returns

Track – a Track object instantiated by a random track_id

cite()[source]

Print the reference

property default_path

Get the default path for the dataset

Returns

str – Local path to the dataset

download(partial_download=None, force_overwrite=False, cleanup=False)[source]

Download data to save_dir and optionally print a message.

Parameters
  • partial_download (list or None) – A list of keys of remotes to partially download. If None, all data is downloaded

  • force_overwrite (bool) – If True, existing files are overwritten by the downloaded files.

  • cleanup (bool) – Whether to delete any zip/tar files after extracting.

Raises
  • ValueError – if invalid keys are passed to partial_download

  • IOError – if a downloaded file’s checksum is different from expected

license()[source]

Print the license

load_audio(*args, **kwargs)[source]

Load a Medley Solos DB audio file.

Parameters

fhandle (str or file-like) – File-like object or path to audio file

Returns

  • np.ndarray - the mono audio signal

  • float - The sample rate of the audio file

load_multitracks()[source]

Load all multitracks in the dataset

Returns

dict – {mtrack_id: multitrack data}

Raises

NotImplementedError – If the dataset does not support Multitracks

load_tracks()[source]

Load all tracks in the dataset

Returns

dict – {track_id: track data}

Raises

NotImplementedError – If the dataset does not support Tracks

mtrack_ids[source]

Return track ids

Returns

list – A list of track ids

track_ids[source]

Return track ids

Returns

list – A list of track ids

validate(verbose=True)[source]

Validate if the stored dataset is a valid version

Parameters

verbose (bool) – If False, don’t print output

Returns

  • list - files in the index but are missing locally

  • list - files which have an invalid checksum

class mirdata.datasets.medley_solos_db.Track(track_id, data_home, dataset_name, index, metadata)[source]

medley_solos_db Track class

Parameters

track_id (str) – track id of the track

Variables
  • audio_path (str) – path to the track’s audio file

  • instrument (str) – instrument encoded by its English name

  • instrument_id (int) – instrument encoded as an integer

  • song_id (int) – song encoded as an integer

  • subset (str) – either equal to ‘train’, ‘validation’, or ‘test’

  • track_id (str) – track id

property audio

The track’s audio

Returns

  • np.ndarray - audio signal

  • float - sample rate

get_path(key)[source]

Get absolute path to track audio and annotations. Returns None if the path in the index is None

Parameters

key (string) – Index key of the audio or annotation type

Returns

str or None – joined path string or None

to_jams()[source]

Get the track’s data in jams format

Returns

jams.JAMS – the track’s data in jams format

mirdata.datasets.medley_solos_db.load_audio(fhandle: BinaryIO) → Tuple[numpy.ndarray, float][source]

Load a Medley Solos DB audio file.

Parameters

fhandle (str or file-like) – File-like object or path to audio file

Returns

  • np.ndarray - the mono audio signal

  • float - The sample rate of the audio file

medleydb_melody

MedleyDB melody Dataset Loader

class mirdata.datasets.medleydb_melody.Dataset(data_home=None, version='default')[source]

The medleydb_melody dataset

Variables
  • data_home (str) – path where mirdata will look for the dataset

  • version (str) –

  • name (str) – the identifier of the dataset

  • bibtex (str or None) – dataset citation/s in bibtex format

  • indexes (dict or None) –

  • remotes (dict or None) – data to be downloaded

  • readme (str) – information about the dataset

  • track (function) – a function mapping a track_id to a mirdata.core.Track

  • multitrack (function) – a function mapping a mtrack_id to a mirdata.core.Multitrack

choice_multitrack()[source]

Choose a random multitrack

Returns

Multitrack – a Multitrack object instantiated by a random mtrack_id

choice_track()[source]

Choose a random track

Returns

Track – a Track object instantiated by a random track_id

cite()[source]

Print the reference

property default_path

Get the default path for the dataset

Returns

str – Local path to the dataset

download(partial_download=None, force_overwrite=False, cleanup=False)[source]

Download data to save_dir and optionally print a message.

Parameters
  • partial_download (list or None) – A list of keys of remotes to partially download. If None, all data is downloaded

  • force_overwrite (bool) – If True, existing files are overwritten by the downloaded files.

  • cleanup (bool) – Whether to delete any zip/tar files after extracting.

Raises
  • ValueError – if invalid keys are passed to partial_download

  • IOError – if a downloaded file’s checksum is different from expected

license()[source]

Print the license

load_audio(*args, **kwargs)[source]

Load a MedleyDB audio file.

Parameters

fhandle (str or file-like) – File-like object or path to audio file

Returns

  • np.ndarray - the mono audio signal

  • float - The sample rate of the audio file

load_melody(*args, **kwargs)[source]

Load a MedleyDB melody1 or melody2 annotation file

Parameters

fhandle (str or file-like) – File-like object or path to a melody annotation file

Raises

IOError – if melody_path does not exist

Returns

F0Data – melody data

load_melody3(*args, **kwargs)[source]

Load a MedleyDB melody3 annotation file

Parameters

fhandle (str or file-like) – File-like object or melody 3 melody annotation path

Raises

IOError – if melody_path does not exist

Returns

MultiF0Data – melody 3 annotation data

load_multitracks()[source]

Load all multitracks in the dataset

Returns

dict – {mtrack_id: multitrack data}

Raises

NotImplementedError – If the dataset does not support Multitracks

load_tracks()[source]

Load all tracks in the dataset

Returns

dict – {track_id: track data}

Raises

NotImplementedError – If the dataset does not support Tracks

mtrack_ids[source]

Return track ids

Returns

list – A list of track ids

track_ids[source]

Return track ids

Returns

list – A list of track ids

validate(verbose=True)[source]

Validate if the stored dataset is a valid version

Parameters

verbose (bool) – If False, don’t print output

Returns

  • list - files in the index but are missing locally

  • list - files which have an invalid checksum

class mirdata.datasets.medleydb_melody.Track(track_id, data_home, dataset_name, index, metadata)[source]

medleydb_melody Track class

Parameters

track_id (str) – track id of the track

Variables
  • artist (str) – artist

  • audio_path (str) – path to the audio file

  • genre (str) – genre

  • is_excerpt (bool) – True if the track is an excerpt

  • is_instrumental (bool) – True of the track does not contain vocals

  • melody1_path (str) – path to the melody1 annotation file

  • melody2_path (str) – path to the melody2 annotation file

  • melody3_path (str) – path to the melody3 annotation file

  • n_sources (int) – Number of instruments in the track

  • title (str) – title

  • track_id (str) – track id

Other Parameters
  • melody1 (F0Data) – the pitch of the single most predominant source (often the voice)

  • melody2 (F0Data) – the pitch of the predominant source for each point in time

  • melody3 (MultiF0Data) – the pitch of any melodic source. Allows for more than one f0 value at a time

property audio

The track’s audio

Returns

  • np.ndarray - audio signal

  • float - sample rate

get_path(key)[source]

Get absolute path to track audio and annotations. Returns None if the path in the index is None

Parameters

key (string) – Index key of the audio or annotation type

Returns

str or None – joined path string or None

to_jams()[source]

Get the track’s data in jams format

Returns

jams.JAMS – the track’s data in jams format

mirdata.datasets.medleydb_melody.load_audio(fhandle: BinaryIO) → Tuple[numpy.ndarray, float][source]

Load a MedleyDB audio file.

Parameters

fhandle (str or file-like) – File-like object or path to audio file

Returns

  • np.ndarray - the mono audio signal

  • float - The sample rate of the audio file

mirdata.datasets.medleydb_melody.load_melody(fhandle: TextIO)mirdata.annotations.F0Data[source]

Load a MedleyDB melody1 or melody2 annotation file

Parameters

fhandle (str or file-like) – File-like object or path to a melody annotation file

Raises

IOError – if melody_path does not exist

Returns

F0Data – melody data

mirdata.datasets.medleydb_melody.load_melody3(fhandle: TextIO)mirdata.annotations.MultiF0Data[source]

Load a MedleyDB melody3 annotation file

Parameters

fhandle (str or file-like) – File-like object or melody 3 melody annotation path

Raises

IOError – if melody_path does not exist

Returns

MultiF0Data – melody 3 annotation data

medleydb_pitch

MedleyDB pitch Dataset Loader

class mirdata.datasets.medleydb_pitch.Dataset(data_home=None, version='default')[source]

The medleydb_pitch dataset

Variables
  • data_home (str) – path where mirdata will look for the dataset

  • version (str) –

  • name (str) – the identifier of the dataset

  • bibtex (str or None) – dataset citation/s in bibtex format

  • indexes (dict or None) –

  • remotes (dict or None) – data to be downloaded

  • readme (str) – information about the dataset

  • track (function) – a function mapping a track_id to a mirdata.core.Track

  • multitrack (function) – a function mapping a mtrack_id to a mirdata.core.Multitrack

choice_multitrack()[source]

Choose a random multitrack

Returns

Multitrack – a Multitrack object instantiated by a random mtrack_id

choice_track()[source]

Choose a random track

Returns

Track – a Track object instantiated by a random track_id

cite()[source]

Print the reference

property default_path

Get the default path for the dataset

Returns

str – Local path to the dataset

download(partial_download=None, force_overwrite=False, cleanup=False)[source]

Download data to save_dir and optionally print a message.

Parameters
  • partial_download (list or None) – A list of keys of remotes to partially download. If None, all data is downloaded

  • force_overwrite (bool) – If True, existing files are overwritten by the downloaded files.

  • cleanup (bool) – Whether to delete any zip/tar files after extracting.

Raises
  • ValueError – if invalid keys are passed to partial_download

  • IOError – if a downloaded file’s checksum is different from expected

license()[source]

Print the license

load_audio(*args, **kwargs)[source]

Load a MedleyDB audio file.

Parameters

fhandle (str or file-like) – File-like object or path to audio file

Returns

  • np.ndarray - the mono audio signal

  • float - The sample rate of the audio file

load_multitracks()[source]

Load all multitracks in the dataset

Returns

dict – {mtrack_id: multitrack data}

Raises

NotImplementedError – If the dataset does not support Multitracks

load_notes(*args, **kwargs)[source]

load a note annotation file

Parameters

fhandle (str or file-like) – str or file-like to note annotation file

Raises

IOError – if file doesn’t exist

Returns

NoteData – note annotation

load_pitch(*args, **kwargs)[source]

load a MedleyDB pitch annotation file

Parameters

fhandle (str or file-like) – str or file-like to pitch annotation file

Raises

IOError – if the path doesn’t exist

Returns

F0Data – pitch annotation

load_tracks()[source]

Load all tracks in the dataset

Returns

dict – {track_id: track data}

Raises

NotImplementedError – If the dataset does not support Tracks

mtrack_ids[source]

Return track ids

Returns

list – A list of track ids

track_ids[source]

Return track ids

Returns

list – A list of track ids

validate(verbose=True)[source]

Validate if the stored dataset is a valid version

Parameters

verbose (bool) – If False, don’t print output

Returns

  • list - files in the index but are missing locally

  • list - files which have an invalid checksum

class mirdata.datasets.medleydb_pitch.Track(track_id, data_home, dataset_name, index, metadata)[source]

medleydb_pitch Track class

Parameters

track_id (str) – track id of the track

Variables
  • artist (str) – artist

  • audio_path (str) – path to the audio file

  • genre (str) – genre

  • instrument (str) – instrument of the track

  • notes_pyin_path (str) – path to the pyin note annotation file

  • pitch_path (str) – path to the pitch annotation file

  • title (str) – title

  • track_id (str) – track id

Other Parameters
  • pitch (F0Data) – human annotated pitch

  • notes_pyin (NoteData) – notes estimated by the pyin algorithm. Not available in version 2.0

property audio

The track’s audio

Returns

  • np.ndarray - audio signal

  • float - sample rate

get_path(key)[source]

Get absolute path to track audio and annotations. Returns None if the path in the index is None

Parameters

key (string) – Index key of the audio or annotation type

Returns

str or None – joined path string or None

to_jams()[source]

Get the track’s data in jams format

Returns

jams.JAMS – the track’s data in jams format

mirdata.datasets.medleydb_pitch.load_audio(fhandle: BinaryIO) → Tuple[numpy.ndarray, float][source]

Load a MedleyDB audio file.

Parameters

fhandle (str or file-like) – File-like object or path to audio file

Returns

  • np.ndarray - the mono audio signal

  • float - The sample rate of the audio file

mirdata.datasets.medleydb_pitch.load_notes(fhandle: TextIO) → Optional[mirdata.annotations.NoteData][source]

load a note annotation file

Parameters

fhandle (str or file-like) – str or file-like to note annotation file

Raises

IOError – if file doesn’t exist

Returns

NoteData – note annotation

mirdata.datasets.medleydb_pitch.load_pitch(fhandle: TextIO)mirdata.annotations.F0Data[source]

load a MedleyDB pitch annotation file

Parameters

fhandle (str or file-like) – str or file-like to pitch annotation file

Raises

IOError – if the path doesn’t exist

Returns

F0Data – pitch annotation

mridangam_stroke

Mridangam Stroke Dataset Loader

class mirdata.datasets.mridangam_stroke.Dataset(data_home=None, version='default')[source]

The mridangam_stroke dataset

Variables
  • data_home (str) – path where mirdata will look for the dataset

  • version (str) –

  • name (str) – the identifier of the dataset

  • bibtex (str or None) – dataset citation/s in bibtex format

  • indexes (dict or None) –

  • remotes (dict or None) – data to be downloaded

  • readme (str) – information about the dataset

  • track (function) – a function mapping a track_id to a mirdata.core.Track

  • multitrack (function) – a function mapping a mtrack_id to a mirdata.core.Multitrack

choice_multitrack()[source]

Choose a random multitrack

Returns

Multitrack – a Multitrack object instantiated by a random mtrack_id

choice_track()[source]

Choose a random track

Returns

Track – a Track object instantiated by a random track_id

cite()[source]

Print the reference

property default_path

Get the default path for the dataset

Returns

str – Local path to the dataset

download(partial_download=None, force_overwrite=False, cleanup=False)[source]

Download data to save_dir and optionally print a message.

Parameters
  • partial_download (list or None) – A list of keys of remotes to partially download. If None, all data is downloaded

  • force_overwrite (bool) – If True, existing files are overwritten by the downloaded files.

  • cleanup (bool) – Whether to delete any zip/tar files after extracting.

Raises
  • ValueError – if invalid keys are passed to partial_download

  • IOError – if a downloaded file’s checksum is different from expected

license()[source]

Print the license

load_audio(*args, **kwargs)[source]

Load a Mridangam Stroke Dataset audio file.

Parameters

fhandle (str or file-like) – File-like object or path to audio file

Returns

  • np.ndarray - the mono audio signal

  • float - The sample rate of the audio file

load_multitracks()[source]

Load all multitracks in the dataset

Returns

dict – {mtrack_id: multitrack data}

Raises

NotImplementedError – If the dataset does not support Multitracks

load_tracks()[source]

Load all tracks in the dataset

Returns

dict – {track_id: track data}

Raises

NotImplementedError – If the dataset does not support Tracks

mtrack_ids[source]

Return track ids

Returns

list – A list of track ids

track_ids[source]

Return track ids

Returns

list – A list of track ids

validate(verbose=True)[source]

Validate if the stored dataset is a valid version

Parameters

verbose (bool) – If False, don’t print output

Returns

  • list - files in the index but are missing locally

  • list - files which have an invalid checksum

class mirdata.datasets.mridangam_stroke.Track(track_id, data_home, dataset_name, index, metadata)[source]

Mridangam Stroke track class

Parameters
  • track_id (str) – track id of the track

  • data_home (str) – Local path where the dataset is stored.

Variables
  • track_id (str) – track id

  • audio_path (str) – audio path

  • stroke_name (str) – name of the Mridangam stroke present in Track

  • tonic (str) – tonic of the stroke in the Track

property audio

The track’s audio

Returns

  • np.ndarray - audio signal

  • float - sample rate

get_path(key)[source]

Get absolute path to track audio and annotations. Returns None if the path in the index is None

Parameters

key (string) – Index key of the audio or annotation type

Returns

str or None – joined path string or None

to_jams()[source]

Get the track’s data in jams format

Returns

jams.JAMS – the track’s data in jams format

mirdata.datasets.mridangam_stroke.load_audio(fhandle: BinaryIO) → Tuple[numpy.ndarray, float][source]

Load a Mridangam Stroke Dataset audio file.

Parameters

fhandle (str or file-like) – File-like object or path to audio file

Returns

  • np.ndarray - the mono audio signal

  • float - The sample rate of the audio file

orchset

ORCHSET Dataset Loader

class mirdata.datasets.orchset.Dataset(data_home=None, version='default')[source]

The orchset dataset

Variables
  • data_home (str) – path where mirdata will look for the dataset

  • version (str) –

  • name (str) – the identifier of the dataset

  • bibtex (str or None) – dataset citation/s in bibtex format

  • indexes (dict or None) –

  • remotes (dict or None) – data to be downloaded

  • readme (str) – information about the dataset

  • track (function) – a function mapping a track_id to a mirdata.core.Track

  • multitrack (function) – a function mapping a mtrack_id to a mirdata.core.Multitrack

choice_multitrack()[source]

Choose a random multitrack

Returns

Multitrack – a Multitrack object instantiated by a random mtrack_id

choice_track()[source]

Choose a random track

Returns

Track – a Track object instantiated by a random track_id

cite()[source]

Print the reference

property default_path

Get the default path for the dataset

Returns

str – Local path to the dataset

download(partial_download=None, force_overwrite=False, cleanup=False)[source]

Download data to save_dir and optionally print a message.

Parameters
  • partial_download (list or None) – A list of keys of remotes to partially download. If None, all data is downloaded

  • force_overwrite (bool) – If True, existing files are overwritten by the downloaded files.

  • cleanup (bool) – Whether to delete any zip/tar files after extracting.

Raises
  • ValueError – if invalid keys are passed to partial_download

  • IOError – if a downloaded file’s checksum is different from expected

license()[source]

Print the license

load_audio_mono(*args, **kwargs)[source]

Load an Orchset audio file.

Parameters

fhandle (str or file-like) – File-like object or path to audio file

Returns

  • np.ndarray - the mono audio signal

  • float - The sample rate of the audio file

load_audio_stereo(*args, **kwargs)[source]

Load an Orchset audio file.

Parameters

fhandle (str or file-like) – File-like object or path to audio file

Returns

  • np.ndarray - the stereo audio signal

  • float - The sample rate of the audio file

load_melody(*args, **kwargs)[source]

Load an Orchset melody annotation file

Parameters

fhandle (str or file-like) – File-like object or path to melody annotation file

Raises

IOError – if melody_path doesn’t exist

Returns

F0Data – melody annotation data

load_multitracks()[source]

Load all multitracks in the dataset

Returns

dict – {mtrack_id: multitrack data}

Raises

NotImplementedError – If the dataset does not support Multitracks

load_tracks()[source]

Load all tracks in the dataset

Returns

dict – {track_id: track data}

Raises

NotImplementedError – If the dataset does not support Tracks

mtrack_ids[source]

Return track ids

Returns

list – A list of track ids

track_ids[source]

Return track ids

Returns

list – A list of track ids

validate(verbose=True)[source]

Validate if the stored dataset is a valid version

Parameters

verbose (bool) – If False, don’t print output

Returns

  • list - files in the index but are missing locally

  • list - files which have an invalid checksum

class mirdata.datasets.orchset.Track(track_id, data_home, dataset_name, index, metadata)[source]

orchset Track class

Parameters

track_id (str) – track id of the track

Variables
  • alternating_melody (bool) – True if the melody alternates between instruments

  • audio_path_mono (str) – path to the mono audio file

  • audio_path_stereo (str) – path to the stereo audio file

  • composer (str) – the work’s composer

  • contains_brass (bool) – True if the track contains any brass instrument

  • contains_strings (bool) – True if the track contains any string instrument

  • contains_winds (bool) – True if the track contains any wind instrument

  • excerpt (str) – True if the track is an excerpt

  • melody_path (str) – path to the melody annotation file

  • only_brass (bool) – True if the track contains brass instruments only

  • only_strings (bool) – True if the track contains string instruments only

  • only_winds (bool) – True if the track contains wind instruments only

  • predominant_melodic_instruments (list) – List of instruments which play the melody

  • track_id (str) – track id

  • work (str) – The musical work

Other Parameters

melody (F0Data) – melody annotation

property audio_mono

the track’s audio (mono)

Returns

  • np.ndarray - the mono audio signal

  • float - The sample rate of the audio file

property audio_stereo

the track’s audio (stereo)

Returns

  • np.ndarray - the mono audio signal

  • float - The sample rate of the audio file

get_path(key)[source]

Get absolute path to track audio and annotations. Returns None if the path in the index is None

Parameters

key (string) – Index key of the audio or annotation type

Returns

str or None – joined path string or None

to_jams()[source]

Get the track’s data in jams format

Returns

jams.JAMS – the track’s data in jams format

mirdata.datasets.orchset.load_audio_mono(fhandle: BinaryIO) → Tuple[numpy.ndarray, float][source]

Load an Orchset audio file.

Parameters

fhandle (str or file-like) – File-like object or path to audio file

Returns

  • np.ndarray - the mono audio signal

  • float - The sample rate of the audio file

mirdata.datasets.orchset.load_audio_stereo(fhandle: BinaryIO) → Tuple[numpy.ndarray, float][source]

Load an Orchset audio file.

Parameters

fhandle (str or file-like) – File-like object or path to audio file

Returns

  • np.ndarray - the stereo audio signal

  • float - The sample rate of the audio file

mirdata.datasets.orchset.load_melody(fhandle: TextIO)mirdata.annotations.F0Data[source]

Load an Orchset melody annotation file

Parameters

fhandle (str or file-like) – File-like object or path to melody annotation file

Raises

IOError – if melody_path doesn’t exist

Returns

F0Data – melody annotation data

phenicx_anechoic

PHENICX-Anechoic Dataset Loader

class mirdata.datasets.phenicx_anechoic.Dataset(data_home=None, version='default')[source]

The Phenicx-Anechoic dataset

Variables
  • data_home (str) – path where mirdata will look for the dataset

  • version (str) –

  • name (str) – the identifier of the dataset

  • bibtex (str or None) – dataset citation/s in bibtex format

  • indexes (dict or None) –

  • remotes (dict or None) – data to be downloaded

  • readme (str) – information about the dataset

  • track (function) – a function mapping a track_id to a mirdata.core.Track

  • multitrack (function) – a function mapping a mtrack_id to a mirdata.core.Multitrack

choice_multitrack()[source]

Choose a random multitrack

Returns

Multitrack – a Multitrack object instantiated by a random mtrack_id

choice_track()[source]

Choose a random track

Returns

Track – a Track object instantiated by a random track_id

cite()[source]

Print the reference

property default_path

Get the default path for the dataset

Returns

str – Local path to the dataset

download(partial_download=None, force_overwrite=False, cleanup=False)[source]

Download data to save_dir and optionally print a message.

Parameters
  • partial_download (list or None) – A list of keys of remotes to partially download. If None, all data is downloaded

  • force_overwrite (bool) – If True, existing files are overwritten by the downloaded files.

  • cleanup (bool) – Whether to delete any zip/tar files after extracting.

Raises
  • ValueError – if invalid keys are passed to partial_download

  • IOError – if a downloaded file’s checksum is different from expected

license()[source]

Print the license

load_audio(*args, **kwargs)[source]

Load a Phenicx-Anechoic audio file.

Parameters

fhandle (str or file-like) – File-like object or path to audio file

Returns

  • np.ndarray - the audio signal

  • float - The sample rate of the audio file

load_multitracks()[source]

Load all multitracks in the dataset

Returns

dict – {mtrack_id: multitrack data}

Raises

NotImplementedError – If the dataset does not support Multitracks

load_score(*args, **kwargs)[source]

Load a Phenicx-Anechoic score file.

Parameters

fhandle (str or file-like) – File-like object or path to score file

Returns

NoteData – Note data for the given track

load_tracks()[source]

Load all tracks in the dataset

Returns

dict – {track_id: track data}

Raises

NotImplementedError – If the dataset does not support Tracks

mtrack_ids[source]

Return track ids

Returns

list – A list of track ids

track_ids[source]

Return track ids

Returns

list – A list of track ids

validate(verbose=True)[source]

Validate if the stored dataset is a valid version

Parameters

verbose (bool) – If False, don’t print output

Returns

  • list - files in the index but are missing locally

  • list - files which have an invalid checksum

class mirdata.datasets.phenicx_anechoic.MultiTrack(mtrack_id, data_home, dataset_name, index, track_class, metadata)[source]

Phenicx-Anechoic MultiTrack class

Parameters
  • mtrack_id (str) – track id of the track

  • data_home (str) – Local path where the dataset is stored. If None, looks for the data in the default directory, ~/mir_datasets/Phenicx-Anechoic

Variables
  • track_audio_property (str) – the attribute of track which is used for mixing

  • mtrack_id (str) – multitrack id

  • piece (str) – the classical music piece associated with this multitrack

  • tracks (dict) – dict of track ids and the corresponding Tracks

  • instruments (dict) – dict of instruments and the corresponding track

  • sections (dict) – dict of sections and the corresponding list of tracks for each section

get_audio_for_instrument(instrument)[source]

Get the audio for a particular instrument

Parameters

instrument (str) – the instrument to get audio for

Returns

np.ndarray – instrument audio with shape (n_samples, n_channels)

get_audio_for_section(section)[source]

Get the audio for a particular section

Parameters

section (str) – the section to get audio for

Returns

np.ndarray – section audio with shape (n_samples, n_channels)

get_mix()[source]

Create a linear mixture given a subset of tracks.

Parameters

track_keys (list) – list of track keys to mix together

Returns

np.ndarray – mixture audio with shape (n_samples, n_channels)

get_notes_for_instrument(instrument, notes_property='notes')[source]

Get the notes for a particular instrument

Parameters
  • instrument (str) – the instrument to get the notes for

  • notes_property (str) – the attribute associated with NoteData, notes or notes_original

Returns

NoteData – Note data for the instrument

get_notes_for_section(section, notes_property='notes')[source]

Get the notes for a particular section

Parameters
  • section (str) – the section to get the notes for

  • notes_property (str) – the attribute associated with NoteData, notes or notes_original

Returns

NoteData – Note data for the section

get_notes_target(track_keys, notes_property='notes')[source]

Get the notes for all the tracks

Parameters
  • track_keys (list) – list of track keys to get the NoteData for

  • notes_property (str) – the attribute associated with NoteData, notes or notes_original

Returns

NoteData – Note data for the tracks

get_path(key)[source]

Get absolute path to multitrack audio and annotations. Returns None if the path in the index is None

Parameters

key (string) – Index key of the audio or annotation type

Returns

str or None – joined path string or None

get_random_target(n_tracks=None, min_weight=0.3, max_weight=1.0)[source]

Get a random target by combining a random selection of tracks with random weights

Parameters
  • n_tracks (int or None) – number of tracks to randomly mix. If None, uses all tracks

  • min_weight (float) – minimum possible weight when mixing

  • max_weight (float) – maximum possible weight when mixing

Returns

  • np.ndarray - mixture audio with shape (n_samples, n_channels)

  • list - list of keys of included tracks

  • list - list of weights used to mix tracks

get_target(track_keys, weights=None, average=True, enforce_length=True)[source]

Get target which is a linear mixture of tracks

Parameters
  • track_keys (list) – list of track keys to mix together

  • weights (list or None) – list of positive scalars to be used in the average

  • average (bool) – if True, computes a weighted average of the tracks if False, computes a weighted sum of the tracks

  • enforce_length (bool) – If True, raises ValueError if the tracks are not the same length. If False, pads audio with zeros to match the length of the longest track

Returns

np.ndarray – target audio with shape (n_channels, n_samples)

Raises

ValueError – if sample rates of the tracks are not equal if enforce_length=True and lengths are not equal

class mirdata.datasets.phenicx_anechoic.Track(track_id, data_home, dataset_name, index, metadata)[source]

Phenicx-Anechoic Track class

Parameters

track_id (str) – track id of the track

Variables
  • audio_path (list) – path to the audio files

  • notes_path (list) – path to the score files

  • notes_original_path (list) – path to the original score files

  • instrument (str) – the name of the instrument

  • piece (str) – the name of the piece

  • n_voices (int) – the number of voices in this instrument

  • track_id (str) – track id

Other Parameters

melody (F0Data) – melody annotation

property audio

the track’s audio

Returns

  • np.ndarray - the mono audio signal

  • float - The sample rate of the audio file

get_audio_voice(id_voice: int) → Optional[Tuple[numpy.ndarray, float]][source]

the track’s audio

Parameters

id_voice (int) – The integer identifier for the voice e.g. 2 for bassoon-2

Returns

  • np.ndarray - the mono audio signal

  • float - The sample rate of the audio file

get_path(key)[source]

Get absolute path to track audio and annotations. Returns None if the path in the index is None

Parameters

key (string) – Index key of the audio or annotation type

Returns

str or None – joined path string or None

notes

the track’s notes corresponding to the score aligned to the audio

Returns

NoteData – Note data for the track

notes_original

the track’s notes corresponding to the original score

Returns

NoteData – Note data for the track

to_jams()[source]

Get the track’s data in jams format

Returns

jams.JAMS – the track’s data in jams format

mirdata.datasets.phenicx_anechoic.load_audio(fhandle: BinaryIO) → Tuple[numpy.ndarray, float][source]

Load a Phenicx-Anechoic audio file.

Parameters

fhandle (str or file-like) – File-like object or path to audio file

Returns

  • np.ndarray - the audio signal

  • float - The sample rate of the audio file

mirdata.datasets.phenicx_anechoic.load_score(fhandle: TextIO)mirdata.annotations.NoteData[source]

Load a Phenicx-Anechoic score file.

Parameters

fhandle (str or file-like) – File-like object or path to score file

Returns

NoteData – Note data for the given track

queen

Queen Dataset Loader

class mirdata.datasets.queen.Dataset(data_home=None, version='default')[source]

Queen dataset

Variables
  • data_home (str) – path where mirdata will look for the dataset

  • version (str) –

  • name (str) – the identifier of the dataset

  • bibtex (str or None) – dataset citation/s in bibtex format

  • indexes (dict or None) –

  • remotes (dict or None) – data to be downloaded

  • readme (str) – information about the dataset

  • track (function) – a function mapping a track_id to a mirdata.core.Track

  • multitrack (function) – a function mapping a mtrack_id to a mirdata.core.Multitrack

load_audio(*args, **kwargs)[source]

Load a Queen audio file.

Parameters

fhandle (str) – path to an audio file

Returns

  • np.ndarray - the mono audio signal

  • float - The sample rate of the audio file

load_chords(*args, **kwargs)[source]

Load Queen format chord data from a file

Parameters

fhandle (str or file-like) – path or file-like object pointing to a chord file

Returns

(ChordData) – loaded chord data

load_key(*args, **kwargs)[source]

Load Queen format key data from a file

Parameters

fhandle (str or file-like) – path or file-like object pointing to a key file

Returns

(KeyData) – loaded key data

load_sections(*args, **kwargs)[source]

Load Queen format section data from a file

Parameters

fhandle (str or file-like) – path or file-like object pointing to a section file

Returns

(SectionData) – loaded section data

class mirdata.datasets.queen.Track(track_id, data_home, dataset_name, index, metadata)[source]

Queen track class

Parameters

track_id (str) – track id of the track

Variables
  • audio_path (str) – track audio path

  • chords_path (str) – chord annotation path

  • keys_path (str) – key annotation path

  • sections_path (str) – sections annotation path

  • title (str) – title of the track

  • track_id (str) – track id

Other Parameters
  • chords (ChordData) – human-labeled chord annotations

  • key (KeyData) – local key annotations

  • sections (SectionData) – section annotations

property audio

The track’s audio

Returns

  • np.ndarray - audio signal

  • float - sample rate

to_jams()[source]

the track’s data in jams format

Returns

jams.JAMS – return track data in jam format

mirdata.datasets.queen.load_audio(fhandle: BinaryIO) → Tuple[numpy.ndarray, float][source]

Load a Queen audio file.

Parameters

fhandle (str) – path to an audio file

Returns

  • np.ndarray - the mono audio signal

  • float - The sample rate of the audio file

mirdata.datasets.queen.load_chords(fhandle: TextIO)mirdata.annotations.ChordData[source]

Load Queen format chord data from a file

Parameters

fhandle (str or file-like) – path or file-like object pointing to a chord file

Returns

(ChordData) – loaded chord data

mirdata.datasets.queen.load_key(fhandle: TextIO)mirdata.annotations.KeyData[source]

Load Queen format key data from a file

Parameters

fhandle (str or file-like) – path or file-like object pointing to a key file

Returns

(KeyData) – loaded key data

mirdata.datasets.queen.load_sections(fhandle: TextIO)mirdata.annotations.SectionData[source]

Load Queen format section data from a file

Parameters

fhandle (str or file-like) – path or file-like object pointing to a section file

Returns

(SectionData) – loaded section data

rwc_classical

RWC Classical Dataset Loader

class mirdata.datasets.rwc_classical.Dataset(data_home=None, version='default')[source]

The rwc_classical dataset

Variables
  • data_home (str) – path where mirdata will look for the dataset

  • version (str) –

  • name (str) – the identifier of the dataset

  • bibtex (str or None) – dataset citation/s in bibtex format

  • indexes (dict or None) –

  • remotes (dict or None) – data to be downloaded

  • readme (str) – information about the dataset

  • track (function) – a function mapping a track_id to a mirdata.core.Track

  • multitrack (function) – a function mapping a mtrack_id to a mirdata.core.Multitrack

choice_multitrack()[source]

Choose a random multitrack

Returns

Multitrack – a Multitrack object instantiated by a random mtrack_id

choice_track()[source]

Choose a random track

Returns

Track – a Track object instantiated by a random track_id

cite()[source]

Print the reference

property default_path

Get the default path for the dataset

Returns

str – Local path to the dataset

download(partial_download=None, force_overwrite=False, cleanup=False)[source]

Download data to save_dir and optionally print a message.

Parameters
  • partial_download (list or None) – A list of keys of remotes to partially download. If None, all data is downloaded

  • force_overwrite (bool) – If True, existing files are overwritten by the downloaded files.

  • cleanup (bool) – Whether to delete any zip/tar files after extracting.

Raises
  • ValueError – if invalid keys are passed to partial_download

  • IOError – if a downloaded file’s checksum is different from expected

license()[source]

Print the license

load_audio(*args, **kwargs)[source]

Load a RWC audio file.

Parameters

fhandle (str or file-like) – File-like object or path to audio file

Returns

  • np.ndarray - the mono audio signal

  • float - The sample rate of the audio file

load_beats(*args, **kwargs)[source]

Load rwc beat data from a file

Parameters

fhandle (str or file-like) – File-like object or path to beats annotation file

Returns

BeatData – beat data

load_multitracks()[source]

Load all multitracks in the dataset

Returns

dict – {mtrack_id: multitrack data}

Raises

NotImplementedError – If the dataset does not support Multitracks

load_sections(*args, **kwargs)[source]

Load rwc section data from a file

Parameters

fhandle (str or file-like) – File-like object or path to sections annotation file

Returns

SectionData – section data

load_tracks()[source]

Load all tracks in the dataset

Returns

dict – {track_id: track data}

Raises

NotImplementedError – If the dataset does not support Tracks

mtrack_ids[source]

Return track ids

Returns

list – A list of track ids

track_ids[source]

Return track ids

Returns

list – A list of track ids

validate(verbose=True)[source]

Validate if the stored dataset is a valid version

Parameters

verbose (bool) – If False, don’t print output

Returns

  • list - files in the index but are missing locally

  • list - files which have an invalid checksum

class mirdata.datasets.rwc_classical.Track(track_id, data_home, dataset_name, index, metadata)[source]

rwc_classical Track class

Parameters

track_id (str) – track id of the track

Variables
  • artist (str) – the track’s artist

  • audio_path (str) – path of the audio file

  • beats_path (str) – path of the beat annotation file

  • category (str) – One of ‘Symphony’, ‘Concerto’, ‘Orchestral’, ‘Solo’, ‘Chamber’, ‘Vocal’, or blank.

  • composer (str) – Composer of this Track.

  • duration (float) – Duration of the track in seconds

  • piece_number (str) – Piece number of this Track, [1-50]

  • sections_path (str) – path of the section annotation file

  • suffix (str) – string within M01-M06

  • title (str) – Title of The track.

  • track_id (str) – track id

  • track_number (str) – CD track number of this Track

Other Parameters
  • sections (SectionData) – human-labeled section annotations

  • beats (BeatData) – human-labeled beat annotations

property audio

The track’s audio

Returns

  • np.ndarray - audio signal

  • float - sample rate

get_path(key)[source]

Get absolute path to track audio and annotations. Returns None if the path in the index is None

Parameters

key (string) – Index key of the audio or annotation type

Returns

str or None – joined path string or None

to_jams()[source]

Get the track’s data in jams format

Returns

jams.JAMS – the track’s data in jams format

mirdata.datasets.rwc_classical.load_audio(fhandle: BinaryIO) → Tuple[numpy.ndarray, float][source]

Load a RWC audio file.

Parameters

fhandle (str or file-like) – File-like object or path to audio file

Returns

  • np.ndarray - the mono audio signal

  • float - The sample rate of the audio file

mirdata.datasets.rwc_classical.load_beats(fhandle: TextIO)mirdata.annotations.BeatData[source]

Load rwc beat data from a file

Parameters

fhandle (str or file-like) – File-like object or path to beats annotation file

Returns

BeatData – beat data

mirdata.datasets.rwc_classical.load_sections(fhandle: TextIO) → Optional[mirdata.annotations.SectionData][source]

Load rwc section data from a file

Parameters

fhandle (str or file-like) – File-like object or path to sections annotation file

Returns

SectionData – section data

rwc_jazz

RWC Jazz Dataset Loader.

class mirdata.datasets.rwc_jazz.Dataset(data_home=None, version='default')[source]

The rwc_jazz dataset

Variables
  • data_home (str) – path where mirdata will look for the dataset

  • version (str) –

  • name (str) – the identifier of the dataset

  • bibtex (str or None) – dataset citation/s in bibtex format

  • indexes (dict or None) –

  • remotes (dict or None) – data to be downloaded

  • readme (str) – information about the dataset

  • track (function) – a function mapping a track_id to a mirdata.core.Track

  • multitrack (function) – a function mapping a mtrack_id to a mirdata.core.Multitrack

choice_multitrack()[source]

Choose a random multitrack

Returns

Multitrack – a Multitrack object instantiated by a random mtrack_id

choice_track()[source]

Choose a random track

Returns

Track – a Track object instantiated by a random track_id

cite()[source]

Print the reference

property default_path

Get the default path for the dataset

Returns

str – Local path to the dataset

download(partial_download=None, force_overwrite=False, cleanup=False)[source]

Download data to save_dir and optionally print a message.

Parameters
  • partial_download (list or None) – A list of keys of remotes to partially download. If None, all data is downloaded

  • force_overwrite (bool) – If True, existing files are overwritten by the downloaded files.

  • cleanup (bool) – Whether to delete any zip/tar files after extracting.

Raises
  • ValueError – if invalid keys are passed to partial_download

  • IOError – if a downloaded file’s checksum is different from expected

license()[source]

Print the license

load_audio(*args, **kwargs)[source]

Load a RWC audio file.

Parameters

fhandle (str or file-like) – File-like object or path to audio file

Returns

  • np.ndarray - the mono audio signal

  • float - The sample rate of the audio file

load_beats(*args, **kwargs)[source]

Load rwc beat data from a file

Parameters

fhandle (str or file-like) – File-like object or path to beats annotation file

Returns

BeatData – beat data

load_multitracks()[source]

Load all multitracks in the dataset

Returns

dict – {mtrack_id: multitrack data}

Raises

NotImplementedError – If the dataset does not support Multitracks

load_sections(*args, **kwargs)[source]

Load rwc section data from a file

Parameters

fhandle (str or file-like) – File-like object or path to sections annotation file

Returns

SectionData – section data

load_tracks()[source]

Load all tracks in the dataset

Returns

dict – {track_id: track data}

Raises

NotImplementedError – If the dataset does not support Tracks

mtrack_ids[source]

Return track ids

Returns

list – A list of track ids

track_ids[source]

Return track ids

Returns

list – A list of track ids

validate(verbose=True)[source]

Validate if the stored dataset is a valid version

Parameters

verbose (bool) – If False, don’t print output

Returns

  • list - files in the index but are missing locally

  • list - files which have an invalid checksum

class mirdata.datasets.rwc_jazz.Track(track_id, data_home, dataset_name, index, metadata)[source]

rwc_jazz Track class

Parameters

track_id (str) – track id of the track

Variables
  • artist (str) – Artist name

  • audio_path (str) – path of the audio file

  • beats_path (str) – path of the beat annotation file

  • duration (float) – Duration of the track in seconds

  • instruments (str) – list of used instruments.

  • piece_number (str) – Piece number of this Track, [1-50]

  • sections_path (str) – path of the section annotation file

  • suffix (str) – M01-M04

  • title (str) – Title of The track.

  • track_id (str) – track id

  • track_number (str) – CD track number of this Track

  • variation (str) – style variations

Other Parameters
  • sections (SectionData) – human-labeled section data

  • beats (BeatData) – human-labeled beat data

property audio

The track’s audio

Returns

  • np.ndarray - audio signal

  • float - sample rate

get_path(key)[source]

Get absolute path to track audio and annotations. Returns None if the path in the index is None

Parameters

key (string) – Index key of the audio or annotation type

Returns

str or None – joined path string or None

to_jams()[source]

Get the track’s data in jams format

Returns

jams.JAMS – the track’s data in jams format

salami

SALAMI Dataset Loader

class mirdata.datasets.salami.Dataset(data_home=None, version='default')[source]

The salami dataset

Variables
  • data_home (str) – path where mirdata will look for the dataset

  • version (str) –

  • name (str) – the identifier of the dataset

  • bibtex (str or None) – dataset citation/s in bibtex format

  • indexes (dict or None) –

  • remotes (dict or None) – data to be downloaded

  • readme (str) – information about the dataset

  • track (function) – a function mapping a track_id to a mirdata.core.Track

  • multitrack (function) – a function mapping a mtrack_id to a mirdata.core.Multitrack

choice_multitrack()[source]

Choose a random multitrack

Returns

Multitrack – a Multitrack object instantiated by a random mtrack_id

choice_track()[source]

Choose a random track

Returns

Track – a Track object instantiated by a random track_id

cite()[source]

Print the reference

property default_path

Get the default path for the dataset

Returns

str – Local path to the dataset

download(partial_download=None, force_overwrite=False, cleanup=False)[source]

Download data to save_dir and optionally print a message.

Parameters
  • partial_download (list or None) – A list of keys of remotes to partially download. If None, all data is downloaded

  • force_overwrite (bool) – If True, existing files are overwritten by the downloaded files.

  • cleanup (bool) – Whether to delete any zip/tar files after extracting.

Raises
  • ValueError – if invalid keys are passed to partial_download

  • IOError – if a downloaded file’s checksum is different from expected

license()[source]

Print the license

load_audio(*args, **kwargs)[source]

Load a Salami audio file.

Parameters

fpath (str) – path to audio file

Returns

  • np.ndarray - the mono audio signal

  • float - The sample rate of the audio file

load_multitracks()[source]

Load all multitracks in the dataset

Returns

dict – {mtrack_id: multitrack data}

Raises

NotImplementedError – If the dataset does not support Multitracks

load_sections(*args, **kwargs)[source]

Load salami sections data from a file

Parameters

fhandle (str or file-like) – File-like object or path to section annotation file

Returns

SectionData – section data

load_tracks()[source]

Load all tracks in the dataset

Returns

dict – {track_id: track data}

Raises

NotImplementedError – If the dataset does not support Tracks

mtrack_ids[source]

Return track ids

Returns

list – A list of track ids

track_ids[source]

Return track ids

Returns

list – A list of track ids

validate(verbose=True)[source]

Validate if the stored dataset is a valid version

Parameters

verbose (bool) – If False, don’t print output

Returns

  • list - files in the index but are missing locally

  • list - files which have an invalid checksum

class mirdata.datasets.salami.Track(track_id, data_home, dataset_name, index, metadata)[source]

salami Track class

Parameters

track_id (str) – track id of the track

Variables
  • annotator_1_id (str) – number that identifies annotator 1

  • annotator_1_time (str) – time that the annotator 1 took to complete the annotation

  • annotator_2_id (str) – number that identifies annotator 1

  • annotator_2_time (str) – time that the annotator 1 took to complete the annotation

  • artist (str) – song artist

  • audio_path (str) – path to the audio file

  • broad_genre (str) – broad genre of the song

  • duration (float) – duration of song in seconds

  • genre (str) – genre of the song

  • sections_annotator1_lowercase_path (str) – path to annotations in hierarchy level 1 from annotator 1

  • sections_annotator1_uppercase_path (str) – path to annotations in hierarchy level 0 from annotator 1

  • sections_annotator2_lowercase_path (str) – path to annotations in hierarchy level 1 from annotator 2

  • sections_annotator2_uppercase_path (str) – path to annotations in hierarchy level 0 from annotator 2

  • source (str) – dataset or source of song

  • title (str) – title of the song

Other Parameters
  • sections_annotator_1_uppercase (SectionData) – annotations in hierarchy level 0 from annotator 1

  • sections_annotator_1_lowercase (SectionData) – annotations in hierarchy level 1 from annotator 1

  • sections_annotator_2_uppercase (SectionData) – annotations in hierarchy level 0 from annotator 2

  • sections_annotator_2_lowercase (SectionData) – annotations in hierarchy level 1 from annotator 2

property audio

The track’s audio

Returns

  • np.ndarray - audio signal

  • float - sample rate

get_path(key)[source]

Get absolute path to track audio and annotations. Returns None if the path in the index is None

Parameters

key (string) – Index key of the audio or annotation type

Returns

str or None – joined path string or None

to_jams()[source]

Get the track’s data in jams format

Returns

jams.JAMS – the track’s data in jams format

mirdata.datasets.salami.load_audio(fpath: str) → Tuple[numpy.ndarray, float][source]

Load a Salami audio file.

Parameters

fpath (str) – path to audio file

Returns

  • np.ndarray - the mono audio signal

  • float - The sample rate of the audio file

mirdata.datasets.salami.load_sections(fhandle: TextIO)mirdata.annotations.SectionData[source]

Load salami sections data from a file

Parameters

fhandle (str or file-like) – File-like object or path to section annotation file

Returns

SectionData – section data

saraga_carnatic

Saraga Dataset Loader

class mirdata.datasets.saraga_carnatic.Dataset(data_home=None, version='default')[source]

The saraga_carnatic dataset

Variables
  • data_home (str) – path where mirdata will look for the dataset

  • version (str) –

  • name (str) – the identifier of the dataset

  • bibtex (str or None) – dataset citation/s in bibtex format

  • indexes (dict or None) –

  • remotes (dict or None) – data to be downloaded

  • readme (str) – information about the dataset

  • track (function) – a function mapping a track_id to a mirdata.core.Track

  • multitrack (function) – a function mapping a mtrack_id to a mirdata.core.Multitrack

choice_multitrack()[source]

Choose a random multitrack

Returns

Multitrack – a Multitrack object instantiated by a random mtrack_id

choice_track()[source]

Choose a random track

Returns

Track – a Track object instantiated by a random track_id

cite()[source]

Print the reference

property default_path

Get the default path for the dataset

Returns

str – Local path to the dataset

download(partial_download=None, force_overwrite=False, cleanup=False)[source]

Download data to save_dir and optionally print a message.

Parameters
  • partial_download (list or None) – A list of keys of remotes to partially download. If None, all data is downloaded

  • force_overwrite (bool) – If True, existing files are overwritten by the downloaded files.

  • cleanup (bool) – Whether to delete any zip/tar files after extracting.

Raises
  • ValueError – if invalid keys are passed to partial_download

  • IOError – if a downloaded file’s checksum is different from expected

license()[source]

Print the license

load_audio(*args, **kwargs)[source]

Load a Saraga Carnatic audio file.

Parameters

audio_path (str) – path to audio file

Returns

  • np.ndarray - the mono audio signal

  • float - The sample rate of the audio file

load_metadata(*args, **kwargs)[source]

Load a Saraga Carnatic metadata file

Parameters

fhandle (str or file-like) – File-like object or path to metadata json

Returns

dict

metadata with the following fields

  • title (str): Title of the piece in the track

  • mbid (str): MusicBrainz ID of the track

  • album_artists (list, dicts): list of dicts containing the album artists present in the track and its mbid

  • artists (list, dicts): list of dicts containing information of the featuring artists in the track

  • raaga (list, dict): list of dicts containing information about the raagas present in the track

  • form (list, dict): list of dicts containing information about the forms present in the track

  • work (list, dicts): list of dicts containing the work present in the piece, and its mbid

  • taala (list, dicts): list of dicts containing the talas present in the track and its uuid

  • concert (list, dicts): list of dicts containing the concert where the track is present and its mbid

load_multitracks()[source]

Load all multitracks in the dataset

Returns

dict – {mtrack_id: multitrack data}

Raises

NotImplementedError – If the dataset does not support Multitracks

load_phrases(*args, **kwargs)[source]

Load phrases

Parameters

fhandle (str or file-like) – Local path where the phrase annotation is stored.

Returns

EventData – phrases annotation for track

load_pitch(*args, **kwargs)[source]

Load pitch

Parameters

fhandle (str or file-like) – Local path where the pitch annotation is stored.

Returns

F0Data – pitch annotation

load_sama(*args, **kwargs)[source]

Load sama

Parameters

fhandle (str or file-like) – Local path where the sama annotation is stored.

Returns

BeatData – sama annotations

load_sections(*args, **kwargs)[source]

Load sections from carnatic collection

Parameters

fhandle (str or file-like) – Local path where the section annotation is stored.

Returns

SectionData – section annotations for track

load_tempo(*args, **kwargs)[source]

Load tempo from carnatic collection

Parameters

fhandle (str or file-like) – Local path where the tempo annotation is stored.

Returns

dict

Dictionary of tempo information with the following keys:

  • tempo_apm: tempo in aksharas per minute (APM)

  • tempo_bpm: tempo in beats per minute (BPM)

  • sama_interval: median duration (in seconds) of one tāla cycle

  • beats_per_cycle: number of beats in one cycle of the tāla

  • subdivisions: number of aksharas per beat of the tāla

load_tonic(*args, **kwargs)[source]

Load track absolute tonic

Parameters

fhandle (str or file-like) – Local path where the tonic path is stored.

Returns

int – Tonic annotation in Hz

load_tracks()[source]

Load all tracks in the dataset

Returns

dict – {track_id: track data}

Raises

NotImplementedError – If the dataset does not support Tracks

mtrack_ids[source]

Return track ids

Returns

list – A list of track ids

track_ids[source]

Return track ids

Returns

list – A list of track ids

validate(verbose=True)[source]

Validate if the stored dataset is a valid version

Parameters

verbose (bool) – If False, don’t print output

Returns

  • list - files in the index but are missing locally

  • list - files which have an invalid checksum

class mirdata.datasets.saraga_carnatic.Track(track_id, data_home, dataset_name, index, metadata)[source]

Saraga Track Carnatic class

Parameters
  • track_id (str) – track id of the track

  • data_home (str) – Local path where the dataset is stored. default=None If None, looks for the data in the default directory, ~/mir_datasets

Variables
  • audio_path (str) – path to audio file

  • audio_ghatam_path (str) – path to ghatam audio file

  • audio_mridangam_left_path (str) – path to mridangam left audio file

  • audio_mridangam_right_path (str) – path to mridangam right audio file

  • audio_violin_path (str) – path to violin audio file

  • audio_vocal_s_path (str) – path to vocal s audio file

  • audio_vocal_pat (str) – path to vocal pat audio file

  • ctonic_path (srt) – path to ctonic annotation file

  • pitch_path (srt) – path to pitch annotation file

  • pitch_vocal_path (srt) – path to vocal pitch annotation file

  • tempo_path (srt) – path to tempo annotation file

  • sama_path (srt) – path to sama annotation file

  • sections_path (srt) – path to sections annotation file

  • phrases_path (srt) – path to phrases annotation file

  • metadata_path (srt) – path to metadata file

Other Parameters
  • tonic (float) – tonic annotation

  • pitch (F0Data) – pitch annotation

  • pitch_vocal (F0Data) – vocal pitch annotation

  • tempo (dict) – tempo annotations

  • sama (BeatData) – sama section annotations

  • sections (SectionData) – track section annotations

  • phrases (SectionData) – phrase annotations

  • metadata (dict) – track metadata with the following fields:

    • title (str): Title of the piece in the track

    • mbid (str): MusicBrainz ID of the track

    • album_artists (list, dicts): list of dicts containing the album artists present in the track and its mbid

    • artists (list, dicts): list of dicts containing information of the featuring artists in the track

    • raaga (list, dict): list of dicts containing information about the raagas present in the track

    • form (list, dict): list of dicts containing information about the forms present in the track

    • work (list, dicts): list of dicts containing the work present in the piece, and its mbid

    • taala (list, dicts): list of dicts containing the talas present in the track and its uuid

    • concert (list, dicts): list of dicts containing the concert where the track is present and its mbid

property audio

The track’s audio

Returns

  • np.ndarray - audio signal

  • float - sample rate

get_path(key)[source]

Get absolute path to track audio and annotations. Returns None if the path in the index is None

Parameters

key (string) – Index key of the audio or annotation type

Returns

str or None – joined path string or None

to_jams()[source]

Get the track’s data in jams format

Returns

jams.JAMS – the track’s data in jams format

mirdata.datasets.saraga_carnatic.load_audio(audio_path)[source]

Load a Saraga Carnatic audio file.

Parameters

audio_path (str) – path to audio file

Returns

  • np.ndarray - the mono audio signal

  • float - The sample rate of the audio file

mirdata.datasets.saraga_carnatic.load_metadata(fhandle)[source]

Load a Saraga Carnatic metadata file

Parameters

fhandle (str or file-like) – File-like object or path to metadata json

Returns

dict

metadata with the following fields

  • title (str): Title of the piece in the track

  • mbid (str): MusicBrainz ID of the track

  • album_artists (list, dicts): list of dicts containing the album artists present in the track and its mbid

  • artists (list, dicts): list of dicts containing information of the featuring artists in the track

  • raaga (list, dict): list of dicts containing information about the raagas present in the track

  • form (list, dict): list of dicts containing information about the forms present in the track

  • work (list, dicts): list of dicts containing the work present in the piece, and its mbid

  • taala (list, dicts): list of dicts containing the talas present in the track and its uuid

  • concert (list, dicts): list of dicts containing the concert where the track is present and its mbid

mirdata.datasets.saraga_carnatic.load_phrases(fhandle)[source]

Load phrases

Parameters

fhandle (str or file-like) – Local path where the phrase annotation is stored.

Returns

EventData – phrases annotation for track

mirdata.datasets.saraga_carnatic.load_pitch(fhandle)[source]

Load pitch

Parameters

fhandle (str or file-like) – Local path where the pitch annotation is stored.

Returns

F0Data – pitch annotation

mirdata.datasets.saraga_carnatic.load_sama(fhandle)[source]

Load sama

Parameters

fhandle (str or file-like) – Local path where the sama annotation is stored.

Returns

BeatData – sama annotations

mirdata.datasets.saraga_carnatic.load_sections(fhandle)[source]

Load sections from carnatic collection

Parameters

fhandle (str or file-like) – Local path where the section annotation is stored.

Returns

SectionData – section annotations for track

mirdata.datasets.saraga_carnatic.load_tempo(fhandle)[source]

Load tempo from carnatic collection

Parameters

fhandle (str or file-like) – Local path where the tempo annotation is stored.

Returns

dict

Dictionary of tempo information with the following keys:

  • tempo_apm: tempo in aksharas per minute (APM)

  • tempo_bpm: tempo in beats per minute (BPM)

  • sama_interval: median duration (in seconds) of one tāla cycle

  • beats_per_cycle: number of beats in one cycle of the tāla

  • subdivisions: number of aksharas per beat of the tāla

mirdata.datasets.saraga_carnatic.load_tonic(fhandle)[source]

Load track absolute tonic

Parameters

fhandle (str or file-like) – Local path where the tonic path is stored.

Returns

int – Tonic annotation in Hz

saraga_hindustani

Saraga Dataset Loader

class mirdata.datasets.saraga_hindustani.Dataset(data_home=None, version='default')[source]

The saraga_hindustani dataset

Variables
  • data_home (str) – path where mirdata will look for the dataset

  • version (str) –

  • name (str) – the identifier of the dataset

  • bibtex (str or None) – dataset citation/s in bibtex format

  • indexes (dict or None) –

  • remotes (dict or None) – data to be downloaded

  • readme (str) – information about the dataset

  • track (function) – a function mapping a track_id to a mirdata.core.Track

  • multitrack (function) – a function mapping a mtrack_id to a mirdata.core.Multitrack

choice_multitrack()[source]

Choose a random multitrack

Returns

Multitrack – a Multitrack object instantiated by a random mtrack_id

choice_track()[source]

Choose a random track

Returns

Track – a Track object instantiated by a random track_id

cite()[source]

Print the reference

property default_path

Get the default path for the dataset

Returns

str – Local path to the dataset

download(partial_download=None, force_overwrite=False, cleanup=False)[source]

Download data to save_dir and optionally print a message.

Parameters
  • partial_download (list or None) – A list of keys of remotes to partially download. If None, all data is downloaded

  • force_overwrite (bool) – If True, existing files are overwritten by the downloaded files.

  • cleanup (bool) – Whether to delete any zip/tar files after extracting.

Raises
  • ValueError – if invalid keys are passed to partial_download

  • IOError – if a downloaded file’s checksum is different from expected

license()[source]

Print the license

load_audio(*args, **kwargs)[source]

Load a Saraga Hindustani audio file.

Parameters

audio_path (str) – path to audio file

Returns

  • np.ndarray - the mono audio signal

  • float - The sample rate of the audio file

load_multitracks()[source]

Load all multitracks in the dataset

Returns

dict – {mtrack_id: multitrack data}

Raises

NotImplementedError – If the dataset does not support Multitracks

load_phrases(*args, **kwargs)[source]

Load phrases

Parameters

fhandle (str or file-like) – Local path where the phrase annotation is stored. If None, returns None.

Returns

EventData – phrases annotation for track

load_pitch(*args, **kwargs)[source]

Load automatic extracted pitch or melody

Parameters

fhandle (str or file-like) – Local path where the pitch annotation is stored. If None, returns None.

Returns

F0Data – pitch annotation

load_sama(*args, **kwargs)[source]

Load sama

Parameters

fhandle (str or file-like) – Local path where the sama annotation is stored. If None, returns None.

Returns

SectionData – sama annotations

load_sections(*args, **kwargs)[source]

Load tracks sections

Parameters

fhandle (str or file-like) – Local path where the section annotation is stored.

Returns

SectionData – section annotations for track

load_tempo(*args, **kwargs)[source]

Load tempo from hindustani collection

Parameters

fhandle (str or file-like) – Local path where the tempo annotation is stored.

Returns

dict – Dictionary of tempo information with the following keys:

  • tempo: median tempo for the section in mātrās per minute (MPM)

  • matra_interval: tempo expressed as the duration of the mātra (essentially dividing 60 by tempo, expressed in seconds)

  • sama_interval: median duration of one tāl cycle in the section

  • matras_per_cycle: indicator of the structure of the tāl, showing the number of mātrā in a cycle of the tāl of the recording

  • start_time: start time of the section

  • duration: duration of the section

load_tonic(*args, **kwargs)[source]

Load track absolute tonic

Parameters

fhandle (str or file-like) – Local path where the tonic path is stored. If None, returns None.

Returns

int – Tonic annotation in Hz

load_tracks()[source]

Load all tracks in the dataset

Returns

dict – {track_id: track data}

Raises

NotImplementedError – If the dataset does not support Tracks

mtrack_ids[source]

Return track ids

Returns

list – A list of track ids

track_ids[source]

Return track ids

Returns

list – A list of track ids

validate(verbose=True)[source]

Validate if the stored dataset is a valid version

Parameters

verbose (bool) – If False, don’t print output

Returns

  • list - files in the index but are missing locally

  • list - files which have an invalid checksum

class mirdata.datasets.saraga_hindustani.Track(track_id, data_home, dataset_name, index, metadata)[source]

Saraga Hindustani Track class

Parameters
  • track_id (str) – track id of the track

  • data_home (str) – Local path where the dataset is stored. default=None If None, looks for the data in the default directory, ~/mir_datasets

Variables
  • audio_path (str) – path to audio file

  • ctonic_path (str) – path to ctonic annotation file

  • pitch_path (str) – path to pitch annotation file

  • tempo_path (str) – path to tempo annotation file

  • sama_path (str) – path to sama annotation file

  • sections_path (str) – path to sections annotation file

  • phrases_path (str) – path to phrases annotation file

  • metadata_path (str) – path to metadata annotation file

Other Parameters
  • tonic (float) – tonic annotation

  • pitch (F0Data) – pitch annotation

  • tempo (dict) – tempo annotations

  • sama (BeatData) – Sama section annotations

  • sections (SectionData) – track section annotations

  • phrases (EventData) – phrase annotations

  • metadata (dict) – track metadata with the following fields

    • title (str): Title of the piece in the track

    • mbid (str): MusicBrainz ID of the track

    • album_artists (list, dicts): list of dicts containing the album artists present in the track and its mbid

    • artists (list, dicts): list of dicts containing information of the featuring artists in the track

    • raags (list, dict): list of dicts containing information about the raags present in the track

    • forms (list, dict): list of dicts containing information about the forms present in the track

    • release (list, dicts): list of dicts containing information of the release where the track is found

    • works (list, dicts): list of dicts containing the work present in the piece, and its mbid

    • taals (list, dicts): list of dicts containing the taals present in the track and its uuid

    • layas (list, dicts): list of dicts containing the layas present in the track and its uuid

property audio

The track’s audio

Returns

  • np.ndarray - audio signal

  • float - sample rate

get_path(key)[source]

Get absolute path to track audio and annotations. Returns None if the path in the index is None

Parameters

key (string) – Index key of the audio or annotation type

Returns

str or None – joined path string or None

to_jams()[source]

Get the track’s data in jams format

Returns

jams.JAMS – the track’s data in jams format

mirdata.datasets.saraga_hindustani.load_audio(audio_path)[source]

Load a Saraga Hindustani audio file.

Parameters

audio_path (str) – path to audio file

Returns

  • np.ndarray - the mono audio signal

  • float - The sample rate of the audio file

mirdata.datasets.saraga_hindustani.load_metadata(fhandle)[source]

Load a Saraga Hindustani metadata file

Parameters

fhandle (str or file-like) – path to metadata json file

Returns

dict

metadata with the following fields

  • title (str): Title of the piece in the track

  • mbid (str): MusicBrainz ID of the track

  • album_artists (list, dicts): list of dicts containing the album artists present in the track and its mbid

  • artists (list, dicts): list of dicts containing information of the featuring artists in the track

  • raags (list, dict): list of dicts containing information about the raags present in the track

  • forms (list, dict): list of dicts containing information about the forms present in the track

  • release (list, dicts): list of dicts containing information of the release where the track is found

  • works (list, dicts): list of dicts containing the work present in the piece, and its mbid

  • taals (list, dicts): list of dicts containing the taals present in the track and its uuid

  • layas (list, dicts): list of dicts containing the layas present in the track and its uuid

mirdata.datasets.saraga_hindustani.load_phrases(fhandle)[source]

Load phrases

Parameters

fhandle (str or file-like) – Local path where the phrase annotation is stored. If None, returns None.

Returns

EventData – phrases annotation for track

mirdata.datasets.saraga_hindustani.load_pitch(fhandle)[source]

Load automatic extracted pitch or melody

Parameters

fhandle (str or file-like) – Local path where the pitch annotation is stored. If None, returns None.

Returns

F0Data – pitch annotation

mirdata.datasets.saraga_hindustani.load_sama(fhandle)[source]

Load sama

Parameters

fhandle (str or file-like) – Local path where the sama annotation is stored. If None, returns None.

Returns

SectionData – sama annotations

mirdata.datasets.saraga_hindustani.load_sections(fhandle)[source]

Load tracks sections

Parameters

fhandle (str or file-like) – Local path where the section annotation is stored.

Returns

SectionData – section annotations for track

mirdata.datasets.saraga_hindustani.load_tempo(fhandle)[source]

Load tempo from hindustani collection

Parameters

fhandle (str or file-like) – Local path where the tempo annotation is stored.

Returns

dict – Dictionary of tempo information with the following keys:

  • tempo: median tempo for the section in mātrās per minute (MPM)

  • matra_interval: tempo expressed as the duration of the mātra (essentially dividing 60 by tempo, expressed in seconds)

  • sama_interval: median duration of one tāl cycle in the section

  • matras_per_cycle: indicator of the structure of the tāl, showing the number of mātrā in a cycle of the tāl of the recording

  • start_time: start time of the section

  • duration: duration of the section

mirdata.datasets.saraga_hindustani.load_tonic(fhandle)[source]

Load track absolute tonic

Parameters

fhandle (str or file-like) – Local path where the tonic path is stored. If None, returns None.

Returns

int – Tonic annotation in Hz

tinysol

TinySOL Dataset Loader.

class mirdata.datasets.tinysol.Dataset(data_home=None, version='default')[source]

The tinysol dataset

Variables
  • data_home (str) – path where mirdata will look for the dataset

  • version (str) –

  • name (str) – the identifier of the dataset

  • bibtex (str or None) – dataset citation/s in bibtex format

  • indexes (dict or None) –

  • remotes (dict or None) – data to be downloaded

  • readme (str) – information about the dataset

  • track (function) – a function mapping a track_id to a mirdata.core.Track

  • multitrack (function) – a function mapping a mtrack_id to a mirdata.core.Multitrack

choice_multitrack()[source]

Choose a random multitrack

Returns

Multitrack – a Multitrack object instantiated by a random mtrack_id

choice_track()[source]

Choose a random track

Returns

Track – a Track object instantiated by a random track_id

cite()[source]

Print the reference

property default_path

Get the default path for the dataset

Returns

str – Local path to the dataset

download(partial_download=None, force_overwrite=False, cleanup=False)[source]

Download data to save_dir and optionally print a message.

Parameters
  • partial_download (list or None) – A list of keys of remotes to partially download. If None, all data is downloaded

  • force_overwrite (bool) – If True, existing files are overwritten by the downloaded files.

  • cleanup (bool) – Whether to delete any zip/tar files after extracting.

Raises
  • ValueError – if invalid keys are passed to partial_download

  • IOError – if a downloaded file’s checksum is different from expected

license()[source]

Print the license

load_audio(*args, **kwargs)[source]

Load a TinySOL audio file.

Parameters

fhandle (str or file-like) – File-like object or path to audio file

Returns

  • np.ndarray - the mono audio signal

  • float - The sample rate of the audio file

load_multitracks()[source]

Load all multitracks in the dataset

Returns

dict – {mtrack_id: multitrack data}

Raises

NotImplementedError – If the dataset does not support Multitracks

load_tracks()[source]

Load all tracks in the dataset

Returns

dict – {track_id: track data}

Raises

NotImplementedError – If the dataset does not support Tracks

mtrack_ids[source]

Return track ids

Returns

list – A list of track ids

track_ids[source]

Return track ids

Returns

list – A list of track ids

validate(verbose=True)[source]

Validate if the stored dataset is a valid version

Parameters

verbose (bool) – If False, don’t print output

Returns

  • list - files in the index but are missing locally

  • list - files which have an invalid checksum

class mirdata.datasets.tinysol.Track(track_id, data_home, dataset_name, index, metadata)[source]

tinysol Track class

Parameters

track_id (str) – track id of the track

Variables
  • audio_path (str) – path of the audio file

  • dynamics (str) – dynamics abbreviation. Ex: pp, mf, ff, etc.

  • dynamics_id (int) – pp=0, p=1, mf=2, f=3, ff=4

  • family (str) – instrument family encoded by its English name

  • instance_id (int) – instance ID. Either equal to 0, 1, 2, or 3.

  • instrument_abbr (str) – instrument abbreviation

  • instrument_full (str) – instrument encoded by its English name

  • is_resampled (bool) – True if this sample was pitch-shifted from a neighbor; False if it was genuinely recorded.

  • pitch (str) – string containing English pitch class and octave number

  • pitch_id (int) – MIDI note index, where middle C (“C4”) corresponds to 60

  • string_id (NoneType) – string ID. By musical convention, the first string is the highest. On wind instruments, this is replaced by None.

  • technique_abbr (str) – playing technique abbreviation

  • technique_full (str) – playing technique encoded by its English name

  • track_id (str) – track id

property audio

The track’s audio

Returns

  • np.ndarray - audio signal

  • float - sample rate

get_path(key)[source]

Get absolute path to track audio and annotations. Returns None if the path in the index is None

Parameters

key (string) – Index key of the audio or annotation type

Returns

str or None – joined path string or None

to_jams()[source]

Get the track’s data in jams format

Returns

jams.JAMS – the track’s data in jams format

mirdata.datasets.tinysol.load_audio(fhandle: BinaryIO) → Tuple[numpy.ndarray, float][source]

Load a TinySOL audio file.

Parameters

fhandle (str or file-like) – File-like object or path to audio file

Returns

  • np.ndarray - the mono audio signal

  • float - The sample rate of the audio file

tonality_classicaldb

Tonality classicalDB Dataset Loader

class mirdata.datasets.tonality_classicaldb.Dataset(data_home=None, version='default')[source]

The tonality_classicaldb dataset

Variables
  • data_home (str) – path where mirdata will look for the dataset

  • version (str) –

  • name (str) – the identifier of the dataset

  • bibtex (str or None) – dataset citation/s in bibtex format

  • indexes (dict or None) –

  • remotes (dict or None) – data to be downloaded

  • readme (str) – information about the dataset

  • track (function) – a function mapping a track_id to a mirdata.core.Track

  • multitrack (function) – a function mapping a mtrack_id to a mirdata.core.Multitrack

choice_multitrack()[source]

Choose a random multitrack

Returns

Multitrack – a Multitrack object instantiated by a random mtrack_id

choice_track()[source]

Choose a random track

Returns

Track – a Track object instantiated by a random track_id

cite()[source]

Print the reference

property default_path

Get the default path for the dataset

Returns

str – Local path to the dataset

download(partial_download=None, force_overwrite=False, cleanup=False)[source]

Download data to save_dir and optionally print a message.

Parameters
  • partial_download (list or None) – A list of keys of remotes to partially download. If None, all data is downloaded

  • force_overwrite (bool) – If True, existing files are overwritten by the downloaded files.

  • cleanup (bool) – Whether to delete any zip/tar files after extracting.

Raises
  • ValueError – if invalid keys are passed to partial_download

  • IOError – if a downloaded file’s checksum is different from expected

license()[source]

Print the license

load_audio(*args, **kwargs)[source]

Load a Tonality classicalDB audio file.

Parameters

fhandle (str or file-like) – File-like object or path to audio file

Returns

  • np.ndarray - the mono audio signal

  • float - The sample rate of the audio file

load_hpcp(*args, **kwargs)[source]

Load Tonality classicalDB HPCP feature from a file

Parameters

fhandle (str or file-like) – File-like object or path to HPCP file

Returns

np.ndarray – loaded HPCP data

load_key(*args, **kwargs)[source]

Load Tonality classicalDB format key data from a file

Parameters

fhandle (str or file-like) – File-like object or path to key annotation file

Returns

str – musical key data

load_multitracks()[source]

Load all multitracks in the dataset

Returns

dict – {mtrack_id: multitrack data}

Raises

NotImplementedError – If the dataset does not support Multitracks

load_musicbrainz(*args, **kwargs)[source]

Load Tonality classicalDB musicbraiz metadata from a file

Parameters

fhandle (str or file-like) – File-like object or path to musicbrainz metadata file

Returns

dict – musicbrainz metadata

load_spectrum(*args, **kwargs)[source]

Load Tonality classicalDB spectrum data from a file

Parameters

fhandle (str or file-like) – File-like object or path to spectrum file

Returns

np.ndarray – spectrum data

load_tracks()[source]

Load all tracks in the dataset

Returns

dict – {track_id: track data}

Raises

NotImplementedError – If the dataset does not support Tracks

mtrack_ids[source]

Return track ids

Returns

list – A list of track ids

track_ids[source]

Return track ids

Returns

list – A list of track ids

validate(verbose=True)[source]

Validate if the stored dataset is a valid version

Parameters

verbose (bool) – If False, don’t print output

Returns

  • list - files in the index but are missing locally

  • list - files which have an invalid checksum

class mirdata.datasets.tonality_classicaldb.Track(track_id, data_home, dataset_name, index, metadata)[source]

tonality_classicaldb track class

Parameters

track_id (str) – track id of the track

Variables
  • audio_path (str) – track audio path

  • key_path (str) – key annotation path

  • title (str) – title of the track

  • track_id (str) – track id

Other Parameters
  • key (str) – key annotation

  • spectrum (np.array) – computed audio spectrum

  • hpcp (np.array) – computed hpcp

  • musicbrainz_metadata (dict) – MusicBrainz metadata

property audio

The track’s audio

Returns

  • np.ndarray - audio signal

  • float - sample rate

get_path(key)[source]

Get absolute path to track audio and annotations. Returns None if the path in the index is None

Parameters

key (string) – Index key of the audio or annotation type

Returns

str or None – joined path string or None

to_jams()[source]

Get the track’s data in jams format

Returns

jams.JAMS – the track’s data in jams format

mirdata.datasets.tonality_classicaldb.load_audio(fhandle: BinaryIO) → Tuple[numpy.ndarray, float][source]

Load a Tonality classicalDB audio file.

Parameters

fhandle (str or file-like) – File-like object or path to audio file

Returns

  • np.ndarray - the mono audio signal

  • float - The sample rate of the audio file

mirdata.datasets.tonality_classicaldb.load_hpcp(fhandle: TextIO)numpy.ndarray[source]

Load Tonality classicalDB HPCP feature from a file

Parameters

fhandle (str or file-like) – File-like object or path to HPCP file

Returns

np.ndarray – loaded HPCP data

mirdata.datasets.tonality_classicaldb.load_key(fhandle: TextIO) → str[source]

Load Tonality classicalDB format key data from a file

Parameters

fhandle (str or file-like) – File-like object or path to key annotation file

Returns

str – musical key data

mirdata.datasets.tonality_classicaldb.load_musicbrainz(fhandle: TextIO) → Dict[Any, Any][source]

Load Tonality classicalDB musicbraiz metadata from a file

Parameters

fhandle (str or file-like) – File-like object or path to musicbrainz metadata file

Returns

dict – musicbrainz metadata

mirdata.datasets.tonality_classicaldb.load_spectrum(fhandle: TextIO)numpy.ndarray[source]

Load Tonality classicalDB spectrum data from a file

Parameters

fhandle (str or file-like) – File-like object or path to spectrum file

Returns

np.ndarray – spectrum data

tonas

TONAS Loader

class mirdata.datasets.tonas.Dataset(data_home=None, version='default')[source]

The TONAS dataset

Variables
  • data_home (str) – path where mirdata will look for the dataset

  • version (str) –

  • name (str) – the identifier of the dataset

  • bibtex (str or None) – dataset citation/s in bibtex format

  • indexes (dict or None) –

  • remotes (dict or None) – data to be downloaded

  • readme (str) – information about the dataset

  • track (function) – a function mapping a track_id to a mirdata.core.Track

  • multitrack (function) – a function mapping a mtrack_id to a mirdata.core.Multitrack

choice_multitrack()[source]

Choose a random multitrack

Returns

Multitrack – a Multitrack object instantiated by a random mtrack_id

choice_track()[source]

Choose a random track

Returns

Track – a Track object instantiated by a random track_id

cite()[source]

Print the reference

property default_path

Get the default path for the dataset

Returns

str – Local path to the dataset

download(partial_download=None, force_overwrite=False, cleanup=False)[source]

Download data to save_dir and optionally print a message.

Parameters
  • partial_download (list or None) – A list of keys of remotes to partially download. If None, all data is downloaded

  • force_overwrite (bool) – If True, existing files are overwritten by the downloaded files.

  • cleanup (bool) – Whether to delete any zip/tar files after extracting.

Raises
  • ValueError – if invalid keys are passed to partial_download

  • IOError – if a downloaded file’s checksum is different from expected

license()[source]

Print the license

load_audio(*args, **kwargs)[source]

Load a TONAS audio file.

Parameters

fhandle (str) – path to an audio file

Returns

  • np.ndarray - the mono audio signal

  • float - The sample rate of the audio file

load_f0(*args, **kwargs)[source]

Load TONAS f0 annotations

Parameters
  • fpath (str) – path pointing to f0 annotation file

  • corrected (bool) – if True, loads manually corrected frequency values otherwise, loads automatically extracted frequency values

Returns

F0Data – predominant f0 melody

load_multitracks()[source]

Load all multitracks in the dataset

Returns

dict – {mtrack_id: multitrack data}

Raises

NotImplementedError – If the dataset does not support Multitracks

load_notes(*args, **kwargs)[source]

Load TONAS note data from the annotation files

Parameters

fhandle (str or file-like) – path or file-like object pointing to a notes annotation file

Returns

NoteData – note annotations

load_tracks()[source]

Load all tracks in the dataset

Returns

dict – {track_id: track data}

Raises

NotImplementedError – If the dataset does not support Tracks

mtrack_ids[source]

Return track ids

Returns

list – A list of track ids

track_ids[source]

Return track ids

Returns

list – A list of track ids

validate(verbose=True)[source]

Validate if the stored dataset is a valid version

Parameters

verbose (bool) – If False, don’t print output

Returns

  • list - files in the index but are missing locally

  • list - files which have an invalid checksum

class mirdata.datasets.tonas.Track(track_id, data_home, dataset_name, index, metadata)[source]

TONAS track class

Parameters
  • track_id (str) – track id of the track

  • data_home (str) – Local path where the dataset is stored. If None, looks for the data in the default directory, ~/mir_datasets/TONAS

Variables
  • f0_path (str) – local path where f0 melody annotation file is stored

  • notes_path (str) – local path where notation annotation file is stored

  • audio_path (str) – local path where audio file is stored

  • track_id (str) – track id

  • singer (str) – performing singer (cantaor)

  • title (str) – title of the track song

  • tuning_frequency (float) – tuning frequency of the symbolic notation

Other Parameters
  • f0_automatic (F0Data) – automatically extracted f0

  • f0_corrected (F0Data) – manually corrected f0 annotations

  • notes (NoteData) – annotated notes

property audio

The track’s audio

Returns

  • np.ndarray - audio signal

  • float - sample rate

get_path(key)[source]

Get absolute path to track audio and annotations. Returns None if the path in the index is None

Parameters

key (string) – Index key of the audio or annotation type

Returns

str or None – joined path string or None

to_jams()[source]

Get the track’s data in jams format

Returns

jams.JAMS – the track’s data in jams format

mirdata.datasets.tonas.load_audio(fhandle: str) → Tuple[numpy.ndarray, float][source]

Load a TONAS audio file.

Parameters

fhandle (str) – path to an audio file

Returns

  • np.ndarray - the mono audio signal

  • float - The sample rate of the audio file

mirdata.datasets.tonas.load_f0(fpath: str, corrected: bool) → Optional[mirdata.annotations.F0Data][source]

Load TONAS f0 annotations

Parameters
  • fpath (str) – path pointing to f0 annotation file

  • corrected (bool) – if True, loads manually corrected frequency values otherwise, loads automatically extracted frequency values

Returns

F0Data – predominant f0 melody

mirdata.datasets.tonas.load_notes(fhandle: TextIO) → Optional[mirdata.annotations.NoteData][source]

Load TONAS note data from the annotation files

Parameters

fhandle (str or file-like) – path or file-like object pointing to a notes annotation file

Returns

NoteData – note annotations

Core

Core mirdata classes

class mirdata.core.Dataset(data_home=None, version='default', name=None, track_class=None, multitrack_class=None, bibtex=None, indexes=None, remotes=None, download_info=None, license_info=None)[source]

mirdata Dataset class

Variables
  • data_home (str) – path where mirdata will look for the dataset

  • version (str) –

  • name (str) – the identifier of the dataset

  • bibtex (str or None) – dataset citation/s in bibtex format

  • indexes (dict or None) –

  • remotes (dict or None) – data to be downloaded

  • readme (str) – information about the dataset

  • track (function) – a function mapping a track_id to a mirdata.core.Track

  • multitrack (function) – a function mapping a mtrack_id to a mirdata.core.Multitrack

__init__(data_home=None, version='default', name=None, track_class=None, multitrack_class=None, bibtex=None, indexes=None, remotes=None, download_info=None, license_info=None)[source]

Dataset init method

Parameters
  • data_home (str or None) – path where mirdata will look for the dataset

  • name (str or None) – the identifier of the dataset

  • track_class (mirdata.core.Track or None) – a Track class

  • multitrack_class (mirdata.core.Multitrack or None) – a Multitrack class

  • bibtex (str or None) – dataset citation/s in bibtex format

  • remotes (dict or None) – data to be downloaded

  • download_info (str or None) – download instructions or caveats

  • license_info (str or None) – license of the dataset

choice_multitrack()[source]

Choose a random multitrack

Returns

Multitrack – a Multitrack object instantiated by a random mtrack_id

choice_track()[source]

Choose a random track

Returns

Track – a Track object instantiated by a random track_id

cite()[source]

Print the reference

property default_path

Get the default path for the dataset

Returns

str – Local path to the dataset

download(partial_download=None, force_overwrite=False, cleanup=False)[source]

Download data to save_dir and optionally print a message.

Parameters
  • partial_download (list or None) – A list of keys of remotes to partially download. If None, all data is downloaded

  • force_overwrite (bool) – If True, existing files are overwritten by the downloaded files.

  • cleanup (bool) – Whether to delete any zip/tar files after extracting.

Raises
  • ValueError – if invalid keys are passed to partial_download

  • IOError – if a downloaded file’s checksum is different from expected

license()[source]

Print the license

load_multitracks()[source]

Load all multitracks in the dataset

Returns

dict – {mtrack_id: multitrack data}

Raises

NotImplementedError – If the dataset does not support Multitracks

load_tracks()[source]

Load all tracks in the dataset

Returns

dict – {track_id: track data}

Raises

NotImplementedError – If the dataset does not support Tracks

mtrack_ids[source]

Return track ids

Returns

list – A list of track ids

track_ids[source]

Return track ids

Returns

list – A list of track ids

validate(verbose=True)[source]

Validate if the stored dataset is a valid version

Parameters

verbose (bool) – If False, don’t print output

Returns

  • list - files in the index but are missing locally

  • list - files which have an invalid checksum

class mirdata.core.Index(filename: str, url: Optional[str] = None, checksum: Optional[str] = None, partial_download: Optional[List[str]] = None)[source]

Class for storing information about dataset indexes.

Parameters
  • filename (str) – The index filename (not path), e.g. “example_dataset_index_1.2.json”

  • url (str or None) – None if index is not remote, or a url to download from

  • checksum (str or None) – None if index is not remote, or the md5 checksum of the file

  • partial_download (list or None) – if provided, specifies a subset of Dataset.remotes corresponding to this index to be downloaded. If None, all Dataset.remotes will be downloaded when calling Dataset.download()

Variables
  • remote (download_utils.RemoteFileMetadata or None) – None if index is not remote, or a RemoteFileMetadata object

  • partial_download (list or None) – a list of keys to partially download, or None

get_path(data_home: str) → str[source]

Get the absolute path to the index file

Parameters

data_home (str) – Path where the dataset’s data lives

Returns

str – absolute path to the index file

class mirdata.core.MultiTrack(mtrack_id, data_home, dataset_name, index, track_class, metadata)[source]

MultiTrack class.

A multitrack class is a collection of track objects and their associated audio that can be mixed together. A multitrack is itself a Track, and can have its own associated audio (such as a mastered mix), its own metadata and its own annotations.

__init__(mtrack_id, data_home, dataset_name, index, track_class, metadata)[source]

Multitrack init method. Sets boilerplate attributes, including:

  • mtrack_id

  • _dataset_name

  • _data_home

  • _multitrack_paths

  • _multitrack_metadata

Parameters
  • mtrack_id (str) – multitrack id

  • data_home (str) – path where mirdata will look for the dataset

  • dataset_name (str) – the identifier of the dataset

  • index (dict) – the dataset’s file index

  • metadata (function or None) – a function returning a dictionary of metadata or None

get_mix()[source]

Create a linear mixture given a subset of tracks.

Parameters

track_keys (list) – list of track keys to mix together

Returns

np.ndarray – mixture audio with shape (n_samples, n_channels)

get_path(key)[source]

Get absolute path to multitrack audio and annotations. Returns None if the path in the index is None

Parameters

key (string) – Index key of the audio or annotation type

Returns

str or None – joined path string or None

get_random_target(n_tracks=None, min_weight=0.3, max_weight=1.0)[source]

Get a random target by combining a random selection of tracks with random weights

Parameters
  • n_tracks (int or None) – number of tracks to randomly mix. If None, uses all tracks

  • min_weight (float) – minimum possible weight when mixing

  • max_weight (float) – maximum possible weight when mixing

Returns

  • np.ndarray - mixture audio with shape (n_samples, n_channels)

  • list - list of keys of included tracks

  • list - list of weights used to mix tracks

get_target(track_keys, weights=None, average=True, enforce_length=True)[source]

Get target which is a linear mixture of tracks

Parameters
  • track_keys (list) – list of track keys to mix together

  • weights (list or None) – list of positive scalars to be used in the average

  • average (bool) – if True, computes a weighted average of the tracks if False, computes a weighted sum of the tracks

  • enforce_length (bool) – If True, raises ValueError if the tracks are not the same length. If False, pads audio with zeros to match the length of the longest track

Returns

np.ndarray – target audio with shape (n_channels, n_samples)

Raises

ValueError – if sample rates of the tracks are not equal if enforce_length=True and lengths are not equal

class mirdata.core.Track(track_id, data_home, dataset_name, index, metadata)[source]

Track base class

See the docs for each dataset loader’s Track class for details

__init__(track_id, data_home, dataset_name, index, metadata)[source]

Track init method. Sets boilerplate attributes, including:

  • track_id

  • _dataset_name

  • _data_home

  • _track_paths

  • _track_metadata

Parameters
  • track_id (str) – track id

  • data_home (str) – path where mirdata will look for the dataset

  • dataset_name (str) – the identifier of the dataset

  • index (dict) – the dataset’s file index

  • metadata (function or None) – a function returning a dictionary of metadata or None

get_path(key)[source]

Get absolute path to track audio and annotations. Returns None if the path in the index is None

Parameters

key (string) – Index key of the audio or annotation type

Returns

str or None – joined path string or None

class mirdata.core.cached_property(func)[source]

Cached propery decorator

A property that is only computed once per instance and then replaces itself with an ordinary attribute. Deleting the attribute resets the property. Source: https://github.com/bottlepy/bottle/commit/fa7733e075da0d790d809aa3d2f53071897e6f76

mirdata.core.copy_docs(original)[source]

Decorator function to copy docs from one function to another

mirdata.core.docstring_inherit(parent)[source]

Decorator function to inherit docstrings from the parent class.

Adds documented Attributes from the parent to the child docs.

Annotations

mirdata annotation data types

mirdata.annotations.AMPLITUDE_UNITS = {'binary': '0 or 1', 'energy': 'energy value, measured as the sum of a squared signal', 'likelihood': 'score between 0 and 1', 'velocity': 'MIDI velocity between 0 and 127'}

Amplitude/voicing units

class mirdata.annotations.Annotation[source]

Annotation base class

mirdata.annotations.BEAT_POSITION_UNITS = {'bar_fraction': 'beat position as fractions of bars, e.g. 0.25', 'bar_index': 'beat index within a bar, 1-indexed', 'global_fraction': 'bar_frac, but where the integer part indicates the bar. e.g. 4.25', 'global_index': 'beat index within full track, 1-indexed'}

Beat position units

class mirdata.annotations.BeatData(times, time_unit, positions, position_unit, confidence=None, confidence_unit=None)[source]

BeatData class

Variables
  • times (np.ndarray) – array of time stamps with positive, strictly increasing values

  • time_unit (str) – time unit, one of TIME_UNITS

  • positions (np.ndarray) – array of beat positions in the format of position_unit. For all units, values of 0 indicate beats which fall outside of a measure.

  • position_unit (str) – beat position unit, one of BEAT_POSITION_UNITS

  • confidence (np.ndarray) – array of confidence values

  • confidence_unit (str) – confidence unit, one of AMPLITUDE_UNITS

mirdata.annotations.CHORD_UNITS = {'harte': 'chords in harte format, e.g. Ab:maj7', 'jams': "chords in jams 'chord' format", 'open': 'no strict schema or units'}

Chord units

class mirdata.annotations.ChordData(intervals, interval_unit, labels, label_unit, confidence=None, confidence_unit=None)[source]

ChordData class

Variables
  • intervals (np.ndarray) – (n x 2) array of intervals in the form [start_time, end_time]. Times should be positive and intervals should have non-negative duration

  • interval_unit (str) – unit of the time values in intervals. One of TIME_UNITS.

  • labels (list) – list chord labels (as strings)

  • label_unit (str) – chord label schema

  • confidence (np.ndarray or None) – array of confidence values

  • confidence_unit (str or None) – confidence unit, one of AMPLITUDE_UNITS

mirdata.annotations.EVENT_UNITS = {'open': 'no scrict schema or units'}

Event units

class mirdata.annotations.EventData(intervals, interval_unit, events, event_unit)[source]

EventData class

Variables
  • intervals (np.ndarray) – (n x 2) array of intervals in the form [start_time, end_time]. Times should be positive and intervals should have non-negative duration

  • interval_unit (str) – unit of the time values in intervals. One of TIME_UNITS.

  • interval_unit – interval units, one of TIME_UNITS

  • events (list) – list of event labels (as strings)

  • event_unit (str) – event units, one of EVENT_UNITS

class mirdata.annotations.F0Data(times, time_unit, frequencies, frequency_unit, voicing, voicing_unit, confidence=None, confidence_unit=None)[source]

F0Data class

Variables
  • times (np.ndarray) – array of time stamps (as floats) with positive, strictly increasing values

  • time_unit (str) – time unit, one of TIME_UNITS

  • frequencies (np.ndarray) – array of frequency values (as floats)

  • frequency_unit (str) – frequency unit, one of PITCH_UNITS

  • voicing (np.ndarray) – array of voicing values, indicating whether or not a time frame has an active pitch

  • voicing_unit (str) – voicing unit, one of VOICING_UNITS

  • confidence (np.ndarray or None) – array of confidence values

  • confidence_unit (str or None) – confidence unit, one of AMPLITUDE_UNITS

resample(times_new, times_new_unit)[source]

Resample the annotation to a new time scale. This function is adapted from: https://github.com/craffel/mir_eval/blob/master/mir_eval/melody.py#L212

Parameters
  • times_new (np.ndarray) – new time base, in units of times_new_unit

  • times_new_unit (str) – time unit, one of TIME_UNITS

Returns

F0Data – F0 data sampled at new time scale

to_matrix(time_scale, time_scale_unit, frequency_scale, frequency_scale_unit, amplitude_unit='binary')[source]

Convert f0 data to a matrix (piano roll) defined by a time and frequency scale

Parameters
  • time_scale (np.array) – times in units time_unit

  • time_scale_unit (str) – time scale units, one of TIME_UNITS

  • frequency_scale (np.array) – frequencies in frequency_unit

  • frequency_scale_unit (str) – frequency scale units, one of PITCH_UNITS

  • amplitude_unit (str) – amplitude units, one of AMPLITUDE_UNITS Defaults to “binary”.

Returns

np.ndarray – 2D matrix of shape len(time_scale) x len(frequency_scale)

to_mir_eval()[source]

Convert units and format to what is expected by mir_eval.melody.evaluate

Returns

  • times (np.ndarray) - uniformly spaced times in seconds

  • frequencies (np.ndarray) - frequency values in hz

  • voicing (np.ndarray) - voicings, as likelihood values

to_sparse_index(time_scale, time_scale_unit, frequency_scale, frequency_scale_unit, amplitude_unit='binary')[source]

Convert F0 annotation to sparse matrix indices for a time-frequency matrix.

Parameters
  • time_scale (np.array) – times in units time_unit

  • time_scale_unit (str) – time scale units, one of TIME_UNITS

  • frequency_scale (np.array) – frequencies in frequency_unit

  • frequency_scale_unit (str) – frequency scale units, one of PITCH_UNITS

  • amplitude_unit (str) – amplitude units, one of AMPLITUDE_UNITS Defaults to “binary”.

Returns

** sparse_index (np.ndarray)* – Array of sparce indices [(time_index, frequency_index)] * amplitude (np.ndarray): Array of amplitude values for each index

mirdata.annotations.KEY_UNITS = {'key_mode': 'key labels in key-mode format, e.g. G#:minor'}

Key units

class mirdata.annotations.KeyData(intervals, interval_unit, keys, key_unit)[source]

KeyData class

Variables
  • intervals (np.ndarray) – (n x 2) array of intervals in the form [start_time, end_time]. Times should be positive and intervals should have non-negative duration

  • interval_unit (str) – unit of the time values in intervals. One of TIME_UNITS.

  • keys (list) – list key labels (as strings)

  • key_unit (str) – key unit, one of KEY_UNITS

mirdata.annotations.LYRIC_UNITS = {'pronunciations_open': 'lyric pronunciations, no strict schema', 'syllable_open': 'lyrics segmented by syllable, no strict schema', 'words': 'lyrics as words or phrases'}

Lyric units

class mirdata.annotations.LyricData(intervals, interval_unit, lyrics, lyric_unit)[source]

LyricData class

Variables
  • intervals (np.ndarray) – (n x 2) array of intervals in the form [start_time, end_time]. Times should be positive and intervals should have non-negative duration

  • interval_unit (str) – unit of the time values in intervals. One of TIME_UNITS.

  • lyrics (list) – list of lyrics (as strings)

  • lyric_unit (str) – lyric unit, one of LYRIC_UNITS

class mirdata.annotations.MultiF0Data(times, time_unit, frequency_list, frequency_unit, confidence_list=None, confidence_unit=None)[source]

MultiF0Data class

Variables
  • times (np.ndarray) – array of time stamps (as floats) with positive, strictly increasing values

  • time_unit (str) – time unit, one of TIME_UNITS

  • frequency_list (list) – list of lists of frequency values (as floats)

  • frequency_unit (str) – frequency unit, one of PITCH_UNITS

  • confidence_list (np.ndarray or None) – list of lists of confidence values

  • confidence_unit (str or None) – confidence unit, one of AMPLITUDE_UNITS

resample(times_new, times_new_unit)[source]

Resample annotation to a new time scale. This function is adapted from: https://github.com/craffel/mir_eval/blob/master/mir_eval/multipitch.py#L104

Parameters
  • times_new (np.array) – array of new time scale values

  • times_new_unit (str) – units for new time scale, one of TIME_UNITS

Returns

MultiF0Data – the resampled annotation

to_matrix(time_scale, time_scale_unit, frequency_scale, frequency_scale_unit, amplitude_unit='binary')[source]

Convert f0 data to a matrix (piano roll) defined by a time and frequency scale

Parameters
  • time_scale (np.array) – times in units time_unit

  • time_scale_unit (str) – time scale units, one of TIME_UNITS

  • frequency_scale (np.array) – frequencies in frequency_unit

  • frequency_scale_unit (str) – frequency scale units, one of PITCH_UNITS

  • amplitude_unit (str) – amplitude units, one of AMPLITUDE_UNITS Defaults to “binary”.

Returns

np.ndarray – 2D matrix of shape len(time_scale) x len(frequency_scale)

to_mir_eval()[source]

Convert annotation into the format expected by mir_eval.multipitch.evaluate

Returns

** times (np.ndarray)* – array of uniformly spaced time stamps in seconds * frequency_list (list): list of np.array of frequency values in Hz

to_sparse_index(time_scale, time_scale_unit, frequency_scale, frequency_scale_unit, amplitude_unit='binary')[source]

Convert MultiF0 annotation to sparse matrix indices for a time-frequency matrix.

Parameters
  • time_scale (np.array) – times in units time_unit

  • time_scale_unit (str) – time scale units, one of TIME_UNITS

  • frequency_scale (np.array) – frequencies in frequency_unit

  • frequency_scale_unit (str) – frequency scale units, one of PITCH_UNITS

  • amplitude_unit (str) – amplitude units, one of AMPLITUDE_UNITS Defaults to “binary”.

Returns

** sparse_index (np.ndarray)* – Array of sparce indices [(time_index, frequency_index)] * amplitude (np.ndarray): Array of amplitude values for each index

class mirdata.annotations.NoteData(intervals: numpy.ndarray, interval_unit: str, pitches: numpy.ndarray, pitch_unit: str, confidence: Optional[numpy.ndarray] = None, confidence_unit: Optional[str] = None)[source]

NoteData class

Variables
  • intervals (np.ndarray) – (n x 2) array of intervals in the form [start_time, end_time]. Times should be positive and intervals should have non-negative duration

  • interval_unit (str) – unit of the time values in intervals. One of TIME_UNITS.

  • pitches (np.ndarray) – array of pitches

  • pitch_unit (str) – note unit, one of PITCH_UNITS

  • confidence (np.ndarray or None) – array of confidence values

  • confidence_unit (str or None) – confidence unit, one of AMPLITUDE_UNITS

to_matrix(time_scale: numpy.ndarray, time_scale_unit: str, frequency_scale: numpy.ndarray, frequency_scale_unit: str, amplitude_unit: str = 'binary', onsets_only: bool = False)numpy.ndarray[source]

Convert f0 data to a matrix (piano roll) defined by a time and frequency scale

Parameters
  • time_scale (np.ndarray) – array of matrix time stamps in seconds

  • time_scale_unit (str) – units for time scale values, one of TIME_UNITS

  • frequency_scale (np.ndarray) – array of matrix frequency values in seconds

  • frequency_scale_unit (str) – units for frequency scale values, one of PITCH_UNITS

  • onsets_only (bool, optional) – If True, returns an onset piano roll. Defaults to False.

Returns

np.ndarray – 2D matrix of shape len(time_scale) x len(frequency_scale)

to_mir_eval()[source]

Convert data to the format expected by mir_eval.transcription.evaluate and mir_eval.transcription_velocity.evaluate

Returns

  • intervals (np.ndarray) - (n x 2) array of intervals of start time, end time in seconds

  • pitches (np.ndarray) - array of pitch values in hz

  • velocity (optional, np.ndarray) - array of velocity values between 0 and 127

to_multif0(time_hop: float, time_hop_unit: str, max_time: Optional[float] = None)mirdata.annotations.MultiF0Data[source]

Convert note annotation to multiple f0 format.

Parameters
  • time_hop (float) – time between time stamps in multif0 annotation

  • time_hop_unit (str) – unit for time_hop, and resulting multif0 data. One of TIME_UNITS

  • max_time (float, optional) – Maximum time stamp in time_hop units. Defaults to None, in which case the maximum note interval time is used.

Returns

MultiF0Data – multif0 annotation

to_sparse_index(time_scale: numpy.ndarray, time_scale_unit: str, frequency_scale: numpy.ndarray, frequency_scale_unit: str, amplitude_unit: str = 'binary', onsets_only: bool = False) → Tuple[numpy.ndarray, numpy.ndarray][source]

Convert note annotations to indexes of a sparse matrix (piano roll)

Parameters
  • time_scale (np.array) – array of matrix time stamps in seconds

  • time_scale_unit (str) – units for time scale values, one of TIME_UNITS

  • frequency_scale (np.array) – array of matrix frequency values in seconds

  • frequency_scale_unit (str) – units for frequency scale values, one of PITCH_UNITS

  • amplitude_unit (str) – units for amplitude values, one of AMPLITUDE_UNITS. Defaults to “binary”.

  • onsets_only (bool, optional) – If True, returns an onset piano roll. Defaults to False.

Returns

** sparse_index (np.ndarray)* – Array of sparce indices [(time_index, frequency_index)] * amplitude (np.ndarray): Array of amplitude values for each index

mirdata.annotations.PITCH_UNITS = {'hz': 'hertz', 'midi': 'MIDI note number', 'note_name': 'pc with octave, e.g. Ab4', 'pc': 'pitch class, e.g. G#'}

Pitch units

mirdata.annotations.SECTION_UNITS = {'open': 'no scrict schema or units'}

Section units

class mirdata.annotations.SectionData(intervals, interval_unit, labels=None, label_unit=None)[source]

SectionData class

Variables
  • intervals (np.ndarray) – (n x 2) array of intervals in the form [start_time, end_time]. Times should be positive and intervals should have non-negative duration

  • interval_unit (str) – unit of the time values in intervals. One of TIME_UNITS.

  • labels (list or None) – list of section labels

  • label_unit (str or None) – label unit, one of SECTION_UNITS

mirdata.annotations.TEMPO_UNITS = {'bpm': 'beats per minute'}

Tempo units

mirdata.annotations.TIME_UNITS = {'ms': 'miliseconds', 's': 'seconds', 'ticks': 'MIDI ticks'}

Time units

class mirdata.annotations.TempoData(intervals, interval_unit, tempos, tempo_unit, confidence=None, confidence_unit=None)[source]

TempoData class

Variables
  • intervals (np.ndarray) – (n x 2) array of interva