Clocks: Gates or Triggers?

I’ve been trying to pick a default clock module. I like the functionality and looks of the ZZC Clock, but I see it outputs triggers, not gates.

After some rudimentary experimenting with the Bogaudio ADSR module, it seems that feeding a gate to it gives a far greater range of expression than feeding it a trigger. What’s the standard with clocks? Gates or triggers? If it’s triggers, why?

I can’t answer you question, but I also like the clock from ZZC and I use one of his „Divider“ which can be configured for gates.

2 Likes

I hadn’t noticed that feature of the ZZC Divider module, and yes, that works well. Thanks much.

Just speaking for myself here, but my clocking preferences preferences would be:

  1. Gates - but gates that are closed when Run is not enabled. Why a gate? Gates can save you some modules when you’re sequencing, but if I’m not running, 999 times out of a 1,000, I’m not going to want the gate to be wide open while stopped.

  2. Resets that occur on run. I know some sequencers will count the next clock after a reset as 1 and some count the reset as 1, but the former is just not intuitive IMO. That’d be like if DAW playback went to measure 1 beat 1 on stop, and jumped to measure 1 beat 2 on play. It’d be much more intuitive for everyone if turning off a Run worked like a stop, and hitting Run worked like a Reset+Play where beat 1 equals the Reset beat, then followed by beat 2, etc.

If Clocked included a “Gates closed on Stop” mode and a “Reset on Run” option, in addition to the current settings, it would be the be-all-end-all clock for me. You could then cover all the common use-cases, and if you were running two sequencers that counted beats after a reset differently, you could just run two instances of Clocked with different settings, but otherwise in sync to cover both types of sequencer.

1 Like

Doesn’t it have both of those ni the right click menu?

“Outputs reset high when not running” is one option. If you load up Clocked with default settings, then uncheck that box in the menu and toggle Run to off, any open gates will remain open. So I’m not sure if it’s a bug (technically, there’s been no reset if you just turn Run off), but it’s definitely not working as desired because gates will stay open when not running.

Now, there is also a “Reset when run is turned off” option that, when enabled along with “Outputs reset high when not running,” will close the gates when Run is set to off. But in doing so, you’re sending the reset on stop. Not on start. No reset gets sent on run and this will cause some sequencers to go out of sync and start up on beat 2. Now, his sequencers have a “Reset on Run” option, but others may not and may operate differently. If the clock had a “Reset on Run” option, I’m thinking it would get things in sync.

Hence the dilemma. If the Outputs reset high thing is a bug and it’s not supposed to require a reset to close the gates, then it may be fine once fixed.

And please, if I’m wrong about any of this or just not getting something, feel free to correct me and tell me I’m an idiot. I’m still wet behind the ears when it comes to Eurorack so I could just be missing something obvious.

there has been a very long debate on several points in the past, from which were about start on first step, last step, and reset sequencers or keep the step where it is. If i remember well some of those discussions have lead to the option “outputs reset high when not running” In Impromptu Modular Clocked (@marc_boule).

Personally i don’t like this option, and rather not use it, cause it can sometimes in a large patch send the active step when stopped to many places where it is not desired, FX, and other things ( switches etc) that should be closed when stopped.

So i rather don’t use that option, the problem here is that many sequencers and now also utilities have become dependent on this “feature” for example i recently posted an issue about 8Face not starting correctly, turns out it relies on “output reset high when not running”.

I also noticed when using this option, in a patch where i was using swing, everything went totally weirdo, and when i turned that option off, everything played perfectly fine with swing.

So now the dilemma for me as well is that some cool modules rely on this high state, while i rather not use it.

I’ve found another weird behavior with ZZC Clock and Divider, assuming I have connected them together correctly: Clock Phase Out to Divider Phase In.

If you adjust the top two knobs on Divider to make different time divisions, and then return to 1:1, the Gate Out gets out of phase with the Saw Phase coming in. This is a problem if If you’ve managed to clock a plugin with Clock’s Trigger Out and hoped to keep it in time with the Gate out from Divider.

You can see this behavior with Scope. Plug Clock’s Phase out into X and Divider’s Gate Out into Y. Adjust Divider’s time divisions. Bring it back to 1:1. Now out of phase.

Clocking is surprisingly not a simple issue, and for those that are curious to know more about the clock outputs being high when not running in Clocked, you can see the history and motivations for this here:

Here is the TLDR:

“My thinking is that Clocked should actually set all its outputs high when we do a reset, even if it is not running. It would thus be ready in that state (called “armed”, lets say, just for purposes of discussion), such that when we turn on run, the clocks are already high and would not immediately trigger sequencers and sequential switches, thereby properly playing the first step.”

