Benchmark of existing inpainting solutions:
Model | Year | Repo | Paper |
---|---|---|---|
DeepBach | 2017 | Repo | Paper |
CocoNet | 2017 | Repo | Paper |
AnticipationRNN | 2018 | Repo | Paper |
InpaintNet | 2019 | Repo | Paper |
Music SketchNet | 2020 | Repo | Paper |
Variable Length Infilling | 2021 | Repo | Paper |
Dataset | Size | Description | Source | Paper | Type |
---|---|---|---|---|---|
AILabs | 1747 | Live Piano Performances | Source | Paper | Single Instrument Polyphony |
JSB Chorales | 385 | Bach Chorales Scores | Source | - | Fixed Voices Polyphony |
IrishFolk | 45849 | Irish Folk Songs | Source | Paper | Monophony |
DEFAULT_FRACTION: 24
# 0-127 note, 128 hold, 129 rest
note_seq: [
[48, 128, 128, 128, 128, 128, 50, 128, 128, 128, 128, 128, 52, 128, 128, 128, 128, 128, 53, 128, 128, 128, 128, 128]
]
# [px, rx, len_x, nrx, gd]
factorized: [
[48, 50, 52, 53, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128],
[1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2],
[4],
[[1, 0, 0], [0, 1, 0], [0, 1, 0], [0, 1, 0], [0, 1, 0], [0, 1, 0], [1, 0, 0], [0, 1, 0], [0, 1, 0], [0, 1, 0], [0, 1, 0], [0, 1, 0], [1, 0, 0], [0, 1, 0], [0, 1, 0], [0, 1, 0], [0, 1, 0], [0, 1, 0], [1, 0, 0], [0, 1, 0], [0, 1, 0], [0, 1, 0], [0, 1, 0], [0, 1, 0]],
[48, 128, 128, 128, 128, 128, 50, 128, 128, 128, 128, 128, 52, 128, 128, 128, 128, 128, 53, 128, 128, 128, 128, 128]
]
model_input: [n_batch, **REVISAR**]
model_output: [n_batch, n_measures_middle, DEFAULT_FRACTION, n_classes]
index2note:
{0: 'D#5', 1: 'E-4', 2: 'E-5', 3: 'rest', 4: 'F#4', 5: 'E#5', 6: 'G#4', 7: 'B4', 8: 'D4', 9: 'A5', 10: 'END', 11: 'G-4', 12: 'C#5', 13: 'G4', 14: 'A3', 15: 'D#4', 16: 'START', 17: 'D5', 18: 'C5', 19: 'F5', 20: 'A-4', 21: 'C4', 22: 'C#4', 23: 'E5', 24: 'E#4', 25: 'A#4', 26: 'D-5', 27: 'E4', 28: 'G-5', 29: 'A-5', 30: 'A4', 31: 'G5', 32: 'B-4', 33: 'F#5', 34: '__', 35: 'F4', 36: 'OOR', 37: 'G#5', 38: 'B3'}
score_tensor = tensor([[36, 34, 34, 34, 36, 34, 34, 34, 34, 34, 34, 34, 8, 34, 34, 34, 38, 34,
34, 34, 34, 34, 14, 34, 36, 34, 34, 34, 36, 34, 34, 34, 34, 34, 14, 34,
38, 34, 34, 34, 14, 34, 34, 34, 34, 34, 34, 34, 38, 34, 34, 34, 8, 34,
34, 34, 34, 34, 34, 34, 21, 34, 34, 34, 38, 34, 34, 34, 14, 34, 34, 34,
34, 34, 34, 34, 36, 34, 34, 34, 34, 34, 34, 34, 38, 34, 34, 34, 38, 34,
34, 34, 21, 34, 34, 34, 8, 34, 34, 34, 8, 34, 34, 34, 34, 34, 21, 34,
38, 34, 34, 34, 14, 34, 34, 34, 34, 34, 34, 34, 36, 34, 34, 34, 38, 34,
34, 34, 34, 34, 34, 34, 21, 34, 34, 34, 8, 34, 34, 34, 34, 34, 34, 34,
21, 34, 34, 34, 38, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 36, 34,
34, 34, 34, 34, 34, 34, 38, 34, 34, 34, 8, 34, 34, 34, 34, 34, 34, 34,
21, 34, 34, 34, 38, 34, 34, 34, 34, 34, 34, 34, 14, 34, 34, 34, 36, 34,
34, 34, 34, 34, 14, 34, 38, 34, 34, 34, 14, 34, 34, 34, 34, 34, 34, 34,
38, 34, 34, 34, 8, 34, 34, 34, 34, 34, 34, 34, 21, 34, 34, 34, 38, 34,
34, 34, 14, 34, 34, 34, 34, 34, 34, 34, 36, 34, 34, 34, 34, 34, 34, 34]])
# Metadata = [Fermata, Tick, Key, N_Voice]
metadata_tensor = tensor([[ 0, 0, 15, 0],
[ 0, 1, 15, 0],
[ 0, 2, 15, 0],
[ 0, 3, 15, 0],
[ 0, 0, 15, 0],
[ 0, 1, 15, 0],
[ 0, 3, 15, 0],
[ 0, 0, 15, 0],
[ 1, 2, 15, 0],
[ 1, 3, 15, 0],
[ 1, 0, 15, 0],
[ 1, 1, 15, 0],
[ 1, 2, 15, 0],
[ 1, 3, 15, 0]])
├── LICENSE
├── Makefile <- Makefile with commands like `make data` or `make train`
├── README.md <- The top-level README for developers using this project.
├── data
│ ├── external <- Data from third party sources.
│ ├── interim <- Intermediate data that has been transformed.
│ ├── processed <- The final, canonical data sets for modeling.
│ └── raw <- The original, immutable data dump.
│
├── docs <- A default Sphinx project; see sphinx-doc.org for details
│
├── models <- Trained and serialized models, model predictions, or model summaries
│
├── notebooks <- Jupyter notebooks. Naming convention is a number (for ordering),
│ the creator's initials, and a short `-` delimited description, e.g.
│ `1.0-jqp-initial-data-exploration`.
│
├── references <- Data dictionaries, manuals, and all other explanatory materials.
│
├── reports <- Generated analysis as HTML, PDF, LaTeX, etc.
│ └── figures <- Generated graphics and figures to be used in reporting
│
├── requirements.txt <- The requirements file for reproducing the analysis environment, e.g.
│ generated with `pip freeze > requirements.txt`
│
├── setup.py <- makes project pip installable (pip install -e .) so src can be imported
├── src <- Source code for use in this project.
│ ├── __init__.py <- Makes src a Python module
│ │
│ ├── data <- Scripts to download or generate data
│ │ └── make_dataset.py
│ │
│ ├── features <- Scripts to turn raw data into features for modeling
│ │ └── build_features.py
│ │
│ ├── models <- Scripts to train models and then use trained models to make
│ │ │ predictions
| | ├── model_src <- Original implementation of models
│ │ ├── predict_model.py
│ │ └── train_model.py
│ │
│ └── visualization <- Scripts to create exploratory and results oriented visualizations
│ └── visualize.py
│
└── tox.ini <- tox file with settings for running tox; see tox.readthedocs.io
Project based on the cookiecutter data science project template.