   virtual void loop()
   {
     // cache stage, step, and clock gate (so that each loop is "atomic")
-    ATOMIC_BLOCK(ATOMIC_FORCEON)
-    {
-      cached_stage = stage;
-      cached_step = step;
-      cached_clock_gate = clock_gate;
-      cached_retrigger = retrigger;
-      retrigger = false;
-    }
+    cached_stage = stage;
+    cached_step = step;
+    cached_clock_gate = clock_gate;
+    cached_retrigger = retrigger;
+    retrigger = false;
 
     if(cached_retrigger)
     {

    }
    seq_values.clock_period = bpm_to_us(params.vals.clock_bpm);
    seq_values.clock_ext = !(bool)params.vals.clock_bpm;
    Timer1.initialize();
    update_clock();

    if(params.vals.gate_time < 0 || params.vals.gate_time > 16)

#include <du-ino_dsp.h>
#include <TimerOne.h>
#include <avr/pgmspace.h>

#define DIGITAL_THRESH 3.0 // V