2 Likes

I’ve been playing with your Clocked module. Very full featured and easy to understand! :slight_smile:

I also noticed that whether or not the clock is outputting 0v or 10v when it is not running seems to be a matter of at what point in the cycle you hit the Run button to stop it. If you stop it while it’s outputting 0v, then it remains at 0v. If you stop it while it’s outputting 10v, then it stays at 10v.

EDIT: I see the contextual menu items, now. However, the above still seems to be true even if “Outputs reset high when not running.” At least at very low BPMs.

1 Like

Yes, pausing the clock outputs when run is turned off was intentional, so that when we are playing many sequencers at different clock rates, say with many patterns, the whole patch can be stopped (paused really) and then it will continue playing right where it left off, without any sequencers getting misaligned nor missing any beats. (https://github.com/MarcBoule/ImpromptuModular/issues/25)

With the “reset when run is turned off” option, I believed it would cover those cases where users instead want it to restart, but it seems there is a need to have Clocked restart its clocking engine internally while not simultaneously emitting a reset pulse on its reset output jack. So there’s still some work for me to do it seems :slight_smile:

Interesting discussions!

4 Likes

Yeah, it seems like there are at least two common use cases from an end-user perspective:

  1. User wants to pause a sequence and resume play where they left off

  2. User wants to stop a sequence and have playback resume from beat 1

Which then gets further complicated by the fact that…

  1. Users may be running one clock to drive different sequencers from different developers

The only thing we can agree on is everything should stay in sync, but doing that is much easier said than done. And I’m just talking from an end-user perspective, not even getting into a developer mindset.

I’m brainstorming here, but I almost feel like CD players had it right with their combined play/pause, and standalone stop buttons. I’m almost thinking, user hits pause [in this case turns off run] on the clock and gates stay open, sequence doesn’t advance, next beat picks up exactly where it left off - no reset is ever transmitted. Next use-case, user hits [lets say a new] Stop on clock, any open gates close, but playback will pick up back up at beat 1 (with a reset probably happening on play, so: reset, two, three, four). So could a new stop button, with a “Send Reset on Play” option do the trick?

In the end, I kind of feel like different instances of Clocked, daisy chained together, but with different reset behaviors enabled in the menu may be required. Maybe one instance resets on stop, another resets on start, and another resets high with a reset on stop. We can already daisy chain Clocked, so maybe that’s just a way to get there. Then again, the How To Rack book goes into a workaround with Clocked that seems to keeps things in sync (page 55) - so maybe a cleaner solution is possible: http://www.musicwords.net/vcv/How_to_Rack.pdf

Who knew clocks could be so complicated? Obviously Marc has, but I certainly never gave it any thought before recently.

Testing this could be a lot of fun though. Take Clocked, a Phrase-Seq-16, an instance of Topograph, maybe a DK Trig sequencer, throw a Hora drum seq in for fun, Chronoblob, a BPM LFO, and try running everything on the same clock and try to keep everything in sync on beat 1.

2 Likes

Interesting analogy about CD players. In that case, everyone agreed on a standard, which I guess is not the case, so far, for module makers. Which puts kind of an undue burden on the clock makers to kluge something for every possible scenario.

Great discussion guys, I will give this more thought and see what solution works out best given the current state of the module.

1 Like

Self portrait? :laughing:

If it ultimately ends up making more sense, because you don’t want to risk breaking compatibility, you could always consider making a new module called reClocked (Clocked Pro, Clocked Xtreme, ReClockeDux - ok, not good at naming things) with an expanded feature set (stop button, reset on start option, maybe a trigger mode, or different behaviors per output). Heck, I’d be in for a paid module that did all that!

1 Like

Ok, perhaps we are deviating from Jon’s post, but feel free to continue the chat in the github issue. Here’s what I propose. It’s a small change, but it should offer more flexibility:

1 Like

I’ve been doing this a lot since clocked was released. Seems to work well for me. If a cable adds a 1ms delay, then the single cable from run->reset should trigger before any of the sequencers start. Would a reset on start option function any differently?

1 Like

Interesting, I guess if the sequencers follow the standard to ignore clocks within one millisecond of reset, there should be no problems, but if not, I believe that it may depend on the routing through modules if ever Clocked is not conected directly to the sequencers. But if this setup is working for you, all the better!

Your clock seems the best of the batch to me. I just wish it was a little skinnier. :thinking: I am trying to make a fairly functional, semi-permanent rack that fits all in one screen at 100% zoom. That basically means two lousy rows.

1 Like

Nothing else lets you set the pulse width, add delays, and includes that many multiplier options in it. It’s worth the size IMO.

3 Likes