Per-grain processing, automatic pitch controls, drag-and-drop modulation, and audio-rate oscillations — Grainferno proves there are still unexplored frontiers in granular synthesis and hand-crafted DSP. It’s addictive to add the synth to projects, drag in sounds, and see what you can discover.

CDM partnered with Baby Audio to do a deep dive into the tool and its development and create a new sound bank for Grainferno; that sound bank is coming soon.

Granular synthesis — breaking up sounds into pieces and playing them back in synchronous or asynchronous streams — is familiar territory. What leaves room for new inventions is nuanced tweaks to the formula. Just like you don’t really run out of new ways to make plucked instruments, you can still devise something new in granular synthesis. It’s all in the sound that emerges.

The custom engine in Grainferno, combined with the sort of drag-and-drop modulation you know from tools like Massive, Pigments, and Serum, yields a particularly addictive instrument you can use for pretty much anything, not just the endless clouds of sound (though it excels at textures, too).

The sounds

Here’s a sense of what I’m composing with. I’ll make this available as a free download; I just wanted to spend some extra time tweaking things until they’re right, and taking advantage of the just-completed documentation on sample and preset management. (I’ll share tips on how to do that, too, in case you want to make your own banks.)

I kept these nice and pretty, but you can also intentionally push granular distortion, including a “violent” mode in the g-blur (feedback) parameter. I may need to go back and do a Dark Side collection.

And here are Baby Audio’s examples. I intentionally avoided listening to the other presets while working, but it’s funny that they hit some of the same sonic directions! I love that you can keep the source material audible and even crisp and clear. What’s harder to demo in a video is that you can get punchy, rhythmic stabs and percussion, too, so you aren’t just limited to doing that typical granular space-ambient thing. Presets can become really eminently playable.

I did most often just add Grainferno as a MIDI track in a variety of Ableton Live sets, plus experimented with modular sources (including VCV Rack) and the KORG phase8 prototype that’s sitting on my desk. Then you just drag-and-drop samples — in Live or other clip-based DAWs, that means you can bounce out and pop things into Grainferno to see what happens. Because of audio-rate modulation, you can drive samples until they act like oscillators. Or you can expand them into rich, expansive clouds and textures. Either way, you can engage per-grain controls for blur, compression, and filtering, plus detailed options for timing (free, synced, or per-grain) and a full effects section.

Dropping bits of projects into granular tools is a common design project. But Grainferno makes it especially appealing — particularly with the ability to load two different files and warp between them. You’ll almost want to add it to your project template.

Functionality

Grianferno is divided into a DESIGN section with granular and modulation controls, FX master effects section, and PLAY section with expanded view and macro controls. (The macros are custom-assignable, of course, and one-to-many.)

Features, in brief:

  • Two sample slots (either just use one, or drag in a second one and morph between two samples)
  • Sample normalize, tune, and pitch auto-detection (so you can automatically match monophonic samples to pitch)
  • Per-grain multimode filtering, blur (introduces feedback into the grain engine), and per-grain compression(!)
  • Grain rate, size, scan direction and speed, scatter (random position), continuous shape, and position (one position for each sample)
  • Three assignable 4-stage envelopes
  • Three assignable LFOs, which you can set to bpm, Hz, or grain sync (set as a multiple of the grain generation rate)
  • Three random generators — two generate independent values for each assigned parameter, and one uses a constant value; all three have send amount and smoothing options
  • An envelope follower, so you can use sample 1 as an additional modulation source
  • Assignable MIDI note, velocity, mod wheel, and pitch, each with amount controls at both the source and target
  • Multiple master effects: compressor, OTT compressor, delay, reverse delay, EQ, filter (multimode 12 and 24dB LP HP BP BR, same as the per-grain one), reverb, shimmer reverb, chorus/phaser/flanger, and multiple clipper/saturation/distortion — plus you can drag and drop to reorder (all I’m missing is my beloved comb filter!)

Plus there are tons of options all over the place. Morphing has the obvious cross-fade option, but also other modes like 4-bit and 8-bit, randomization between the two samples, and follow options, all possible at the grain level. (It doesn’t crossfade the outputs; it actually crossfades the grains.) Rate can be key-mapped and set to octave or semitone plus BPM sync. Size and Scatter can be linear or exponential. Pitch can be quantized to different scales/modes and octaves, or run free.

There’s also a different workflow here. Normally, you get some simple grain parameters, plus randomization via attenuators on those parameters. Here, you have full access to modulation and envelope inputs. You can even combine them.

It’s really like entering an alternate universe where Massive X or Pigments or Serum was just a granular synth. Serum 2 did add pitched grain modes, for instance — more on that below. But this is a particular engine, and it’s affordable enough that I expect a lot of owners of other flagship synths pick it up.

There’s unfortunately no MPE support, which also means you can’t use Ableton Tuning Systems, and no Scala import for tuning, but — this is technically a 1.0 release, which is easy to forget given the insane amount of depth.

Behind the grains

Seeking out new life in granular synthesis means getting down and dirty, digging to the source, and building anew from the ground up. Joel Keohane, the up-and-coming young developer who created Grainferno and built this version with Baby Audio, has been doing a lot of work from scratch. That has included building a custom HTML/CSS compiler in Racket and a custom Web Assembly compiler for Snake — check his site if that appeals.

