在阅读Dmitri Tymoczko的《音乐的几何学》之后,我于2012年首次了解了生物圈 。 后来,我开始研究具有古典背景的爵士钢琴。 为了加强我的学习知识,我使用ChordCalc创建了一些新颖的和弦分析和识别算法,几年后,我发现自己受到启发。 我将所有这些想法组合成特定领域的语言,使开发人员可以根据熟悉的概念(例如大,小,主,增,减和弦)以编程方式定义音乐乐谱。
最终,我将这项工作综合到了Topologica(一种比一种应用程序更重要的工具)中,从而使任何拥有Android手机的人都可以直观地遍历这些球体并制作出响亮的音乐, 而无需了解任何基础的数学或音乐理论 。
- 萨里安(Sarian)的首演专辑字幕创新和渗透
- 塞缪尔·昆托音乐学院— Atibaia
- 电影云通过一部抽象的梦境录像进入了普遍的超意识
- 对于Mike Smith和公司– Landon Buford来说,这是美好的一天
- 赫比·汉考克(Herbie Hancock)–罗伯·惠特克(Rob Whitaker)–中
Topologica – Google Play上的Android应用
释放您的音乐潜能 play.google.com
如今,软件工程中最热门的新事物之一就是Flux设计模式,特别是当它与事件源工具包结合使用时。 今天,我们将研究orbifolds的一些应用程序,这个概念可以追溯到60年代,甚至在UNIX出现之前。 而且,我们将看到这个古老的概念对发展世界的最新趋势有多深的影响!
Orbifolds简介
什么是歧管 ? 这是流形的泛化,虽然我们可以花很多时间来定义和区分这两个术语,但让我们保持简单:
- 歧管本质上是1D,2D,3D或更高维欧几里得空间中的任何连续曲面。 在3D空间中,一些琐碎的示例可能是单个平面,球体的表面或无限长的圆柱体的外表面。 通常,流形将定义为x , y和z坐标的等式关系。 当然,还有更复杂的流形:

- 一个球面不需要欧几里得空间; 相反,它是离散空间上有限的一组动作(轨道)的结果。 例如,假设我们有一个可以容纳5个苹果并将其状态视为我们空间的篮子。 它有几种可能的状态:实际上,只有6种可能的状态(0-5个苹果)。 现在,假设我们允许2个动作/轨道:您可以添加一个苹果(除非篮子中已经有5个),或者删除一个苹果(除非没有苹果)。 现在,从任何开始状态,我们都可以达到其他5种可能状态。 在这些空间中由这些动作组成的球状结构类似于一条从0到5的直线,这是一维空间中的流形!
主教的书架
接下来,我们将简要地研究一个二维轨道。 假设我们在棋盘上有一个孤独的主教。 众所周知,它可以向任意方向对角移动任意数量的空间:

主教可能采取的行动有四个轨道/行动:左上,右上,左下和右下。 你们中的大多数人可能已经注意到,在此动作下,上方的主教永远无法降落在深色的空间上。 因此,主教可以到达的空间范围取决于它的开始位置。 给定起点的这组可能状态被称为主教可以采取的行动组的基本范围 。
1至12音符和弦组
在西方传统音乐中,我们有一个12音符的音调系统。 我们将定义一个和弦作为根音(从基数12中选择)和0-11个其他音调。 这使24,576种不同的和弦成为可能:

如果我们将此空间限制为仅1-to-4音符和弦,则大小将减小为2,784:

当然,其中许多不是您的标准大,小或大和弦结构。 实际上,绝大多数听起来可能很糟糕! 爵士乐(及其他)音乐家利用补品 , 充实和占优的概念来大大简化此空间。 请继续阅读以获取更多信息(尤其是关于ii-VI的部分)。
Topologica提供了(现在)以编程方式定义的,可移动的,音乐人可读的Orbifold视图,但最终将支持自定义。
色轨道
在Topologica的Kotlin DSL中,每个和弦均以根和扩展名表示。 接下来的轨道将取下任何和弦,然后将其升高或降低半个步长,沿着半音阶将弦的每个音符上下移动:
物体色度:轨道{
覆盖前转(c:和弦)=和弦(c.root + 1,c.extension)
覆盖乐趣返回(c:和弦)=和弦(c.root-1,c.extension)
}
“后退”方向是Topologica的设计所独有的,也是为什么它可以使浏览一个有机体如此直观的一个基本组成部分。 通常,数学轨道不需要具有相反的方向。
这个轨道是周期性的 ,这意味着如果我们继续前进,我们最终将落在相同的弦上-恰好是12步。 此外,在给定任何起始和弦的情况下,色度轨道可以达到其他11个和弦,这意味着其基本范围始终为12。
音乐理论速成班:减弱,次要,主导,专业,增强轨道
大多数音乐家可以识别5种类型的和弦:小和弦,小调,支配,大调和增高。 对于任何音乐家来说,理解这些和弦的听起来都是至关重要的,因此,这里有一个视频介绍,还将介绍如何使用Topologica的基础知识:

