FX Grid - Chorus
We built a reverb and custom filters in the FX Grid. Now let's build a chorus, and not just any chorus: we will recreate Serum's Hyper section, which is really just a multi-voice micro-delay chorus.
This lesson is based on my video where I rebuild Hyper (and its sibling Dimension) with simple Grid modules:
What a Chorus Actually Is #
A chorus is simpler than it sounds. It is a short delay whose delay time is being moved by an LFO.
When you continuously change a delay time, the delayed signal shifts pitch slightly up and down. That tiny moving pitch offset, blended with the dry signal, is the entire chorus effect. One modulated delay gives you one chorus voice. Stack up many modulated delays and it turns into a thick unison/ensemble sound, which is exactly what Serum's Hyper does (it offers 1 to 7 voices).
So the plan is:
- Make one short, LFO-modulated delay (one chorus voice).
- Turn it into many voices.
- Make every voice move differently and sit in a different stereo spot.
The Key Trick: Voice Stacking in the FX Grid #
Here is the part that makes this easy. You do not have to copy the delay seven times by hand. As we saw in chapter 004, all three Grid devices, including the FX Grid, can run stacked voices. When you stack the FX Grid into several voices, the whole patch is duplicated per voice, and a Stack Spread modulator can hand each voice slightly different values.
That is the core of the whole build: one delay, stacked into many voices, with each voice modulated a little differently.
Build a Hyper-Style Chorus #
- Put an FX Grid after your instrument (a bright, sustained sound shows the effect best).
- Patch Audio In into a Delay module with a very short delay time, then on toward Audio Out.
- Add an LFO and modulate the delay time with it. A sine LFO is the classic choice. You now have one chorus voice.
- In the Inspector, set the device to 8 voices (to match Serum's Hyper). Right now all 8 voices move identically, which does nothing useful yet.
- Set the LFO's modulation to per-voice so each stacked voice can hold its own value.
- Add a Stack Spread modulator and assign it to the LFO phase. Now every voice runs at the same speed but starts from a different point in the cycle, so the voices drift apart. This already sounds like a wide unison.
- Add a Pan control after the delay and modulate it with a second Stack Spread, this time bipolar (-1 to +1). Each voice now lands at a different left/right position.
- Use the device Mix knob to blend against the dry signal.
That is a working Hyper-style chorus: one delay, stacked eight ways, spread in phase and in stereo.
Refinements That Make It Better Than Stock #
A few additions push this past the built-in effect:
- Keep the low end dry. Chorusing bass smears the center and weakens the low end. Split the signal with a crossover around 500 Hz, chorus only the high band, and pass the low band through untouched. Recombine at the output.
- Compensate the gain. Summing 7+ voices gets a lot louder. Add a Gain module after the sum, otherwise the processed version only sounds "better" because it is louder.
- Try random modulation. Swap the sine LFO for a random source for a smoother, less cyclical movement. You can even vary the LFO speed per voice (not just phase), though too much sounds exaggerated.
- Go beyond 8 voices. Unlike Serum, the Grid lets you push to 16 voices for a denser ensemble. Watch CPU and gain.
The Honest Shortcut #
If you just want the sound fast, Chorus+ at about 8 voices with sensible rate and depth already gets very close to Hyper. The difference is mostly parameter tuning, not a different algorithm. The Grid version wins when you want control: excluding the bass, custom modulation shapes, per-voice behavior, and higher voice counts.
Bonus: Dimension (Pseudo-Stereo Widening) #
Serum's Dimension is the quieter sibling: four short delay lines, summed slightly out of phase, with slow amplitude modulation instead of pitch modulation. It widens a mono signal without the obvious chorus wobble.
To approximate it:
- Set the patch to 4 voices.
- Give each voice a slightly different short delay time (via Stack Spread).
- Modulate each voice's gain slowly with an LFO (use a phase offset so they do not rise and fall together).
- Apply gentle panning, more restrained than the Hyper patch.
- Add gain compensation at the end.
The result is soft width and motion rather than a thick chorus.
Why It Works #
Pitch-shifting comes for free from a moving delay time, so a modulated delay is already a chorus voice. Voice stacking turns one voice into many at no extra patching cost, and Stack Spread is what keeps those voices from being identical, giving each its own LFO phase (movement) and pan position (width). The crossover and gain stage are just there to keep the low end solid and the comparison fair. Dimension is the same idea with the modulation moved from delay time to amplitude.
This effect leans heavily on voice stacks, so if you want to go deeper on that concept, the Voice Stacks topic hub and my voice stacks guide are good next stops.
◀ Previous Lesson: FX Grid: Custom Filters
▲ Bitwig Grid Course Overview