   (defsynth sonic-pi-fx_nhpf
     [amp 1
      amp_slide 0
+     amp_slide_shape 5
+     amp_slide_curve 0
      mix 1
      mix_slide 0
+     mix_slide_shape 5
+     mix_slide_curve 0
      pre_amp 1
      pre_amp_slide 0
+     pre_amp_slide_shape 5
+     pre_amp_slide_curve 0
      cutoff 10
      cutoff_slide 0
+     cutoff_slide_shape 5
+     cutoff_slide_curve 0
      in_bus 0
      out_bus 0]
-    (let [amp           (lag amp amp_slide)
-          mix           (lag mix mix_slide)
-          pre_amp       (lag pre_amp pre_amp_slide)
-          cutoff        (lag cutoff cutoff_slide)
+    (let [amp           (varlag amp amp_slide amp_slide_curve amp_slide_shape)
+          mix           (varlag mix mix_slide mix_slide_curve mix_slide_shape)
+          pre_amp       (varlag pre_amp pre_amp_slide pre_amp_slide_curve pre_amp_slide_shape)
+          cutoff        (varlag cutoff cutoff_slide cutoff_slide_curve cutoff_slide_shape)
           cutoff        (midicps cutoff)
 
           [in-l in-r]   (* pre_amp (in in_bus 2))

                            sustain_level 1
                            env_curve 2
                            out_bus 0]
     (let [note      (lag note note_slide)
           amp       (lag amp amp_slide)
           amp-fudge 1
           pan       (lag pan pan_slide)
           freq      (midicps note)
           snd       (sin-osc freq)
           env       (env-gen:kr (env-adsr-ng attack decay sustain release attack_level sustain_level env_curve) :action FREE)]
       (out out_bus (pan2 (* amp-fudge env snd) pan amp))))

   (defsynth sonic-pi-pulse [note 52
                             note_slide 0
                             amp 1
                             amp_slide 0
                             pan 0
                             pan_slide 0
                             attack 0.01
                             decay 0
                             sustain 0

 (defsynth sonic-pi-fx_bitcrusher
   [amp 1
    amp_slide 0
    amp_slide_shape 5
    amp_slide_curve 0
    mix 1
    mix_slide 0
    mix_slide_shape 5
    mix_slide_curve 0
    pre_amp 1
    pre_amp_slide 0
    pre_amp_slide_shape 5
    pre_amp_slide_curve 0
    sample_rate 10000
    sample_rate_slide 0
    sample_rate_slide_shape 5
    sample_rate_slide_curve 0
    bits 8
    bits_slide 0
    bits_slide_shape 5
    bits_slide_curve 0
    in_bus 0
    out_bus 0]
   (let [amp           (varlag amp amp_slide amp_slide_curve amp_slide_shape)
         mix           (varlag mix mix_slide mix_slide_curve mix_slide_shape)
         pre_amp       (varlag pre_amp pre_amp_slide pre_amp_slide_curve pre_amp_slide_shape)
         sample_rate   (varlag sample_rate sample_rate_slide sample_rate_slide_curve sample_rate_slide_shape)
         bits          (varlag bits bits_slide bits_slide_curve bits_slide_shape)
         [in-l in-r]   (* pre_amp (in in_bus 2))
         [new-l new-r] (decimator [in-l in-r] sample_rate bits)
         fin-l         (x-fade2 in-l new-l (- (* mix 2) 1) amp)
