I would like to calculate how comforable it would be to play a given chord progression with different "fingerings" (e.g. open chords, vs bar chords).
For instance, if we have the chord progression G
D
Em
C
. For most people the most confortable way to play those would probably be as open chords:
If we have a chord progression that includes a chord that could not be plaed as an open chord in standard tuning, it's not that simple anymore.
For instance E
C#m
G#
A
In that case we have
C#m
which is played on the 4th fret in an Am shape. G#
on the first fret in a G shape.The diagrams that I picked show a very uncomfortable way to "finger" the chords: A chord played in a G shape is generally very uncomfortable to play; Many "jumps" (open => 4th fret => 1st fret => open)
A (in my opinion) much more comfortable way to play it would be:
Arguably it might be easier to play an open A
instead. Especially if the sequence if played multiple times in a row.
What I'm trying to say is, there are a lot of factors that would have to be taken into consideration when calculating the most comfortable fingerings. And there are cases in which it comes down to personal preference.
But I think there are situations where most guitar players would agree that certain fingerings would be more comfortable to play.
I'm not exactly sure what I'm asking for. What I currently have is a big library of guitar chords that includes finger positions.
I'd say my problems are: I need a sort of formula and I need plausible numbers for the factors in that formula on which most guitar players could agree on. (E.g. G shape barre is less comfortable than Em shape barre; chord switch over 15 frets is less comfortable than chord switch over 2 frets; etc..)
To write a chord progression on the guitar start by learning the C major scale. Then, add a Roman numeral to the scale degrees and build a chord on each note of the scale. Learn the seven chords C major, D minor, E minor, F major, G major, A minor, B diminished.
I-V-vi-IV This progression is called “the most popular progression” for a reason. It's been used in just about every genre imaginable, from post-punk to country. It sounds so satisfying because each new chord in the pattern feels like a fresh emotional statement.
Fair warning: I am not a guitarist :)
Perhaps you could iterate though the list of chords and assign a sort of "score" to each, allowing you to order the list from highest "score" to lowest. For example, If a given chord has a G shape barre, add 10 to its score, but if it has an Em shape, only add 5. Or, if it has a chord switch over 15 frets, subtract 15 points, but only subtract 2 points if 2 frets are involved, etc.
In other words, each chord is awarded points for having desirable qualities, and the most comfortable chords end up with the most points.
A bit of pseudo-code:
// I saw that your library has `chords` as an object, so I will try to work with that
var chords = {/*...*/};
for (chord of chords) {
chord.points = 0;
// This is where you investigate the chord, awarding points for desirable qualities.
// I suppose the chord's can be somehow determined from the fingering, but your the guitarist, not me! :)
if (chord.shape == 'G') {
chord.points += 10;
} else if (chord.shape == "Em") {
chord.points += 5;
}
chord.points -= chord.numberOfFrets;
// or, if # of frets should be weighted more heavily,
chord.points -= 100 * chord.numberOfFrets;
}
// now we can rank the chords by score
var rankedChords = Object.keys(chords).sort((a,b) => chords[a].score - chords[b].score);
You algorithm may start out basic, but as you think of ways to rank chords numerically, your results will become more meaningful. This sounds like a neat project, so I hope it goes well for you!
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With