PyChoReLib 0.0.5 review

by on

PyChoReLib is a Python library which transforms lists of notenames to a chordname

License: GPL (GNU General Public License)
File size: 0K
Developer: Stefaan Himp
0 stars award from

PyChoReLib is a Python library which transforms lists of notenames to a chordname. The system uses built-in music theory knowledge to make it easy and quick to add support for new chord types

PyChoReLib, in the current form, accepts a list of note names, and transforms those to a chord.

e.g. ['a', 'c#', 'e', 'g'] => A7

Inversions are indicated using a slash and the root note.

e.g. ['e', 'g', 'a', 'c#'] => A7 / E

Here are some key features of "PyChoReLib":
PyChoReLib can already name and recognize hundreds of chords
New chords can be taught to the system "by example" e.g. teach the system that ['c','e','g'] is called 'C', and using its built-in music knowledge it immediately knows how to recognize and label all major chords in all inversions or (more generally) permutations.
Once chord recognition definitions have been taught to the system,
they can be saved to file, allowing for quick initialization of the recognizer

Planned features (planned != promised)

Extending the chord recognition database with new chord patterns
Improving the recognition speed for chords with many notes
Maybe small GUI to allow interactive chord labeling ? Midi keyboard import ?
Add heuristic rules to recognize more chords, while requiring less teaching
Add functionality to suggest a scale which can be used to improvise over a chord

What's New in This Release:
Dramatic speed-ups in chord teaching and recognition, a new scale recognizer, support for distinguishing modes, a slightly more robust MIDI input demo, and refactoring to avoid code duplication and use Python new-style classes.
The serialization to XML was removed as it was not useful and didn't work with new-style classes.
Many bugfixes were made.

PyChoReLib 0.0.5 keywords