A python framework for symbolic music generation, evaluation and analysis
Project description
MUSICAIZ
Python library for symbolic music analysis, generation and evaluation.
The modules contained in this library are:
- Structure
contains the structure elements in music (instruments, bars and notes). - Harmony
contains the harmonic elements in music (intervals, chords and keys). - Rhythm
contains rhythmic or timing elements in music (quantization). - Features
contains classic features to analyze symbolic music data (pitch class histograms...). - Algorithms
contains algorithms for chord prediction, key prediction, harmonic transposition... - Plotters
contains different ways of plotting music (pinorolls or scores). - Tokenizers
contains different encodings to prepare symbolic music data to train a sequence model. - Converters
contains converters to other formats (JSON,...). - Datasets
contains helper methods to work with MIR open-source datasets. - Models
contains ML models to generate symbolic music.
License
This project is licensed under the terms of the AGPL v3 license.
Install
This version is not yet released in PyPI. To install this version run:
pip install -e .
If you want to train the models in the models submodule, you must install apex
. Follow the instructions on https://github.com/NVIDIA/apex.
Develop
Conda dev environment
conda env update -f environment.yml
conda activate musicaiz
Linting
flake8 and black
Typing
Use mypy package to check variables tpyes:
mypy musicaiz
Examples
See docs.
Citing
If you use this software for your research, please cite:
@article{HernandezOlivan22,
author = {
Carlos Hernandez{-}Olivan, Ignacio Zay Pinilla, Jose Ramon Beltran},
title = {musicaiz: A Python Framework for Symbolic Music Generation, Evaluation and Analysis.},
journal = {XX},
volume = {x},
number = {x},
pages = {xx--xx},
year = {2022},
url = {XX},
doi = {XX},
}
Contributing
Musicaiz software can be extended in different ways, see some example in TODOs. If you want to contribute, please follow the guidelines in Develop
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.