clone45 / voxglitch

Modules for VCV Rack
GNU General Public License v3.0
99 stars 16 forks source link

Digital Sequencer Missing Gate's Output First Step #67

Open sandyadr opened 3 years ago

sandyadr commented 3 years ago

Hi, i just realized it that the gate output is missing it's first step in instant reset mode, but the CV output is fine.

voxglitch

Thx.

clone45 commented 3 years ago

Thanks for pointing this out! I'll try to get a patch completed this weekend. I'll keep you posted. :)

sandyadr commented 3 years ago

You're welcome! Thx for your fast response too, and great sequencer btw 😀

clone45 commented 3 years ago

@sandyadr I could use some advice. When in legacy reset mode, when a reset signal arrives, should a gate output trigger immediately if step #1's gate is set to ON?

Here's how Legacy reset works. When STEP input goes high:

  1. Both the CV and Gate sequencer are set to step #1
  2. The CV sequencer at step #1 immediately starts outputting the value at that step
  3. The Gate sequencer at step #1 waits until the first gate input arrives. However, once that input arrives, it proceeds to step #2, essentially skipping the first step (as you've witnessed)

I ran some tests comparing the SEQ3 sequencer with Digital Sequencer and they seem to react exactly the same to resets when it comes to the gate outputs:

image

No matter when I reset, they're exactly in sync. I'd love to hear your thoughts! I suppose my thought is: "Legacy" mode was designed to act just like an older VCV gate sequencer, flaws and all. Maybe I should add another mode if there's a need for it?

Thx for your fast response too, and great sequencer btw

My pleasure.

sandyadr commented 3 years ago

@clone45 I'm not sure if understand it completely, is this "legacy reset" mode with its flaws and all, is the reason Count Modula created the Master Reset module and Marc Boulé (Impromptu Modular) suggestion that leads to the standards 1ms clock-ignore in VCV?

In facts, the main reason I found this bug is I'm currently testing some of my favourites sequencer about which one needs a Master Reset and which one is not (can be directly routed from Clocked). Because I want to try creating a linear (non-generative) composition (even though it still needs some random/generative modulation), so an always-sync is my main target in these tests.

In case you're interested in what I found, this is my zoom-out version of the screenshot I sent yesterday: Screenshot 2020-11-15 132008

2nd and 3rd row is the sequencer that could directly be routed from Clocked, 3rd and 4th row is the one that needed a Master Reset. The yellow cable is the sequencer that I think have an issue or notes to be aware of, the green one is a safe bet, and the red one is the one I couldn't sync at all or maybe there's something wrong with my setup (and I already requested a selectable reset mode to Frozen Wasteland QAR, because it is one of my favourites too).

I only testing one module per author because it seems that all the sequencer from the same developer always behaving the same.

I don't know if I interpreted it correctly and this answers your question but if it isn't, I'm happy to answer another question.

Oh, and if I may request a feature/improvement to your sequencer, I've got a lot of (maybe) an interesting idea after I compare it to another sequencer in VCV and hardware sequencer that I used to have/try (but not strictly an eurorack modules). I said maybe because I'm originally a graphic designer/lecturer, but I'm a turntablist and used to be in an electronic music group in my younger days (mainly dealing with its live performances improvisation and visual aspect though, because my musical knowledge is quite.... below standards😅, so I need a lot of automation and tricks)

Thx and regards!

clone45 commented 3 years ago

You're welcome! Thank you for following up. I'd love to hear your feature requests. Feel free to email directly at clone45@gmail.com.

is this "legacy reset" mode with its flaws and all, is the reason Count Modula created the Master Reset module and Marc Boulé (Impromptu Modular) suggestion that leads to the standards 1ms clock-ignore in VCV?

Yes, that's my understanding. Digital Sequencer uses Marc's 1ms clock-ignore as the default when processing resets. But some users were having trouble using Digital Sequencer with older modules that did not implement the 1ms clock-ignore, which is why I added the "legacy" option.

I must admit that all of the reset specifics sometimes makes my head spin, but if you could tell me exactly how you need it to work, I'm sure that I can create a solution for you. I'm assuming that you've tried it in non-legacy mode, but if not, that's worth exploring too.

I love the looks of that patch! I have some similar generative patches that I've been working with. I also have very little musical knowledge. Ha ha ha

sandyadr commented 3 years ago

You're welcome! Thank you for following up. I'd love to hear your feature requests. Feel free to email directly at clone45@gmail.com.

Great, I will try to compile my idea and maybe create a rough mockup for the module connection patch cable possibility, basically it involves an expansion to access CV input/output for mangling the sequence (like a MIDI effect in daw or MPC), in a non-destructive way as much as possible (so that the main sequence is still playing in sync like usual). Thx!

I must admit that all of the reset specifics sometimes makes my head spin, but if you could tell me exactly how you need it to work, I'm sure that I can create a solution for you. I'm assuming that you've tried it in non-legacy mode, but if not, that's worth exploring too.

Ah! I guess know now what I'm missing in my test after reading your post again, Just to make sure, Instant mode is the legacy way right? and Marc's 1ms ignore is the next clock input mode? if so, then I prefer the next input mode. And i missed the facts that SEQ-3 is skipping the very first beat too, sorry for that, but it still outputting all the gate after a reset while running.

I narrowed my test to the most related sequencer now, like this: Clocked: because is the most used clock generator Impromptu Grid Seq 64: As a baseline, because is created by Marc Voxglitch Digital Sequencer: of course VCV Seq 3: only for the reference for legacy mode and the most basic sequencer provided. Count Modula Basic Sequencer: because it's outputting both CV and gate, and it defaults to next clock input mode (i guess) Grayscale Algorhythm: because it provides both legacy and new mode (and Marc is helping with the porting to V.1 and added a new feature in the sequencer).

All the sequencer that provides a RUN input is not used in this test. And both CM Basic Sequencer and Grayscale Algorhythm are running through master reset module for really reliable sync and correct RESET state. But I still tested the default connection too for the test.

I must admit that all of the reset specifics sometimes makes my head spin, but if you could tell me exactly how you need it to work, I'm sure that I can create a solution for you. I'm assuming that you've tried it in non-legacy mode, but if not, that's worth exploring too.

Yes! I realize it too while testing the sequencer, a lot of small but crucial differences in a way they respond to the clock.

And the results show some slight differences in the way Digital Sequencer Gate CV and clock CV value state with other sequencers after a reset while the clock is not running and a reset while the sequencer is running, both in legacy (step missing after a reset in direct connection with clocked, and missing first step and earlier by one tick in CM master reset connection, both while stopped and running), and in the new mode (late by one tick in both connection). But I will focus on the next clock input mode for now. I will compile the results in a way that easy to understand later if that helps.

From what I see in above results and compare it to other sequencer behaviour, maybe there's a code that gets accidentally exchanged/swapped (I'm curious about the late and earlier by one tick behaviour, only Digital Sequencer have both of this quirks, afaik).

But in short, replicating the way Gate Seq 64 maybe is the best bet for me and future compatibilities, but because I don't really understand the code implementation of it, I guess both Count Modula's and Grayscale's Sequencer would be an easier option and it works tight and great too (even if they still need a master reset module). CM provides an example of CV and gate output, and Grayscale provides both reset mode option behaviour.

Thx again for following up!