2017-09-26 4 views
3

コードの進行(コードが開いているか、コードがバーであるかなど)によって、コードの進行をどれくらい楽にするかを計算したいと思います。コード進行中のギターコードの最も快適な指の位置を計算してください

例えば、コード進行がGDEmCの場合です。ほとんどの人にとって、これらを再生するための最も快適な方法は、おそらくのようなオープン和音のようになります。

G D Em C

我々はオープンとしてplaedすることができませんでしたコードが含まれてコード進行を持っている場合コードを標準的なチューニングで使用すると、もう簡単ではありません。その場合

例えば

EC#mG#A
E C#m G# A

我々はアム形状の4フレット上で再生される

  • C#mを持っています。
  • G#最初のフレットはG字形です。

私が選んだ図は、コードを「指す」非常に不快な方法を示しています.G字で演奏されたコードは、一般的には非常に不快です。それを再生するために多くの

A(私の意見では)(オープン=>第4回フレット=>第一フレット=>オープン) "ジャンプ" はるかに快適な方法は、次のようになります。

E C#m G# 2 A 2

おそらくオープンAを再生する方が簡単かもしれません。特にシーケンスが複数回連続して実行される場合。

私が言っていることは、最も快適な指を計算する際に考慮する必要がある多くの要素があるということです。そしてそれは個人的な好みになる場合があります。
しかし、私は、ほとんどのギタープレイヤーが特定の指使いがより快適に遊ぶことに同意する状況があると思います。

私は何を求めているのか正確には分かりません。現在私が持っているのはa big library of guitar chords that includes finger positionsです。

私の問題は次のようなものです:私は一種の式が必要です。私は、そのギターのほとんどのプレイヤーが同意できる数式の要素には妥当な数字が必要です。 (例えば、G形状のバレは、Em形状のバレよりも快適性が低く、15フレットを超えるコードスイッチは、2フレットを超えるコードスイッチよりも快適性が低い。)

答えて

0

フェア警告:私はギタリストないよ:)」

おそらくあなたは、和音のリス​​トものの反復可能性があり、あなたは最高のリストを注文することができ、それぞれに「スコア」の一種を割り当てますスコア "を最低にする。例えば、与えられたコードがGの形状のバールを持っている場合は、そのスコアに10を加えるが、もしそれがEmの形をしているならば、5を加えるだけだ。あるいは、15のフレットを超えるコードスイッチがあれば、 2フレットが関与する場合は2点など

言い換えれば、各コードは、望ましい品質を有する点が与えられ、最も快適なコードが最も多くの点で終わる。

擬似コードのビット:

// 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); 

あなたのアルゴリズムは、基本から始めることができますが、数値的に和音をランク付けする方法を考えて、あなたの結果がより有意義になります。 これはきちんとしたプロジェクトのように聞こえるので、うまくいくと思います!

関連する問題