This is a library for programmatically generating chords for guitar and similar instruments.
The advantage of generating chord fingerings programmatically, rather than storing them in a database, is that any tuning or instrument can be accomodated. The ChordEngine can just as easily reason about a guitar as Ukelele or a Bouzouki, or an instrument that hasn't been invented yet!
The challenge comes when trying to define rules to capture what the left hand can and can't do. That part of the logic is going to require the most tweaking and testing as this library evolves.
You can find a desktop application driven by this engine here.
- Install gradle
- Run the task for the IDE of your choice:
- IntelliJ:
gradle idea
- Eclipse:
gradle eclipse
- IntelliJ:
- Import the (now-existing) project into your IDE.
gradle build
- builds the jar (to./build/libs/conchordance-$version.jar
)gradle test
- run all unit tests (this will be done as part ofbuild
as well)gradle clean
- cleans out all build/compile artifactsgradle run
- run the server locally (on port 8080)
- Get supported instruments - /instruments
- Get AM mapped on a guitar - /fretboard?instrument=Guitar&root=A&type=M
- Get AM definition - /chords?root=A&type=M
- Get AM chord fingerings on guitar - /chords/fingerings?instrument=Guitar&root=A&type=M