Why this matters to us as musicians is that it means every detail of this granular instrument has been carefully considered. No AI here: it all comes down to very human decisions about gain staging, voicing, and time spent reflecting on sound. Joel built DSP, modulation, and GUI from scratch. (It’s interesting looking back at that earlier version.) I spoke to Joel to better understand this custom engine and the work that went into it.

It also offers some insights into how to take advantage of that granular engine under the hood.

CDM: G-FILTER, COMP, and BLUR all happen at the per-grain level. That is already this unique aspect of Grainferno. I recall Curtis Roads published a paper on this and released EmissionControl2 — but you really expand on that idea, right? (Fellow reading adddicts, check out CMJ – “Architecture for Real-Time Granular Synthesis With Per-Grain Processing: EmissionControl2.”)

Joel: Curtis Roads was a huge inspiration behind Grainferno! Especially his book Microsound. In his work, he really seems to keep it open as to what can be done per-grain, and so a lot of the features of Grainferno follow that train of thought.

I think the important part to remember about per-grain processing is that multiple grains can exist at once, overlapping. And a grain, when generated, will maintain a single value for each parameter throughout its existence (eg. the G-Filter cutoff). That means that if you move these parameters while grains are being generated (by manually adjusting the knobs/sliders, or modulating them with randomness or other modulators), you’ll have multiple grains with multiple different filters, or feedback amounts (from the G-Blur effect), or pitches, or whatever, all happening at once.

“I think the important part to remember about per-grain processing is that multiple grains can exist at once, overlapping.”

Per-grain compression! Features like this to me are a real breakthrough. Can you describe how we might use these musically?

I think there are a lot of possibilities! For the most part, I just always leave it on, since, as you suggested, it does fix a lot of gain staging issues I would otherwise have when working with very dynamic samples. But beyond that, I find that it can reveal hidden details in samples by compressing extremely quiet parts of samples up to an audible level. And because it works on a granular level, I find it’s very transparent in most cases, you don’t get the lagging effect of envelope followers that you get with traditional compression.

Can you explain tonal granulation?

Tonal granulation just refers to generating tones at audio rate to create a tone. For example, if you generate new grains at a rate of 440 times a second (440 Hz), then you will hear the tone A4 — so long as other parameters don’t disturb this, like a nonzero scan.

By controlling the rate directly (and key-tracking it by default), you can very easily get a precise, key-tracked tone and manipulate the parameter (for example, with the size control) without changing the perceived note.

Additionally, Grainferno has some granular-focused modulators (like the LFO in grain-sync mode), that can further shape the timbre in a really clean way.

You mentioned you started working on this before Serum 2, but having tried both, this is deeper.

I can’t say I have tons of experience with Serum 2, and Grainferno development actually started before it was released. But from the experience I do have, Serum 2 and most other Granular synths don’t explicitly expose a rate (or inversely, inter-onset time) control, but instead control the rate through a combination of density and length.

Ed.: Yes, I can confirm that — they manually configured some of the sample content to do this. The advantage of Grainferno is, you can drop any material on and pitch it right away.

Granular engines — no matter how optimized — can always get CPU hungry. While we’re designing sounds, how should we think about that?

I find that a high value on the size control is what hurts CPU performance the most. Grainferno does sinc interpolation per grain, to repitch and/or fractionally delay them, which is the most expensive part of the processing. The higher the size, the more overlapping grains there are needing to be processed at once.

How did you come to work with Baby Audio?

I cold-emailed them, looking for a job, and Caspar, the CEO, personally responded! We then decided to continue work on Grainferno through Baby Audio. I definitely plan on continuing working with them, but may continue to work on some wackier stuff in the background as well.

After starting work with Baby Audio, a lot of things improved. The breadth of the FX, and UI & UX, and especially the overall quality assurance and attention to detail!

Your development portfolio shows a real commitment to building things from scratch. Can you connect that work in your code to the sound?

Personally, I only really fell in love with coding when I started to work at a really low level, and felt like I could really start to understand what was going on. I would say a lot of the more novel parts of Grainferno (like the granular compression) came from trying to do most things from scratch and thinking about the code deeply (rather than just a means to an end). These parts were definitely the most fun I had working on Grainferno.

Any surprises from what has come back from the sound designers? What do you hope people will play with when they try their own patches — any tips on how to start?

I was amazed with the quality of the presets! They’re really fleshed out and make styles of sounds that I really never attempted with Grainferno (from really heavy basses to ethereal pads).

For people trying to make their own sounds: we are going to have some videos coming out that should really explain all the different parts of the synth in depth! But I also expect people will just mess around with the synth and come up with ways of using it that we didn’t anticipate.

I was amazed with the quality of the presets! They’re really fleshed out and make styles of sounds that I really never attempted with Grainferno (from really heavy basses to ethereal pads).

Baby Audio Grainferno is available now with discounted pricing (and a subscribe-to-own option). A free trial is available. Mac, Windows, all major sound formats supported on import. VST, VST3, AU, AAX (64-bit).

https://babyaud.io/grainferno

Also available via Plugin Boutique:

Grainferno at Plugin Boutique

If you buy something from a CDM link, we may earn a commission.