我正在尝试创建吉他和弦应用程序,但单个和弦的和弦表太多了。列出所有内容需要时间而且效率不高。例如C大调和弦有如下图的变奏
- x 3 2 0 1 0
- x 3 2 0 1 3
- x 3 5 5 5 0
- 8 10 10 9 8 8
有没有什么方法可以通过知道/不知道创建和弦的键来生成图表?即,C 大调和弦的 CEG。
最佳答案
与评论相反,我认为这是可能的。如果您获得了所有开放和弦形状,例如..
- 0 2 2 1 0 0(打开 E)
- 0 0 2 2 2 0(打开 A)
- 0 3 2 0 1 0(打开C)
- X 0 0 2 3 2(打开 D)
然后您可以使用小节和弦将它们向上移动,并且您应该能够编写代码来计算特定和弦的所有排列。例如,如果您想要所有 C 大调三和弦(如您的问题),您知道其中一个是
- 0 3 2 0 1 0(打开C)
但您也知道其中一个是上面的开放 A 形状,但向上移动了 3 品...
- 3 3 5 5 5 3(空A作为小节和弦向上移动)
这是你问题中的第三个和弦。您还可以计算将开口 E 形状移动到哪里,这将是...
- 8 10 10 7 8 8
这又是你问题中的和弦之一。通过这种方式,您可以使用代码计算任何和弦的所有位置 - 前提是您有足够的开放和弦集,可以像这样轻松地向上移动。
因此,使用这些初始开放形状的 C 和弦集将是...
C 和弦...
8 10 10 7 8 8
3 3 5 5 5 3
0 3 2 0 1 0
X 10 10 12 14 12
现在,如果您想知道 D 和弦的集合,您实际上可以通过将上面的所有数字加 2 来计算这些和弦(其中两个环绕一个 Octave ,但您可以将其用于计算)
D 和弦...
10 12 12 11 10 10
5 5 7 7 7 5
10 13 12 10 11 10
X 0 0 2 3 2
关于java - 如何创建吉他和弦变奏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35090073/