Fractus: origin story

Fractus Granular Processor is a project that’s been in development for several months. That a person can have an idea and now have a feature rich working audio plugin is a bizarre artifact of the new era in software. Similar deep plugins are traditionally developed by larger corporations, with teams of coders, working in a year long (or multiple years) development cycle. I started my “feature set wish list” this Spring, continued chats for a few months of research and planning, then spent about 120hrs guiding the coding process…  and now we have my dream granular plugin. One of many. This one is unique and special to me, and I think it’s fun to use! That’s the key…  Is it fun? Does it sound good? Fractus achieves a strong YES in both cases.

I used a Mutable Instruments Clouds for years… and then Beads… and now Multigrain. Each are granular effect synth modules. Modules come and go  — you buy one, use it hard for a year or two, sell it to fund whatever’s next. Clouds was a special one though… and I still miss it. It was fun…  and probably the most popular gateway to granular for the synthesizer community of a certain era. I wanted to make something that kept the fun experimental engagement of Clouds but unlock the benefits of plugin format and system resources. Fractus is not a Clouds clone…  but it’s fun like that! My experience using Clouds definitely informed the goals of how I wanted Fractus to work… or work differently.

If you’ve never used granular synthesis, here’s the short version: instead of playing a sample back the normal way — start to finish, one continuous stream — you chop the audio  into tiny fragments, grains, usually a few milliseconds to a few hundred, and play those fragments back in overlapping clouds. It’s commonly used mine as an instrument or as a sound mangler.

Few granular tools do both real-time processing and performance instrument made from grains. Clouds did both better than most. Tasty Chips GR series is another that does this. It’s also an influence on Fractus, along with all the other designs, plugins, max patches, and riffs on this technique.

So, meet Fractus

Fractus streams or loads audio into a buffer — up to 30 seconds of it — and then produces a pool of grains. Each grain has its own pitch, position, pan, and shape. Freeze the buffer into a loop, and it becomes a static texture and tone generator. Grain size runs from single milliseconds up to a few seconds, and everything can lock to your host’s tempo or run free on its own clock…. or some mix of sync and free.

Grains can be placed or move in the stereo field — grains land at actual positions and scatter around a center point. Grains can also play backward, individually and probabilistically, so “reverse” isn’t a switch, it’s a dial that sets probability. Fractus does a lot of grain manipulation.

Past the grain engine sits a diffuser and a reverb — three reverb algorithms (plate, feedback network, and early reflections). Most knobs are assignable in an eight-slot modulation matrix. There are four LFOs, an envelope follower, and a couple of random generators. Plus… Clouds had a limited power and intentionally produced lower audio quality… so Fractus has Character.

Character is one macro that sweeps the user’s mix of saturation, band-limiting, sample-rate reduction, and bit reduction. Fractus can push the sound from Hi-Rez clean into various blends of Lo-Fi; saturated, filtered, decimated, bit reduced blend with a single macro knob. Grain Size and Trigger can be synced, making Fractus a beat-remix-glitch effect. It’s a very flexible plugin design with some modular spirit.

It’s fully MIDI assignable and playable too — pitch tracking, a mono or polyphony mode.  Routing a MIDI track to Fractus with Frozen Grains creates a playable synthesizer. I think is novel among plugins. Many are just Virtual Instrument synth engines and not real-time processors. Others are processors but not playable.  From what I can find… The true dual-mode plugins that can drop on a track as a real-time effect AND play via MIDI as an instrument are less common.

Between hardware and software, there are probably 1000 granular processors…. yet each one is different. They sound different, function differently, have various strengths and weaknesses.

Clouds ran on a Cortex-M4, a small and limited chip. Those limitations were part of what gave the module its vibe and the Character chain helps emulate that with infinitely more combinations of vibe. Fractus removes the limitations… gives more grains overlapping at once — A longer buffer with the highest quality audio possible up to 32bit/196kHz. Deeper modulation matrix than a small panel could fit. Fractus is easy to load in a DAW and on any track or bus, where the user can simulate that experimental performance processing of modular but not be bound by it.

