 void gate_isr()
 {
   gate = function->gt_read(GT3);
+  if(!gate)
+    retrigger = true;
 }
 
 void timer_isr()

  virtual void setup()
  {
    gate_time = 0;
    gt_attach_interrupt(GT3, gate_isr, CHANGE);
  }

  virtual void loop()
  {
    if(gate_time)
    {
      if(gate)

};

volatile DU_ADSR_Values adsr_values;
volatile bool gate, retrigger;

static const unsigned char label[4] = {'A', 'D', 'S', 'R'};

