Michaël Defferrard, Kirell Benzi, Pierre Vandergheynst, Xavier Bresson, EPFL LTS2.
Note that this is a beta release and that this repository as well as the paper and data are subject to change. Stay tuned!
The dataset is a dump of the Free Music Archive (FMA), an interactive library of high-quality, legal audio downloads. Please see our paper for a description of how the data was collected and cleaned as well as an analysis and some baselines.
You got various sizes of MP3-encoded audio data:
- fma_small.zip: 4,000 tracks of 30 seconds, 10 balanced genres (GTZAN-like) (~3.4 GiB)
- fma_medium.zip: 14,511 tracks of 30 seconds, 20 unbalanced genres (~12.2 GiB)
- [fma_large.zip]: 77,643 tracks of 30 seconds, 68 unbalanced genres (~90 GiB) (available soon)
- [fma_full.zip]: 77,643 untrimmed tracks, 164 unbalanced genres (~900 GiB) (subject to distribution constraints)
All the below metadata and features are tables which can be imported as pandas dataframes, or used with any other data analysis tool. See the paper or the usage notebook for an exhaustive description.
- [fma_metadata.zip]: all metadata for all tracks (~7 MiB)
tracks.json
: per track metadata such as ID, title, artist, genres and play counts, for all 110,000 tracks.genres.json
: all 164 genre IDs with their name and parent (used to infer the genre hierarchy and top-level genres).
- [fma_features.zip]: all features for all tracks (~400 MiB)
The following notebooks have been used to create and evaluate the dataset. They should be useful to users.
- usage: how to load the datasets and develop, train and test your own models with it.
- analysis: some exploration of the metadata, data and features.
- baselines: baseline models for genre recognition, both from audio and features.
- features: features extraction from the audio (used to create
features.json
). - webapi: query the web API of the FMA. Can be used to update the dataset or gather further information.
- creation: creation of the dataset (used to create
tracks.json
andgenres.json
).
-
Download some data and verify its integrity.
echo "e731a5d56a5625f7b7f770923ee32922374e2cbf fma_small.zip" | sha1sum -c - echo "fe23d6f2a400821ed1271ded6bcd530b7a8ea551 fma_medium.zip" | sha1sum -c -
-
Optionally, use pyenv to install Python 3.6 and create a virtual environment.
pyenv install 3.6.0 pyenv virtualenv 3.6.0 fma pyenv activate fma
-
Clone the repository.
git clone https://github.com/mdeff/fma.git cd fma
-
Install the Python dependencies from
requirements.txt
. Depending on your usage, you may need to install ffmpeg or graphviz. Install CUDA if you want to train neural networks on GPUs. See Tensorflow's instructions.make install
-
Fill in the configuration.
cat .env AUDIO_DIR=/path/to/audio FMA_KEY=IFIUSETHEAPI
-
Open Jupyter or run a notebook.
jupyter-notebook make baselines.ipynb
- 2016-12-06 beta release
- paper: arXiv:1612.01840v1
- code: git tag beta
fma_small.zip
sha1:e731a5d56a5625f7b7f770923ee32922374e2cbf
fma_medium.zip
sha1:fe23d6f2a400821ed1271ded6bcd530b7a8ea551
- Please cite our paper if you use our code or data.
- The code in this repository is released under the terms of the MIT license.
- The meta-data is released under the terms of the Creative Commons Attribution 4.0 International License (CC BY 4.0).
- We do not hold the copyright on the audio and distribute it under the terms of the license chosen by the artist.
- The dataset is meant for research purposes.
- We are grateful to SWITCH and EPFL for hosting the dataset within the context of the SCALE-UP project, funded in part by the swissuniversities SUC P-2 program.