I didn’t want a clone and Fractus is not that. Clouds is open-source software and could easily be a plugin-clone. There are many! Instread… Fractus is built clean-room — nothing here is ported or copied from Clouds’ firmware, and it’s meant to stand as its own thing rather than a plugin-shaped imitation. But the lineage is real and it’s credited on purpose: Fractus is simply another granular processor inspired by Mutable Instruments and Émilie Gillet, sitting on the same granular traditions of Gabor, Xenakis, Roads, Truax.

Here’s the complete DSP summary — the whole signal path, written up plainly, if you want to see exactly how the thing is built under the hood.

What it is: a time-domain granular processor extending the Mutable Instruments Clouds concept, with much higher grain polyphony (up to 256 voices vs. Clouds’ Cortex-M4 limits). Clean-room DSP — no Clouds/Parasites source referenced or ported.

Signal path:

buffer → grain engine → [Grain Mix: dry rejoins here] → Character → diffuser → reverb → Output Trim → output

1. Capture / buffer stage

  • Stereo ring buffer, 32-bit float, host sample rate. Allocated once in prepareToPlay at 30s × the real sample rate — no reallocation while audio runs.
  • Buffer Length (seconds or bars/beats-synced) moves a read/write window inside that fixed allocation.
  • Freeze locks the buffer as a static grain source. The frozen buffer travels with saved sessions and presets as embedded float audio, written only when frozen.
  • Captured audio is treated as content, not transient DSP state — it survives a prepareToPlay reconfigure (e.g. host buffer-size change) unless the allocation itself must reshape (sample-rate change).

2. Grain engine — the core differentiator

  • Fixed-size voice pool (up to 256, default 32), each voice a read position + envelope phase + pitch/rate + pan/spatial position + amplitude + lifetime.
  • Scheduler, three modes: free-running internal clock, host-tempo sync (phase-locked to the host’s ppq, note-division quantized), and a genuine Poisson (exponential inter-arrival) random/stochastic mode.
  • Envelope: boxcar / triangle / Hann, continuously morphable via a precomputed table.
  • Grain Size: 1ms–4000ms, a resource-free parameter — memory and worst-case CPU are unaffected by grain length; only overlap, bounded by the voice ceiling, matters.
  • Confinement: a grain is kept inside the recorded region for its whole life, not just at spawn; where it can’t fit, it’s shortened rather than allowed to wrap and click.
  • Reverse: 0–100% per-grain probability of playing backward, reading the same chunk of audio entered from the far end — so it sounds like backward tape, not a mirrored read.
  • Per-grain spatial placement: Pan (field center) + Scatter (randomization around it), continuous rather than a mode enum; grains reflect rather than clamp at the field edges.
  • Loudness compensation: 1/√overlap, latched per grain at spawn from its own delivered length and rate — keeps Density/Grain Size/Max Grains from doubling as volume controls, with no zipper artifacts.
  • Voice stealing: steals only from voices past ~70% through their envelope, biased to minimize audible disruption.

3. Diffuser
Multi-stage all-pass network smoothing grain-edge artifacts, with dry/wet, channel crossfeed, feedback (contained to the diffuser/reverb loop — never routes back into the live grain buffer), and reverb send.

4. Reverb — clean-room, written from scratch
Three algorithms: plate, FDN (feedback delay network), and early-reflection. Fully modulation-matrix-assignable (type, decay, pre-delay, tone/damping, size). Wet level is normalized against decay time, so Decay is a length control rather than a volume control.

5. Character macro — the “quality” control
A post-buffer, non-destructive lo-fi/hi-fi macro spanning saturation, band-limiting, sample-rate decimation, and bit-crushing, each with its own attenuator (a unidirectional 0–1 depth scaler, eurorack-style). At Character 0 the whole chain is bit-exact identity. Loudness-compensated so the macro doesn’t double as a volume knob. Each stage’s taper is mapped to the audible range of that specific effect.

6. Modulation matrix
Control-rate (not audio-rate) routing: 8 slots, sources → destinations, applied as an offset on top of the host parameter’s base value — never overwriting the parameter itself, so it never fights DAW automation. Sources: 4 multi-shape LFOs (tempo-syncable), an audio-rate envelope follower on the plugin’s input, 2 random/S&H generators with slew, and the MIDI note envelope. ~26 destinations across nearly every exposed parameter.

