Mathematica音乐

早在2014年,Wolfram Amadeus便与两名同学和音响艺术家HugoSolís一起开始开发。 该软件在SuperCollider(SC)和Wolfram Mathematica(WM)之间非常简单地集成在一起运行。 这种奇怪的集成和软件整体的目的主要是为了应对理解我在蒙特雷大学(Tec de Monterrey)上工作的理解多元微积分的复杂性。

听数学的想法从何而来? 好吧,我学习数字音乐制作工程,这是音频工程的一种罕见形式。 当时我参加了各种与数学相关的课程,例如统计,微分方程,电和磁,多变量微积分和音频编程。 对于所有这些知识该怎么办,我感到非常不确定,不知所措,而且我正试图弄清这些专门主题如何与音乐联系起来。

在寻找所有含义的过程中,我偶然发现了HugoSolís,他教音频编程。在这一堂课中,我们学习了如何用SuperCollider进行编码,对于那些不了解它的人,让我给您提供正式定义。

SuperCollider是用于音频合成和算法合成的平台,供从事声音工作的音乐家,艺术家和研究人员使用。 它是可用于Windows,macOS和Linux的免费开源软件。

我还要补充一点,它是有史以来最强大,最灵活的音频编程语言。

我记得雨果·索利斯(HugoSolís)曾经向我们展示过一个名为DELTA 16.57 / -99.00的项目,该项目涉及从墨西哥格雷罗(Guerrero)普拉亚·文图拉(Playa Ventura)的一个设施中收集的气象数据的超声处理。 那天晚上晚些时候,受数据超音波概念的启发,我有了一个闪电般的想法,即一个音频信号,它代表通过用户意愿进行积分或推导处理的数学函数的图形。 在某种程度上,我在一夜之间编写了该软件的基础,牺牲了我的作业。 完全值得的。

因此,SuperCollider是我音频生成的自然决定,但是,我将如何进行多变量微积分运算呢? 到那时,我已经知道Wolfram Mathematica,这是学生用来解决复杂数学运算的非常常用的软件工程。 然后的想法是编写一个可以与SC和WM版本9进行通信的集成代码(我在较新版本的WM中尝试了相同的代码,但由于某些未知原因而无法使用)。 与团队和教授一起探讨了这些选项,最后提出了一个非常简单的通信协议,该协议是一个服务器-客户端系统,其中WM作为服务器,SC作为客户端。

该协议由客户端通过在存储在特定目录中的文本文件中写入请愿书来向服务器发出请求,服务器正在不断检查新请求。 该请求保护由Wolfram Mathematica通过推导或集成读取和处理的用户用TexForm标记编写的数学函数。 最后,将一个通用的解决方案以及一个值数组发送给SC,这些值求和后将得出函数曲线下的面积。 这些值形成了Y轴上溶液的二维图形表示。

回到SuperCollider,它接收解决方案和值数组并将其显示在UI中。 然后,用户能够选择由来自图形阵列的数据流控制或生成的不同音频变量/功能。 不同的特征发生器是噪声,高斯函数,相位,频率,灰尘,声像,颤音和延迟。

例如,我们可以在下一个代码片段中看到与频率对应的雷管,称为“ freqChange”,是一个内部具有Pbind的对象,而Pbind又是通过将键绑定到值将多个值模式组合到一个事件流中的对象

  freqChange = { 
freqref = Pbind(*
[\ instrument,\ freq,
\ freq,Pseq(tabla.abs),
\ dur,0.1,
])。玩;
};

每个音频处理都具有充当雷管的结构,该雷管在用户选择功能并按下按钮播放时启动。 Pbind对象通过使用一个Pseq创建一个流,该Pseq在对应于数组“ tabla”中保存的数据的值的列表上循环。

流进入仪器,该仪器是一个合成器,基本上定义了使用数据流创建的声音的属性。

  SynthDef(\ freq,{ 
arg freq = 1,out = 0;
var env = EnvGen.kr(Env([0,1,0],[0.05,0.05]),doneAction:2); Out.ar(out,Pan2.ar(SinOsc.ar(0.0001 + freq * 100,mul:env),0));
})。加;

合成器\ freq创建具有软包络且持续时间为0.1秒的简单正弦曲线。 每个流的值都乘以100,然后将0.0001相加。 这样做的原因是主观的单纯经验性搜索,即在可用频率范围内寻找更清晰的声音。

您可以在这里找到代码和文档(西班牙语):https://github.com/Diegorandom/WolframAmadeus

结果是声音的不可预测的组合。 您可以在下一个视频中自己听。

代码执行

我们如何推断所有这些奇怪的声音,这意味着什么? 它背后有一些秘密的叙述吗? 在编写代码时,我决定不对软件进行音乐美学上的安排,只是为了试图发现是否有某种音乐意义可以从纯粹的数学方法中提取出来。 没有啊 至少从传统意义上讲,结果根本不是色调,但是Wolfram Amadeus可以通过每个不同的数学函数创建非常独特的体验。

有些声音我以前从未听过,有些让我以为我可以将软件用于FX用途,有些希望我从未听过。 当我在2014年编写第一个版本的代码时,我相信可以通过将数学转换为音乐来找到一些顺序,乍一看听起来并不像一个糟糕的主意。 问题可能在于微积分功能和音乐美学之间没有根本的联系。

我也担心过分努力,只是以听起来不错的方式调整因素。 我希望找到公理或正确的音调,通过它我可以以音调或某种传统的方式听些可以理解的东西而无需改变数据的主要结构。

今后还有许多工作要做。 为了在音乐上找到更容易理解的结果,第一步是改变施加在合成器上的偏压。 一个独特的合成器,所有进程都可以汇聚在一起,可以给出更统一的结果甚至更疯狂的声音。

我希望该项目能够引起人们的兴趣,因此您可以帮助我们以任何所需的方式扩展它。 实际上,这就是本文的重点,并开放源代码。 它几乎没有帮助隐藏在计算机中的想法。