Has anyone made a sequential switch unit [with counters?]

I tried making a quad sequential switch with four mixer channels each with a unipolar vca inside, and the unipolar vca having its gain modulated by a counter… but when I quicksave, it won’t save the number of manual fires I sent the counters [zero, one, two and three respectively] in order to put the mixers in sequence.

I tried using a fold unit hoping that I could un-sync the series of mixers that way, but I do not know how the fold unit operates, and it did not work.

So if I have four counters all triggered by the same CV in, is there a way to automatically – at save – shift them into sequence, so that one begins at the first trigger, the second begins at the second trigger, etc.?

Alternatively, how would you build a sequential switch?

Try this. I think it’s probably the most efficient way to build one.

The one with demo on the end is the same custom unit - I just put some lfo oscillators in the mixers, and a bpm clock in the clock in so you (or someone later) can load up a fully working demo. Runs about 4% cpu without the oscillators and clock unit (the non demo version).

Feel free to ask questions if there’s anything not clear about what makes it work.

Seq Switch.unit (22.9 KB)
Seq Switch demo.unit (31.9 KB)


Thanks Joe, I haven’t been able to test / look at this yet, as I’m away from synth. I think I figured out the fold unit, and it does work with the counters I used anyway.

It may be a firmware issue [0.4.09 here] as I was unable to insert the unit by inserting a preset. I looked at it, and perhaps for that reason I’m not sure it does want I meant: a quad [to one] sequential switch?

Here are two chains, a global one to trigger the switch, and the quad switch [with in 2 in the first in, but the other 3 empty].

count.chain (2.3 KB) quad switch.chain (18.5 KB)

Can you let me know if saving chains – rather than presets – is bad practice?


Any particular reason you’re running 0.4.09 as opposed to the current stable 0.4.26? You’re missing a lot of bug fixes and new features, and I can’t think of anything you’d be gaining. Updating is super quick and painless, if you’ve never done it.

I think the custom unit I uploaded does what you’re saying. It contains 4 mixers, and each time you trigger the clock input, it essentially mutes the current mixer and un-mutes the next one - so it is switching between the 4 signals on each trigger in. You’d load from the insert menu, selecting presets from the lower display, and then navigating to the folder you saved it in.

Saving chains is not a bad practice at all. Whatever makes sense.

Not in front my 301 right now but will download your chains later.

1 Like

Ah right OK, I’ll update the firmware and see what I’m doing wrong then

1 Like

looks super easy to do, just gotta find the adapter to plug the 301’s card into PC


btw, my chains are smaller in size than your units: does that make them more efficient??

I’m not sure - I downloaded your chains but couldn’t get them to work. I assume this is because I named my global chain something different than you did and so it’s assignments got discarded in the channel chain. That’s one reason I packaged it up inside a custom source unit. It’s surely possible you’ve created something more efficient though. :slight_smile:

Yeah, an adapter will be a good tool going forward. I’m guessing once 0.5.x hits, the updates will be fast and furious. Mine looks like a USB flash drive almost. It works well and was less than $10 I think.

It’s surely possible you’ve created something more efficient though

but the size of the up/download is not sufficient to prove that mine is more efficient

it definitely works this end…

Size of the Lua file wouldn’t necessarily indicate CPU efficiency. But I looked at the CPU on yours and it was 3%, which is more efficient.

What did you name your global chain? That is probably what’s breaking it. I’d like to see how yours works.

1 Like

global chain is called “count”.

Still can’t get it to work. I’m feeding a clock into A1 and audio signals into IN1 and IN2. I assigned IN1 in Mix4 - IN2 was already assigned in Mix3. But I’m just still hearing IN2 droning.

I don’t see any of the global chain assignments when I look through the channel chain patch though. I’m sure that’s why it’s not working. Maybe you can save it as a quicksave and upload that? A quicksave would include both the channel chains and global chains and would preserve their assignments.

ok will do a quick save, i’m on it be back in ten…

Ok sorry about the wait…

Here is the quick save; not sure why but loading the chains didn’t work for me either – had to delete from a previous quicksave
Q01.save (45.6 KB)

apologies if i’ve attached the wrong quicksave: they don’t seem to be titled on the card.

here, input three is routed to go just to out three, then just to out four, then nowhere, then nowhere again, then it loops… based on a trigger into a1

it runs at 9% with two switches and one input

Can you let me know if the upload does / doesn’t work and / or is not the upload you’re looking for? If it works, and is more efficient than your design, then I will post it as a “unit” with an explanation of how it works…

1 Like

Yep, works like a charm, and seems to use 1% less CPU than the one I made. Nice work, and I learned something new! :slight_smile:

I took this and localized it into a custom unit for you. To be clear, there’s nothing at all wrong with what you created - it’s great! This should make it more transportable for sharing. Quicksaves can be a bit fiddly for people to work with because you can’t just drop them into a chain where you want them. When you load a Quicksave, you are overwriting all 4 channel chains and the global chains too. So basically anything shared as a Quicksave has to be the starting point for a patch.

Anyway, hopefully this will accelerate your learning curve on custom units and locals a little, and you’ll see even more possibilities to work with now.

Switch 4.unit (21.4 KB)


@vqlk and @Joe Nice work!

1 Like