6、音乐音程的计算与Python实现

音乐音程的计算与Python实现

1. 复合音程与音程倒置

复合音程扩展了音程定义的范围,作曲家常利用它来获得更好或独特的音质。在后续将音程作为计算对象进行音程算术运算时,其重要性会更加凸显。

音程倒置是指将音程中两个音的高低位置互换。对于简单音程,可通过将低音升高一个八度来实现倒置。例如,大3度音程倒置后为小6度音程,如C:4到C:5;纯4度音程(E:4到A:4)倒置后为纯5度音程(A:4到E:5)。倒置音程只是对音高距离的一种概括性描述,与具体音高无关。

音程倒置的重要性体现在以下两个方面:
- 在和弦转位中,除根音外的其他音成为低音,从而影响和弦的音色。
- 可通过倒置音程来计算音程的起始音。

简单音程倒置的规则为:给定音程 (n, t),其中n为自然音程距离,t为音程性质,倒置后的音程为 (9 - n, t’),t’ 由以下映射确定:
$M \to m, m \to M, d \to A, A \to d, P \to P$

以下是第一八度内所有可能的音程倒置情况:
| 原音程 | 倒置音程 |
| ---- | ---- |
| D:1 | A:8 |
| D:5 | A:4 |
| P:1 | P:8 |
| P:5 | P:4 |
| A:1 | d:8 |
| A:5 | d:4 |
| D:1 | A:7 |
| D:6 | A:3 |
| m:2 | M:7 |
| M:6 | M:3 |
| M:2 | m:7 |
| M:6 | m:3 |

相关推荐

1、计算机音乐编程入门与探索

本博客全面介绍了计算机音乐编程的基础与探索路径,将音乐理论与软件设计相结合,帮助读者通过编程深入理解和应用音乐元素。内容涵盖音乐概念与软件设计的融合、音乐转换算法、编程基础与音乐理论、面向对象设计以及数学计算基础等。此外,还提供了配套软件包和代码示例,供读者实践学习。适合学生、教师、从业者和研究人员学习参考,探索各自领域的音乐编程应用。

fox11的博客 166

4、音乐音阶体系全解析:从理论到Python实现

本文深入解析了音乐音阶体系的发展历程与实现方法,涵盖从毕达哥拉斯音阶、纯律到平均律的演变过程,重点介绍了平均律半音音阶的数学原理与Python实现方式。通过代码示例和理论分析,帮助读者全面理解音阶体系的核心概念及其在音乐编程中的应用。

study的专栏 102

MATLAB音频合成器:音乐理论与信号处理的结合

MATLAB(Matrix Laboratory的缩写)是一种高性能的数值计算环境和第四代编程语言。在MATLAB中,可以进行矩阵运算、数据可视化、算法实现以及数值分析。它广泛应用于工程计算、控制系统设计、信号处理和通信、图像处理、财务建模等领域。

weixin_42509720的博客 953

S7-200 Smart 控制运动轴(脉冲电机/伺服)教程

S7-200 Smart 控制运动轴(脉冲电机/伺服) 结合本人刚接触触摸屏时候的踩坑经验,编写S7-200 Smart 控制运动轴(脉冲电机/伺服)的详细流程,给刚接触PLC的朋友提供一些经验指导。 本文详细介绍了S7-200 Smart 控制脉冲步进/伺服电机流程,包含接线方法及梯形图。希望对初学者有所帮助

xjbsw0的博客 5万+

JOOQ用法和实例

jOOQ,是一个ORM框架,利用其生成的Java代码和流畅的API,可以快速构建有类型约束的安全的SQL语句。jOOQ的核心优势是可以将数据库表结构映射为Java类,包含表的基本描述和所有表字段。通过jOOQ提供的API,配合生成的Java代码,可以很方便的进行数据库操作生成的Java代码字段类型是根据数据库映射成的Java类型,在进行设置和查询操作时,因为是Java代码,都会有强类型校验,所以对于数据的输入,是天然安全的,极大的减少了SQL注入的风险。

m0_67403076的博客 1375

模型检测--工具KeYmaera

论文:KeYmaera: A Hybrid Theorem Prover for Hybrid Systems 作者:Andre Platzer and JanKeYmaera摘要1 介绍2用于混合系统的KeYmaera验证工具3混合系统,混合自动机和混合程序 摘要 KeYmaera是一种用于混合系统的混合验证工具,它结合了演绎,实数代数和计算机代数证明者技术。它是自然的自动和交互式定理证明器 混合系统的规范和验证逻辑。 KeYmaera支持差分动态逻辑,它是用于混合程序的实值一阶动态逻辑,是混合自动机的程

ziigea的博客 1076

LTspice 导入 PSpice 模型实战指南 --(解决语法兼容性与模型优化问题)

本文提供了将PSpice模型成功导入LTspice的详细实战指南。针对两者间的语法兼容性问题,文章以TI UCC23513为例,逐步讲解模型获取、符号创建、常见语法错误修改及仿真验证方法,并分享了模型优化与个人库管理技巧,帮助用户高效解决模型导入与仿真难题。

weixin_28278377的博客 815

TPRI-DMP平台介绍

TPRI-DMP为华能集团西安热工院自主产权的工业云PaaS平台,已经过13年的发展和迭代,其具备大规模能源电力行业生产应用软件开发和运行能力

ashou706的专栏 2270

故障转移集群无法连接到节点_Windows 2012系统群集故障转移集群

理论知识很重要!集群和群集是什么意思?其实看到标题可能会感觉有点绕,简单易懂的来说一下:集群,英文名称为Cluster,集群的意思就是将多个系统连接在一起,可以让多台服务器能够像一台服务器那样工作。通常采用集群系统是为了提高系统的稳定性和网络中心的数据处理能力以及服务能力。第二个就是:群集,其实这个概念也不难理解,群集是把多个计算机连接在一起,形成整形,随后可以更好的利用设备资源的一项新...

weixin_39535283的博客 3250

Claude Code VSCode集成开发指南:AI编程助手完整配置

Claude Code与Visual Studio Code的深度集成为开发者提供了强大的AI编程支持。本文详细介绍Claude Code VSCode扩展的安装配置、功能特性和实际应用方法。通过完整的配置流程和代码示例,帮助开发者充分利用Claude AI的智能编程能力。文章涵盖从环境搭建到高级功能应用的完整指南,包括代码自动补全、智能重构、实时代码分析等核心功能的使用技巧,以及与现有开发工作流的整合方案。

2501_93058131的博客 5977

React 源码解析 | Reconcile协调过程

上篇讲了React的工作流程,这篇详细的讲一下render过程中的beginWork函数,也就是深度优先创建Fiber树中"递"的过程。beginWork函数传入当前已经创建好的Fiber节点,返回创建/复用的第一个子FIber节点,也就是wip.child在renderRoot中,在开始创建整棵FIber树之前,会先调用prepareRefreshStack创建/复用一个新的HostRootFiber。

weixin_40710412的博客 1219

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

上一篇: 3、复杂系统理论:从起源到多领域应用
下一篇: 28、请你提供书中第28章的具体内容,以便我按照要求为你生成博客。
study
博客等级 码龄27年 65粉丝 1642原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值