Is there a way to trigger the lpf to create an auto-wah effect?

Hi y'all,

Long-time lurker, first-time poster.

I have something kinda funky going on here (experimenting with Alex's training on scales) and I'd like to know if there's any way to trigger the lpf range by note like an auto-wah...

setcps (135/60/4) -- Default cps

p "bass"
  $ rarely (fast 2) -- every or rarely?
  $ slow 2
  $ off "q" (|+ n "<-12 12>")
  $ struct "t(<9 7>,16)"
  $ n (scale "minor" 
        $ floor <$> (slow 2 $ (slow 2 sine + slow 3 cosine) * "<6 -3>")) -- <6 -3> & <5 -4>
  |- n "[24, 12, 0]"
  # s "braids"
  # model 26 -- Good values: 4 5 7 12 22 25 26
  # timbre 0
  # legato (range 0.5 1.5 $ slow 2 perlin)
  # cut 1 -- Better?
  # lpf (range 8000 800 $ fast 4 tri)
  # lpq 0.3
  # room 0.5
  # sz 0.3
  # shape sine
  # leslie 1
  # lrate 2
  # lsize 2
  # gain 0.9

If you run this:

let sqz effectcycle pat = squeezeJoin $ ((# effectcycle) . pure) <$> pat

You can do this sort of thing:

d1 $ sqz (lpfbus 1 (segment 128 $ rangex 100 5000 tri)) $
  n "3 5 [8 7]" # s "sax" # legato 1

There's quite a lot going on here, using lpfbus to change the lpf while the note is playing via an effects bus, using rangex to apply an exponential curve to the range, and segment to sample-and-hold the continuous tri signal.

4 Likes

WOW! Thanks so much! Reading the page on Control Busses now. Love going through all your examples and then throwing a bunch of weird things at it to see if it breaks and then trying to fix it. Now just need to see if I can have pitch control legato. This sounds so much cooler now (using the Daedelus What Wands sample pack for drums):

setcps (135/60/4) -- Default cps

let wah effectcycle pat = squeezeJoin $ ((# effectcycle) . pure) <$> pat

p "bass"
  $ rarely (fast 2)
  $ slow 2
  $ wah (lpfbus 1 (segment 128 $ rangex 8000 800 saw))
  $ off "q" (|+ n "<-12 12>")
  $ struct "t(<9 7>,16)"
  $ n (scale "minor"
        $ floor <$> (slow 2 $ (slow 2 sine + slow 3 cosine) * "<6 -3>")) -- <6 -3> & <5 -4>
  |- n "[24, 12, 0]"
  # s "braids"
  # model 5 -- Good values: 4 5 7 12 22 25 26
  # timbre 0
  # legato (range 0.5 1.5 $ slow 2 rand)
  # cut 1 -- Better?
  # lpq 0.2
  # room 0.5
  # sz 0.3
  # shape sine
  # leslie 1
  # lrate 2
  # lsize 2
  # gain 0.9

p "bass" silence

p "drums"
  $ sometimes (stut "[0|2|4]" 0.5 (1/"[8|16|32]"))
  $ n "5(<3 5>, 8)"
  # s "[wwkicks:7, ~ [wwhats:1|wwcracks:5], wwhats:2*8?]"
  # cut 1
  # shape sine + (segment 8 $ range (-1) 0 rand)

p "drums" silence
2 Likes

Another approach is to define a new effect in superdirt. See here Filter envelope - #7 by ShaiR

I had a bit of fun with this too - I notice you're using braids so you might be interested in the control bus implementation on clouds in this example :slight_smile:

2 Likes

Haven't seen makeBus or makeRecv before, these are gamechangers

1 Like

Totally - credit to @mistertim for digging into it!