读天才与算法:人脑与AI的数学思维笔记15_声响的数学之旅

news2024/11/15 23:30:12

1. 音乐

1.1. 巴赫的作品以严格的对位著称,他十分中意对称的结构

1.2. 巴托克的作品很多都以黄金比例为结构基础,他非常喜欢并善于使用斐波纳契数列

1.3. 有时,作曲家是本能地或者不自知地被数学的模式和结构所吸引,而他们并没有意识到这些数学模式的意义

1.4. 有时,他们主动去寻找新的数学思想来作为他们作品的框架

2. 有量卡农

2.1. prolation canon

2.2.  又称mensuration canon或proportional canon

2.3. 在中世纪的一种复调作曲技法

2.4. 卡农的不同声部以相同或相似的节奏(主题动机)、不同比例的速度进行

2.5. 这种作曲技法是从一个简单的节奏开始,单声部进行;随后,第二声部以一半的速度、同样的节奏加入;再然后,第三声部以两倍的速度、同样的节奏加入

3. 双曲几何

3.1. 是一种独立于欧几里得几何的几何公理系统

3.2. 也称罗巴切夫斯基几何

3.3. 也称波利亚–罗巴切夫斯基几何

3.4. 也称罗氏几何

4. 欧几里得算法

4.1. 又称辗转相除法,用于计算两个正整数的最大公约数,应用于数学和计算机两个领域

4.2. 欧几里得算法和扩展欧几里得算法可使用多种编程语言实现

5. 算法和作曲之间

5.1. 算法是一组规则,它可以接受各种各样的输入,通过将规则应用于输入的内容,可以得到结果

5.2. 初始输入就是种子,算法是种子生长的方法

5.2.1. 新生成的部分与原始的种子有很强的联系,但它不只是复制原始的种子,或是它的一部分

5.3. 算法可以有不同的图像,通过分析这些图像,你可以知晓这些算法的内容

5.4. 有一些算法可以生成分形图形:从一个简单的几何图像开始,反复将一个数学方程应用到图像上,最后就会出现一个复杂的图形

5.5. 作曲家在创作的时候要进行艺术或科学的双重考量

5.5.1. 发明新的算法,用以创作有趣的音乐

5.5.2. 选择不同的种子(即主题动机)输入到算法当中

5.5.2.1. A是两短一长的节奏
5.5.2.2. B是一个长的节奏
5.5.2.3. 演奏者可以选择某一种算法(规则)来组合这两个主题

6. 巴赫

6.1. 首位音乐程序员

6.1.1. 算法在巴赫创作音乐的过程中发挥了显而易见的重要作用

6.1.2. 巴赫的许多作品可以用数学的语言描绘出来,但其蕴含的算法要比中世纪的复调音乐复杂得多

6.2. 《音乐的奉献》

6.2.1. 《音乐的奉献》源于腓特烈大帝要求巴赫即兴创作,但这部作品清楚地证明了上述观点

6.2.1.1. 《音乐的奉献》开篇的十首卡农分别用了不同的算法,这些算法在数学的层面上对原始的主题进行了发展

6.2.2. 1747年,62岁高龄的巴赫去看他儿子时创作了《音乐的奉献》这部作品

6.2.3. 腓特烈大帝给巴赫的这个主题,并不是一个普通的主题

6.2.3.1. 这是一个缺乏音乐性的主题,几个音符之间的音程关系毫无关联,它们被生硬地堆砌在一起
6.2.3.2. 一般人是无法用这种主题作曲的
6.2.3.3. 用任何经典的对位规则都无法解释这部作品
6.2.3.3.1. 这不仅仅是单一对卡农模仿。
6.2.3.3.1.1. 20世纪的作曲家阿诺尔德·勋伯格(Arnold Schoenberg)

6.2.4. 此故事有另一个版本

