# Changing fx in live performance

**URL:** <https://in-thread.sonic-pi.net/t/changing-fx-in-live-performance/9803>\
**Category:** Support, Help & Resources\
**Created:** [July 23, 2025, 7:56am UTC](https://in-thread.sonic-pi.net/t/changing-fx-in-live-performance/9803 "2025-07-23T07:56:10Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![nordicwing](https://avatars.discourse-cdn.com/v4/letter/n/ea666f/32.png) [@nordicwing](https://in-thread.sonic-pi.net/u/nordicwing)\
**Post date:** [July 23, 2025, 7:56am UTC](https://in-thread.sonic-pi.net/t/changing-fx-in-live-performance/9803/1 "2025-07-23T07:56:10Z")

</div>

I guys, I wonder if it is possible to modified fx while live performance. I know I can make it happen by just putting with\_fx inside of live\_loop, but it’s very unwise to put fx into loops, so I tried with in\_thread, but it doesn’t work. Is there any other possible solutions?

```ruby
in_thread(name: :fxed) do
  with_fx :reverb do
    live_loop :mysynth do
      use_real_time
      note, velocity = sync "/midi:nanokey2_keyboard:1/note_on"
      #synth :dark_ambience, note: note, amp: velocity/127 # crucial mistake
      synth :dpulse, note: note, release: 1, amp: velocity / 127.0
    end
  end
end

```

---

<div class="post-metadata">

**Author:** ![ethancrawford](https://avatars.discourse-cdn.com/v4/letter/e/a88e4f/32.png) [@ethancrawford](https://in-thread.sonic-pi.net/u/ethancrawford)\
**Post date:** [July 23, 2025, 8:25am UTC](https://in-thread.sonic-pi.net/t/changing-fx-in-live-performance/9803/2 "2025-07-23T08:25:08Z")

</div>

> [@nordicwing](#):
>
> but it’s very unwise to put fx into loops

Not necessarily - you just need to know how and when to do this safely. The tutorial has [some information on this](https://sonic-pi.net/tutorial.html#section-6-2), but there are probably other recommendations if you search around, or need to ask 🙂  
Anyway, the below thread may be of interest:

> [@Live loops inside of FX, with control capabilities](https://in-thread.sonic-pi.net/t/live-loops-inside-of-fx-with-control-capabilities/2269):
>
> Hi all! I’m having some trouble with using effects and live loops. I want to be able to put live loops inside of effects and control them externally, but am running into some problems. I’ll try to articulate each of my specific issues as clearly as possible. In my first example, when I run the code it starts with the default values for the reverb, as I have not specified any opts. When I make a change in the second thread using the control command, it will make the change the first time I re-ru…

(Particularly [my reply to mobius927](https://in-thread.sonic-pi.net/t/live-loops-inside-of-fx-with-control-capabilities/2269/9) there)

---

<div class="post-metadata">

**Author:** ![nordicwing](https://avatars.discourse-cdn.com/v4/letter/n/ea666f/32.png) [@nordicwing](https://in-thread.sonic-pi.net/u/nordicwing)\
**Post date:** [July 23, 2025, 8:42am UTC](https://in-thread.sonic-pi.net/t/changing-fx-in-live-performance/9803/3 "2025-07-23T08:42:46Z")

</div>

> Not necessarily - you just need to know how and when to do this safely.

I know I know, but putting fx inside loop is definitely bad, since it’s keeping on being created again and again.

---

<div class="post-metadata">

**Author:** ![ethancrawford](https://avatars.discourse-cdn.com/v4/letter/e/a88e4f/32.png) [@ethancrawford](https://in-thread.sonic-pi.net/u/ethancrawford)\
**Post date:** [July 23, 2025, 9:15am UTC](https://in-thread.sonic-pi.net/t/changing-fx-in-live-performance/9803/4 "2025-07-23T09:15:07Z")

</div>

Not so much ‘bad’ as needing more consideration - if each nested fx has enough time to complete before the current loop iteration is over, (or only overlaps a small amount) then there’s no issue 🙂

---

<div class="post-metadata">

**Author:** ![nordicwing](https://avatars.discourse-cdn.com/v4/letter/n/ea666f/32.png) [@nordicwing](https://in-thread.sonic-pi.net/u/nordicwing)\
**Post date:** [July 23, 2025, 9:28am UTC](https://in-thread.sonic-pi.net/t/changing-fx-in-live-performance/9803/5 "2025-07-23T09:28:24Z")

</div>

thank you, now I understand, it’s all about the concurrent amount of fx.

---

<div class="post-metadata">

**Author:** ![HarryLeBlanc](https://dub1.discourse-cdn.com/flex017/user_avatar/in-thread.sonic-pi.net/harryleblanc/32/2813_2.png) [@HarryLeBlanc](https://in-thread.sonic-pi.net/u/HarryLeBlanc)\
**Post date:** [July 23, 2025, 11:40pm UTC](https://in-thread.sonic-pi.net/t/changing-fx-in-live-performance/9803/6 "2025-07-23T23:40:17Z")

</div>

In my library YummyFillings.rb, I’ve built a general-purpose lfo method, which can be used to manipulate fx, or synths or samples, and manages its own threads. Feel free to use it.

> **[GitHub - HarryLeBlanc/Yummy: Yummy fillings for sonic pi developers/performers](https://github.com/HarryLeBlanc/Yummy)**
>
> Yummy fillings for sonic pi developers/performers
