All Projects → hartmetzls → audio_to_midi

hartmetzls / audio_to_midi

Licence: other
A CNN which converts piano audio to a simplified MIDI format

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to audio to midi

Awesome Deep Learning Music
List of articles related to deep learning applied to music
Stars: ✭ 2,195 (+7468.97%)
Mutual labels:  music-information-retrieval
da-tacos
A Dataset for Cover Song Identification and Understanding
Stars: ✭ 50 (+72.41%)
Mutual labels:  music-information-retrieval
music-genre-classification
Zalo AI Challenge - Music Genre Classification
Stars: ✭ 23 (-20.69%)
Mutual labels:  music-information-retrieval
Olaf
Olaf: Overly Lightweight Acoustic Fingerprinting is a portable acoustic fingerprinting system.
Stars: ✭ 198 (+582.76%)
Mutual labels:  music-information-retrieval
ismir2019-music-style-translation
The code for the ISMIR 2019 paper “Supervised symbolic music style translation using synthetic data”.
Stars: ✭ 27 (-6.9%)
Mutual labels:  music-information-retrieval
spafe
🔉 spafe: Simplified Python Audio Features Extraction
Stars: ✭ 310 (+968.97%)
Mutual labels:  music-information-retrieval
Omr Datasets
Collection of datasets used for Optical Music Recognition
Stars: ✭ 158 (+444.83%)
Mutual labels:  music-information-retrieval
Music-Style-Transfer
Source code for "Transferring the Style of Homophonic Music Using Recurrent Neural Networks and Autoregressive Model"
Stars: ✭ 16 (-44.83%)
Mutual labels:  music-information-retrieval
emusic net
Neural network to classify certain styles of Electronic music
Stars: ✭ 22 (-24.14%)
Mutual labels:  music-information-retrieval
CLMR
Official PyTorch implementation of Contrastive Learning of Musical Representations
Stars: ✭ 216 (+644.83%)
Mutual labels:  music-information-retrieval
Tutorial
Tutorial covering Open Source tools for Source Separation.
Stars: ✭ 223 (+668.97%)
Mutual labels:  music-information-retrieval
ACA-Slides
Slides and Code for "An Introduction to Audio Content Analysis," also taught at Georgia Tech as MUSI-6201. This introductory course on Music Information Retrieval is based on the text book "An Introduction to Audio Content Analysis", Wiley 2012/2022
Stars: ✭ 84 (+189.66%)
Mutual labels:  music-information-retrieval
toscanini
A JavaScript module for searching music scores.
Stars: ✭ 15 (-48.28%)
Mutual labels:  music-information-retrieval
Dali
DALI: a large Dataset of synchronised Audio, LyrIcs and vocal notes.
Stars: ✭ 193 (+565.52%)
Mutual labels:  music-information-retrieval
lakh-pianoroll-dataset
A collection of 174,154 multi-track piano-rolls
Stars: ✭ 64 (+120.69%)
Mutual labels:  music-information-retrieval
Omnizart
Omniscient Mozart, being able to transcribe everything in the music, including vocal, drum, chord, beat, instruments, and more.
Stars: ✭ 165 (+468.97%)
Mutual labels:  music-information-retrieval
musicntwrk
Network Analysis of Generalized Musical Spaces
Stars: ✭ 37 (+27.59%)
Mutual labels:  music-information-retrieval
essentia-tutorial
A tutorial for using Essentia in Python
Stars: ✭ 16 (-44.83%)
Mutual labels:  music-information-retrieval
Music-Genre-Classification
Automatic Music Genre Classification with Machine Learning Techniques
Stars: ✭ 49 (+68.97%)
Mutual labels:  music-information-retrieval
Modulo7
A semantic and technical analysis of musical scores based on Information Retrieval Principles
Stars: ✭ 15 (-48.28%)
Mutual labels:  music-information-retrieval

audio_to_midi

A Convolutional Neural Network which converts piano audio to a simplified MIDI format. The final model takes as input an audio file (mono- or polyphonic) and outputs a simplified MIDI output with the corresponding notes and note duration. This output can then be reconstructed into a standard MIDI file format.

Main objective

The automated conversion executed by the CNN is a step toward the larger goal of Automatic Music Transcription (AMT). AMT and Music Information Retrieval have many applications in industry, including Digital Audio Workstation software development and music recommendation systems.

Setup

To get started, download the data from the Saarland Music dataset, putting the audio in one directory named "audio" and the MIDI in another directory called "midi":

mkdir audio 
wget "http://resources.mpi-inf.mpg.de/SMD/SMD_MIDI-Audio-Piano-Music.html" -e robots=off -r -l1 -nd --no-parent -A.mp3  
mkdir midi  
wget "http://resources.mpi-inf.mpg.de/SMD/SMD_MIDI-Audio-Piano-Music.html" -e robots=off -r -l1 -nd --no-parent -A.mid

In create_dataset.py, in the main function, follow the instructions to set directory_str to the filepath where you downloaded the dataset.

Run create_dataset.py.

The file models.py contains the code for the final model.

Libraries

TensorFlow install instructions:
https://www.tensorflow.org/install/

Keras install instructions:
https://keras.io/#installation

collections
keras (see instructions above for dependencies)
librosa
math
matplotlib
mido
ntpath
numpy
os
pickle
random
scikit-learn
shutil
tensorflow (see instructions above for dependencies)
time

Issues

On Windows, when loading in the audio files with librosa, the following error may arise:

raise NoBackendError()
audioread.NoBackendError

If the above error is raised, try installing FFmpeg:
https://www.wikihow.com/Install-FFmpeg-on-Windows

On Linux, the equivalent fix is:
sudo apt-get install libav-tools

Copyright

Copyright (c) 2018 Lillian Neff

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].