Sapphire 2026

Thank you for your service on the beta test team!

1 Like

Tonight’s creative exercise uses rhythms running at different counts but based on the same clock.

The patch is available here:

3 Likes

My homework for myself tonight was to create a patch that plays the word LOVE in Morse Code, without using any modules that understand Morse Code. I wanted the experience of designing the digital state machine. I settled on the BogAudio PGMR and PGRMX extensions, because you can make a sequencer as long or short as you want.

And here is the patch.

I’m curious how other people would have approached this problem. Is there a simpler way without using all the patch area for sequencers?

2 Likes

I was sorta obsessed with PGMR and extension for a while. I had patches with so many rows, so many extensions, lol. Then it mysteriously stopped actually functioning as expanders on reload and I had to slide them apart and back again to get the extensions going. I believe all that got resolved not too long ago, and I still use it here and there, but I used to program everything with the rows and gates. Just funny how you have seasons with modules, even virtual ones.

1 Like

Great challenge!

Hmmm, my simpleton approach would be Impromptu’s PhraseSeq32, which allows to tie steps together to double their length.

I don’t think it’s a digital state machine, but would it still meet your specs :grinning_face:?

Cosinekitty morse code challenge_PhraseSeq32_20260611.vcv (2.5 KB)

1 Like

Very cool! I learned something new about the Impromptu collection. I like knowing I can “join” adjacent gates to make longer ones.

In Morse Code, the “dah” should be 3 times as long as the “dit”. The silence time inside a letter (between the dits and dahs) should be the same as a dit duration. The silence time between two letters should be 3 dits = 1 dah.

So LOVE becomes

L 101110101000
O 11101110111000
V 101010111000
E 1000

or smashed together into a flat sequence of bits:

101110101000111011101110001010101110001000

Assuming consecutive bits are always tied together like PhraseSeq32 can do, the challenge rephrased is: how do you generate that sequence of timed gates using the simplest possible VCV Rack modules?

I am thinking in terms of making fun digital circuits in VCV Rack lately. As a tangential idea, it would be fun to create a binary adder out of logic circuits, and listen to the sound of numbers being added together as rhythms or something. Vague idea but I think it’s interesting…

1 Like

That’s getting into XAOC territory there. Have you seen the XAOC Leibniz binary system? I had considered making a set of modules that went there… the foundation of the system is basically a 8bit DAC module with weird bonus options that converts CV to a binary gate pattern. I think there are some binary counter modules in VCV already, that might be able to be patched into that kind of configuration.

2 Likes

Yes, this sounds similar to Dave Benham’s Hybrid Knot. It has shift registers, logic, clocks running at different rates, feedback, and includes the idea of combining a series of bits to make a variable-voltage value for modulating things.

1 Like

Here is my Morse Love solution.

I use Venom AD/ASR to generate the Dit and Dah gates. The Rise time sets the dit or dah gate length. The Fall time sets the rest length. The Rise Gate provides the actual gate. The Fall EOC trigger is used to trigger the sequencer to go to the next gate.

The Rise and Fall are set to the same length to represent one time unit. The sequencer needs two channels, one for the gate length, and the other for the rest length.

  • 0 V = 1 time unit = dit gate and space within word
  • log2(3) V = 3 time units = dah gate and space between letters
  • log2(7) V= 7 time units = space between words

The Log2(n) formula can be typed directly into the knob popup menu.

I provide two solutions:

  • The Bogaudio PGMR with expanders is the most straight forward with the rest length directly below the gate length, but is kind of bulky
  • The Bogaudio ADDR-SEQ with expanders is very compact, but needs two sequencers, so it is not as easy to program because the gates and rests are disassociated.

I set the sequencer voltage range to 0-3 Volts, as that covers the full range needed quite nicely.

The top PUSH 5 button resets and starts the sequence.

Hold the 2nd PUSH 5 button to stop the sequence

The top KNOB 5 knob controls the overall rate. It feeds the Rise and Fall times equally.

The Bogaudio Switch toggles between the upper ADDR-SEQ and the lower PGMR solutions. They sound identical.

I apply some Slew to the gates for a cleaner sound.

Morse Love.vcv (4.8 KB)

3 Likes

That is elegant. I like it! It is far more compact and solves the problem without any “unfair” Morse Code help.

I think it might be smaller in size using a Biset - Regex, but no, I don’t have the “code”.

1 Like

I probably don’t understand the premise :grinning:

LOVE.vcvs (456.2 KB)

LOVE with Dave.vcvs (456.2 KB)

6 Likes

Another elegant (compact) solution

Best to change the E length to 8 so there is a 7 unit rest at the end signifying end of word.

In case some don’t know - you need to use Stoermelder Strip++ to properly import the selection

1 Like

Chaos-driven sequencer idea

And now for something completely different!

