PowerGord:开发日志
PowerGord:开发日志
在 React.js 中创建一个音乐理论教育应用程序
对于初学者来说,吉他指板令人难以置信。有 6 根琴弦,每根琴弦有 21-24 品,具体取决于您拥有的吉他类型,至少有 126 个音符。这也有例外。例如,原声吉他通常具有较少的品丝,其中一些品丝难以触及,但我喜欢重金属和硬摇滚,所以我们专注于您可以撕碎的乐器。
我想帮助人们克服最初的障碍,因为弹吉他非常有趣。我 7 岁时得到了我的第一把电吉他,到了 31 岁,我几乎玩了一辈子。然而,最大的障碍之一是学习音乐理论。对于那些不知道的人来说,音乐理论或多或少是研究音符和声音如何结合在一起以创造出真正好的音乐。希望。它并不总是这样,因为音乐既有趣又令人沮丧。
在实践中使用理论的方式是记下这 126 条笔记,并删除你不应该使用的笔记,以便留下你应该使用的笔记。例如,这 126 个音符实际上被视为以不同八度重复的 11 个不同的音符。这个限制可以让你了解哪些音符有什么效果。不幸的是,对于很多人来说,这是非常难以学习的,令人沮丧的令人困惑的工具对于没有任何正规教育的人来说是无法理解的。我在很大程度上是自学成才的,必须一遍又一遍地绘制各种图表才能在任何层面上理解这一点。不幸的是,这些图表对任何不是我的人来说都是一派胡言。
An example of one of the many, many charts I’ve made.
2016 年,我和一个合作伙伴开发了一个名为“Key-Party”的应用程序,它允许用户点击钢琴键盘上的琴键,查看这些音符属于哪些和弦和音阶。然而,我想要的不仅是专注于钢琴而不是专注于吉他,而且音乐理论实际上是错误的。我将一堆“模式”列为“尺度”,因为我认为它们是同一件事(很难理解两者之间的区别。我想我终于明白了,但我必须在制作时做进一步的研究这个。)而且无论如何我是一个比当时更好的编码器。
我将要构建的应用程序名为“PowerGord”。它的名字来源于“强力和弦”,这是朋克和金属音乐家学习的第一个也是最重要的和弦,从技术上讲,它根本不是一个和弦,但这就是它的通俗说法。作为参考,Ramones 曾经写过的每一首歌都是完全由强力和弦构成的。然后“Gord”让我想起了 80 年代加拿大的屁股摇滚,所以我决定创造一个反映这一点的吉祥物。
A rough sketch of Gord.
PowerGord 将是一个应用程序,允许您在虚拟指板上选择音符,对照和弦和音阶列表检查它们,以便向您显示它们可以用于哪些分组。此外,通过选择这些和弦,它们将被突出显示让用户直观地了解它的实际外观,因为大多数初学者吉他手不知道 G# 在哪里,除非你向他们展示它。我想添加更多功能,例如使用 MIDI 演奏这些和弦的方法、解释如何使用这些分组的段落以及 Gord 本人的愚蠢评论。但是,纯粹根据输入的音符搜索和弦或音阶的能力是这个应用程序的首要目标。如果没有实现其他任何功能,那么我至少需要以稳健的方式执行该功能才能认为它是完整的。
The prototype virtual fretboard.
我做的第一件事是使用表格和 Bootstrap 在 HTML 中创建一个虚拟指板。这绝对不会是最终板,但它非常适合基本的可视化。接下来我开始研究逻辑。我自己对数百个音符分组进行硬编码既费时又不必要,而且效果不佳。所以相反,通过将所有笔记按顺序放入一个数组中,我可以简单地找到它们的索引。例如,如果我想要一个 A 小调和弦,我会使用一个“[0,3,7]”数组,当使用我构建的一个名为“chordSearch”的函数时,它会检查一个按顺序列出所有有序音符的数组返回“['A', 'C', 'E']。”同样,“[0,4,7]”数组返回“['A', 'C#', 'E']”,即 A 大调和弦。目前这仅适用于 A 调中的和弦,但很快就会改变,因为和弦音符之间的空间,或“音程”,实际上并没有从一个调到另一个调。
创建初始 HTML 文件后不久,我将其除逻辑之外的部分废弃,并在 React.js 中重新启动它,因为我想使用 Javascript 测试框架“Jest”。这极大地加速并帮助了该过程,并且令人兴奋,因为过去我在理解如何使用测试时遇到了很多问题。事实证明,学习和改进既有趣又酷。如果您已经阅读了这么多,那么我希望您能继续支持我,因为我会继续为 Metalheads 和 Punks 制作这款美国制造的加拿大 Butt Rock 音乐理论应用程序。
PowerGord github 仓库: https://github.com/jordanforbes/Power-Gord
给我留言!我的电子邮件是 [email protected]
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明