转载自@36氪

人法地,地法天,天法道,道法自然。—老子《道德经》
即便你不信上帝,不信真主,不信佛陀,不信妈祖,总有种敬畏让你挥之不去,余音绕梁,总是让你情不自禁地发出赞美。
2002年著名科学家发表了《一种新科学》一书,很快成为人类知识领域的一大地标。现在,该书中阐述的理论已经在众多科学、技术、和艺术领域带来革命影响。WolframTones就是通过Wolfram的发现创作音乐的实验之一。



《一种新科学》的核心理念就是探讨一个新型抽象宇宙:一个由各种简单程序组成的“计算型宇宙”。Wolfram在该书中向人们展示这些简单程序是如何捕捉很多自然系统复杂性(美学)的精髓的。
WolframTones从Wolfram的计算型宇宙周选取简单的程序,然后通过音乐理论和数学软件Mathematica的算法来把这些程序渲染成音乐。 每个程序实际上都定义了一个虚拟世界,都有自己的故事,WolframTones捕捉其精华,然后谱成一首音乐。

一切都是原创音乐,完全取材于Wolfram的计算型宇宙。这些音乐有的听上去似曾相识,有些则闻所未闻。这是一种探索计算型宇宙的滋味儿,耐人寻味……
WolframTones基于《一种新科学》中的核心发现:在计算型宇宙中,即便是极其简单的法则或程序都可能会有积极复杂的行为。早在20世纪80年代Wolfram就从他的一维单元自动机(one-dimensional cellular automata,现在通常被称为Wolfram自动机)系统实验中发现了这些惊人的事实。WolframTones正是在这些系统基础之上诞生的。
Wolfram单元自动机的基本原理很简单。假定有一行单元格,非黑即白。然后设定有一种规则,根据上一行相邻单元格的颜色来限定每个单元格的颜色。你能看到的规律从很大程度上取决于你设定的规则,你可以根据相邻单元格的颜色指定每个单元格的颜色。
这里有一个例子,从一个简单的黑格子扩张成一种类似棋盘的布局。


重播动画
加在一起共有256种基本规则,每种规则在一侧仅涉及一个相邻单元格。20世纪80年代早期 Stephen Wolfram 的实验系统性地实施了这些规则。以下是他得到的结果:

放大
其中很多法则都很简单,或者说至少看上去负责但最终都能找到规律。第一个比较棘手的是第30个规则。以下是放大图:

如果你仔细看能发现一些规律,但令人惊叹的是整幅图片看上去如此复杂。普通直觉会告诉你做出这么复杂的东西肯定需要复杂的步骤,通过复杂的法则。但规则30证明并非如此。正是这个发现促使Wolfram编写了《一种新科学》,现在看来这个发现揭示了很多大自然的基本秘密,和科学界的长久谜题。
这个发现也是WolframTones的根基。因为它表明在计算型宇宙中你很容易可以生成复杂形式的规则。WolframTones也是通过这种方法来制作出如此复杂而又截然不同的音乐的。从某种意义上讲每首曲子都讲述了计算型宇宙中某个系统的故事。并且由于该系统遵循着某个既定不变的法则,谱成的曲子也不可避免地存在一种内在的一致性,或许这也是这些音符能够成为音乐的理由吧。
制作音乐那么如何把单元自动机生成的图谱渲染成音乐呢?WolframTones的核心理念是从图谱中截取一段:

然后把片段放倒,当做一张乐谱:

一旦单元自动图谱被放倒以后,每个黑方块的高度和对应音符上的音调一一对应。音阶决定了从高度转变成音调时采用的图谱。每个音阶从八度音阶的12个标准声调中选出某些音调。比如C大调如图所示:

WolframTones通过不同的Mathematica算法从单元自动机图谱中生成音乐。最简单的一个例子就是从某个高度截取连续的黑方块,然后将其转变为同一乐器演奏的单一音符。以下是法则30生成的音符,始于单一的黑色单元格,通过C大调在钢琴上演奏:


WolframTones支持多种乐器和打击乐。一切都源于一个简单的单元自动机图谱。但你可以选择不同的乐器演绎图谱的不同方面。WolframTones还支持一些从单元自动机图谱中衍生出打击乐的算法。
点击这里,你可以试听一些由单元自动机图谱生成的音符。
从计算型宇宙中搜索音乐从256个基本单元计算机中已经可以发现有趣的音乐了,但WolframTones适用于整个计算型宇宙,在每个法则中每个单元格的颜色取决于相邻5个单元格的颜色,而不是3个,所以,以最简单的方法计算,共有2^2^5(约40亿)种法则。
这些法则有的只能生成简单的行为,不适合做成普通音乐。但一旦限定某种音乐类型之后,WolframTones可以在计算型宇宙中搜索与之相似的法则。
《一种新科学》让人们以一种新方式探索音乐。更令人赞叹的一个事实是:和大自然一样,在计算型宇宙中复杂的行为通常很常见,通过搜索便可找到。
Wolfram证明你无法预知某种复杂性,但是你可以不停地探索,WolframTones的发现结果就是一个很好的例子,人们探索计算型宇宙的步伐才刚刚开始。

