     }
     seq_values.clock_period = bpm_to_ms(params.vals.clock_bpm);
     seq_values.clock_ext = !(bool)params.vals.clock_bpm;
-    update_clock();
+    Timer1.initialize(seq_values.clock_period * 1000);
+    Timer1.attachInterrupt(clock_isr);
 
     // draw global elements
     display->draw_char(38, 2, '0' + params.vals.stage_count, DUINO_SSD1306::White);

    if(retrigger)
    {
      retrigger = false;
    }
  }



void clock_isr()
{
  clock_gate = !seq_values.clock_ext || function->gt_read(GT3);

  if(clock_gate)
  {
    step++;
