gpt4 book ai didi

clojure - 深入解释 Clojure 泛音生成器中的副作用接口(interface)

转载 作者:行者123 更新时间:2023-12-02 11:10:01 27 4
gpt4 key购买 nike

我是泛音/ super 对撞机的新手。我知道声音在物理上是如何形成的。但是我不明白泛音发声功能的魔力。

假设我有一个基本的声音:

(definst sin-wave [freq 440 attack 0.01 sustain 0.4 release 0.1 vol 0.4] 
(* (env-gen (lin-env attack sustain release) 1 1 0 1 FREE)
(+ (sin-osc freq)
(sin-osc (* freq 2))
(sin-osc (* freq 4)))
vol))

我在这里理解了声音包络、正弦波、频率、音量的ASR周期。它们描述了声音随时间变化的幅度。我不明白的是时间。由于这里所有函数的输入都没有时间,我如何控制诸如回声和其他很酷的效果之类的东西?

如果我要编写自己的 sin-osc 函数,如何指定特定时间点的声音幅度?假设我的 sin-osc 必须设置为在 1/4 周期输出达到振幅 1.0 的峰值,我可以使用什么接口(interface)来编码来控制它?

如果不知道这一点,所有泛音声音合成生成器对我来说都没有意义,它们看起来像是具有未知副作用的奇怪函数。

最佳答案

Overtone 并没有指定每个信号随时间变化的各个样本或形状,它实际上只是 super 对撞机服务器的一个接口(interface)(它定义了一个交互协议(protocol),其中 super 对撞机语言是该服务器的规范客户端,并且泛音是另一个)。因此,所有泛音在幕后所做的就是向 super 对撞机服务器发送有关如何构建合成图的信号。 super 对撞机服务器实际上是根据在任何给定时间播放的合成器的定义来计算发送到 dac 的样本。这就是为什么您会获得原始合成器元素,例如正弦振荡器、方波和滤波器:这些在服务器上调用以实际计算样本。

关于clojure - 深入解释 Clojure 泛音生成器中的副作用接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17353781/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com