           if (p == 3)
           {
             // if we've hit point 3 the repeat count times...
-            if (widget_save_->params.vals.repeat && ++repeat_count == widget_save_->params.vals.repeat)
+            if (cached_params_.repeat && ++repeat_count == cached_params_.repeat)
             {
               // stop looping
               loop_reverse = loop = false;

    sanitize_rate();
    sanitize_loop();
    sanitize_repeat();

    // draw title
    Display.draw_du_logo_sm(0, 0, DUINO_SH1106::White);

      gate_time_ = 0;
      release_time_ = 0;
      retrigger_ = false;
      cached_params_ = widget_save_->params.vals;
    }

    if (gate_time_)
