Skip to main content

Build Status codecov Maintainability PyPI version

RL-Musician

Overview

As of now, this is a proof-of-concept for music composition with reinforcement learning solely. Here, creation of fifth species counterpoint is considered and environment is based on a special data structure that represents musical piece with pre-defined cantus firmus. An action is adding a new note to a counterpoint line, an episode is finished when counterpoint duration becomes equal to that of cantus firmus, and reward is determined by applying evaluational rules to the resulting piece.

Some pieces generated with this package are uploaded to a publicly available cloud storage. A cantus firmus attributed to Fux is used in all of them.

To find more details, look at a draft of a paper. Also, if you are interested in algorithmic composition without too strict limitations of species counterpoint, look at the tools named Geniartor and Dodecaphony.

Installation

To install a stable version, run:

pip install rl-musician

Usage

To create a reward-maximizing musical piece and some its variations, run:

python -m rlmusician [-c path_to_your_config]

Default config is used if -c argument is not passed. Search of optimal piece with these default settings takes about 5 minutes on a CPU of a regular laptop. Before creating a new config, it might be useful to look at an example with explanations.

If you are on Mac OS, please check that parallelism is enabled.

Generated pieces are stored in a directory specified in the config. For each piece, there is a nested directory that contains:

  • MIDI file;
  • WAV file;
  • Events file in sinethesizer TSV format;
  • PDF file with sheet music and its Lilypond source.

Metadata

Release files for rl-musician 0.4.6

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for rl-musician 0.4.6
File Size Uploaded
rl-musician-0.4.6.tar.gz 37.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for rl-musician 0.4.6
File Interpreter ABI Platform
rl_musician-0.4.6-py3-none-any.whl Python 3 none any Details

Total release size: 81.3 kB

Release files / rl-musician-0.4.6.tar.gz

Download URL rl-musician-0.4.6.tar.gz
Size 37.0 kB
Tags Source
SHA-256 checksum
How to use checksums
a85471d1fd58f84d124fba488746a4da2ae20b670bdcfa01f5518cdbb8fd63b2
BLAKE2b-256 checksum
How to use checksums
2f81dfd302e4e15305d2c0984b5b1694954a4b94c849a7904cfce632aafa0a41
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/40.4.2 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/3.6.4

Release files / rl_musician-0.4.6-py3-none-any.whl

Download URL rl_musician-0.4.6-py3-none-any.whl
Size 44.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
44e0213a10bcce7e496477ef256cfcf81cb7f1368535e1ee1360b3717b0d301b
BLAKE2b-256 checksum
How to use checksums
f3d5a851073c4fe4cd8a59eafdcdf200201245122b6a98e6efb944131b0cdcac
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/40.4.2 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/3.6.4

Release history Release notifications | RSS feed

This release

0.4.6 This release

2 release files

0.4.5

1 release file

0.4.4

1 release file

0.4.3

1 release file

0.4.2

1 release file

0.4.1

1 release file

0.4.0

1 release file

0.3.0

1 release file

0.2.2

1 release file

0.2.1

1 release file

0.2.0

1 release file

0.1.2

1 release file

0.1.1

1 release file

0.1.0

1 release file

0.0.1

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page