   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)
     {

    }
  }

  void update_clock()
  {
    Timer1.detachInterrupt();
    if(!seq_values.clock_ext)
    {
      Timer1.attachInterrupt(clock_isr, seq_values.clock_period);
    }
  }

 private:
  float note_to_cv(int8_t note)
  {

void clock_isr();
void reset_isr();

void update_clock();

class DU_SEQ_Function : public DUINO_Function {
 public:
  DU_SEQ_Function() : DUINO_Function(0b0111111111) { }
