# Gain() works, amp() doesn't?

**URL:** <https://uzu.lurk.org/t/gain-works-amp-doesnt/6007>\
**Category:** Strudel\
**Tags:** questions\
**Created:** [17 November 2025 22:28 UTC](https://uzu.lurk.org/t/gain-works-amp-doesnt/6007 "2025-11-17T22:28:14Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![captainjacksnap](https://uzu.lurk.org/letter_avatar_proxy/v4/letter/c/e19b73/32.png) [@captainjacksnap](https://uzu.lurk.org/u/captainjacksnap)\
**Post date:** [17 November 2025 22:28 UTC](https://uzu.lurk.org/t/gain-works-amp-doesnt/6007/1 "2025-11-17T22:28:14Z")

</div>

I’m sure I was using these interchangeably the other day, even the example line from the documentation doesn’t seem to work, I’m using REPL in a chrome webapp but this seems to be broken when i try in a browser as well. My real question is when .amp() is working is it controlling the same thing as .gain() in the background just linear? I was using .gain to give a pattern some bounce when i discovered that adding a slider controlled gain would override it so i tried to use amp instead hoping that i could keep my stepped gain control and still manually fade out that section of code when i discovered that amp doesn’t seem to work at all, am i just implementing it wrong or is this a bug?

n("[0 1]\*4").s("hh").gain(0) ← that one outputs no sound (as expected)

n("[0 1]\*4").s("hh").amp(0) ← that one outputs the sound at full volume

---

<div class="post-metadata">

**Author:** ![captainjacksnap](https://uzu.lurk.org/letter_avatar_proxy/v4/letter/c/e19b73/32.png) [@captainjacksnap](https://uzu.lurk.org/u/captainjacksnap)\
**Post date:** [19 November 2025 23:13 UTC](https://uzu.lurk.org/t/gain-works-amp-doesnt/6007/2 "2025-11-19T23:13:43Z")

</div>

okay coming back to reply that i’m using .postgain as my ‘bus’ controllers, also quickly learning that it’s easier to set up a proper side chain by sending a bunch of different orbits to blackhole and into a proper daw, as far as i can tell .amp is depreciated, tho linear control would be nice as it’ll map properly to a midi controller

---

<div class="post-metadata">

**Author:** ![technoabu](https://uzu.lurk.org/user_avatar/uzu.lurk.org/technoabu/32/3634_2.png) [@technoabu](https://uzu.lurk.org/u/technoabu)\
**Post date:** [18 August 2026 07:38 UTC](https://uzu.lurk.org/t/gain-works-amp-doesnt/6007/3 "2026-08-18T07:38:23Z")

</div>

> [@captainjacksnap](#):
>
> n("[0 1]\*4").s("hh").amp(0)

In other live coding environments, such as **SuperCollider** or **Sonic Pi** , the function name **`amp()`** is the standard. It seems that **Strudel** inherited the naming convention from **TidalCycles** , and volume control actions were concentrated in the **`.gain()`** function, meaning **`.amp()`** doesn't perform any function.

In fact, it's not even mentioned in the _strudel.cc_ **reference**.

In my case, this works correctly:  
`$: n("[0 1]*4").s("hh").gain(slider(1, 0, 1))`
