Chord chart validation and transposition
Project description
chord-chart
This package provides chord chart validation and transposition functionality.
It is written in Rust and has an accompanying library in JavaScript. Used in vrslev/songbook — lyrics and chords webapp.
Example
>>> from chord_chart import ValidationError, transpose_chart, validate_chart
>>> # that's a valid chart: | *chord-with-bass-note* *chord-without-accidental* | *chord* | *(end of the bar, then new bar ->)*
>>> # | *chord-with-accidental-and-symbols* |
>>> validate_chart('| A/E E | E | \n| C#m|')
'| A/E E | E |\n| C#m |'
>>> validate_chart('A/E E\nC#m') # and that's not a valid one: chords without bars
Traceback (most recent call last):
...
_chord_chart.ValidationError: bar line should start with stripe: A/E E
>>> transpose_chart('| A/E| E |\n| C#m|', current_key='E', new_key='Db')
'| Gb/Db | Db |\n| Bbm |'
Installation
Just pip install chord-chart
on Python 3.7 to 3.11.
Development
make install
to clean up and setup dev-env.make test
to build and test the package.make check-types
to run pyright.
Also make sure to install pre-commit hooks (pre-commit install
from the repository root).
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
chord_chart-0.2.0.tar.gz
(6.9 kB
view hashes)
Built Distributions
Close
Hashes for chord_chart-0.2.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b8fb8320b68a437302e64d57c824c055b556ca42747b699b93fd705746e06a03 |
|
MD5 | bbf0c7421aa4872e62ec5c6f10290ba5 |
|
BLAKE2b-256 | f5ee3ec1bae0ffeddb72fa848ba08abf9316414c925e386424219a0710d09f24 |
Close
Hashes for chord_chart-0.2.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2d33e220d7f33a5506c9d2b2f4a621b65ce781a51fb35af109b2e397266588af |
|
MD5 | 041023f61662f9966d24e069f6492a54 |
|
BLAKE2b-256 | ecd54d9de668e0ac30d40c28fdccda053b33eba1883559058930bab115e7c8c2 |
Close
Hashes for chord_chart-0.2.0-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 43d49bdc88c2041552c2bff6aea7cca0240e636146495c0c843d1b477833a2b1 |
|
MD5 | a11bd6f389bf752454f0a04e6eecf4e6 |
|
BLAKE2b-256 | 78c6444951f1c3424f6870b6700a74cff899a3279d9cc5430370406b7bcc2cc7 |
Close
Hashes for chord_chart-0.2.0-cp311-none-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f67217e58660418200d9277b1b9d15212c57f16740908a93db12073992d94cc9 |
|
MD5 | e82982b7259a90fbc18c4a6699fe6907 |
|
BLAKE2b-256 | 1b722bbec9d2d03500c520edea5e0b39be82e168c0468ec4a5e4c943459bbaa4 |
Close
Hashes for chord_chart-0.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 037a43e3a3f1b14741c02dbb3f11e8b2f27d517854e2b7198e8807756779c957 |
|
MD5 | 30a1f2bff639e0c0a6416272ee36df5a |
|
BLAKE2b-256 | ec37324950fa14db4b888f43c9f1b8ac474edd8f025fbe603ac362ecaa86ab3f |
Close
Hashes for chord_chart-0.2.0-cp311-cp311-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c82884ee42b56ba56e2cb73be0489e9b065067891af27bd9845e2ada85b6c9e7 |
|
MD5 | 4ea2d70b8f7d6001d5bb7343e67ceb6e |
|
BLAKE2b-256 | cd2f31392cdba6527eec72decfd02e721637129cd9e3b7dc1990d049e978c00f |
Close
Hashes for chord_chart-0.2.0-cp310-none-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 68350ff3be29d18f3495cfa0afc337eee36a7ded4254635f5368ca08a46159b2 |
|
MD5 | d6627853530fa811f59771f9ba640ce8 |
|
BLAKE2b-256 | e7f1c5648068bf2cc5ee68a651c8d3b1e89a84e06b8e7596367f5ca52e39164e |
Close
Hashes for chord_chart-0.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9846181061a805e2b1b467857b9159306c9ca3dc13e862266d49f3544b318247 |
|
MD5 | edb0bc064bc00f2d3badeaf6a836700b |
|
BLAKE2b-256 | 5a935639ed7c7bbdb9830106c50c6d2322dda812319e22bb332d86d04e431ea6 |
Close
Hashes for chord_chart-0.2.0-cp310-cp310-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 71537f82d3336b36e44ba77575d2a531ef338379bcb7df45eaf00544fde823a2 |
|
MD5 | 4c6126d8512e4fcbd233a3b2187e6eac |
|
BLAKE2b-256 | 24d77a832ecc31b85add0977771171b8d932ce4083974ed7325eff7edede2cb8 |
Close
Hashes for chord_chart-0.2.0-cp39-none-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2a8f6a5a3b36be95d6b165d8e4f7320af1201449593da4aeba91ff1ea505ed6d |
|
MD5 | 42d09bd0ed9de633cfbc7615e5339c1b |
|
BLAKE2b-256 | 9d3d0fa3d39ef71814ef5dbd48e935090d59caf77eea969eeeb38d6ceb0b4fad |
Close
Hashes for chord_chart-0.2.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ca6b1ffb9e1e3ca289b8dffb103d68d565bfd8517a8bcebac62649780c519f79 |
|
MD5 | 3f9e4645d0efcb9ff2d7edf5fa53520c |
|
BLAKE2b-256 | 992dd35beaaf0c020dca9cc7c86627a4e1e36ff1a58b96d9a254a63c1451e1e6 |
Close
Hashes for chord_chart-0.2.0-cp39-cp39-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 213c91ca0df7e265a4fbfc2e5fdd023a4052fff7b2a604ad74657d751d893c15 |
|
MD5 | da6602b09cb104b8b9d519958f9d02ae |
|
BLAKE2b-256 | 273a68418b51ef6e6967ab81c18abfbac241b7eee86ed8fa0fdd9a0845fa895e |
Close
Hashes for chord_chart-0.2.0-cp38-none-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e89ad97d34673d623b7b4d5f08b317c1ca5fa9f9a64b857328e1d7d053a12392 |
|
MD5 | 2827563d97f0d0db6d61eb775eea54ea |
|
BLAKE2b-256 | 348da4571dbb4803df675dc03c0677bb7ac5cb48281700160a5aa0849f9b8fdb |
Close
Hashes for chord_chart-0.2.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | adb1ce3016ad98feb157f4a580eafe3c9ba233319c31c155ffa20171d7ef047e |
|
MD5 | 5a75975198a6b5814de24631ab8ebdff |
|
BLAKE2b-256 | 4daf1e26286046bac8e718a4d87dba0568004b9223496a4ee534da84bb47a06c |
Close
Hashes for chord_chart-0.2.0-cp38-cp38-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 34988bb357fd0ee40397275dd5d6ad29d0f0267745730af79dba7f85c597afb1 |
|
MD5 | 3ffa4a8bedd24f672b3e3246f737973d |
|
BLAKE2b-256 | cd92e6a09da29b5223645fdc136596bfe02d1c75739b2d97aa6ab6b5f94c136a |
Close
Hashes for chord_chart-0.2.0-cp37-none-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d0ce15c9ff4cb758c86b72e1347646016fcd1ec7e0f3ae664a61d2309e186bd3 |
|
MD5 | ba390e274899cce71062bb97f79a5b79 |
|
BLAKE2b-256 | f29c8467cd870fa0547ef600cc184b8fa4dc7640ab0a95929b72016cf528af2e |
Close
Hashes for chord_chart-0.2.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 22e59e854b88466a45c1b09fb60a925ca9e0ccbfd11154139a6aa4f9e2194cd2 |
|
MD5 | 6cb6fcd9c149c5bf2922a46066f12c5f |
|
BLAKE2b-256 | bccbe1c4c1d382378357a1d6d56d8db592e5066f4752982f00263c0c02803751 |
Close
Hashes for chord_chart-0.2.0-cp37-cp37m-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 069e344644852bb4dd0443c341d0a36c9e22e98485c1ae5152ba129d4a101df8 |
|
MD5 | 6589f88499ae6b17bbfc094c7b5e2752 |
|
BLAKE2b-256 | 4fde42a16eb3fd5e160e64a171a68c7aac7afb0f91a6341a4f53b225630cd286 |