5、音乐理论中的音阶、音高与音程知识解析

音乐理论中的音阶、音高与音程知识解析

1. 音阶与音高基础

1.1 自然音程距离

在音乐理论中,自然音程距离是一个重要概念。给定两个音 tone1 tone2 ,从 tone1 tone2 的自然音程距离是两个音之间自然音字母的数量减 1,假设 tone2 tone1 之后。例如,从 C 到 D 的自然音程距离是 1,从 Cb 到 Db 同样是 1;从 E 到 D 的自然音程距离是 6,其自然音字母路径为 [E, F, G, A, B, C, D] 。在 Python 中,自然音程距离的计算公式为:
[diatonic_dist = (tone2.diatonic_index - tone1.diatonic_index) \% 7]
由于 Python 总是计算正模数,这恰好符合该距离语义的要求。

1.2 自然音缓存

总共可以构造 49 个独特的自然音实例。在后续构建音符时,会创建许多自然音高,每个音高都有一个自然音。为避免不必要的高存储分配,因为这 49 个音实例不会改变,所以可以在代码库中重复使用自然音。自然音缓存 DiatonicToneCache 提供了这种重用机制。

DiatonicToneCache 是一个单例类,只有一个实例,该实例仅创建一次且不对外暴露,仅作为按名称访问音的缓存机制。它有一个属性 __di

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值