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

如何在Sonic Pi中制作可控制主效果器?实时调整HPF截止值

在Sonic Pi中实现可控制的主效果器与实时参数调整

一、实时调整cutoff参数的解决方案

你的问题根源在于:首次运行代码时,with_fx会创建一个固定参数的效果器实例;按下Alt-R重启时,仅会重新执行live_loop部分,外层的with_fx不会重新创建新的效果器,因此参数不会更新。不能将with_fx放入live_loop(会重复创建效果器实例,导致资源浪费和声音叠加),正确做法是保存效果器引用,通过control命令动态更新参数。

修改后的代码示例:

use_bpm 120

# 创建HPF效果器并保存其引用
main_hpf = with_fx :hpf, cutoff: 100 do
  # 这里不需要嵌套live_loop,后续将声音路由到该效果器即可
end

live_loop :drums do
  # 明确将采样发送到指定的效果器实例
  sample :bd_haus, fx: main_hpf
  sleep 1
  sample :bd_haus, fx: main_hpf
  sleep 1
end

# 用于实时调整参数的控制循环(修改cutoff值后按Alt-R即可生效)
live_loop :update_hpf do
  # 直接修改这里的cutoff数值,Alt-R后参数会实时更新到已有的效果器
  control main_hpf, cutoff: 20
  sleep 5 # 避免频繁发送控制指令,可根据需求调整
end

操作说明:

  • 首次运行代码后,你可以修改update_hpf循环里的cutoff值,按下Alt-R重启,参数会立即作用于已存在的效果器,无需停止整个程序。
  • 如果需要更灵活的实时控制(比如用键盘或MIDI旋钮),可以结合set/get命令,例如:
    # 用set存储参数,可在其他地方动态修改
    set :hpf_cutoff, 100
    
    live_loop :update_hpf do
      control main_hpf, cutoff: get(:hpf_cutoff)
      sleep 0.1
    end
    
    此时你可以在另一个缓冲区运行set :hpf_cutoff, 20,无需重启任何循环即可实时调整参数。

二、制作可控制的主效果器

要实现全局可控制的主效果器,核心思路是创建单一的全局效果器实例,将所有音频输出路由到该效果器,再通过control命令统一调整参数:

use_bpm 120

# 创建全局主效果器(可叠加多个效果,比如同时加混响和滤波)
main_fx = with_fx :reverb, room: 0.5 do
  with_fx :hpf, cutoff: 80 do
    # 空块,后续将所有声音路由到这里
  end
end

live_loop :drums do
  sample :bd_haus, fx: main_fx
  sleep 0.5
  sample :sn_dolf, fx: main_fx
  sleep 0.5
end

live_loop :melody do
  use_synth :saw
  play :c4, fx: main_fx, release: 0.2
  sleep 0.5
  play :e4, fx: main_fx, release: 0.2
  sleep 0.5
end

# 主效果器参数控制循环
live_loop :control_main_fx do
  # 调整这里的参数,Alt-R后全局生效
  control main_fx.children[1], cutoff: 120 # 控制HPF
  control main_fx.children[0], room: 0.7   # 控制混响
  sleep 5
end

关键要点:

  • 多层嵌套的效果器可以通过children属性访问内层效果器(索引从0开始,外层效果器的children[0]是第一个内层效果器)。
  • 所有sample和synth的fx参数指定为全局效果器引用,确保所有声音都经过主效果器处理。

内容的提问来源于stack exchange,提问作者Sergey Grechin

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.11 16:04:59