Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Calculate the most comfortable finger positions for a guitar chord in a chord progression

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:

G D Em C

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
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:

E C#m G# 2 A 2

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..)

like image 719
Forivin Avatar asked Sep 26 '17 17:09

Forivin


People also ask

How do you make a guitar chord progression?

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.

What is the best sounding chord progression?

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.


1 Answers

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!

like image 160
ContinuousLoad Avatar answered Oct 09 '22 03:10

ContinuousLoad