diff --git a/daisyy-looper/daisyy-looper.ino b/daisyy-looper/daisyy-looper.ino
index cc9f68a7613e01b41bfe56efdf7991bceff55577..afad6f1c7f0dbd901731885d6f9ed01c78831c34 100644
--- a/daisyy-looper/daisyy-looper.ino
+++ b/daisyy-looper/daisyy-looper.ino
@@ -426,7 +426,7 @@ void loop() {
   switch (ui.fx_mode) {
     case FX_MODE_ALL:
       if (!isnan(p5)) {  lfo_amount = p5; }
-      if (!isnan(p6)) {  ui.activeLooper()->volume = p6 * 4.0f; }
+      if (!isnan(p6)) {  ui.activeLooper()->volume = p6 * 4.0f; ui.recalculateWaveform(); }
       if (!isnan(p7)) {  reverbmix = p7; }
       break;
     case FX_MODE_REVERB:
diff --git a/daisyy-looper/ui.h b/daisyy-looper/ui.h
index 1d997a56f0464424931be58a343de056dfc58e89..34e1ff2f3586cad549d9f9b1b3bb12bbf47de225 100644
--- a/daisyy-looper/ui.h
+++ b/daisyy-looper/ui.h
@@ -873,6 +873,10 @@ class Ui {
       activeLooper()->SetLoop(start, length);
     }
 
+    void recalculateWaveform() {
+      this->waveform_cache_dirty = true;
+    }
+
     private:
       double last_render = 0.0;
       uint16_t waveform_cache[128] = {0};