23Bloom
Harmonics instead of gain — now with a band split you can place.
- Formats
- VST3 · AU
- Platforms
- Windows · macOS · Linux
- Requirements
- 64-bit host, stereo in and out · 44.1 to 192 kHz · macOS 10.13 or newer, Windows 10 or newer, Linux x64 · No latency at 1× oversampling, four samples at 2× and six above it, reported to the host
Bloom adds harmonics instead of gain. It drives the signal into a transfer curve that lifts the quiet detail of a sound and holds the loud parts under full scale, so what comes out is denser and louder to the ear without a compressor’s grip on the dynamics.
23Bloom is that plug-in rebuilt on the Season 02 framework. One plug-in for Stereo and Mid/Side instead of two, a band split you can place, loudness tracking that works, and a signed and notarised installer on macOS. The name changed with the rebuild: another developer already ships a plug-in called Bloom, and that was my mistake to fix.
The curve
Input drives the signal in, up to 12 dB. Curve picks the shape, from −50 to +50: at zero it is the plain curve, negative is softer and lifts quiet detail less, positive is firmer and audibly saturated. Effect blends the shaped signal against the dry one, and Output trims what comes out. Clip holds the input at 0 dB on the way in rather than at 2, which is the difference between soft harmonics and a hard edge.
The XY pad draws the transfer curve as you drag it, with the curve the signal is actually hitting over the top of it while audio plays.
Three bands, placed where you want them
Bloom’s band split was a switch. It cut at 240 Hz and 2.4 kHz, fixed, and shaped all three bands the same way. Here both crossovers are controls — 60 to 800 Hz and 1 to 10 kHz — and each band has an Amount from 0 to 100 %, so the lows can pass untouched while the mids and highs take the curve, or the other way around. Drag the dividers, or the band heights, in the display.
The three bands add back to the input exactly. The split is the Oxford Inflator’s — a one-pole low-pass and a one-pole high-pass, with the mid as what is left over — where Bloom compensated its own split with a gain factor and left a tilt behind. 23Bloom nulls against RCInflator2, the open-source reproduction of that Inflator, and the check runs on every build.
Loudness tracking
Switch Loudness on and the programme level moves the Curve control: a positive Amount firms the curve up as the music gets louder, a negative one softens it. The detector is K-weighted — a high-pass at 100 Hz, a 4 dB bell at 2 kHz, a low-pass at 8 kHz — so it follows what you hear rather than the waveform. Response sets how it lets go: Fast in 40 ms, Slow in 800 ms, and Auto somewhere between the two depending on how sustained the material is, which keeps a pad from pumping and still lets a drum loop breathe. The rise is 2 ms either way.
In Bloom this did not work. The switch was wired the wrong way round, so the Amount knob only had an effect while the button was off, and the interface hid the knob in exactly that state.
Mid/Side
Mid/Side gives the centre and the sides their own complete set of controls — drive, curve, effect, bands, loudness, trim. Shape the mid for density and leave the sides alone, or lift the sides for width and keep the centre as it was. Solo listens to one half on its own while you set it up. The default is Stereo, with left and right shaped together, which is what Bloom did.
Hearing what it does
Four things, all of them about judging a setting rather than making it:
- Level Match offsets the output by what the input gain and the shaping add to pink noise at −16 dBFS RMS. Curve and Effect can then be moved without the level moving with them.
- Delta plays only what 23Bloom adds — the output minus the input.
- Density reads the change in crest factor, in dB, over the last third of a second: positive when the shaper has closed the gap between the peaks and the body, negative when the band split has opened it.
- Input and output peak meters, per channel, −60 to 0 dB.
Delta and Solo are monitoring only. Neither is stored in a preset or in your session, so a mix cannot be left soloed by accident.
Presets
18 of them, filed by what they are for — starting points, mix bus, mastering, drums, bass, vocals, and a set for the split modes — each with a line saying what it does. User presets save, rename, delete, import and export beside them, with undo. Presets saved in Bloom load through the same Import button: the stereo page maps onto the stereo section, the mid and side pages onto theirs.
Moving from Bloom
23Bloom is a separate plug-in with its own identity, so it installs alongside Bloom, and sessions that
use Bloom keep loading it. Settings inside an old session do not transfer. Saved
.preset files do — import one and it comes back.
The old Bloom downloads stay in your Gumroad library, marked as outdated. Nothing is taken away.
Tested before it ships
Every build is validated with pluginval on Windows, macOS and Linux and with Apple’s auval, and the engine carries a regression suite: the three bands sum flat at any crossover setting, the dry path is untouched at zero effect, silence in gives silence out, the output does not depend on the host’s buffer size, there is no burst when playback starts, every oversampling factor stays bounded at every sample rate from 44.1 to 192 kHz, bypass keeps the reported latency, and Level Match really holds the reference loudness.
Watch it
Screenshots
Fat & Warm. Loudness tracking is on, so a second flower marks the curve the signal is hitting against the one that was set. The low end passing untouched while the mids and highs take the curve. Bloom split at a fixed 240 Hz and 2.4 kHz and shaped all three the same. Mid/Side, Side page. The centre and the sides have their own drive, curve, bands and trim; Solo listens to one of them on its own. 18 presets filed by what they are for, each with a line saying what it does. Import also takes a .preset file saved in Bloom.
Hear it
- Mix busA 100 BPM loop built from the Cymatics Orchid pack. Dry is the untouched source and each wet file is the plug-in brought to the same loudness, so nothing here is louder — what changes is the harmonic content. The source goes in at −10 dBFS so the shaper's 0 dB clip never engages, and there is no limiter anywhere. Lows kept clean is Hard Push with the low band's Amount at zero, which is the control Bloom did not have.0:00–:––Level100%
- DrumsThe drum and percussion bed from the same loop, at the same loudness as the dry. The body of each hit comes up under the transient rather than the transient coming down.0:00–:––Level100%
- InstrumentalThe melody bed on its own, where the curve has the most to work with. This is the clearest demonstration of what the plug-in does, and the clearest warning about overdoing it.0:00–:––Level100%
- VocalA vocal with its own reverb, matched in loudness. The lift sits in the presence region and the air above it, which is what brings a voice forward without an EQ boost.0:00–:––Level100%
Release notes
0.10.0-rc3
- The band split is the Oxford Inflator's now: a one-pole low-pass and a one-pole high-pass with the mid as what is left over, so the three bands add back to the input exactly. 23Bloom nulls against RCInflator2, the open-source reproduction of that Inflator, across input, effect, curve, clip and the band split, and the check runs on every build.
- The five presets carried over from Bloom play without loudness tracking, as they did there.
0.10.0-rc2
- Rebuilt as 23Bloom on the Season 02 framework. Signed and notarised macOS installer with VST3 and AU, a Windows VST3 and a new Linux build.
- Stereo and Mid/Side as before, but as three complete sets of controls — Stereo, Mid and Side — in one tree, where the old build ran two parallel networks.
- The band split moved: the crossovers are controls now, 60–800 Hz and 1–10 kHz, and each band has its own Amount. Bloom split at a fixed 240 Hz and 2.4 kHz, all three bands or none.
- The three bands add back to the input. Bloom compensated its split with a gain factor and left a tilt behind, so a band split with nothing shaping did not pass the signal through unchanged.
- Loudness tracking rebuilt, and fixed: in Bloom the switch was wired backwards, so the Amount knob only did anything while the button was off — and the interface hid it in exactly that state. The detector is now K-weighted with a 2 ms rise and a Response control: Fast lets go in 40 ms, Slow in 800 ms, Auto between the two depending on how sustained the material is.
- Level Match offsets the output by what the input gain and the shaping add to pink noise at −16 dBFS RMS, so Curve and Effect can be judged without the level moving with them.
- Delta plays only what the plug-in adds, and in Mid/Side the mid or the side can be soloed. Neither is saved with a preset or a session.
- 18 presets in seven categories, with a browser that saves, renames, imports and exports. Presets saved in Bloom import as they were.
- A and B settings with a copy button, undo and redo, input and output peak meters, a Density readout showing how much crest factor the shaper has taken out, and a window that scales from 0.75× to 2×.
- Above twice full scale the curve goes to silence rather than passing the input through, which is where Bloom jumped.
- Classic Inflate, Bus Glue, Drum Punch and Bass Weight carry more drive, so they colour the sound rather than only lifting its level. Bus Glue still comes out where it went in.
- Validated with pluginval on Windows, macOS and Linux, with Apple's auval, and with a regression suite that runs on every build. Every preset is checked to hold a −1 dBFS mix at or under full scale.
More Dynamics & Saturation
All dynamics & saturation plugins
23Tape
FreeAnalog tape emulation, rebuilt from scratch.

23HotCold
FreeDual harmonic saturator

MS-23HotCold - Mid/Side Harmonic Sculptor
€3
De-
Freede-Box, de-Mud, de-Esser — now in Mid/Side and Left/Right too.

XY Bass
€10Depth on one axis, translation on the other.
23Bloom is sold through Gumroad, which handles checkout, licences, downloads and updates.
Buy on Gumroad