I’ve been thinking a bit about clock reset issues lately, and a post by @Soothsayer in this same category has prompted my current post. My post here pertains in particular to how clocks interact with sequencers and sequential switches, and I am starting to think a small change might be needed. I’ll first summarize the next change coming to Clocked in my upcoming update 0.6.13, for those that are not aware yet, and then I will propose my idea.
New in upcoming Impromptu 0.6.13: As a result of discussions with Jim and Steve, and my own findings as well, we have decided that Clocked’s outputs should hold their current levels when run is stopped. This acts in effect like a pause, and the clocks continue on their way from where they left off if we turn on run again. We have to keep clocks that are high in their high state when the clock stops, so that another pulse is not created when we start it up again. Such an approach is needed for when we are clocking different sequencers that use different clock ratios, such that everything stays in sync when we stop the patch and intend to start it up again from where we left off. In the current version 0.612, when we toggle run in Clocked, all internal counters get reset, which is not ideal. Further reading:
(issue is closed, but it can be read, and even revived if needed).
Proposal: In all versions of Clocked (0.6.12 and upcoming 0.6.13), when Clocked is reset, all clock outputs are reset to their low state, and they immediately rise when run is turned on. 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.
There was a discussion here https://github.com/VCVRack/Rack/issues/938 about sequencers missing their first steps, and in Impromptu sequencers the problem was solved with a clock-ignore-on-run-or-reset method, but in some use cases, proper behavior in Impromptu sequencers requires that the run cable still needs to be connected from the clock to the sequencer’s run input, or alternatively, that the option ResetOnRun is selected in the right click menu. The new idea above would seem better and more general, and could potentially be applied to sequencers and sequential switches that don’t have a run input.
I’d love to hear from anyone who might see any downsides to this, perhaps I’m overlooking something. I’d also be curious to hear from those that have Eurorack clocks (Pam’s workout, etc), to see how it is done in the real world @Omri_Cohen, @JimT