Source code for muspy.datasets.maestro

"""MAESTRO Dataset."""
from pathlib import Path
from typing import Union

from ..inputs import read_midi
from ..music import Music
from .base import DatasetInfo, RemoteFolderDataset

# pylint: disable=line-too-long

_NAME = "MAESTRO Dataset"
_DESCRIPTION = """\
MAESTRO (MIDI and Audio Edited for Synchronous TRacks and Organization) is a \
dataset composed of over 200 hours of virtuosic piano performances captured \
with fine alignment (~3 ms) between note labels and audio waveforms."""
_HOMEPAGE = "https://magenta.tensorflow.org/datasets/maestro"
_LICENSE = "Creative Commons Attribution Non-Commercial Share-Alike 4.0 \
(CC BY-NC-SA 4.0)"
_CITATION = """\
@inproceedings{hawthorne2018enabling,
  title={Enabling Factorized Piano Music Modeling and Generation with the {MAESTRO} Dataset},
  author={Curtis Hawthorne and Andriy Stasyuk and Adam Roberts and Ian Simon and Cheng-Zhi Anna Huang and Sander Dieleman and Erich Elsen and Jesse Engel and Douglas Eck},
  booktitle={Proceedings of the 7th International Conference on Learning Representations (ICLR)},
  year=2019,
  url={https://openreview.net/forum?id=r1lYRjC9F7}
}"""


[docs]class MAESTRODatasetV1(RemoteFolderDataset): """MAESTRO Dataset V1 (MIDI only).""" _info = DatasetInfo(_NAME, _DESCRIPTION, _HOMEPAGE, _LICENSE) _citation = _CITATION _sources = { "maestro": { "filename": "maestro-v1.0.0-midi.zip", "url": "https://storage.googleapis.com/magentadata/datasets/maestro/v1.0.0/maestro-v1.0.0-midi.zip", "archive": True, "size": 46579421, "sha256": "f620f9e1eceaab8beea10617599add2e9c83234199b550382a2f603098ae7135", } } _extension = "midi"
[docs] def read(self, filename: Union[str, Path]) -> Music: """Read a file into a Music object.""" return read_midi(self.root / filename)
[docs]class MAESTRODatasetV2(RemoteFolderDataset): """MAESTRO Dataset V2 (MIDI only).""" _info = DatasetInfo(_NAME, _DESCRIPTION, _HOMEPAGE, _LICENSE) _citation = _CITATION _sources = { "maestro": { "filename": "maestro-v2.0.0-midi.zip", "url": "https://storage.googleapis.com/magentadata/datasets/maestro/v2.0.0/maestro-v2.0.0-midi.zip", "archive": True, "size": 59243107, "sha256": "ec2cc9d94886c6b376db1eaa2b8ad1ce62ff9f0a28b3744782b13163295dadf3", } } _extension = "midi"
[docs] def read(self, filename: Union[str, Path]) -> Music: """Read a file into a Music object.""" return read_midi(self.root / filename)
[docs]class MAESTRODatasetV3(RemoteFolderDataset): """MAESTRO Dataset V3 (MIDI only).""" _info = DatasetInfo(_NAME, _DESCRIPTION, _HOMEPAGE, _LICENSE) _citation = _CITATION _sources = { "maestro": { "filename": "maestro-v3.0.0-midi.zip", "url": "https://storage.googleapis.com/magentadata/datasets/maestro/v3.0.0/maestro-v3.0.0-midi.zip", "archive": True, "size": 58416533, "sha256": "70470ee253295c8d2c71e6d9d4a815189e35c89624b76d22fce5a019d5dde12c", } } _extension = "midi"
[docs] def read(self, filename: Union[str, Path]) -> Music: """Read a file into a Music object.""" return read_midi(self.root / filename)