Ratcheting Sequencer Work in Progress


#1

Ratcheting Sequencer v0.1.audulus (688.6 KB)

Here’s a sequencer I’m working on right now - it’s a ratcheting sequencer with a twist: you can set the reference pulse to something other than quarter notes. Usually you’re stuck with stepping on quarter notes and ratcheting faster than the step - with this, you can ratchet slower (up to 64 bars), making both the step last longer and creating odd rhythms you couldn’t otherwise.

The main thing I’m going to be adding is a kind of pattern queuing. You’ll be able to split the sequence up to 4+ times into regions that you can queue and then sequence between - basically writing an entire song on a 16-step sequencer.

The UI is pretty sparse right now since things will likely change, but you’ll see I documented it internally which row does what.

Would love to get some beta feedback from people!

Things that will happen:

  • Many more lights with more useful info
  • Displays for PPQ and ratchet speed
  • Voltage Block-like buttons where you can do some cool stuff on the fly
  • A version with fewer steps (8 maybe?)
  • A version just for sequencing gates

Things I’d like to happen:

  • @stschoen - didn’t you have a version of this easy quantizer that is much more CPU efficient? Ideally I’d love to have a simple version that would do Maj/Min and Pentatonic versions of each. I want this to be fully featured, but not so fully featured that it will be overwhelming to use.
  • Figure out a way to start on step 1 when patch starts up. I think it might be as simple as wiring the sequencer a little differently. I don’t have a hardware Eurorack sequencer to test it against - maybe @robertsyrett can confirm that when you send a clock pulse to a sequencer, it stays on step 1 first then goes to step 2, instead of just immediately going to step 2 on the first clock pulse.

#2

I see that each clock division internally has it’s own phasor. I think if you want to trim some excess CPU usage you could use a timer with a frac(x) expression instead. The trade off is it might sound glitchy when you change tempo in the middle of a song.

That’s the way it works when you press the play button on the varigate 4+, but with peaks it seems to act just like Audulus’ basic sequencers, same goes for the Turing Machine. I think having a play/stop toggle gives you two events to code around. I have experimented with having the reset command go to the last step in the sequence so the first clock pulse triggers the first step, but this creates complication of its own.

In practice I have found that really matters very little as if I am ever in dire need of replicable in phase sequences the DAW or an Elektron box has that functionality already. With modular stuff, creating haphazard intersections between sequences is really where the magic happens.


#3

Good idea with the timer/fract - I will use that in the more CPU lite version. I wanted to make it so you could program speed ups/downs. Not sure how to do swing though without adding a ton of delay nodes.


#4


sequencer that plays the first step.audulus (26.7 KB)

I made a sequencer and was thinking about how to make sure the first step played when I pressed play. Then I realized that was already happening and I’m not sure why. But here you go.


#5

Here’s a new version - added an option to set gate length per step. PPN means Pulse Per “N”, which is set below. If you turn on quarter note button, it becomes PPQN.

Ratcheting Sequencer v0.2.audulus (557.9 KB)

I think I need to rework this in a smaller size - 8 steps. The thing is the 16 Mux adds so much CPU% since it needs logic and math inside to combine two Mux8s.


#6

Here’s an 8-step version - in the process of taking the Mux16s out, will probably finish that tomorrow.

8 Step Ratcheting Sequencer.audulus (488.3 KB)


#7

Tempo knob?


#8

yeah there unmarked in lower left


#9

I’m out of town at the moment visiting my daughter. Be glad to try to make a lighter weight quantizer when I get back next week. Seems like I ran into the sequencer first clock issue before, I’ll see what I did. The real question is what should it do? I’m not convinced that counting the first clock as beat zero is a good idea. What should the sequencer output before the first clock? It would be fairly simple to “eat” the first clock with a latch if you think that it’s a good idea.


#10

@robertsyrett’s sequencer seems to do the trick - it should just start from the first step when the sequencer is reset. I have to figure out what it’s doing differently.

