My module is capable, among other things, of turning incoming triggers into gates of arbitrary length.
If I receive another trig while a gate is still held, I want to retrigger it ASAP. In intended use cases, there will be no separate retrigger input/output, so that means I should leave a 0V gap before starting another gate.
I don’t want to use a long but musically imperceptible (e.g., 5ms) delay “just to be safe”, as I need other signals to be in close sync.
What’s the shortest gap I can get away with, and still be interpreted as two discrete gates by the majority of third party modules (whether they implement trigs as recommended in the voltage standards or their own way)?
I could be wrong, but assuming the gate handling is being done via a dsp::SchmittTrigger, seems like the gate has to go to zero for at least one sample and then it will not retrigger until the gate reaches 1V again, which could be after 1 sample if there is no slew (or perhaps rise time is the correct term) in the gate signal.
I make a lot of use of rack::dsp::PulseGenerator.reset() to kill the pulse timer before it is due.
1ms is the minimum gate/trigger length guaranteed to be detected by all standard modules’ gate inputs.
Is 1ms also the necessary silence to ensure subsequent gate/triggers will not be merged into the previous one? I might not have understood that it’s implied, but that’s what I’m not 100% sure about since the docs aren’t explicit about it.
Yes. Imagine a sequencer that runs at 1 kHz (by processing every 41 calls to
process() for example), which is the minimum processing rate to detect all 1ms gates. The minimum time between gates must also be 1ms, or the sequencer might see a “high” gate signal in adjacent processes, so it won’t see the “low” gate.
That all is good to know. You might want to keep the rack::dsp::PulseGenerator.reset() in mind. I misspoke above regarding the reset(). I will correct my post. I create a lot of gate signals but do not handle many.
yeah, when my sequencers gets two touching notes, I put a 1 ms. gate low in between them. If they actually overlap I assume it’s intentional legatto and I don’t put any gap in there.