trig loop and trig delay — sketches for a triggered stutter

These are both patches I put together in response to a question that Michael Eidt asked in the Facebook group about recreating the Zoom trigger hold delay. The idea of the delay is that when the delay is triggered by incoming audio, it will capture incoming sound for a period determined by tap tempo and hold it in its buffer until triggered again.

One — ‘trig loop’ — uses a looper, the other — ‘trig delay’ — a delay line to achieve (hopefully) similar results. The delay line is more reliable (rock solid stuff); the looper is more flexible but occasionally does ****ing looper **** that makes you want to tear your ****ing hair out.

The first page of each is the triggering device (onset detector w/ sensitivity enabled; look here if you want to adjust the sensitivity of the circuit) and timing device (an AHD envelope — the middle one, to be precise; the other two are there to improve the performance by cleaning up the signal from the onset detector and providing redundancies to discourage retriggers). The length of the hold stage — the actual time-keeper of the patch — is set by tap (left stompswitch), via a tap-to-CV converter. (These patches require firmware 1.13 to function properly.)

The second page is the audio engine; for trig loop, the loopers, for trig delay the delay lines and VCAs. They are controlled by modules on the first page.

The third page is the tap tempo and tap-to-CV conversion. There is also a clock divider because I have trouble tapping in the really short glitchy bursts, personally, so setting this to 2x or 3x helps me.

Tap tempo is set by the left stompswitch.

On the ‘trig loop’ patch, the middle stompswitch (latching) will double the speed/pitch of the loop, raising it an octave, and the right stompswitch (latching) will drop the speed to half, lowering it an octave and reverse the loop (and the combination of the two stompswitches will result in the loop playing at normal speed but in reverse). The stompswitch controls are on the same page as the loopers.

The patches are stereo throughout, but they could easily be made mono, and they will work in mono. The onset detector is triggered from the left input.

No demo. We’ll see where this goes.

  • State: Work In Progress
  • Platform:
  • Category: Effect
  • Revision: 1.0
  • License: Creative Commons Attribution Share Alike 4.0
  • Views: 267
  • Modified: 3 weeks ago
Chat about this patch on Discord! Download (80)
Appreciate 1
One comments on “trig loop and trig delay — sketches for a triggered stutter
  • Christopher H. M. Jacques on said:

    Michael asked a follow-up question, regarding the complexity of the patch:

    “On the er… overengineered nature of my patch. On the first page, there is probably some overbuilding. The first, very brief, AHD envelope is designed to “clean up” the output of the onset detector. Triggers are in ZOIA are modeled on triggers in the analog world…. and they shouldn’t be. Triggers in the analog world are slewed (kind of hump-shaped), and while quite fast, are quite slow in the micro-timing world; I was getting double-triggers connecting the onset detector directly to the timing ADSR (the second on the page), so that was my work around. I often have triggers open very short AHD envelopes, because these are much cleaner on/off pulses.

    “The trigger AHD passes through a multiplier. The other input of the multiplier is a comparator. The timing AHD goes into the negative input of this comparator, which essentially is used to create a low/0 signal when the timing AHD is firing. This was, again, a safeguard against double-triggering. Since the trigger AHD’s signal passes through the multiplier, it can’t reach the timing AHD before that envelope completes its cycle, because the comparator will be low/0, making the output of the multiplier also 0. This is called an AND gate; it’s used here to make sure that the timing AHD only fires when two conditions are both met (the onset detector has detected a transient AND the timing AHD is not cycling).

    “That comparator is also used in the delay-based patch to hold open the feedback loop of the delay line when the delay buffer finishes recording (and the timing AHD goes low again).

    “The third AHD is … just me trying to deal with that hair-pulling business (of the looper catching micro-samples). You can probably ditch it. I was grasping at straws, really, although the idea is not a necessarily bad idea. It’s a “cool-down” timer, essentially. It’s twice as long as the timing AHD and it, too, controls a comparator in the same fashion as the timing AHD, which in turn is used as part of that AND gate (the timing AHD only fires when the onset detector has detected a transient AND the timing AHD is not cycling AND the cool-down AHD has finished its cycle, too). So, the idea there was that it would keep the timing AHD from cycling too quickly after it had completed its cycle. Not a bad idea, but not absolutely necessary, either.”

    I’m not sure if that’s helpful to anyone, but it is an explanation of my thought process here.

  • Leave a Reply