I’m going to think about rethinking the clock and min/max steps too. I want to be able to have a start/stop instead of min/max so that when the start is on the left and end is on right, it will run backwards. Also, when you modulate Min/Max, it stretches the sequence out along with it because of the way Min/Max is extrapolated.

Now that I made an 8 step version I think it will be easier to wrap my head around.

I’ve been playing with this a lot and I think it’s a super musical and fluid sequencer to use - really excited to get it going with my modular.


#11

8 Step Ratcheting Sequencer v0.2.audulus (546.5 KB)

Stayed up late watching 90 Day Fiance with my wife and finished up a big part of the sequencer: the display for PPN and N. It was a bit of a brain teaser, but I figured it out. It’s not terribly CPU efficient, but it also doesn’t add too much to the sequencer’s overall CPU% (maybe 0.5-1% on my Mac). It’s worth it though, as you’ll see.

The display will snap to displaying whatever knob you turn in the PPN and N sequence lanes. If it didn’t do this, I’d have to have a per-step display which would be ugly UI and use about the same CPU anyway.

When composing on it, I suggest doing this:

  1. Set the note you want to play at the top (or if you want it to be a rest, turn the button at the bottom off)
  2. Set the duration of the step with the N sequence lane - from 8 bars down to a 64th note.
  3. Set the number of pulses for that step. So if you have N set to 1b and PPN set to 4, you’ll hear 4 quarter notes. If you have N set to 4 and PPN set to 8t, you’ll hear three eighth triplet notes. If it’s a rest note, you don’t have to set PPN.
  4. Set the PWM amount - this is basically the duration of each PPN pulse. You’ll hear the difference!
  5. Set the glide amount if you want any. It will glide from the previous step up or down to the current step.

If you want, you can also just set the N and PWM to quarter note and 0.5 to have fewer controls to get bogged down into.

I’m going to try to add something that will total up the number of beats so you can make sure it is (or isn’t!) a sequence that comes out to a rounded measure.


#12

Cool video of this sequencer in the wild!


#13

Personally I think that a sequencer should start on step 1 and advance to step 2 with the first clock. A reset however is a special case. The best logic I came up with is the following. When a reset is received, reset the sequencer to initial state. If the clock is high while reset is high, ignore the clock. Don’t start counting until the first clock after the clock is low after the reset goes low. Hopefully this makes sense. The idea is to ignore clocks during the reset. I think I made something like this for at least one of my sequencers. I’ll have a look tomorrow. As far as the quantizer goes, I think I can make something that has major, harmonic minor, natural minor, pentatonic major and minor. If you don’t need to mask arbitrary notes the logic should be simpler. I can include chromatic as well if you think it would be useful. I’m thinking a numeric input for the type of scale, and root note. I’m looking forward to playing around with your sequencer. I left Louisiana at 3:30 AM this morning and just got home at 6:30 PM so it’s been a long day in the truck. Glad to be back. BTW my grandkids thought Audulus was pretty neat :cowboy_hat_face:


#14

That all sounds awesome @stschoen! Great to hear the kids were into it :slight_smile: I’m going to be doing some deep thinking about clocks today and figuring out how to make it do what I want. It’s on the tip of my brain how to make it both less CPU and more fully featured…


#15

What’s to think about? What doesn’t a clock do that you want it to do?


#16

Also the way the %random works, it isn’t just like % to go to a random step - if you set it to a low %, it will jump just somewhere near that step, so it’s almost more like the directionality fight function. It should jump to a random position anywhere.


#17

So it’s the counter you want to rethink, not the clock. That makes more sense.


#18

Yeah, how it works under the hood. The functions are good, just trying to iron out its quirks.


#19

So does that mean there would be no pendulum mode?


#20

No, there could be pendulum. It’s more about where the sequence begins and goes to when it’s first started.

The way the counter works now too makes it difficult to accurately sequence parts together - like have it do 4x repetitions of step 1-3, then skip to 4x repetitions of 5-8. It’ll sometimes play an extra step beyond 3 before jumping to 5.