I wanted to address some limitations of monophonic sequences in VCV Rack that I was running into.
Mono sequences have one envelope shared by all steps in the sequence and this creates two problems:
First, the envelope release on any step is interrupted as soon as the next step occurs.
Second, when some gates in the sequence are turned off, you can still hear notes in the sequence when the last triggered envelope is still releasing.
My solution uses 1-8 sequential switches that are used to make a polyphonic version of the V/Oct and gate voltages. This converts the monophonic sequence into a polyphonic one, but where only one gate is triggered at each step.
This accomplishes two things:
It allows each note to ring out according to its envelope release, even after the next step has been triggered
It prevents notes in the sequence from being heard when their gate has not been triggered, even if the prior steps envelope release is still decaying.
One application of this technique is to sequence (or modulate) the envelope for each individual step using more 1-8 sequential switches. This way you can have a combination of long release notes and short release notes in the same sequence.
I know Tails, by Grande is a module that converts monophonic sequences to polyphonic sequences, and I recommend it as an easy solution. But I couldn’t figure out how to get it to do all the things I wanted to do with monophonic sequences.
I wouldn’t be surprised if @OmriCohen-Music has already done a video on this topic. Maybe there is a much easier way to address these issues that I’ve missed. Please let me know if there are modules or techniques that are better than my solution. If not, hopefully someone will find this technique to be helpful.
As an alternative to Tails, there is also ASSIGN by BGA. I like to use that a lot to allow notes to ring out and not get cut off by the next note gate.
i have to be honest, my initial reaction to seeing “slips” as the sequencer being focused on was a brief moment of defensiveness. but i absolutely understand where you’re coming from, and have struggled similarly with the same problem many times. i never thought of using a sequential switch, admittedly. i’ve always known about Tails, but this is the first i’ve heard of the Assign module others mentioned, so i’ll be checking that out now too. i’m also now going to be thinking about what i can do to deal with this within slips itself, maybe.
Thanks! I forgot about Assign. That works great and I think it deals with the issues I was dealing with. I like it much better than Tails for two reasons:
16 polyphony channels instead of only 5.
Has a reset input. This enables multiple assigns to stay in sync. When I wanted to convert the V/Oct sequence, the gate sequence, and the envelope release sequence – I needed two Tail modules and I could not get them to sync up reliably.
no, at the moment it is not immediately obvious to me, as i haven’t yet started looking into my code to work out how to do it. that’s the whole point i was trying to make.
sorry if this is snippy, but i’ve had a bit of a crap day.
just popping back in briefly to say i’m pretty sure i’ve got slips’ poly output(s) just about sorted. added a right click menu to choose the number of channels being used. here i have it set to 4 channels (multivoltimetro showing the pitch output channels at the top, and gate output channels further down). with each clock input, the new step’s voltage and gate is output to the next available channel, allowing that channel’s ‘voice’ to continue ringing out until it’s overwritten on the next pass.
will probably be able to push an update in the coming days.
(EDIT: forgot to mention - the new mod sequence output currently does the same thing. unsure if this is preferable, or if i should add yet another menu option to toggle whether or not the mod output is poly or stays mono. any suggestions?)
just as a heads up for interested parties - polyphony is working, build available in my repo if you want to try it out before i get it into the library: