All Projects → salu133445 → arranger

salu133445 / arranger

Licence: MIT license
An AI for Automatic Instrumentation

Programming Languages

python
139335 projects - #7 most used programming language
shell
77523 projects
Jupyter Notebook
11667 projects

Projects that are alternatives of or similar to arranger

Dali
DALI: a large Dataset of synchronised Audio, LyrIcs and vocal notes.
Stars: ✭ 193 (+421.62%)
Mutual labels:  music-information-retrieval
musicntwrk
Network Analysis of Generalized Musical Spaces
Stars: ✭ 37 (+0%)
Mutual labels:  music-information-retrieval
lakh-pianoroll-dataset
A collection of 174,154 multi-track piano-rolls
Stars: ✭ 64 (+72.97%)
Mutual labels:  music-information-retrieval
Tutorial
Tutorial covering Open Source tools for Source Separation.
Stars: ✭ 223 (+502.7%)
Mutual labels:  music-information-retrieval
emusic net
Neural network to classify certain styles of Electronic music
Stars: ✭ 22 (-40.54%)
Mutual labels:  music-information-retrieval
toscanini
A JavaScript module for searching music scores.
Stars: ✭ 15 (-59.46%)
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 (+345.95%)
Mutual labels:  music-information-retrieval
essentia-tutorial
A tutorial for using Essentia in Python
Stars: ✭ 16 (-56.76%)
Mutual labels:  music-information-retrieval
da-tacos
A Dataset for Cover Song Identification and Understanding
Stars: ✭ 50 (+35.14%)
Mutual labels:  music-information-retrieval
music-genre-classification
Zalo AI Challenge - Music Genre Classification
Stars: ✭ 23 (-37.84%)
Mutual labels:  music-information-retrieval
Gist
A C++ Library for Audio Analysis
Stars: ✭ 244 (+559.46%)
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 (-27.03%)
Mutual labels:  music-information-retrieval
Modulo7
A semantic and technical analysis of musical scores based on Information Retrieval Principles
Stars: ✭ 15 (-59.46%)
Mutual labels:  music-information-retrieval
Olaf
Olaf: Overly Lightweight Acoustic Fingerprinting is a portable acoustic fingerprinting system.
Stars: ✭ 198 (+435.14%)
Mutual labels:  music-information-retrieval
Music-Genre-Classification
Automatic Music Genre Classification with Machine Learning Techniques
Stars: ✭ 49 (+32.43%)
Mutual labels:  music-information-retrieval
Awesome Deep Learning Music
List of articles related to deep learning applied to music
Stars: ✭ 2,195 (+5832.43%)
Mutual labels:  music-information-retrieval
spafe
🔉 spafe: Simplified Python Audio Features Extraction
Stars: ✭ 310 (+737.84%)
Mutual labels:  music-information-retrieval
audio to midi
A CNN which converts piano audio to a simplified MIDI format
Stars: ✭ 29 (-21.62%)
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 (-56.76%)
Mutual labels:  music-information-retrieval
CLMR
Official PyTorch implementation of Contrastive Learning of Musical Representations
Stars: ✭ 216 (+483.78%)
Mutual labels:  music-information-retrieval

Arranger

Arranger is a project on automatic instrumentation. In a nutshell, we aim to dynamically assign a proper instrument for each note in solo music. Such an automatic instrumentation model could empower a musician to play multiple instruments on a keyboard at the same time. It could also assist a composer in suggesting proper instrumentation for a solo piece.

Our proposed models outperform various baseline models and are able to produce alternative convincing instrumentations for existing arrangements. Check out our demo!

Prerequisites

You can install the dependencies by running pipenv install (recommended) or python3 setup.py install -e .. Python>3.6 is required.

Directory structure

├─ analysis         Notebooks for analysis
├─ scripts          Scripts for running experiments
├─ models           Pretrained models
└─ arranger         Main Python module
   ├─ config.yaml   Configuration file
   ├─ data          Code for collecting and processing data
   ├─ common        Most-common algorithm
   ├─ zone          Zone-based algorithm
   ├─ closest       Closest-pitch algorithm
   ├─ lstm          LSTM model
   └─ transformer   Transformer model

Data preparation

Please follow the instruction in arranger/data/README.md.

Models

  • LSTM model
    • arranger/lstm/train.py: Train the LSTM model
    • arranger/lstm/infer.py: Infer with the LSTM model
  • Transformer model
    • arranger/transformer/train.py: Train the Transformer model
    • arranger/transformer/infer.py: Infer with the Transformer model

Baseline algorithms

  • Most-common algorithm
    • arranger/common/learn.py: Learn the most common label
    • arranger/common/infer.py: Infer with the most-common algorithm
  • Zone-based algorithm
    • arranger/zone/learn.py: Learn the optimal zone setting
    • arranger/zone/infer.py: Infer with the zone-based algorithm
  • Closest-pitch algorithm
    • arranger/closest/infer.py: Infer with the closest-pitch algorithm
  • MLP model
    • arranger/mlp/train.py: Train the MLP model
    • arranger/mlp/infer.py: Infer with the MLP model

Configuration

In arranger/config.yaml, you can configure the MIDI program numbers used for each track in the sample files generated. You can also configure the color of the generated sample piano roll visualization.

Citing

Please cite the following paper if you use the code provided in this repository.

Hao-Wen Dong, Chris Donahue, Taylor Berg-Kirkpatrick and Julian McAuley, "Towards Automatic Instrumentation by Learning to Separate Parts in Symbolic Multitrack Music," Proceedings of the 22nd International Society for Music Information Retrieval Conference (ISMIR), 2021.
[homepage] [video] [paper] [slides] [slides (long)] [arXiv] [code]

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].