7. MIDI

  • Note mode: Off / Pitch (drone, notes retune the cloud) / Pitch+Gate (monophonic synth with ADSR VCA).
  • Polyphony: 16-voice, one grain cloud with per-grain pitch rather than N separate engines — density scales with held-note count so a chord gets denser rather than louder.
  • MIDI Learn: right-click any control to map a CC, which takes over the parameter’s full range and writes host automation like a mouse drag.

Precision: Float32 for the capture buffer and grain engine (memory-bound); double for filter/delay-line state in the diffuser and reverb, where accumulated error actually matters.

Here’s a short history of how granular processing evolved and influenced us

Here’s where the idea behind it actually comes from….  the history of granular and our influences!

Where “grains of sound” actually comes from

The idea is older than you’d think, and it didn’t start in a music studio.

In 1947, a physicist named Dennis Gabor — the same Gabor who later won a Nobel Prize for inventing holography — proposed that sound could be described as a series of tiny acoustic “quanta,” little grains of energy in time and frequency, borrowed straight out of quantum physics. He wasn’t thinking about music at all. But the idea that any sound is really just a pile of grains, and could be reassembled into something else entirely, planted a seed that took decades to grow into something you could actually play.

Iannis Xenakis is the one who dragged it into music. A composer, an architect, and a genuinely strange and brilliant thinker, Xenakis started treating sound as clouds of discrete events instead of continuous lines — closer to describing a swarm or a weather system than a melody. That’s a key part of this story by the way… that’s where the name Fractus comes from. A “fractus cloud” is a ragged, broken one, and “broken into pieces and reassembled” is precisely what this plugin does to whatever you feed it.

Curtis Roads is the one who wrote the book — literally, Microsound, still the closest thing granular synthesis has to a bible. He spent decades turning what had mostly been instinct and improvisation into an actual vocabulary the rest of us could use.

And Barry Truax is the one who made it real-time. For most of its history, granular synthesis lived on paper and in overnight computer runs — you’d render a piece and come back the next day to hear it. Truax built systems that could generate grains live, as you played, which is the difference between a theory and an instrument.

None of that lineage belongs to any one company or module or designer. It’s decades of physics, composition theory, and stubborn engineering — and it’s the reason Fractus’s About box actually credits Gabor, Xenakis, Roads and Truax by name, instead of just saying “inspired by Clouds” and calling it a day.

Why Clouds?

Which brings me back to the module. In 2015, Mutable Instruments — designed by Émilie Gillet — released Clouds, and it did something a lot of granular hardware before it hadn’t managed: it made granular synthesis fun. Not just powerful, not just theoretically interesting… fun to play. Lofi ambient beds built from a single frozen string ensemble. Sound design where a door creak became a creature voice. Live performances, where hitting “freeze” with tempo-sync grains made a groove. Clouds invited experiments.

Built the same way, just a lot bigger

If you read the MidSide writeup, you already know the short version: this is the second plugin The WAV Lab has built with Claude Code doing the actual coding, and a lot of testing and human revisions along the way. Fractus is a much bigger build than MidSide — more DSP, way more parameters, a real custom interface this time instead of a generic one — and it’s our first licensed release.

Coming this October

Fractus will ship this October as a donation-ware plugin — AU, VST3 and AAX, for Mac and PC.  It’s a fun granular processor built for from a wish-list… a mash-up of experiences and conventions recombined exactly how I wanted. It’s an interesting time to express ideas through modern compute working for human considerations and revisions.

If you’ve spent time with a Clouds — or a Beads, or anywhere else in the granular corners of Eurorack — I think you’ll feel right at home here. And if you’ve never touched granular synthesis before, this might be a decent place to start falling down that particular rabbit hole.

What Fractus needs to run

A few notes on what it asks of your machine:

  • Mac: macOS 12 (Monterey) or later, Apple Silicon (arm64) — native to M-series Macs, no Intel build.
  • PC: a modern 64-bit Windows machine (exact minimum version still being pinned down).
  • Formats: VST3 and AAX (Pro Tools) on both platforms, plus AU on Mac.

More soon, including the exact release date. In the meantime — thank you, Gillet, Gabor, Xenakis, Roads and Truax… wherever you are.

Privacy Preference Center