You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

关于可生成优美旋律的简单数学方程的技术问询

关于可生成优美旋律的简单数学方程的技术问询

我之前见过一些能生成绝美复杂图形的简单方程,就在琢磨——音乐领域有没有类似的东西?比如有没有一个简单的方程$A(t)$,把它转换成声音后就能生成一段旋律?如果这种时域的方程不存在,那傅里叶域里有没有用简单公式就能生成惊艳复杂旋律的方法?

我正在给自己写的一款开源小工具找一个漂亮的默认音效,这个工具的功能就是把方程转换成音频播放。


函数如何被解读为音乐

音乐可以被建模成一个关于时间的振幅函数,更常见的是立体声形式——也就是左右耳各对应一个函数。这些函数和其他数学函数一样可以被绘制出来:

要说明的是,实际音频是离散采样的(采样率约48000Hz),但我们可以用连续函数来近似它,所以能对它做各种操作,比如用FFT来近似傅里叶变换。但麻烦的是,这种由数百万数据点组成的离散函数没法被简洁地表达出来——就像网页顶部那张绝美图形,如果用像素数据表示会无比臃肿,但用生成它的数学函数就异常简洁。


我做的原型验证

我已经完成了一个概念验证:用相当简单的方程确实能生成旋律:
$$
\begin{align*}
&\sin(440 \cdot 2 \pi t) \exp(-(t-1.1)^2 e{(t-1.1)2}) \

  • &\sin(554.365 \cdot 2 \pi t) \exp(-(t-3.0)^2 e{(t-3.0)2}) \
  • &\sin(659.225 \cdot 2 \pi t) \exp(-(t-4.9)^2 e{(t-4.9)2})
    \end{align*}
    $$
    这个方程其实有点生硬,它只是把“凸包函数”和正弦波结合起来,生成了A大调的琶音:A、C♯、E。核心思路就是让函数的频率和振幅随时间变化,当频率落到悦耳的数值时,振幅达到峰值。

但我想要更自然的版本,就像网页顶部那种用简单方程生成绝美复杂图形的效果一样。这个原型生成的旋律是可以播放出来的。


自己动手尝试的方法

你可以自己动手调整参数玩:把凸包函数和你想要的周期函数相乘就行。想要调整每个音符的延迟,只需要把方程里的延迟值(比如我用的2.9)改成你想要的数值。每个凸包函数大概持续2秒,你也可以调整凸包函数的参数来改变它的宽度和形状。

备注:内容来源于stack exchange,提问作者Zaz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.22 13:09:50