Code Monkey home page Code Monkey logo

adtof's Introduction

ADTOF

This repository contains additional material for the papers:

  • M. Zehren, M. Alunno, and P. Bientinesi, “ADTOF: A large dataset of non-synthetic music for automatic drum transcription,” in Proceedings of the 22st International Society for Music Information Retrieval Conference, Online, 2021, pp. 818–824.
  • Zehren, M.; Alunno, M.; Bientinesi, P. High-Quality and Reproducible Automatic Drum Transcription from Crowdsourced Data. Signals 2023, 4, 768-787. https://doi.org/10.3390/signals4040042

The content of this repository is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

Transcription

The easiest way to test the trained model is our Colab Notebook which produces the following example:

Example.ADTOF2.mov

Original video generously provided by Thomas Crémier: Crémier, Thomas. "Sunshine - Psygnosis [Official Drum Playthrough by Thomas Crémier]." YouTube

Alternatively, you can run the transcription locally with this Jupyter Notebook.

Datasets

If you want to train your model, a copy of the ADTOF datasets is available upon request on Zenodo. The datasets contain 359 hours of music annotated for automatic drum transcription. The data is available as mel-scale spectrograms. Once downloaded, the datasets can be loaded with this Jupyter Notebook.

Each sample consists of an input (400 frames, 84 bins, 1 channel) and a target (400 Frames, 5 classes).

Data cleansing procedure

We also share the cleansing procedure used to build the datasets presented in the submission. You can build your version with the following steps.

1. Installation

To build the datasets or use the pre-trained ADT models, you first need to install dependencies. This can be done with the script setup.py with the following command line:

pip3 install .

⚠️ This repository has been tested on macOS Ventura with Python 3.10.

2. Download custom charts

To build the dataset you need to download rhythm video game charts. For example, from Rhythm Gaming World. ⚠️ we are not affiliated with Rhythm Gaming World and we do not control any material, possibly copyrighted, linked there.

3. Convert the custom charts to the PhaseShift file format

The charts you downloaded in the previous step are in different formats meant for different rhythm games. But the automatic cleansing requires that the charts downloaded are following specifically the PhaseShift file format (i.e. a folder containing a song.ogg and a notes.mid file). You can easily convert the charts downloaded to a good file format with the software C3 CON Tools (tested on Windows 10). After downloading and launching C3 CON Tools, the conversion is done on the graphical user interface following this procedure:

  1. Click on Phase Shift Converter
  2. Click on Change Input Folder and select the folder containing the custom charts previously downloaded
  3. Click on Begin

4. Automatic grooming

The custom charts you downloaded and transformed into the PhaseShift file format can now be converted into a usable dataset with the script /bin/automaticGrooming.py:

automaticGrooming.py [-h] [-p] inputFolder outputFolder


Process a chart folder with the automatic cleaning procedure

positional arguments:
inputFolder     Path to the chart folder.
outputFolder    Path to the destination folder of the dataset.

optional arguments:
-h, --help      show this help message and exit
-p, --parallel  Run the cleansing in parallel

Update

Clear mapping from different datasets (e.g., Slakh) to General MIDI has been added in the file instrumentsMapping.py

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.