5、音乐理论中的音程与音调表示

音乐理论中的音程与音调表示

在音乐理论和软件开发中,音调和音程的准确表示和计算至关重要。下面将详细介绍相关的概念和实现方法。

1. DiatonicTone 与全音距离

DiatonicTone 提供了一系列方法,其中对 __eq__() __ne__() __hash__() 的重写很有用,可用于比较音调的同一性。全音距离的概念也很重要,给定两个音调 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 总是计算正模数,这正是该距离语义所要求的。

2. DiatonicToneCache

总共可以构造 49 个唯一的 DiatonicTone 实例。在构造音符时会创建许多全音音高,每个音高都有一个全音音调,这会导致不必要的高存储分配。由于这 49 个音调实例不会改

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值