Today I was thinking about how a sequencer can be defined in ways other than a clock-stepped shift register. I thought about picking one of 4 gates by asking questions about a slow LFO voltage V:

  • Is V inside the range (0V, 1V)? In other words, is (0<V) AND (V<1)?
  • (1<V) AND (V<2)?
  • (2<V) AND (V<3)?
  • (3<V) AND (V<4)?

Combining VCV Compare for the (A<B) parts, with VCV Logic for the AND gates, and Sapphire Frolic’s Y output for the LFO signal, I made a sequencer-like thing that cycles back and forth through 4 voices, but with a slightly irregular cadence due to chaos in Frolic.

It makes a little machine like this:

Only one of the four AND gates is lit up at a time, depending on Frolic Y. You might notice the VCAs don’t actually do anything. I use them strictly as light bulbs to see which of the gates are lit up. Of course you might use them for something, or delete them!

In the demo video, I use two of these Frolic sequencers to drive different parts of the patch at independent chaotic rates.

The patch is available here:

1 Like

Nice patch.

I think you have reinvented a phase driven sequencer.

There are a few existing phase sequencer modules:

You can also use the Venom Poly Fade as a phase sequencer. Use a Poly Offset to define the CV values for up to 16 steps, and cycle through the channels with the Poly Fade and take the Sum output. You can adjust the width to create instantaneous steps, or smoothly morph (cross fade) from one CV value to the next.

Your Morse Code exercise has me thinking of a new type of sequencer. Something similar to the Bogaudio PGMR, except it would have one knob to specify the number of time units for an On gate, and another to specify the Off time units. It would have additional CV knobs to specify things like V/Oct, Velocity, plus anything else you can think of. It could have slew options for the CV. There would be a global gate output, V/Oct output, plus additional CV outputs. Also each step would have a select button and input as well as step gate output. I think such a sequencer could be used to easily set up complicated melodic rhythms.

2 Likes

Thank you for the additional details! PhaseSeq32 should be able to fulfill this. Automating the SEQ# will allow for longer messages, and combination with 8Face (as shown by @Yeager above) will extend the range even further.

Thanks for the fun idea!

Another really straightforward cheat code fragment would be a super simple script in Stochastic Telegraph’s BASICally, containing only OUT and WAIT commands. It gets the job done nicely, but it’s quite plain and I’m pretty sure it’s not what we’re after here :sweat_smile: :joy:.

Cool, now I have a new phrase in my modular synth vocabulary!

I am on a kick lately of going “ultra-modular”, meaning I think it’s fun to build complex machines out of simpler parts. I’m even thinking of digging out my old digital logic design textbooks and building something out of nothing but NAND gates or some such.

Which brings a more fun topic. If you wanted to build something out of NAND gates only in VCV Rack, what is the smallest NAND gate you can make? I know you can make an AND gate out of a single VCA: use both the amplitude CV input and the signal input as binary (0=false, 10V=true), the output will be high only if both the signal and the amplitude are high. I think you could use VCV CVMIX to subtract the input voltage from 10V, which would be the same as a boolean NOT operation.

So my most obvious NAND gate is the middle two modules here:

This works, but it’s even bigger than the obvious solution using VCV Logic:

I may need to create my own 3 HP, quad-NAND module!

1 Like

You should check out Lunetta Modula. I could be your dream plugin for such a project. Within the collection are many configurations of NAN gates.

I think you nailed it.

I explored creation of all the logic gates in my Fundamental Constructs posts. But that was in the early days of the VCV stock modules - before things like CV-MIX and LOGIC existed.

One critical thing you will have to consider when building complex machines is the sample delay introduced by every cable. You quickly run into sync issues when creating compound logic constructs. You will need a way of introducing sample delays to keep things in sync. I like to use the Grande Variable Sample Delay.

My Venom Logic module supports 9 configurable logic gates and allows you to reuse outputs from earlier gates without introducing sample delays. It has a bunch of non-intuitive but very useful features, so read the documentation carefully.

The Lunetta Modula CD4048 can also perform some simple compound logic without sample delays, but I think it is a bit more cryptic and cumbersome to use.

1 Like

Very interesting. I didn’t consider how confounding the sample delay can be for logic patches, but yeah it makes sense. That does make a good case for making new logic modules! In Cardinal (I know we don’t really talk cardinal here, but) there are apparently no sample-delays at all, as all the modules are processed at the same time somehow. For some feedback patches this small difference between VCV and Cardinal can be very significant.

I wonder when Rack3 comes out if there will be improvements in the ability to keep modules in sync?

But to come back to the topic. I think patching stuff with Logic modules is really awesome and back to the core mentality of classic modular patching with basic Doepfer modules to do wild stuff. I really like how stacks of simple modules like comparators and logic gates can generate a lot of complexity from a LFO or envelope input.
If also add analog shift registers to that list you can make a whole CV-scape that way.

1 Like

Oh nice, I like Venom Logic! I’m going to play with that one for sure.

Also, I have used the Lunetta CD4040 12-bit binary counter before, but I didn’t realize how many other useful digital logic stuff there was in that collection. Very helpful!