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

**URL:** <https://uzu.lurk.org/t/is-there-a-way-to-trigger-the-lpf-to-create-an-auto-wah-effect/4911>\
**Category:** TidalCycles\
**Tags:** questions\
**Created:** [1 October 2023 15:13 UTC](https://uzu.lurk.org/t/is-there-a-way-to-trigger-the-lpf-to-create-an-auto-wah-effect/4911 "2023-10-01T15:13:56Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![vcassel](https://uzu.lurk.org/letter_avatar_proxy/v4/letter/v/ec9cab/32.png) [@vcassel](https://uzu.lurk.org/u/vcassel)\
**Post date:** [1 October 2023 15:13 UTC](https://uzu.lurk.org/t/is-there-a-way-to-trigger-the-lpf-to-create-an-auto-wah-effect/4911/1 "2023-10-01T15:13:56Z")

</div>

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...

```haskell
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

```

---

<div class="post-metadata">

**Author:** ![yaxu](https://uzu.lurk.org/user_avatar/uzu.lurk.org/yaxu/32/2_2.png) [@yaxu](https://uzu.lurk.org/u/yaxu)\
**Post date:** [1 October 2023 22:28 UTC](https://uzu.lurk.org/t/is-there-a-way-to-trigger-the-lpf-to-create-an-auto-wah-effect/4911/2 "2023-10-01T22:28:14Z")

</div>

If you run this:

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

```

You can do this sort of thing:

```haskell
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.

---

<div class="post-metadata">

**Author:** ![vcassel](https://uzu.lurk.org/letter_avatar_proxy/v4/letter/v/ec9cab/32.png) [@vcassel](https://uzu.lurk.org/u/vcassel)\
**Post date:** [2 October 2023 02:46 UTC](https://uzu.lurk.org/t/is-there-a-way-to-trigger-the-lpf-to-create-an-auto-wah-effect/4911/3 "2023-10-02T02:46:42Z")

</div>

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):

```haskell
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

```

---

<div class="post-metadata">

**Author:** ![ShaiR](https://uzu.lurk.org/user_avatar/uzu.lurk.org/shair/32/2304_2.png) [@ShaiR](https://uzu.lurk.org/u/ShaiR)\
**Post date:** [3 October 2023 18:57 UTC](https://uzu.lurk.org/t/is-there-a-way-to-trigger-the-lpf-to-create-an-auto-wah-effect/4911/4 "2023-10-03T18:57:43Z")

</div>

Another approach is to define a new effect in superdirt. See here [Filter envelope - #7 by ShaiR](https://club.tidalcycles.org/t/filter-envelope/2977/7)

---

<div class="post-metadata">

**Author:** ![cleary](https://uzu.lurk.org/user_avatar/uzu.lurk.org/cleary/32/177_2.png) [@cleary](https://uzu.lurk.org/u/cleary)\
**Post date:** [18 October 2024 04:54 UTC](https://uzu.lurk.org/t/is-there-a-way-to-trigger-the-lpf-to-create-an-auto-wah-effect/4911/5 "2024-10-18T04:54:44Z")

</div>

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 🙂

[![](https://img.youtube.com/vi/TYxASoBjqR4/maxresdefault.jpg "Further Tidalcycles Control Bus exploration with mi-ugens, creating effect envelopes for events") ](https://www.youtube.com/watch?v=TYxASoBjqR4)

---

<div class="post-metadata">

**Author:** ![trampbunny](https://uzu.lurk.org/user_avatar/uzu.lurk.org/trampbunny/32/3152_2.png) [@trampbunny](https://uzu.lurk.org/u/trampbunny)\
**Post date:** [20 October 2024 11:29 UTC](https://uzu.lurk.org/t/is-there-a-way-to-trigger-the-lpf-to-create-an-auto-wah-effect/4911/6 "2024-10-20T11:29:51Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![cleary](https://uzu.lurk.org/user_avatar/uzu.lurk.org/cleary/32/177_2.png) [@cleary](https://uzu.lurk.org/u/cleary)\
**Post date:** [22 October 2024 00:58 UTC](https://uzu.lurk.org/t/is-there-a-way-to-trigger-the-lpf-to-create-an-auto-wah-effect/4911/7 "2024-10-22T00:58:19Z")

</div>

Totally - credit to @mistertim for digging into it!

> [@Superfm](https://club.tidalcycles.org/t/superfm/1761/48):
>
> Hey folks, in case anyone is interested, i spent some time over the weekend working out how to make the [Control Buses](https://tidalcycles.org/docs/reference/control_busses/) in Tidal 1.7 work with the superfm parameters - this allows you to sweep / modify parameters continuously, rather than having the changes quantised to note onsets - it's fantastic for super subtle variations, slow/drone/noisy music, and doubly so if you have a MIDI controller handy to map to some of the parameters. You just need to add the following to your BootTidal.hs then use…
