Skip to main content

Twelve-tone matrix to generate dodecaphonic melodies

Project description

Twelve-tone matrix to generate dodecaphonic melodies.

https://upload.wikimedia.org/wikipedia/commons/thumb/7/77/Schoenberg_-_Piano_Piece_op.33a_tone_row.png/640px-Schoenberg_-_Piano_Piece_op.33a_tone_row.png

Following a process created by the composer Arnold Schoenberg, this library computes a matrix to create twelve-tone serialism melodies which compose each of the 12 semitones of the chromatic scale with equal importance.

  • Save your compositions to MIDI

  • Free software: BSD license

Installation

pip install twelve-tone

Quick Start

You can quickly generate a random twelve-tone melody with the CLI

$ twelve-tone
['C# / Db', 'A# / Bb', 'F', 'D', 'G# / Ab', 'D# / Eb', 'F# / Gb',
    'A', 'C', 'G', 'B', 'E']

Or you can use the following methods in a script:

>>> from twelve_tone.composer import Composer
>>> c = Composer()
>>> c.compose()
>>> c.get_melody()
['C# / Db', 'A# / Bb', 'F', 'D', 'G# / Ab', 'D# / Eb', 'F# / Gb',
    'A', 'C', 'G', 'B', 'E']

After you have composed a matrix of tone rows, you can save the composition to MIDI:

>>> c.compose()
>>> c.save_to_midi(filename='TWELVE_TONE.mid')

The new MIDI file will be created in your current working directory. If you do not specify a filename for your file, it will default to example.mid.

Documentation

https://python-twelve-tone.readthedocs.io/

Development

To run the all tests run:

tox

Note, to combine the coverage data from all the tox environments run:

Windows

set PYTEST_ADDOPTS=--cov-append
tox

Other

PYTEST_ADDOPTS=--cov-append tox

Changelog

0.4.2 (2021-03-11)

### 0.4.1 (2021-3-11)

  • requirements: added missing dependency click - (#22) - @jgarte

0.4.1 (2019-12-31)

### 0.4.1 (2019-12-31)

  • composer: matrix should only hold values of type ‘int’ (#20)

0.4.0 (2018-7-08)

  • composer: added/fixed column tonerow support

0.3.0 (2018-7-04)

  • cli: added random melody generator command

0.2.1 (2016-8-27)

  • build: added miditime to setup install requirements

0.2.0 (2016-8-27)

  • composer: Added save to MIDI capability

0.1.0 (2016-8-20)

  • First release on PyPI.

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

twelve-tone-0.4.2.tar.gz (19.8 kB view details)

Uploaded Source

Built Distribution

twelve_tone-0.4.2-py2.py3-none-any.whl (6.7 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file twelve-tone-0.4.2.tar.gz.

File metadata

  • Download URL: twelve-tone-0.4.2.tar.gz
  • Upload date:
  • Size: 19.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/51.1.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.9.1

File hashes

Hashes for twelve-tone-0.4.2.tar.gz
Algorithm Hash digest
SHA256 24f68b1e5b61bb1c7a0690f924ba86711fd65b57d504dac54bf3c113c2198080
MD5 8a851fafdf651bb04af9b2d8562016cc
BLAKE2b-256 834a431d5a8c124d0a9e2b7ed57bcfa70b68feddb836a09a17173b74d10e6a72

See more details on using hashes here.

File details

Details for the file twelve_tone-0.4.2-py2.py3-none-any.whl.

File metadata

  • Download URL: twelve_tone-0.4.2-py2.py3-none-any.whl
  • Upload date:
  • Size: 6.7 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/51.1.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.9.1

File hashes

Hashes for twelve_tone-0.4.2-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 c47df1471627dde2f97bd5efd145d35a05a19bc31a4c3496a3cae8d80695dbfd
MD5 6d5d0a2e244705508dd9a302b634358d
BLAKE2b-256 5ca7f3a07f9f2b1bfa21e811d5cb960cc384edab55edf78cdb7af30b32f088f7

See more details on using hashes here.

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