WolframTones:用一种新科学谱写一种新音乐相关推荐

  1. 宇宙即计算~一种新科学:斯蒂芬·沃尔夫勒姆

    编辑 :Gemini 来源:人机与认知实验室 斯蒂芬·沃尔夫勒姆这个名字,在中文世界里可能远谈不上家喻户晓:但他的英文名Stephen Wolfram恐怕反而却要熟悉得多. 他是Mathematica ...

  2. 报文如何截取时间_5种报文、8种邻居状态机详解OSPF工作原理

    上一章节介绍了OSPF相比RIP具有无环路.路由收敛速度快.可扩展性好的特点.知识卡片 | 链路状态路由协议OSPF凭什么会取代RIP? 我们知道路由协议的最终目的是为了计算最优路由加入路由表来指导I ...

  3. LVS原理详解(3种工作方式8种调度算法)--老男孩

    一.LVS原理详解(4种工作方式8种调度算法) 集群简介 集群就是一组独立的计算机,协同工作,对外提供服务.对客户端来说像是一台服务器提供服务. LVS在企业架构中的位置: 以上的架构只是众多企业里面 ...

  4. WindowsServer2012史记7-茴香豆的五种写法和四种”显示计算机”的方法

    消失的"计算机"? [这周九叔工作比较忙,还有其他琐事缠身,因此SystemCenter2012SP1系列的发布稍慢,抱歉了各位.] 众所周知,WindowsServer2012和 ...

  5. 杀手级AI补代码工具问世,支持23种语言、5种主流编辑器!(附链接)

    本文经AI新媒体量子位授权转载,转载请联系出处. 本文约2100字,建议阅读10分钟. 本文介绍了新开发出的"Deep TabNine"代码补全工具,支持多种编程语言和编辑器. G ...

  6. 杀手级AI补代码工具问世,支持23种语言及5种主流编辑器,程序员沸腾了

    边策 安妮 发自 凹非寺 量子位 出品 | 公众号 QbitAI GPT-2,一个来自OpenAI的逆天语言模型,现在能用来补全代码了. 一位来自加拿大的大四学霸,开发了一款"Deep Ta ...

  7. 【页面传值6种方式】- 【JSP 页面传值方法总结:4种】 - 【跨页面传值的几种简单方式3种】...

    页面传值--最佳答案6种方式: 一. 使用QueryString变量 QueryString是一种非常简单也是使用比较多的一种传值方式,但是它将传递的值显示在浏览器的地址栏中,如果是传递一个或多个安全 ...

  8. ML之kNN(两种):基于两种kNN(平均回归、加权回归)对Boston(波士顿房价)数据集(506,13+1)进行价格回归预测并对比各自性能

    ML之kNN(两种):基于两种kNN(平均回归.加权回归)对Boston(波士顿房价)数据集(506,13+1)进行价格回归预测并对比各自性能 目录 输出结果 设计思路 核心代码 输出结果 Bosto ...

  9. ML之SVM(三种):基于三种SVM(linearSVR、polySVR、RBFSVR)对Boston(波士顿房价)数据集(506,13+1)进行价格回归预测并对比各自性能

    ML之SVM(三种):基于三种SVM(linearSVR.polySVR.RBFSVR)对Boston(波士顿房价)数据集(506,13+1)进行价格回归预测并对比各自性能 目录 输出结果 设计思路 ...

  10. 区块链新一代监管框架 ---《STRISA 一种实施旅行规则的新架构》

    1. 系统定义 兼容TRISA((Travel Rule Informa-tion Sharing Architecture)监管系统 TRISA 旅行规则信息共享架构提供数字金融单位注册和监管服务, ...

最新文章

  1. 2021梧州一中高考成绩查询,2021年广西高考成绩查询网站查分网址:https://www.gxeea.cn/...
  2. [C#,Java,PHP] - IMAP文件夹名称编码和解码方法
  3. C++TSL之map容器(悲伤的故事)
  4. hdu4965 巧用矩阵乘法结合律
  5. 算法 --- reduce的使用.
  6. linux开发需要学习什么,linux开发需要掌握哪些知识?
  7. 反射学习系列2-特性(Attribute)
  8. 对象调用corePlot使用技巧及iOS内存优化之道
  9. Java单链表头插法和尾插法以及增删改查方法
  10. kettle-java代码执行hive相关ktr时报错: database type with plugin id [HIVE2] couldn‘t be found!
  11. TSP问题-多种算法求解
  12. 安卓手机如何设置http代理?
  13. 标准库intrins.h中的循环指令在多种流水灯方式上的应用
  14. 九段刀客:express连接MySQL并实现增、删、改、查
  15. python、java、Go哪个前景好?
  16. 今日头条适配方案_探索头条小程序开发!JavaScript为什么成了众多小程序的首选?...
  17. 原生android怎么安装到手机,如果谷歌强推手机安装原生安卓系统你支持吗?
  18. UNIX常用命令整理
  19. 2021-05-28 新唐M051芯片--串口0,定时器
  20. java与线程相关的一些重要方法1(不涉及并发包)-Object的wait(long timeout)和wait()

热门文章

  1. mysql innodb 分区_MySQL 表分区详解MyiSam引擎和InnoDb 区别(实测)
  2. java提供两种处理异常的机制_Java的异常机制分析及处理办法
  3. php自动发卡程序8.0_vfkphp
  4. springmvc以html作为视图_SpringMVC如何自定义视图
  5. 用友中标:打造新一代云化ERP 落地大型企业互联网+
  6. 发现一个特给力的编写HTML/CSS的插件——Zen Coding
  7. MySQL备份还原——mysqldump工具介绍
  8. ECMAScript6 新特性——“数组的扩展”
  9. MySql+Memcached架构的问题
  10. 【新人c语言强化训练 】 c 语言强化练习2。1 数据对齐[zt]