6.2.4.1. 腓特烈大帝和巴赫的儿子编造了这个困难的无旋律性的主题,来挑战巴赫
6.2.4.2. C.P.E.巴赫是巴赫(约翰·塞巴斯蒂安·巴赫,即J.S.巴赫)的次子,因为巴赫在音乐界的影响甚大,他厌恶一直以来都活在父亲的光环之下
6.2.4.2.1. 他认为父亲的作品是老派的,他想创造一种新的音乐风格
6.2.4.2.2. 即兴作曲也许是暴露他父亲作曲风格和方法中缺点的机会,好让他出丑
6.2.4.3. 巴赫用这个怪异的主题,即兴创作了令人惊叹的三部赋格曲

6.2.5. 巴赫创作的这部套曲里的十首卡农都是以腓特烈大帝所给的主题为基础的,构成每一首乐曲的都是基础的主题动机和一个数学规则或算法

6.2.5.1. 每一首乐曲都像是一道数学题,演奏者必须解开这道数学题才能进行演奏
6.2.5.2. 算法的内容是:将谱子上下颠倒过来,按照谱面所记演奏出一条旋律,然后再将这条旋律和原有的旋律同时奏出,这样就得到了一首二声部的钢琴曲
6.2.5.3. 该算法是应用于原始旋律主题的规则,目的是为原始声部添加额外的声部
6.2.5.3.1. 正如图像识别的算法适用于任何照片一样,只要有一个基础的主题动机旋律,这个音乐算法也可应用其上

6.3. 赋格曲

6.3.1. 是一种更复杂的卡农或轮唱,很多人在学校里应该唱过这种歌

6.3.2. 卡农的唱法

6.3.2.1. 一半的同学先开始唱,几拍过后,另一半同学再开始唱同一首歌
6.3.2.2. 一个声部的曲调自始至终追逐着另一个声部,直到最后的一个小节
6.3.2.3. 最后的一个和弦,歌声融合在一起,给人以一个神圣的意境

6.3.3. 《伦敦大火》(London’s Burning)和《雅克兄弟》[1](Frère Jacques)都是很好的例子

6.3.4. 这里所使用的算法非常简单,具有非常明显的几何性质

6.3.4.1. 创作旋律导句是卡农的基础,你需要把它写在五线谱上
6.3.4.1.1. 算法是一个规则,这个算法应用在旋律导句上生成一首和谐的曲子
6.3.4.2. 该算法的工作原理是先获取旋律导句的副本,然后在时间轴上向右移动,重复相同的乐句
6.3.4.3. 这种算法选择模仿导句进入的时间不同会产生不同的效果
6.3.4.3.1. 这有点像罐子上的条形图案,可以复制、移动和重复
6.3.4.3.2. 就像罐子上的图案,轮唱曲也可以在第一声部、第二声部之后再添加第三声部

6.3.5. 赋格在卡农的基础上进一步发展了,成为多声部多主题动机的多声复调作品

6.3.5.1. “里切卡尔”(ricercar)
6.3.5.1.1. 一部六声部的赋格曲

6.4. 巴赫在作品中喜欢使用的一个手法是不仅在二声部的时间上做延迟,还对二声部的主题做音高移动的处理

6.5. 在作品中运用对称规则:二声部可能是将主题旋律反过来使用,就像镜面反射一样

6.6. 结合所有这些规则,人们可以构建一种算法,来应对如腓特烈大帝故意为难巴赫这样的难题

6.7. 我们的大脑一边紧张地识别乐曲进行的模式,一边分析这个模式的运行规律,但未来是未知的,所以在分析的同时我们对乐曲接下来的进行模式做出预测是异常困难的

7. 骰子音乐

7.1. musikalisches würfelspiel

7.2. musical dice game

7.3. 游戏算法,使用一组骰子生成16小节的华尔兹舞曲

7.3.1. 使用这个系统可以生成1116种不同的华尔兹,即约4600万亿(45 949 729 863 572 161)首华尔兹

7.3.2. 早期的“算法艺术家”会使用这样的技巧——将预先设定的结构和随机性元素结合

