A library for working with chord progressions.
pip install chord-progressions
See documentation at https://p3zo.github.io/chord-progressions.
Configuration for local development with Docker is provided. Run make build
to build the container, make shell
to
get a shell inside of it for ad-hoc usage, and make test
to run all unit tests inside the container. See
the Makefile for all available actions.
To upgrade the version and trigger a new release, use bump-my-version bump minor chord_progressions/__init__.py
.
The documentation uses Material for MkDocs to build a static site from
Markdown files. Use mkdocs serve
to start a live preview server of the site that automatically rebuilds upon saving.
Build the site with mkdocs build
and deploy with mkdocs gh-deploy
.
Analysis
- [feature] get key for progression
- [feature] get functional names for chords given key
- [feature] extend interval class vectors to "polychord content" vectors
I/O
- [performance]
extract.midi_harman.segment_and_label()
is slow for many consecutive segments. test that a maximum of six segment evaluations occur per note
Misc
- [feature] Generalize
noteNumberToFrequency
to use any periodic tuning ( see https://github.com/soul-lang/SOUL/pull/26/files) - [feature] implement
is_partial_circular_match
,chord_contained_in_type
, andget_possible_types_of_chord
- [maintainability] mk
pitch_class
refer to "C" and call 0pitch_class_ix
- [maintainability] pass midi note numbers everywhere as "notes" and include note names as "noteNames"
- [maintainability] test the merging of chord types
- [maintainability] github action to build & deploy docs