【问题标题】:Calculate the most comfortable finger positions for a guitar chord in a chord progression计算和弦进行中吉他和弦最舒适的手指位置
【发布时间】:2018-03-08 00:43:36
【问题描述】:

我想计算使用不同“指法”(例如开放和弦与小节和弦)演奏给定和弦进行时的舒适度。

例如,如果我们有和弦进行GDEmC。对于大多数人来说,最舒适的演奏方式可能是开放和弦:

如果我们有一个和弦进行,其中包括一个在标准调弦中不能作为开放和弦演奏的和弦,那就不再那么简单了。

例如EC#mG#A

在这种情况下,我们有

  • C#m 以 Am 形状在 4 品上演奏。
  • G# 在 G 型的第一品上。

我选择的图表显示了一种非常不舒服的“手指”和弦方式:以 G 形弹奏的和弦通常弹奏起来非常不舒服;许多“跳跃”(打开 => 4 品 => 1 品 => 打开)

(在我看来)更舒服的玩法是:

可以说,播放开放式A 可能更容易。特别是如果序列连续播放多次。

我想说的是,在计算最舒适的指法时,需要考虑很多因素。在某些情况下,这取决于个人喜好。
但我认为在某些情况下,大多数吉他手都会同意某些指法弹奏起来会更舒服。

我不确定我要的是什么。我目前拥有的是a big library of guitar chords that includes finger positions

我会说我的问题是:我需要一种公式,并且我需要大多数吉他手都同意的公式中的因素的合理数字。 (例如,G 形把杆不如 Em 形把杆舒适;15 品的和弦切换不如 2 品的和弦切换舒适;等等。)

【问题讨论】:

    标签: javascript node.js guitar music-notation


    【解决方案1】:

    公平警告:我不是吉他手 :)

    也许您可以遍历和弦列表并为每个和弦分配一种“分数”,从而允许您将列表从最高“分数”排序到最低。例如,如果一个给定的和弦有一个 G 形的 barre,它的分数加 10,但如果它有一个 Em 形,只加 5。或者,如果它有一个超过 15 品的和弦切换,减去 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);
    

    您的算法可能从基础开始,但当您想办法对和弦进行数字排序时,您的结果将变得更有意义。 这听起来像是一个很好的项目,所以我希望它对你来说一切顺利!

    【讨论】:

      猜你喜欢
      • 2011-06-22
      • 2011-07-24
      • 2010-11-05
      • 2019-03-01
      • 2012-08-28
      • 1970-01-01
      • 2016-06-16
      • 2016-05-07
      相关资源
      最近更新 更多