What's new in 2.22 for VCV Rack

Three new modules, and the whole library got cheaper to run

What's new in 2.22 for VCV Rack

2.22 is live in the Library. Three new modules, a pair of controls Phase was asked for, and a performance pass that matters more than any of them if you run large patches.

Carillon

Carillon is twenty-five tuned bells joined by rods you draw between them.

One bell per semitone across two octaves around the root. Strike one and its energy travels down whatever rods you have drawn, on to their neighbours, losing some at every crossing. How hard you hit it and how much REACH lets through decide whether that ripple reaches one bell, two, or the whole set.

Two things make it an instrument rather than a bank of resonators. A rod’s length is its travel time, so a long rod is a long wait, and with a clock patched a crossing takes one pulse per neighbour spacing, which turns the layout you drew into a rhythm. And a rod carries only the partials its two bells share, so a bell a fifth away answers far louder than one a semitone away and the tuning decides what every rod sounds like.

The bells themselves are seventeen partials from carillon bell data, with the minor third that makes a bell sound like a bell and pairs of partials a few cents apart that beat against each other.

Carillon title card and module panel

Canon

Canon is four arpeggiators reading one chord progression.

Four chords, four channels. Each channel plays whichever chord is in force with its own pattern, octave and clock, and each can wander from it the way Fugue does, picking the candidate that agrees best with what the other three are playing.

Chords are stored as scale degrees rather than notes, so a progression follows ROOT and SCALE and a key change moves the whole thing. LEARN writes a held polyphonic chord straight into the current set.

Canon title card and module panel

Count

Count is a narrow clock: 8 HP, six outputs, two knobs each and no menus.

Each output has a DIV from /64 to x64 (with 1.5, 3 and 5 each way) and a MASK saying which of its own pulses sound: odd, even, threes, front half, three Euclidean patterns, bursts, the downbeat. Because each output counts its own pulses, a DIV of x2 repeats the mask twice rather than stretching it, so the two knobs compose instead of fighting.

Count title card and module panel

Phase gets level and a filter

A user asked for control over each sample’s amplitude. Phase now gives each player a LEVEL trimpot, silent to +6 dB and reading in dB, and a DJ-style FILTER with CV: centre is straight through, left sweeps a lowpass down from 20 kHz, right a highpass up from 20 Hz, with a little resonance away from centre and no click crossing it.

Two new outputs came with them. POLY carries A left, A right, B left, B right after level, filter and pan. SYNC sends a trigger whenever a loop actually restarts, including after a sleep gap and when an anti-click jump lands.

Every new control is appended rather than inserted, so existing patches load unchanged.

Everything runs cheaper

Library-wide, busy CPU went from 20.0% of a core to 13.8%.

The cause was libm in the per-sample loop, which accounted for 50 to 85 per cent of eight of the modules. Anything that only moves when you turn a knob is now memoised, and the rest uses polynomial sin, exp and tanh. Silent strings sleep in Slide and Loom. Sigma resolves its partials every sixteen samples unless a routed envelope is moving.

Kit got the deepest pass, helped by ideas from the MetaModule port: all eight instruments ringing went from 7.0% of an M4 core to 2.6%, and idle from 1.0% to 0.2%. Every preset still matches the old render to within -85 dB, so nothing changed about how it sounds.

Gravity’s chaotic core was left alone, since it is chaotic and an approximation would not stay equivalent.

Everything is free on the VCV Rack Library. Browse the full set at VCV Rack Modules.