7.3.3. 并非所有的变化都是悦耳的,有些组合显然比其他组合的效果更好

7.4. 莫扎特被认为其有一套类似于C.P.E.巴赫的算法来谱写华尔兹舞曲

7.4.1. 莫扎特的作曲游戏精妙地将176小节(固定结构)和掷骰子(随机性)结合起来,无论怎样都能拼合成令人信服的华尔兹圆舞曲

7.4.2. 莫扎特并没有给出评价拼合作品的标准

7.4.2.1. 这是开放式算法的问题之一

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1638157.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MySQL-分页查询

MySQL分页查询 MySQL 分页查询原则: 在 MySQL 数据库中使用 LIMIT 子句进行分页查询。MySQL 分页中开始位置为 0。分页子句在查询语句的最后侧。 LIMIT子句 SELECT 投影列 FROM 表名 WHERE 条件 ORDER BY LIMIT 开始位置,查询数量;示例: …

【ARMv8/v9 系统寄存 3 -- system counter CNTPCT_EL0】

文章目录 ARMv8/v9 system countersystem counter读取函数实现 ARMv8/v9 system counter 所有使用Arm处理器的系统中都会包含一个标准化的通用定时器(Generic Timer)框架。这个通用定时器系统提供了一个系统计数器(System Counter&#xff0…

模块六:模拟——1419.数青蛙

文章目录 题目描述算法原理解法(模拟 分情况讨论) 代码实现 题目描述 题目链接:1419.数青蛙 算法原理 解法(模拟 分情况讨论) 模拟⻘蛙的叫声。 当遇到 ‘r’ ‘o’ ‘a’ ‘k’ 这四个字符的时候,我…

Redis__数据持久化

文章目录 😊 作者:Lion J 💖 主页: https://blog.csdn.net/weixin_69252724 🎉 主题:Redis__数据持久化 ⏱️ 创作时间:2024年05月01日 ———————————————— 这里写目录标题…

Qt | QFrame容器

01、QFrame 一、QFrame 类 1、QFrame类是带有边框的部件的基类,带边框部件的特点是有一个明显的边框,QFrame 类就是用来实现边框的不同效果的(把这种效果称为边框样式),所有继承自 QFrame 的子 类都可以使用 QFrame 类实现的效果。 2、部件通常是矩形的(其他形状的原理…

O32系统学习

O32系统学习 一、什么是O32系统 O32系统即基金投资管理系统,最开始是为基金公司开发的投资交易管理系统,到后来逐步涉及到券商、券商资管、保险、信托、期货,私募,甚至财务公司,金融控股集团,非标交易所等…

Apollo:开源多语言医疗大型语言模型

前言 医疗知识的整合与人工智能一直是研究界的焦点,每一点进步都可能带来更好的患者体验和更高的治愈率。尽管医疗大型语言模型(LLM)前景广阔,但现有工作主要集中在中文和英文上,对于其他语言的多语言适配还有待进一步探索。 为了将最先进的…

[华为OD]C卷 机场航班调度 ,XX市机场停放了多架飞机,每架飞机都有自己的航班号100

题目: XX市机场停放了多架飞机,每架飞机都有自己的航班号CA3385, CZ6678, SC6508 等,航班号的前2个大写字母(或数字)代表航空公司的缩写,后面4个数字代表航班信息。 但是XX市机场只有一条起飞用跑道&am…

使用ipxe安装现有的装机环境

iPXE和传统PXE区别 iPXE和传统PXE(Pre-boot Execution Environment,预启动执行环境)的主要区别在于它们的功能和协议支持。以下是两者的主要区别: 协议支持: PXE仅支持TFTP(trivial file transfer protoco…

【精选文献】JAG|基于时序Sentinel-1 SAR影像小农耕作区烟草空间分布制图

目录 文章简介 01 文章摘要 02 研究背景、目标及创新点 03 研究区域与数据集 04 研究方法 05 研究结果 06 研究讨论 07 研究结论 08 文章引用 文章简介 论文名称:Mapping tobacco planting areas in smallholder farmlands using Phenological-Spatial-Te…

hadoop学习---基于hive的航空公司客户价值的LRFCM模型案例

案例需求: RFM模型的复习 在客户分类中,RFM模型是一个经典的分类模型,模型利用通用交易环节中最核心的三个维度——最近消费(Recency)、消费频率(Frequency)、消费金额(Monetary)细分客户群体,从而分析不同群体的客户价值。在某些…

python - 3D图表绘制

Pyecharts 和 3D 图表绘制 Pyecharts 是一个用于生成各种图表的 Python 库,它基于 Echarts,支持大量的图表类型,非常适合用于数据分析和可视化。Pyecharts 主要优点是易于使用,可以直接在 Python 环境中绘制富有交互性的图表&…

数据分析及AI技术在旅游行业的应用

引言 旅游行业是一个充满潜力和机遇的领域,而数据分析和人工智能(AI)技术的迅猛发展为这个行业带来了前所未有的机遇和挑战。本文将探讨数据分析及AI技术在旅游行业中的具体应用及其带来的影响。 数据分析在旅游行业的4种应用 在旅游行业…

Java Web 开发 - 掌握拦截器和监听器

目录 深入了解Java Web的拦截器和监听器 拦截器(Interceptor) 拦截器的使用场景 拦截器实例 思维导图 ​编辑 监听器(Listener) 监听器的使用场景 监听器类型 监听器实例 思维导图​编辑 总结 深入了解Java Web的拦截器…

Linux专栏05:Linux基本指令之目录处理指令

博客主页:Duck Bro 博客主页系列专栏:Linux专栏关注博主,后期持续更新系列文章如果有错误感谢请大家批评指出,及时修改感谢大家点赞👍收藏⭐评论✍ Linux基本指令之目录处理指令 编号:05 文章目录 Linux基…

打破失联困境:门店如何利用AI智能名片B2B2C商城小程序重构与消费者的紧密连接?

在如今这个消费者行为日益碎片化的时代,门店经营者们时常感叹:消费者进店如同一场不期而遇的缘分,然而一旦离开门店,就仿佛消失在茫茫人海中,难以再觅其踪迹。这种“进店靠缘分,离店就失联”的困境&#xf…

Tracecat:开源 SOAR

Tracecat 是一个面向安全团队的开源自动化平台。 开发人员认为,每个人都应该可以使用安全自动化,特别是人手不足的中小型团队。 核心功能、用户界面和日常工作流程基于一流安全团队的现有最佳实践。 使用专门的人工智能模型来标记、总结和丰富警报。 …

(三十二)第 5 章 数组和广义表(稀疏矩阵的十字链表存储表示实现)

1. 背景说明 2. 示例代码 1) errorRecord.h // 记录错误宏定义头文件#ifndef ERROR_RECORD_H #define ERROR_RECORD_H#include <stdio.h> #include <string.h> #include <stdint.h>// 从文件路径中提取文件名 #define FILE_NAME(X) strrchr(X, \\) ? strrch…

第12章 软件测试基础(第一部分)概念、质量保证、测试用例、测试执行过程

一、软件测试 &#xff08;一&#xff09;定义 动态验证计算机程序对有限的测试用例集是否可产生期望的结果的过程。测试计划是描述了要进行的测试活动的范围、方法、资源和进度的文档。编写测试计划目的&#xff1a;使测试工作顺利进行、使项目参与人员沟通更舒畅、使测试工…

第十五届蓝桥杯

经历半年以来的学习&#xff0c;终于出结果了。期间无数次想要放弃&#xff0c;但是我都挺过来了&#xff0c;因为我还不能倒下。期间有很多次焦虑&#xff0c;一直在想&#xff0c;我要是没拿奖我是不是白学了。但是学到最后就释怀了&#xff0c;因为在备赛期间&#xff0c;我…