Skip to main content

A python framework for symbolic music generation, evaluation and analysis

Project description

plot

MUSICAIZ

License: AGPL v3 PyPI - Python Version coverage Build Status Supported Platforms PyPI - Downloads

Python library for symbolic music analysis, generation and evaluation.

See the docs here

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

To install the latest stable version run: pip install musicaiz

To install the latest version, clone this repository and 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.

Source Distribution

musicaiz-0.0.2.tar.gz (114.2 kB view hashes)

Uploaded Source

Built Distribution

musicaiz-0.0.2-py3-none-any.whl (135.5 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page