Metadata-Version: 2.1
Name: geniartor
Version: 0.1.5
Summary: Music composition by optimizing of evaluational scores.
Home-page: https://github.com/Nikolay-Lysenko/geniartor
Author: Nikolay Lysenko
Author-email: nikolay-lysenco@yandex.ru
License: MIT
Keywords: ai_music,algorithmic_composition,generative_art
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Topic :: Artistic Software
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Requires-Python: >=3.6
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: pretty-midi
Requires-Dist: PyYAML
Requires-Dist: sinethesizer (<0.7,>=0.6)

[![Build Status](https://github.com/Nikolay-Lysenko/geniartor/actions/workflows/main.yml/badge.svg)](https://github.com/Nikolay-Lysenko/geniartor/actions/workflows/main.yml)
[![codecov](https://codecov.io/gh/Nikolay-Lysenko/geniartor/branch/master/graph/badge.svg)](https://codecov.io/gh/Nikolay-Lysenko/geniartor)
[![Maintainability](https://api.codeclimate.com/v1/badges/a5131738e1b284fab9f9/maintainability)](https://codeclimate.com/github/Nikolay-Lysenko/geniartor/maintainability)
[![PyPI version](https://badge.fury.io/py/geniartor.svg)](https://badge.fury.io/py/geniartor)

# Geniartor

## Overview

This is a configurable tool that generates musical phrases or even short pieces.

Here, the process of composition is framed as follows: Variable Neighborhood Search ([VNS](https://en.wikipedia.org/wiki/Variable_neighborhood_search)) is applied to maximize user-defined weighted sum of evaluational criteria. 

Each run of the tool results in creation of a directory that contains:
* MIDI file;
* WAV file;
* Events file in [sinethesizer](https://github.com/Nikolay-Lysenko/sinethesizer) TSV format;
* PDF file with sheet music and its Lilypond source.

Sample outputs produced by the tool are uploaded to a [cloud storage](https://www.dropbox.com/sh/j77p82870u3691p/AABGQWGRhA1pRyPfh79Lgdyma?dl=0).

## Installation

To install a stable version, run:
```bash
pip install geniartor
```

## Usage

To create a new musical phrase, run:
```bash
python -m geniartor \
    [-c path_to_config] \
    [-n number_of_search_passes]
```

Both arguments are optional. [Default config](https://github.com/Nikolay-Lysenko/geniartor/blob/master/geniartor/configs/default_config.yml) is used if `-c` argument is not passed. Similarly, `-n` option has a reasonable default too.

Advanced usage is covered in a [guide](https://github.com/Nikolay-Lysenko/geniartor/blob/master/docs/user_guide.md).


