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)
| File | Size | Uploaded | |
|---|---|---|---|
| rl-musician-0.4.6.tar.gz | 37.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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
|