delayedpulsem

Generates a single pulse after a delay after a rising edge on trigger input. A new trigger before the pulse arrives at the output, will cancel the previous trigger. The generated pulse is so small you won't notice it on a display! This version has a modulation input for the delay time. Extended range.
Author: Johannes Taelman
License: BSD
Github: timer/delayedpulsem.axo

Inlets

bool32.rising trigger

frac32.bipolar delay modulation

Outlets

bool32.pulse pulse output

Parameters

frac32.s.map.klineartime.exp delay

Declaration
int32_t val;
int ntrig;
Init
val = 0;
ntrig = 0;
Control Rate
if ((inlet_trig > 0) && !ntrig) {
  val = 1 << 30;
  ntrig = 1;
  outlet_pulse = 0;
} else {
  if (!(inlet_trig > 0))
    ntrig = 0;
  if (val > 0) {
    int32_t t;
    MTOF(-param_delay - inlet_delay, t);
    val -= t >> 3;
    if (val <= 0)
      outlet_pulse = 1;
    else
      outlet_pulse = 0;
  } else
    outlet_pulse = 0;
}

Privacy

© 2024 Zrna Research