请注意,如果您从大7,小7或主7弦开始,此轨道也是循环的,长度为3。 其基本域的大小为36(如果您以与大7,小7或主导7不同的扩展名开始,则为37)。
色轨道和ii-VI轨道的圆角
让我们看一下通过允许我们沿ii-VI进行彩色移动而产生的双轨道双向。 如果我们将所有可能的和弦都布置好,它将看起来像这样:

请注意,两个轨道都是循环的,并且:
- 沿色度方向的运动永远不会将您带到ii-VI方向的其他位置
- 沿ii-VI方向运动不会使您在色度方向上停留在其他任何地方
换句话说,仅通过这两个轨道,我们现在就可以达到36个不同的和弦(12个大,小和主和弦)! 实际上,我们可以像纹理一样一遍又一遍地平铺整个图像,它将准确地表示我们从任何点可以走到哪里。 总体而言,这个球状结构类似于球形流形 :就像地球表面一样,如果您向东足够远(在ii-VI处向前),则可以从起点开始,如果向北足够远(然后向南),但朝同一方向移动-彩色地向上移动),您将最终到达同一位置!
交替的主要/次要3rds轨道
在爵士和流行音乐中,ii-VI(在较小程度上是IV-VI)是一个基本的进步。 但是这三个和弦对应于补品 (I), 次要 (ii / IV –爵士乐手经常喜欢ii,因为它较小,因此听起来很不一样)的概念,以及支配性 (V,这会引起听众想要的张力)再次听到我的声音。 但是,如果我们将大比例尺的每个步骤归类为以下三个框之一,则可能看起来像这样(也提供C大调中的和弦):
- 我(C)是补品
- ii(Dm)是次要的
- iii(Em)是补品且未 成年人
- IV(F)是主要的
- V(G或通常为G7) 占主导
- vi(Am)是补品且未 成年人
- vii°(B°,Bdim或Bm♭5) 占主导地位且减弱
通常,我们在和弦上的时间不需要做很多谐调,因为它已经是大多数音乐中最紧张的声音。 但是,能够在我们的补品和主要选择之间切换是有用的。 考虑到这一点,我们将看一看Topologica的最后一个轨道:
object AlternatingMajorMinorThirds:Orbit {
覆盖前转(c:和弦)=当{
c.isDominant-> c
c.isMinor->和弦(c.root + 3, Maj7 )
else-> Chord(c.root + 4, min7 )
}
覆盖乐趣返回(c:和弦)=当{
c.isDominant-> c
c.isMinor-> Chord(c.root-4, Maj7 )
else-> Chord(c.root-3, min7 )
}
}
假设我们在C的键中。此轨道将C和弦向前发送到Em或向后发送到Am,将Am向前发送到C或向后发送到F(提供从补品到主要区域的两弦路线),以及F向Dm和弦(停留在主要区域)。 如果我们进一步跟随Dm,我们最终会到达B♭并开始更改琴键,这意味着音调-主导关系破裂了,但是我们仍然可以编写听起来很酷的音序! 如果我们将轨道从C推进到Em,然后再推进到G,那么我们将最终进入优势领域。
交替的主要/次要3rd轨道也是循环的,长度为24。从任何给定的起点开始,您可以前进或后退24步,敲击每个主要和次要的和弦,并在开始时结束。
这是一个快速的视频摘要,因此您可以听到交替的主要/次要3rd轨道的音乐效果:

即使使用更长的(24和弦)循环,我们仍然只能访问与上述Orbifold相同的36和弦。 但是,我们运动的可能性大大增加了!
应用程序可能状态的离散空间
如果您是开发人员或技术爱好者,则可能熟悉过去五年左右流行的软件“新”趋势:Flux。 Flux的基本思想是,对应用程序状态的每次更改都可以称为一个动作 ,任何动作都表示从一个完全成熟的应用程序状态的转变。 在实现方面,这可以通过分派器和商店以及各种View组件来解决:

如果这使您想起以前的基于折线的问题空间,那么您就已经准备就绪。 实际上,我将断言Flux动作只是一个球体内的轨道 。 任意Flux应用程序,Apple方案,Bishop方案和音乐方案之间的主要区别在于,您的应用程序的状态是一个无限大的离散空间。 但是,它不是无限无穷的(除非您的Action参数可以无限无穷,但这是计算机无法很好完成的工作):对于任何应用程序状态,您都可以简单地将为达到该状态所需要的一系列Action编码较长系列位,您将分配一个唯一的整数来标识该应用程序状态。 实际上,这就是事件源!
每个程序员都应该花时间学习音乐的基础知识。 它改变了我们对世界和我们的工作的思考方式,并加深了我们的理解,即尽管我们可能在生产新产品,但实际上我们所做的很少是概念上的“新”。通过这种谦卑和对过去的了解,我们可以共同创造美好的未来。
乔恩·拉塔内(JonLatané)是 Oracle + Bronto的 一名高级软件工程师, 是 达勒姆社区合唱团 以及其他作品和个人的 伴奏 ,同时 也是 Topologica , ChordCalc 和其他音乐软件 的开发者 。