groove

  • Description:

The Groove MIDI Dataset (GMD) is composed of 13.6 hours of aligned MIDI and (synthesized) audio of human-performed, tempo-aligned expressive drumming captured on a Roland TD-11 V-Drum electronic drum kit.

@inproceedings{groove2019,
    Author = {Jon Gillick and Adam Roberts and Jesse Engel and Douglas Eck and David Bamman},
    Title = {Learning to Groove with Inverse Sequence Transformations},
    Booktitle   = {International Conference on Machine Learning (ICML)}
    Year = {2019},
}

groove/full-midionly (default config)

  • Config description: Groove dataset without audio, unsplit.

  • Download size: 3.11 MiB

  • Dataset size: 5.22 MiB

  • Auto-cached (documentation): Yes

  • Splits:

Split Examples
'test' 129
'train' 897
'validation' 124
  • Features:
FeaturesDict({
    'bpm': tf.int32,
    'drummer': ClassLabel(shape=(), dtype=tf.int64, num_classes=10),
    'id': tf.string,
    'midi': tf.string,
    'style': FeaturesDict({
        'primary': ClassLabel(shape=(), dtype=tf.int64, num_classes=18),
        'secondary': tf.string,
    }),
    'time_signature': ClassLabel(shape=(), dtype=tf.int64, num_classes=5),
    'type': ClassLabel(shape=(), dtype=tf.int64, num_classes=2),
})

groove/full-16000hz

  • Config description: Groove dataset with audio, unsplit.

  • Download size: 4.76 GiB

  • Dataset size: 2.33 GiB

  • Auto-cached (documentation): No

  • Splits:

Split Examples
'test' 124
'train' 846
'validation' 120
  • Features:
FeaturesDict({
    'audio': Audio(shape=(None,), dtype=tf.float32),
    'bpm': tf.int32,
    'drummer': ClassLabel(shape=(), dtype=tf.int64, num_classes=10),
    'id': tf.string,
    'midi': tf.string,
    'style': FeaturesDict({
        'primary': ClassLabel(shape=(), dtype=tf.int64, num_classes=18),
        'secondary': tf.string,
    }),
    'time_signature': ClassLabel(shape=(), dtype=tf.int64, num_classes=5),
    'type': ClassLabel(shape=(), dtype=tf.int64, num_classes=2),
})

groove/2bar-midionly

  • Config description: Groove dataset without audio, split into 2-bar chunks.

  • Download size: 3.11 MiB

  • Dataset size: 19.59 MiB

  • Auto-cached (documentation): Yes

  • Splits:

Split Examples
'test' 2,204
'train' 18,163
'validation' 2,252
  • Features:
FeaturesDict({
    'bpm': tf.int32,
    'drummer': ClassLabel(shape=(), dtype=tf.int64, num_classes=10),
    'id': tf.string,
    'midi': tf.string,
    'style': FeaturesDict({
        'primary': ClassLabel(shape=(), dtype=tf.int64, num_classes=18),
        'secondary': tf.string,
    }),
    'time_signature': ClassLabel(shape=(), dtype=tf.int64, num_classes=5),
    'type': ClassLabel(shape=(), dtype=tf.int64, num_classes=2),
})

groove/2bar-16000hz

  • Config description: Groove dataset with audio, split into 2-bar chunks.

  • Download size: 4.76 GiB

  • Dataset size: 4.61 GiB

  • Auto-cached (documentation): No

  • Splits:

Split Examples
'test' 1,873
'train' 14,390
'validation' 2,034
  • Features:
FeaturesDict({
    'audio': Audio(shape=(None,), dtype=tf.float32),
    'bpm': tf.int32,
    'drummer': ClassLabel(shape=(), dtype=tf.int64, num_classes=10),
    'id': tf.string,
    'midi': tf.string,
    'style': FeaturesDict({
        'primary': ClassLabel(shape=(), dtype=tf.int64, num_classes=18),
        'secondary': tf.string,
    }),
    'time_signature': ClassLabel(shape=(), dtype=tf.int64, num_classes=5),
    'type': ClassLabel(shape=(), dtype=tf.int64, num_classes=2),
})

groove/4bar-midionly

  • Config description: Groove dataset without audio, split into 4-bar chunks.

  • Download size: 3.11 MiB

  • Dataset size: 27.32 MiB

  • Auto-cached (documentation): Yes

  • Splits:

Split Examples
'test' 2,033
'train' 17,261
'validation' 2,121
  • Features:
FeaturesDict({
    'bpm': tf.int32,
    'drummer': ClassLabel(shape=(), dtype=tf.int64, num_classes=10),
    'id': tf.string,
    'midi': tf.string,
    'style': FeaturesDict({
        'primary': ClassLabel(shape=(), dtype=tf.int64, num_classes=18),
        'secondary': tf.string,
    }),
    'time_signature': ClassLabel(shape=(), dtype=tf.int64, num_classes=5),
    'type': ClassLabel(shape=(), dtype=tf.int64, num_classes=2),
})