纯数据中的自动滑块?
Automatic slider in Pure Data?
我正在尝试在 Pure Data 上自动模拟海洋声音。到目前为止,我已经通过使用 [bp~] 过滤一些噪音来实现非常基本的声音。我已经看到截止频率的最佳范围是从 300 到 500 Hz,因此我想要一个水平滑块 [hsl] 从 300 到 500 并自动循环直到我告诉它停止。 (我已经给滑块分配了范围(300,500),我现在只需要自动控制它)。
我试过 [osc~] 但它不起作用,因为滑块不是音频元素并且 [osc~] 的输出是音频信号。在图片中,我展示了到目前为止我所拥有的:
那么我怎样才能做到自动控制滑块而不必手动改变它呢?到目前为止一切都如我所愿,但我需要滑块定期增加和减少以模拟海浪。
Pd 中有两个对象可以让您从信号世界转换到控制世界。 [sig~] 将控制转换为信号,[snapshot~] 将信号转换为控制。您可以通过使用 [snapshot~] 使用您的 [osc~] 解决方案。
[snapshot~] 每次收到 bang 时都会将即时信号值报告为数字。您可以设置一个给定速率的地铁来定期报告这些。
这是一个测试,每秒发出 [snapshot~] 20 次以捕获以 1 Hz 移动的 [osc~]。我使用了一些简单的运算符将输出从 -1 缩放到 1 到 300 到 500 之间以适合您的示例。您可以将其修补到滑块上并开始比赛。
如果您的问题只是:如何使滑块自动化?答案是查看 [line] 对象。直线在给定时间内从当前值插值到目标值。
(注:控制信号时,我们用[line~]代替。)
但是,您的目标是模拟海浪。在上面的滑块自动化中有两个问题:1.) 我们在控制数据速率而不是信号数据速率下运行,以及 2.) 我们想要缓入和缓出斜坡。振荡器将同时解决这两个问题。
(注意:此处省略为简化,由于音量的感知不等于功率增加,因此幅度控制不应是线性的。)
因为我们不想只改变振幅,而是我们想使用正弦函数的音色(带通的截止频率),我们可以 运行 通过一个计数器来实现所需的输出范围动画,包括缓入和缓出。注意:滑块在此补丁中仅作为可视化。
(由于循环点未对齐导致动画出现故障)
我正在尝试在 Pure Data 上自动模拟海洋声音。到目前为止,我已经通过使用 [bp~] 过滤一些噪音来实现非常基本的声音。我已经看到截止频率的最佳范围是从 300 到 500 Hz,因此我想要一个水平滑块 [hsl] 从 300 到 500 并自动循环直到我告诉它停止。 (我已经给滑块分配了范围(300,500),我现在只需要自动控制它)。 我试过 [osc~] 但它不起作用,因为滑块不是音频元素并且 [osc~] 的输出是音频信号。在图片中,我展示了到目前为止我所拥有的:
那么我怎样才能做到自动控制滑块而不必手动改变它呢?到目前为止一切都如我所愿,但我需要滑块定期增加和减少以模拟海浪。
Pd 中有两个对象可以让您从信号世界转换到控制世界。 [sig~] 将控制转换为信号,[snapshot~] 将信号转换为控制。您可以通过使用 [snapshot~] 使用您的 [osc~] 解决方案。
[snapshot~] 每次收到 bang 时都会将即时信号值报告为数字。您可以设置一个给定速率的地铁来定期报告这些。
这是一个测试,每秒发出 [snapshot~] 20 次以捕获以 1 Hz 移动的 [osc~]。我使用了一些简单的运算符将输出从 -1 缩放到 1 到 300 到 500 之间以适合您的示例。您可以将其修补到滑块上并开始比赛。
如果您的问题只是:如何使滑块自动化?答案是查看 [line] 对象。直线在给定时间内从当前值插值到目标值。
(注:控制信号时,我们用[line~]代替。)
但是,您的目标是模拟海浪。在上面的滑块自动化中有两个问题:1.) 我们在控制数据速率而不是信号数据速率下运行,以及 2.) 我们想要缓入和缓出斜坡。振荡器将同时解决这两个问题。
(注意:此处省略为简化,由于音量的感知不等于功率增加,因此幅度控制不应是线性的。)
因为我们不想只改变振幅,而是我们想使用正弦函数的音色(带通的截止频率),我们可以 运行 通过一个计数器来实现所需的输出范围动画,包括缓入和缓出。注意:滑块在此补丁中仅作为可视化。
(由于循环点未对齐导致动画出现故障)