Skip to main content

A python package for transposing chords from one key to another and changing between DO-RE-MI and A-B-C notations.

Project description

PyTransposer

Build Status

Transposing chords from one key to another and changing between DO-RE-MI and A-B-C notations.

Usage

To transpose single chords, use pytransposer like this:

>>> import pytransposer.transposer as tr
>>> tr.transpose_chord('C', 3, 'Bb')
'Eb'
>>> tr.transpose_chord('DO', 3, 'Bb')
'Eb'
>>> tr.transpose_chord('DO', 3, 'Bb', chord_style_out='doremi')
'MIb'

To translate chords between notations, use pytransposer like this:

>>> from pytransposer.common import chord_abc_to_doremi
>>> chord_abc_to_doremi('Ab')
'LAb'
>>> from pytransposer.common import chord_doremi_to_abc
>>> chord_doremi_to_abc('DO#')
'C#'

To transpose a whole song, use pytransposer like this:

>>> transpose_song('Exa\[DO#/RE]mple so\[Bb4]ng', 3, 'F')
'Exa\[E/F]mple so\[Db4]ng'

>>> transpose_song('Exa\[DO#/RE]mple so\[Bb4]ng', 3, 'F', chord_style_out='doremi')
'Exa\[MI/FA]mple so\[REb4]ng'

>>> transpose_song('Exa<<DO#/RE>>mple so<<Bb4>>ng', 3, 'F', pre_chord=r'<<', post_chord=r'>>', chord_style_out='doremi')
'Exa<<MI/FA>>mple so<<REb4>>ng'

You can omit the to_key parameter to let the function auto-detect it from the first chord:

>>> transpose_song('Exa\[RE]mple so\[Bb4]ng', 3)
'Exa\[F]mple so\[Db4]ng'

Testing

Run unit tests using Python's doctest, first clone the repo:

git clone https://github.com/bfrangi/transposer.git

Then, open a terminal at the root directory of the repo and run:

python3 -m src.pytransposer.transposer -v  

This will run the tests for the main transposer sub-module. For the rest of the submodules, use:

python3 -m src.pytransposer.common -v
python3 -m src.pytransposer.abc -v  
python3 -m src.pytransposer.doremi -v  

More info

View on the Python Package Index (PyPI) here.

View on GitHub here.

View the change log here.

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

pytransposer-1.1.2.tar.gz (17.1 kB view hashes)

Uploaded Source

Built Distribution

pytransposer-1.1.2-py3-none-any.whl (18.2 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