我正在尝试在Pure Data上自动模拟海洋声音。到目前为止,我已经完成了通过用[bp~]过滤一些噪声来实现非常基本的声音。我已经看到截止频率的最佳范围是300到500 Hz,因此我希望有一个水平滑块[hsl]从300到500并自动返回,直到我告诉它停止。 (我已经将范围(300,500)分配给滑块,我现在只需要自动控制它)。 我试过[osc~],但它不起作用,因为滑块不是音频元素,[osc~]的输出是音频信号。在图片中,我展示了我的目标:
那么如何自动控制滑块而不必手动改变滑块呢?到目前为止,一切都按照我想要的方式进行,但我需要定期增加和减少滑块以模拟海浪。
答案 0 :(得分:3)
Pd中有两个对象可以让您从信号世界转换为控制世界。 [sig~]将控件转换为信号,[snapshot~]将信号转换为控件。您可以使用[snapshot~]来使用[osc~]解决方案。
[snapshot~]的工作原理是每次收到爆炸时将即时信号值报告为数字。您可以按给定的速率设置地铁,定期报告这些情况。
这是一个测试,每秒20次拍[快照〜]以捕获以1 Hz移动的[osc~]。我使用了一些简单的运算符将输出从-1缩放到1到300到500之间,以适应您的示例。您可以将其修改到滑块并进入比赛。
答案 1 :(得分:3)
如果您的问题只是:如何自动滑块?答案是看[line]对象。线在给定时间内从当前值插值到目标值。
(注意:控制信号时,我们改用[line~]。)
但是,你的目标是模拟海岸波。在上面的滑块自动化是两个问题:1。)我们在控制数据速率而不是信号数据速率和2)操作。我们希望缓和和缓和斜坡。振荡器将同时解决这两个问题。
(注意:为简化起见,此处省略的是,由于音量感觉不等于功率增加,幅度控制不应该是线性的。)
由于我们不想只改变幅度,但我们想要使用正弦函数的音色(带通的截止频率)我们可以通过计数器来实现所需的输出范围动画,包括缓和 - 进进出出。注意:滑块仅用作此修补程序中的可视化。