Skip to content
🎸 Find chords for any string instrument quicky & easily 🎸
Branch: master
Clone or download
Latest commit 6042f7e Apr 18, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
app Added sus2/sus4 support Apr 18, 2019
src Added sus2/sus4 support Apr 18, 2019
test Initial Commit Apr 12, 2019
.gitignore Removed emacs backups Apr 17, 2019
AUTHORS added @vojtechkral Apr 17, 2019
ChangeLog.md Initial Commit Apr 12, 2019
LICENSE Initial Commit Apr 12, 2019
README.md Added sus2/sus4 support Apr 18, 2019
Setup.hs Initial Commit Apr 12, 2019
cherchord.cabal Regenerated cabal file Apr 17, 2019
package.yaml Rename & readme Apr 14, 2019
stack.yaml Initial Commit Apr 12, 2019

README.md

Cherchord

find your fingers

Cherchord is a command line application to find chord fingerings for any stringed instrument in existence. The name comes from the word chercher, which is French for to search.

Installation

To compile and install Cherchord, you must have Haskell Stack installed. Haskell Stack is an encapsulated build and dependency management system for Haskell projects.

Once Haskell Stack is installed, building and installing Cherchord is as easy as

stack install

which will copy the executable to your ~/local/.bin/ directory.

Usage

Here is the help screen for Cherchord:

tyler@tyler:~/packages/cherchord$ cherchord --help
cherchord -- find your fingers

Usage: cherchord CHORD [-f|--finger-stretch FRETS] [-p|--print-n FINGERINGS]
                 [-i|--instrument INSTRUMENT]
  Searches for chord fingerings on a given instrument.

Available options:
  -f,--finger-stretch FRETS
                           How far can your fingers stretch? (default: 3)
  -p,--print-n FINGERINGS  How many fingerings to print? (default: 10000)
  -i,--instrument INSTRUMENT
                           What instrument to show chord diagrams for? Valid
                           instruments are: guitar, ukulele, mandolin, or a
                           comma-delimited list of notes followed by numbers.
                           Example: a guitar can be defined as
                           E16,A16,D16,G16,B16,E16. (default: [E16,A16,D16,G16,B16,E16])
  -h,--help                Show this help text

cherchord v1.0.0.0 (c) 2019 https://github.com/aearnus

Chords are input into Cherchord as a note followed by the type of scale, then any number of modifiers.

Notes are any of Ab, A, Bb, C, Db, D, Eb, E, F, Gb, or G.

The scales supported are maj, min, dim, aug, sus2, and sus4.

Two modifiers are supported: changing the root note of the chord (/), and adding extra notes to the chord (add). A full example is shown below.

Simple Example

tyler@tyler:~/packages/cherchord$ cherchord Cmaj
found 94 unique fingerings for the chord Cmaj ([C,E,G])
printing out 94 of them...

E A D G B E   E A D G B E   E A D G B E 
0 3 2 0 1 0   0 3 2 0 1 3   3 3 2 0 1 0 
- - - - - -   - - - - - -   - - - - - - 
| | | | ● |   | | | | ● |   | | | | ● | 
| | ● | | |   | | ● | | |   | | ● | | | 
| ● | | | |   | ● | | | ●   ● ● | | | | 
| | | | | |   | | | | | |   | | | | | | 

E A D G B E   E A D G B E   E A D G B E 
3 3 2 0 1 3   0 3 2 0 5 0   0 3 2 0 5 3 
- - - - - -   - - - - - -   - - - - - - 
| | | | ● |   | | | | | |   | | | | | | 
| | ● | | |   | | ● | | |   | | ● | | | 
● ● | | | ●   | ● | | | |   | ● | | | ● 
| | | | | |   | | | | | |   | | | | | | 
              | | | | ● |   | | | | ● | 
              | | | | | |   | | | | | | 
			  
(... and so on and so forth...)

Complicated example

tyler@tyler:~/packages/cherchord$ cherchord Dminadd9/F -p 5 -f 2 -i ukulele # or -i G14,C14,E14,A14
found 21 unique fingerings for the chord Dminadd9/F ([F,D,F,A,B])
printing out 5 of them...

G C E A   G C E A   G C E A 
2 2 1 0   2 2 1 2   2 2 X 0 
- - - -   - - - -   - - - - 
| | ● |   | | ● |   | | | | 
● ● | |   ● ● | ●   ● ● | | 
| | | |   | | | |   | | | | 

G C E A   G C E A 
4 2 X 0   4 5 5 0 
- - - -   - - - - 
| | | |   | | | | 
| ● | |   | | | | 
| | | |   | | | | 
● | | |   ● | | | 
| | | |   | ● ● | 
          | | | | 

Happy?

If you find this useful, please tell me about it! My email is in my GitHub profile.

If you would like to contribute, feel free to open a pull request. If you wish to donate, links incoming.

You can’t perform that action at this time.