granular instrument · the complete manual
Cumulus
Every note casts up to eight playheads across one sample. Spread and variate turn one gesture into a cloud.
A polyphonic granular instrument: up to 16 voices of 8 playheads drifting over one sample, with a drawable modulation matrix and a deep effect rack.
soft.systems · VST3 / CLAP / AUv3 · macOS & Windows & iPadOS · version 1.0
01the instrument
overview
Cumulus is a polyphonic granular instrument. It plays up to 16 voices, and each voice runs up to 8 playheads across a single sample. Per-head spread and variate turn a single gesture into a cloud. A drawable modulation matrix and an 8-slot effect rack shape it from there. Cumulus runs as VST3 and CLAP on macOS and Windows, and as a multitouch AUv3 on iPad.
how this manual is organised
Read signal flow first. Every other chapter refers back to it. Then follow the signal. The wave display, playheads and grains, spread and variate cover the sound engine. Modulation, the fx rack and envelopes cover motion and colour. The remaining chapters (the sample pool, presets, tips and techniques, troubleshooting and specifications) are reference material.
Conventions used in this manual:
- Control names are set in code, exactly as they are printed on the plugin:
SIZE,OVERLAP,VARIATE!. - Ranges run from low to high, with the default in parentheses: 2 ms to 10 s (90 ms).
- "Head" always means a playhead inside a voice. "Voice" always means a single held MIDI note.
a 90-second quick start
- Play a note. Cumulus ships with a demo pool and defaults that make sound, so it plays as soon as you load it.
- Step through a few factory presets with the ◀ ▶ arrows in the top strip.
- Drag a numbered head square on the waveform. Drag horizontally to move it through the sample, and vertically to set its level.
- In the grain masters, lower
SIZEfor grit and raise it for smear. RaiseOVERLAPfor density. - Press
VARIATE!. The patch rolls a bounded random variation of itself.RESETbrings back the pure patch. - Open the matrix and tap a source chip (
LFO1…). Then touch any head knob or matrix cell to route it. Drag the cell to set the depth, in percent. - Pick an effect in an FX slot. Feedback effects may self-oscillate. Push the
FEEDBKcells deliberately, and watch for the cells turning red as you enter the self-oscillation zone.
requirements
You need any VST3 or CLAP host on macOS or Windows, or any AUv3 host on iPadOS (AUM, Logic for iPad, Loopy Pro, Drambo…). A single instance is light on CPU at the default settings. Polyphony, head count and grains per head set the CPU load, and you control all 3. The full table is in specifications.
02the instrument
installation
macos
Run the installer. It places the plugin here:
| Format | Path |
|---|---|
| VST3 | /Library/Audio/Plug-Ins/VST3/Cumulus.vst3 |
| CLAP | /Library/Audio/Plug-Ins/CLAP/Cumulus.clap |
Rescan plugins in your host. Most hosts pick up the new bundle on the next launch. User presets live in ~/Library/Application Support/com.drowld.Cumulus/presets, as a single JSON file per preset.
To uninstall, delete the 2 bundles above. Delete the preset folder too if you want to remove everything.
The installer walkthrough (signed and notarised installer, the Gatekeeper first-launch dialog, screenshots) is added with the release build.
windows
| Format | Path |
|---|---|
| VST3 | C:\Program Files\Common Files\VST3\Cumulus.vst3 |
| CLAP | C:\Program Files\Common Files\CLAP\Cumulus.clap |
User presets live in %APPDATA%\drowld\Cumulus\data\presets. To uninstall, delete the 2 plugin files, and the preset folder if you want.
The Windows installer walkthrough, per-user and all-users install, and a SmartScreen note are added with the release build.
ipad: auv3 in aum
- Install Cumulus from the App Store.
- Launch the stand-alone app once. iPadOS registers the AUv3 extension on first launch.
- In AUM, add an Audio Unit Instrument and pick Cumulus.
Before your first iPad session, note the following.
- State saves with the host session. AUM, like any AUv3 host, stores the full plugin state (parameters, drawn curves, matrix, step bars) inside its own session file. Named presets are separate and live in the plugin's own sandbox. See presets.
- Samples import through the Files app.
LOAD…opens the iPadOS document picker. Picked files are copied into the Cumulus local sample store, so a preset keeps playing even if the original file moves. A starter pool of loops is bundled, so you can play before you import anything. - The keyboard strip is always there. The iPad layout reserves a bottom band for a multitouch keyboard with an octave ribbon. You need no external MIDI to play.
- Presets are local to the iPad. The AUv3 sandbox is not shared with the desktop build. Cross-device preset sync is a planned opt-in, not a current feature.
Other AUv3 hosts (Logic for iPad, Loopy Pro, Drambo) follow the same pattern: launch the app once to register it, then add Cumulus as an instrument.
AUM routing screenshots are not added yet.
03the instrument
activation
sign in once
- In the plugin's licence panel, choose sign in. Your browser opens this website with a short code.
- Sign in if you aren't already, then approve the code.
- The plugin installs its licence. From then on it checks the licence on this computer, offline.
One licence covers 3 computers at a time. To free a computer, deactivate it from the plugin or from your account page.
computers without internet
The plugin shows a machine ID. Paste it on your account page, download the licence file, and load it in the plugin. The file uses one of your 3 computers.
staying offline
When the plugin happens to be online, it refreshes its licence about every 60 days. If it can't reach the website, it keeps working.
On iPad, the App Store handles the licence, so there is nothing to activate.
04the instrument
signal flow
A single sample feeds up to 8 playheads inside each voice. The grain engine renders them, and the per-voice envelope shapes the amplitude. The 16 voices sum into the rack, and 8 serial effect slots finish the sound. The modulation block (4 LFOs, 2 MSEGs, a step sequencer, a random source and an envelope follower) reaches every stage through the matrix.
stage by stage
From note-on to output:
- Voice allocation.
MODEdecides what a note does.POLYtakes a free voice, and steals the oldest if none is free.UNI RTretriggers every voice on every note.UNI LGplays legato: held notes change pitch without retriggering envelopes or the cloud. - Head resolution (where spread applies). Each head in the voice resolves its effective parameters as master value ∘ per-head trim ∘ spread fan ∘ variate offset. Head 1 anchors the fan, and the last head gets the full spread span. With
UNTIEon, the masters drop out and the per-head knobs become absolute values. - The grain engine. Each head is a scan position moving through the region between
STARTandEND, by wrapping or by ping-pong. It spawns windowed grains at an interval of size ÷ overlap. Each grain has its own position jitter, pitch jitter, direction and equal-power pan. ThePOS TOblock maps the grain's own position to pitch, volume and pan tilts. - The per-voice envelope. This is the ADSR by default, or the drawn amp MSEG when
MSEGis on. Either way, velocity scales it. The envelope is per voice, not per head. - The voice sum. Voices sum with a master gain normalised by 1 ÷ √(head count), so adding heads thickens the sound rather than doubling the level. The envelope follower taps the signal here: after the sum, before the FX rack.
- The FX rack. The rack has 8 slots in series, from slot 1 into slot 8. It is global: a single rack for all voices. Every feedback loop inside an effect is soft-saturated inside the loop and never gain-compensated, so self-oscillation can build without blowing up.
- Master.
LEVEL, then a final transparent soft-clip: unity below 0.8, then a tanh knee up to ±1.
where the matrix taps in
Global sources (the 4 LFOs, RND, ENVF, STEP) are computed once per block and reach everything. Per-voice sources (ENV, NOTE, VELO, MS1, MS2) are evaluated inside each voice, so every voice can sit at a different point of its own envelope. Targets cover every per-head parameter (per head, or all heads at once), the 9 spread amounts, master SPD, a few effect parameters, and SEL, the sample-pool selector.
per voice and global
Heads, envelopes, MS1 and MS2 are per voice. The sample pool, the LFOs, STEP, RND, ENVF, the FX rack and everything in the master strip are global.
05the engine
the wave display
The waveform view shows the loaded sample, a ruler in seconds, and a numbered square for each active playhead. You drag heads directly on the wave: horizontally for position, vertically for level. Live grains flicker around each head as the engine renders them.
loading a sample
LOAD… opens a file picker with pool behaviour built in:
- Pick a single file and its whole parent folder becomes the pool, sorted, with your pick selected. A single action loads a kit.
- Pick several files and exactly those files become a custom, mixed-folder pool.
- Drag and drop onto the window to append to the current pool. If the demo pool is all you had, the drop replaces it.
Accepted formats are wav, aif / aiff, flac and mp3, mono or stereo. The pool holds up to 64 samples. Decoding happens on a background thread, so the audio never stutters while files load. The centre pill of the top strip is the pool readout (3/12 · name), and its ◀ ▶ arrows step the selection. See the sample pool for the pool as a modulation target.
On iPad, LOAD… opens the Files document picker instead, and imports are copied into the Cumulus local store. See installation.
working with heads on the wave
- Drag a head square horizontally to set its position in the sample, and vertically to set its level. The height of the square is the head's level. The head inspector knobs and the wave handle control the same values, so you can move either.
- Region brackets.
STARTandENDbracket the region that all heads scan inside. Grains wrap (or ping-pong) inside the brackets, so long grains loop the region rather than leaving it. - Live grains. The flickering marks around each head are the actual grains the engine is rendering. Their spread shows your
JITTER, and their density shows yourOVERLAP. LINKon the wave. WithLINKon, every lane mirrors head 1. The mirrored heads draw dimmed, and any head you grab edits head 1. WithLINKoff, each square is its own head.- Multitouch (iPad). Every finger is independent. Drag 2 heads with 2 fingers, or a head and a region bracket at once. Each finger stays bound to what it grabbed, so crossing fingers never swaps targets.
06the engine
playheads
Each voice runs up to 8 playheads. By default every head is a trim around the masters: effective value = master ∘ trim ∘ spread ∘ variate. The masters move the whole cloud, and the per-head knobs shade individual heads away from it.
per-head parameters
| Control | Range | What it does |
|---|---|---|
POS |
−100 – +100 % (0) | position trim around the master position, as a fraction of the region |
PIT |
−24 – +24 st (0) | pitch trim in semitones, whole-step detented |
SIZE |
−6 – +6 oct (0) | grain-size trim, as an octave multiplier on the master size |
LVL |
−24 – +12 dB (0) | head level |
PAN |
−50 – +50 (0) | pan trim |
SPD |
−2 – +2 × (+1) | scan-speed multiplier on the master speed. Negative values run this head backwards |
GRN |
−16 – +16 (0) | grain-count trim on the master GRAINS |
JIT |
−1 – +1 (0) | position-jitter trim |
OVL |
−6 – +6 oct (0) | overlap trim, in octaves |
DLY |
0 – 500 ms (0) | onset delay for the head's grains. This head enters late on every note |
FRZ |
off | freezes the head's scan position. Grains keep spawning at the held spot |
DIR |
FWD |
per-grain read direction: FWD · REV · RND · F↔B (alternating) |
MUTE |
off | silences the head without losing its settings |
adding and removing heads
The HEADS stepper sets the count, 1 to 8 (default 4). Heads are added from the low numbers up, and the spread fan re-spaces itself across the active heads. Head count also sets CPU load. The engine's worst case is voices × heads × grains, so a patch with 6 voices, 8 heads and 12 grains is a heavy load. See troubleshooting.
LINK is on by default. It makes lanes 2 to 8 mirror lane 1: you edit a single lane and the whole cloud follows, while spread still fans the mirrored values apart. This suits cloud-like patches, where a single gesture moves all 8 heads. Turn LINK off to place heads individually, for chords, canons or scattered scenes. COPY TO ALL stamps the selected head's trims onto the other 7 when you want them to converge again. It takes 2 taps, because it overwrites on purpose.
scan modes
The scan system has 3 levers, named as in the engine:
| Lever | Values | Behaviour |
|---|---|---|
SPEED (master) |
−2 – +2 × (0) | how fast heads travel through the region, in multiples of real time. 0 holds still, so grains ring at a fixed spot. 1 is natural speed. Negative values run backwards |
PING PONG |
WRAP / PING-PONG |
what happens at the region edge: wrap around to the start, or bounce and come back |
per-head SPD |
−2 – +2 × | each head multiplies the master. Use it for half-speed drones under a full-speed lead, or for a single head in reverse (F↔B textures without leaving WRAP) |
FRZ overrides all of this for a single head: the scan integrator stops and the grains stay. A frozen head under moving heads makes a drone with a narration moving over it.
UNTIE and per-head size
UNTIE changes the whole relationship. The masters drop out and every per-head knob becomes that head's absolute value. POS becomes a place in the region rather than an offset. SIZE becomes a real grain length, anchored at 120 ms and scaled by the knob's octave value, so +1 oct = 240 ms and −1 oct = 60 ms. GRN counts from 4 at centre.
UNTIE is for composed patches. When each head is a distinct part (a sub drone, a mid texture, a sparkle layer), you set each head's values directly instead of following a shared master. TIE, the default, is for clouds, where a single master gesture should move everything. The readouts switch to absolute units while untied, so the knobs always show the true value.
07the engine
grains, spread and variate
The grain masters are global. They set size, overlap, jitter and scan speed for every head at once, and each head then trims around them (see playheads). Spread fans a parameter across the heads in a single gesture. Variate rolls bounded random variations, so the cloud never repeats itself.
grain parameters
| Parameter | Range | What it does |
|---|---|---|
SIZE |
2 ms – 10 s (90 ms) | grain length. Under about 30 ms it reads as texture and grit. Over about 300 ms it reads as smeared tape |
OVERLAP |
0.25 – 16 × (1.0) | how many grains sound at once per head. The spawn interval is size ÷ overlap. Below 1 leaves gaps. 4 and above gives a dense wash |
GRAINS |
1 – 16 (4) | the grain polyphony cap per head. At the cap, new grains wait rather than cutting old ones short |
JITTER |
0 – 1 (0.05) | random spawn-position scatter, as a fraction of the region |
SPEED |
−2 – +2 × (0) | scan speed through the sample, in multiples of real time. 0 holds still. Negative values run backwards |
PJ (pitch jitter) |
0 – 12 st (0) | random per-grain pitch scatter |
PAN JIT |
0 – 1 (0.2) | random per-grain pan scatter |
GR ENV |
0 – 1 (0.5) | grain window shape. 0 is a hard gate (with a tiny anti-click ramp), 1 is a full triangle, and values in between give a trapezoid |
The engine also makes 2 refinements on its own. Each grain's length gets ±4 % random variation, which decorrelates the comb-filter ring of identical grains. Positions wrap inside the region between START and END in absolute samples, so even grains a second long loop the region rather than spilling out.
the drawn window
GR ENV is the quick control. The real window is a drawable curve for each head. Open the grain-window editor and draw the envelope each grain plays through, or stamp one of the presets: TRAP · BELL · PERC · REV · GATE · PAD. PERC turns a pad sample into plucks. REV makes every grain a small reversed swell. With LINK on, all heads use the curve of head 1.
POS TO: position colours the grain
POS TO uses 3 depths to map each grain's own position in the region onto that grain. POS TO PITCH (−12 to +12 st) peaks mid-region. POS TO VOL dips the edges. POS TO PAN ramps from the left edge to the right edge. With a moving scan, travel through the sample becomes travel in pitch, level and space.
spread
Spread fans a parameter across the active heads in a deterministic line. Head 1 stays put and the last head gets the full amount. The heads between sit at even steps. You can spread 9 parameters, each with its own amount:
| Spread | Polarity | Full-amount span at the last head |
|---|---|---|
POS |
bipolar | the whole region |
SIZE |
bipolar | ±2 octaves of grain size |
PIT |
bipolar | ±12 semitones |
PAN |
unipolar | full width, symmetric around centre |
SPD |
bipolar | ±1× scan speed |
JIT |
unipolar | +1 jitter |
OVL |
unipolar | +2 octaves of overlap |
LVL |
bipolar | ±12 dB |
GRN |
bipolar | ±8 grains |
The fan is deterministic, with no randomness, so spread pairs well with LINK. Mirror the heads, then let the fan pull them apart by exactly the amount you set. Negative amounts flip the direction of the fan. PAN spread on its own gives a stereo cloud. POS spread across a melodic phrase gives a canon. Every spread amount is also a matrix target, per voice. An LFO on sPOS widens and narrows the arrangement in cycles.
variate
Variate lets you hear a variation of the patch without destroying the patch.
AMOUNT(−100 to +100 %, default 30 %) scales the whole variation layer.VARIATE!rolls new random offsets, bounded per parameter. At full amount the bounds are up to a quarter of the region in position, ±1 octave of size, ±3 st of pitch, and a pan nudge per head.- The
VARranges set which parameters may move and how far. SetPOSandSIZEhigh andPITto 0 for clouds that shift but stay in tune.DIR,FRZandMUTEare probabilities: how likely each roll is to flip a head's direction, freeze it or mute it. RESETrestores the pure patch, every knob and toggle, exactly as it was before the first roll.
Rolls write real, visible values: the knobs move and the host can record them. The patch before the roll is stored as a snapshot, so RESET is always safe. To keep a variation, save it as a preset. What you hear is what gets saved.
08motion and colour
modulation
There are 9 assignable sources: 4 LFOs, 2 MSEGs, a step sequencer, a random source and an envelope follower. With the per-voice envelope, note and velocity, that makes 12 matrix rows in all. Sync divisions run from 4/1 to 1/128 everywhere, straight, dotted or triplet. Routing happens in the matrix: pick a source, touch a target, drag a depth in percent.
the matrix
The matrix is a grid of sources × targets. Every cell is a signed depth, from −100 to +100 %.
- Add a routing. Tap a source chip to arm it, then touch a target: a matrix row or any head knob. New routes start at +25 %, so you hear them immediately.
- Set the depth. Drag the cell vertically. Shift-drag for fine control. Double-click (or double-tap) to set it to 0. Depths are bipolar, and negative depths invert the source.
- Delete. Each visible row has a ✕ with a 2-tap confirm. The first tap arms it, and the second removes the row and clears its cells. A stray touch never deletes anything.
- Declutter. Only 6 target rows show by default: the all-heads
POS·PIT·SIZ·PAN·LVL, plusSEL. Rows appear as you route to them. To show per-head rows, touch a head's knob withLINKoff. - See it on the controls. A routed control shows a mod band: the live modulated value sweeping around the knob position. You can read the matrix from the main page without opening it.
- The footer.
AMOUNT(−100 to +100 %, default +100 %) scales every routing at once. Pull it down to calm a patch, or set it negative to mirror the whole modulation scheme.TIME(0 to 1000, default 100) scales every LFO andRNDrate from 0.1× to 4×. Use it to slow the whole patch down with a single control. The corner bracket expands the matrix to a fullscreen touch editor.
The targets are every per-head parameter (H1 POS … H8 LVL), the same 7 as all-heads rows (A POS …), the 9 spread amounts (sPOS … sGRN, per voice), master speed (SPD), the feedback, band and mix of the first PRISM slot, the feedback and mix of the first DIFFUSION slot, and SEL. SEL is the sample-pool selector. When you sweep it, it hot-swaps samples per block.
lfos
The 4 LFOs share a single waveform set:
SIN · TRI · SAW · SQR · S&H · SRND · MRG · USER
- Rate runs from 0.02 to 40 Hz free, or tempo-synced from 4/1 down to 1/128 with a straight, dotted (
·D) or triplet (·T) feel. USERis the default, so every LFO is drawable from the start. The curve editor is the same one the MSEGs use (points, per-segment curvature, snap, shape stamps), and the drawn loop is the waveform.SRND(soft random) is a smooth random curve: new random values interpolated with a Catmull-Rom spline, with no steps.MRG(random merge) is the average of a held S&H step and that same smooth curve: a stepped pedestal with a wander on top.REVplays the selected shape backwards: the same course, reversed, not mirrored. It is hidden for the random shapes, which have no fixed course to reverse.- The previews draw the engine's live random state, not an illustration. What you see is what is modulating.
mseg 1 and 2
MS1 and MS2 are note-triggered envelope sources, drawn in the same editor as the amp MSEG. The editor has breakpoints with per-segment curvature (drag a segment's belly), a snap grid (default 16 × 4, adjustable to 64), and shape stamps that tile a cycle per grid cell: RAMP · SAW · TRI · SINE · SQR · RND.
Each MSEG has a TIME control (0.05 to 20 s) for the full drawn shape, and the 4 modes described in envelopes: 1-SHOT, HOLD, LOOP, PNG-PNG. In LOOP mode with a short time, an MSEG works as a per-voice shape LFO. In HOLD mode it is a second envelope.
The MSEGs are per voice: route MS1 to A SIZ and every note in a chord blooms on its own clock. They run whenever they are routed. The matrix depth is the on-switch.
step sequencer, random, envelope follower
STEP
STEP has up to 16 bars, drawn directly. With multitouch you can paint with several fingers. COUNT runs from 1 to 16 (8). The rate runs from 4/1 to 1/128 (1/16), with ·D and ·T. The direction is FWD · BACK · PNG. There are 3 clock modes:
TRSPlocks steps to the host timeline. It only advances while the transport runs.FREEruns at the tempo rate regardless of the transport.NOTEisFREE, restarted by every note-on.
BIP re-centres the bars around 0. A half-height bar then means no change, and full and empty bars push in opposite directions.
RND
RND is a single global random voltage, 0.02 to 40 Hz (2 Hz), or synced. With SMOOTH on it gives the Catmull-Rom wander. With SMOOTH off it gives stepped sample-and-hold. A slow, smooth RND into A POS gives a cloud that never sounds the same twice.
ENVF
ENVF is an envelope follower with ATK 1 ms to 2 s (10 ms), REL 5 ms to 4 s (200 ms) and GAIN 0 to 10×. By default it tracks the Cumulus output before the FX rack, so the instrument can duck or excite itself. Turn on SC and it tracks the plugin's sidechain input instead. Route a kick into the sidechain and the drums pump the cloud. Its value reaches the matrix 1 block late. This is by design: it breaks the feedback loop.
09motion and colour
the fx rack
The rack has 8 serial slots and 16 effect kinds. The first 8 kinds keep compact dedicated layouts. The newer 8 share a uniform cell grid of up to 12 cells, each showing a label, a value and a real unit, so you learn the layout once. Feedback effects may self-oscillate, and are soft-saturated inside the loop. Cells that can run away (FEEDBK and similar) turn red as you enter the saturation zone.
the 16 kinds
| Kind | In one line |
|---|---|
PRISM |
resonator delay: a resonant band-pass inside a feedback delay |
DIFFUSION |
modulated allpass diffusion field |
DELAY |
clean stereo feedback delay with damping |
FILTER |
state-variable filter, continuous LP↔BP↔HP morph |
FOLD |
sine wavefolder |
EQ |
a single band that morphs shelf → peak → shelf |
RESON |
4 tuned comb resonators on a chord pattern |
VERB |
comb/allpass reverberator |
LOFI |
tape: drive, flutter, head bump |
DARK |
4-tap modulated-delay pitch smearer |
TIDE |
flanger: a feedback comb with an 8-shape LFO |
CLOUD |
granular pitch-cloud delay |
DUB |
delay whose echoes darken and diffuse as they regenerate |
FREEZE |
dual-buffer beat-repeat / freeze with a polyrhythmic gate |
FSHIFT |
single-sideband frequency shifter, barberpole feedback |
ZEBRA |
multi-mode tuned comb resonator, 7 topologies |
prism
A resonator delay: a stereo delay line with a resonant 4-pole band-pass inside the feedback path, and bipolar feedback. Push FBK and the band rings. The delay time turns the ring into pitch.
| Control | Range | Default | Notes |
|---|---|---|---|
FBK |
−100 – +100 % | 0 % | bipolar. Negative values hollow the resonance |
BPF |
40 Hz – 8 kHz | 800 Hz | the colour of the ring |
RES |
0 – 100 % | 40 % | band-pass resonance |
DEL |
1 – 950 ms | 120 ms | loop time |
MIX |
0 – 100 % | 0 % | dry/wet |
The matrix rows sFB · sBP · sMX reach the first PRISM slot in the rack.
diffusion
The companion diffusor to PRISM: 4 LFO-modulated allpass diffusers per channel in a damped cross-feedback loop. It sits between a chorus and a reverb.
| Control | Range | Default | Notes |
|---|---|---|---|
FBK |
0 – 95 % | 50 % | cross-channel regeneration |
DIFF |
0 – 100 % | 60 % | allpass diffusion amount |
SIZE |
0.2 – 2.0 | 1.0 | scales all diffuser lengths |
LP |
500 Hz – 18 kHz | 9 kHz | damping in the loop |
MIX |
0 – 100 % | 0 % | dry/wet |
The matrix rows dFB · dMX reach the first DIFFUSION slot.
delay
A clean stereo feedback delay with fractional reads, 1-pole damping in the loop and a smoothed time control. Moving TIME glides like tape instead of zipping.
| Control | Range | Default |
|---|---|---|
TIME |
1 – 980 ms | 250 ms |
FBK |
0 – 95 % | 40 % |
DAMP |
0 – 100 % | 30 % |
MIX |
0 – 100 % | 0 % |
filter
A 2-pole state-variable filter. Its TYPE knob morphs continuously from LP to BP to HP. The cutoff is slewed per sample, so even fast modulation sweeps stay free of zipper noise.
| Control | Range | Default |
|---|---|---|
CUTOFF |
20 Hz – 16 kHz | 800 Hz |
RES |
0 – 100 % | 20 % |
TYPE |
LP ↔ BP ↔ HP | LP |
MIX |
0 – 100 % | 0 % |
fold
A wavefolder that drives the signal into a sine fold. THR blends the character of the fold from hard clipped edges to full folding. FOLD sets how many times the wave folds back on itself.
| Control | Range | Default |
|---|---|---|
DRIVE |
0 – 100 % | 10 % |
FOLD |
0 – 8 | 0 |
THR |
0 – 100 % | 100 % |
OUT |
0 – 100 % | 100 % |
MIX |
0 – 100 % | 0 % |
eq
A single parametric band with a morphing character. 3 filters (low shelf, peak, high shelf) run in parallel, and TYPE crossfades between them. The band slides from bass weight to presence to air.
| Control | Range | Default |
|---|---|---|
GAIN |
−18 – +18 dB | 0 dB |
TYPE |
LOSHELF ↔ PEAK ↔ HISHELF | PEAK |
FREQ |
33 Hz – 16 kHz | 700 Hz |
BW |
0.3 – 10 | 1.0 |
MIX |
0 – 100 % | 0 % |
reson
RESON runs 4 parallel comb resonators, tuned to a chord pattern around PITCH. The loop gain is pre-scaled, so the resonators ride the edge of self-oscillation but cannot blow up.
| Control | Range | Default | Notes |
|---|---|---|---|
PITCH |
C1 – C7 | C4 | root note, semitone steps |
PATTERN |
8 patterns | OCTAVES | OCTAVES MAJOR MINOR7 FIFTHS SUB PENTA CLUSTER BELL |
FB |
0 – 100 % | 60 % | ring length |
BRIGHT |
−100 – +100 % | 0 % | in-loop tone |
MIX |
0 – 100 % | 0 % | dry/wet |
verb
A pure time-domain comb/allpass reverberator in true stereo. Every comb has a low shelf in its feedback, and LOW sets the low-band decay. A 1-pole treble damp follows, and HIGH sets the brightness of the tail.
| Control | Range | Default |
|---|---|---|
SIZE |
0 – 100 % | 70 % |
LOW |
0 – 100 % | 45 % |
HIGH |
0 – 100 % | 50 % |
MIX |
0 – 100 % | 0 % |
lofi
A tape stage. The signal runs through input drive → wow/flutter → tape-head saturation → head-bump resonance → HF soften → a soft inter-sample limiter.
| Cell | Range | Default | What it does |
|---|---|---|---|
DRIVE |
−12 – +12 dB | 0 dB | input gain into the tape stage |
FLUTTER |
0 – 100 % | 0 % | wow/flutter depth and rate |
TONE |
0 – 100 % | 0 % | HF soften. Higher values are darker |
BUMP |
0 – 100 % | 0 % | low head-bump resonance |
OUT |
−12 – +12 dB | 0 dB | output trim |
MIX |
0 – 100 % | 0 % | dry/wet |
dark
A 4-tap modulated-delay pitch smearer with bipolar feedback. MODE picks the modulator character:
DEMONsums 4 harmonically related sine taps (harmonic FM).WITCHcrossfades saw-ramp taps into a steady Doppler transpose with granular smear.ZOMBIEcombs sine and cosine taps at a single rate.
The aliasing grit is the effect.
| Cell | Range | Default | What it does |
|---|---|---|---|
SPREAD |
1 – 20 ms | 6.7 ms | static offset between the 4 taps |
MODE |
3 modes | DEMON | DEMON · WITCH · ZOMBIE |
RATE |
0.1 – 2 Hz × range | 1.2 Hz | modulator rate |
R·RNG |
×0.5 – ×800 | MID | rate range: SLOW MID FAST AUD. AUD pushes the modulator into audio rate |
AMOUNT |
0 – 1 ms × range | 1.2 ms | modulation depth (= pitch depth) |
A·RNG |
×1 – ×40 | ×4 | depth range |
FEEDBK |
−100 – +100 % | 0 % | bipolar regeneration |
PATTERN |
P1 – P8 | P1 | tap phase pattern |
MIX |
0 – 100 % | 0 % | dry/wet |
tide
A flanger: a feedback comb with in-loop damping, an 8-shape LFO and mid/side width. A single DELAY knob covers the whole range from flanger to chorus. The comb rings up to the edge of self-oscillation under a transparent in-loop limiter.
| Cell | Range | Default | What it does |
|---|---|---|---|
DELAY |
0.02 – 45 ms | 2.2 ms | centre delay, which sets the comb pitch |
FEEDBK |
−100 – +100 % | +40 % | bipolar comb feedback |
DAMP |
0 – 100 % | 30 % | in-loop treble damping |
DEPTH |
0 – 100 % | 50 % | LFO sweep width |
RATE |
0 – 20 Hz | 1.25 Hz | free LFO rate |
SHAPE |
8 shapes | SINE | SINE RMP+ RMP− TRI SQR S&H GLIDE SMTH |
OFFSET |
−100 – +100 % | +50 % | right-channel LFO phase offset |
HIPASS |
20 Hz – 20 kHz | 28 Hz | input high-pass |
STEREO |
0 – 100 % | 50 % | mid/side width |
SYNC |
on/off | OFF | tempo-syncs the LFO |
NOTE |
1/1 – 1/8T | 1/4 | synced division |
MIX |
0 – 100 % | 0 % | dry/wet |
cloud
A granular pitch-cloud delay. A freezable record ring feeds a pool of windowed grains that play back at a pitch ratio. It sits between a shimmer, a delay and a texture generator.
| Cell | Range | Default | What it does |
|---|---|---|---|
PITCH |
± RANGE |
0 st | grain transpose, bipolar |
CLOUD |
0 – 100 % | 60 % | grain length and how far back grains read. Small values give a tight shimmer, large values a deep smear |
DENSITY |
0 – 100 % | 45 % | grain overlap (loudness-compensated) |
JITTER |
0 – 100 % | 20 % | random spawn scatter |
RANGE |
4 steps | 2OCT | pitch span: 1ST (±1 st) · 1OCT · 2OCT · 4OCT |
FREEZE |
on/off | OFF | stops recording. The cloud plays from the held buffer |
REV |
on/off | OFF | grains read backwards |
HUGE |
on/off | OFF | ×8 grain length and reach, for very long smears |
GRID |
on/off | OFF | quantises PITCH to whole semitones |
MIX |
0 – 100 % | 0 % | dry/wet |
dub
A stereo delay with a heavily processed feedback path: a high-pass, then a resonant low-pass, then an allpass cascade, then polynomial saturation. INTENS raises the saturation drive, filter resonance and allpass depth together, so every echo comes back darker, softer and more diffuse. Feedback runs past unity into self-oscillation. The in-loop saturator acts as the limiter.
| Cell | Range | Default | What it does |
|---|---|---|---|
TIME L |
5 ms – 2 s | 55 ms | left delay time |
TIME R |
5 ms – 2 s | 74 ms | right delay time |
FEEDBK |
×0.10 – ×1.10 | ×0.50 | loop gain. Above ×1.00 it blooms into self-oscillation |
INTENS |
0 – 100 % | 40 % | the dub macro: darker, softer and more swirling with each echo |
HP |
20 Hz – 2 kHz | 32 Hz | loop high-pass |
LP |
200 Hz – 16 kHz | 2.8 kHz | resonant loop low-pass |
FREQ |
20 Hz – 16 kHz | 290 Hz | centre of the allpass cascade, where the swirl sits |
STAGES |
OFF – 3 | 1 | allpass stages in the loop |
SYNC |
on/off | OFF | tempo-syncs the times |
NOTE |
1/1 – 1/8T | 1/4 | synced division |
X-FB |
on/off | OFF | cross-feedback L↔R (ping-pong regeneration) |
MIX |
0 – 100 % | 0 % | dry/wet |
freeze
A tempo-synced dual-buffer beat-repeat. There are 2 loop sets, A and B, and both are always recording. Engaging FREEZE latches the last LEN of audio and loops it with a windowed, de-clicked seam. The GATE is bipolar. To the right, it mutes later portions of the current set's own period. To the left, it chops in a polyrhythm derived from the length of the other set.
| Cell | Range | Default | What it does |
|---|---|---|---|
FREEZE |
on/off | OFF | latches and loops (the rising edge captures) |
LEN A |
1/1 – 1/8T | 1/4 | loop length, set A |
LEN B |
1/1 – 1/8T | 1/8 | loop length, set B |
A/B |
A / B | A | which set plays |
GATE |
−100 – +100 % | 0 % | bipolar gate. Right mutes later portions, left gives a cross-set polyrhythm |
WINDOW |
0 – 100 % | 30 % | seam crossfade width |
SMOOTH |
1 – 200 ms | 41 ms | gate edge smoothing |
X.GATE |
on/off | ON | while not frozen: passes the dry signal (on) or mutes it (off) |
TILT |
−100 – +100 % | 0 % | tilt EQ on the frozen loop |
MIX |
0 – 100 % | 0 % | dry/wet |
fshift
A single-sideband frequency shifter, not a pitch shifter. It moves every partial by the same number of hertz, so harmonic material turns inharmonic, bell-like, then metallic. Bipolar feedback with an in-loop delay gives a barberpole spiral.
| Cell | Range | Default | What it does |
|---|---|---|---|
SHIFT L |
0 – RANGE Hz |
20 Hz | left shift amount |
SHIFT R |
0 – RANGE Hz |
20 Hz | right shift amount |
U/D |
−100 – +100 % | +100 % | sideband blend: up, down, or both (the centre gives ring modulation) |
FB |
−100 – +100 % | 0 % | feedback. Positive values feed back into the same channel, negative values cross channels |
FBMIX |
0 – 100 % | 50 % | sideband blend inside the feedback path |
LP |
20 Hz – 20 kHz | 2.5 kHz | in-loop low-pass |
TIME |
25 ms – T·RNG |
48 ms | in-loop delay time |
RANGE |
5 steps | 100 | shift range: 1Hz 10Hz 100 1k 10k |
T·RNG |
4 steps | 100 | time range: 25ms 100 500 1s |
DELAY |
on/off | OFF | enables the in-loop delay |
MIX |
0 – 100 % | 0 % | dry/wet |
With DELAY on, a small SHIFT and some FB, each repeat arrives a few hertz higher (or lower) than the last. The spiral never lands.
zebra
A multi-mode tuned comb resonator: 7 comb topologies tuned to a note, sharing a damped feedback path that can be driven into distortion. CTX-A and CTX-B are character controls for each mode (tap ratio, structure or harmonic spacing, depending on MODE).
| Cell | Range | Default | What it does |
|---|---|---|---|
TUNE |
−24 – +24 st | 0 st | comb tuning around middle C |
MODE |
7 modes | SIMPLE | SIMPLE DISS CMPX4 CMPX8 FDN BLOWN VERB |
CTX-A |
0 – 100 % | 50 % | mode character A |
CTX-B |
0 – 100 % | 50 % | mode character B |
DAMP |
0 – 100 % | 60 % | loop damping |
FEEDBK |
−100 – +100 % | +50 % | bipolar. Negative values give a hollow, octave-down colour |
DETUNE |
−50 – +50 ct | 0 ct | L/R detune, which adds width |
DISTORT |
0 – 100 % | 0 % | in-loop drive |
WIDTH |
0 – 100 % | 50 % | stereo width |
OSC |
on/off | OFF | raises the feedback ceiling past unity. The comb becomes an oscillator playing TUNE |
MIX |
0 – 100 % | 0 % | dry/wet |
slots, order and mute
- Choosing a kind. Each slot has a kind picker. Picking a kind writes that effect's musical defaults into the slot, since each kind keeps its own neutral starting point. Effects run in slot order, 1 into 8.
- Building the chain. A new kind builds in the background as soon as you pick it. A live kind switch goes dry briefly while the new DSP arrives. This is by design. Loading a session pre-builds every slot, so presets start wet.
MUTEbypasses a slot and greys out its control region. The settings are kept, and the slot steps out of the chain.- Wet/dry. Every kind ends in a
MIXcell, and all mixes default to 0 %. A freshly picked effect is not heard until you bring it in. - Sync cells.
TIDE,DUBandFREEZEhave aSYNCtoggle and aNOTEdivision:1/1·1/2·1/4·1/8·1/16·1/4T·1/8T. - The saturation warning. Feedback cells that can run away (
DUBandZEBRAFEEDBK,FSHIFTFB,TIDEFEEDBK) turn red as you approach the self-oscillation zone. The zone is intended. The warning lets you enter it on purpose.
10motion and colour
envelopes
Every voice has a single amplitude envelope that works in 2 ways: as an ADSR (the default), or as a freely drawn segment shape when you turn MSEG on. Velocity scales the result either way.
the adsr
| Stage | Range | Default |
|---|---|---|
ATTACK |
1 ms – 5 s | 10 ms |
DECAY |
1 ms – 20 s | 200 ms |
SUSTAIN |
0 – 100 % | 80 % |
RELEASE |
5 ms – 30 s | 400 ms |
Granular patches often need extreme settings: a 1 ms attack on PERC-windowed grains for plucks, or attacks of 4 s so the cloud condenses rather than starts. Both are in range.
the amp mseg
Turn MSEG on and the drawn envelope replaces the ADSR. You edit it in the shared curve editor:
- Points. Tap to add, drag to move. Each shape holds up to 64.
- Curvature. Drag a segment's belly to bend it, from fast-start to slow-start.
- Snap. A toggleable snap grid, default 16 × 4, steppable up to 64 divisions. Grid lines always draw.
TIME. The duration of the full drawn shape, from 0.05 to 20 s.- Shape chips. Stamp shapes as starting points and edit from there.
envelope modes and retriggering
The MSEG has 4 modes, set with the chips in the editor:
| Mode | Behaviour |
|---|---|
1-SHOT |
plays the whole shape once per note, ignoring the gate |
HOLD |
plays to the hold point, sustains there while the note is held, then runs the rest on release. This is the drawn equivalent of ADSR. SET HOLD places the point |
LOOP |
loops forward between points A and B while the note is held, then runs out. SET A and SET B place the loop |
PNG-PNG |
as LOOP, but bounces back and forth between A and B |
LOOP and PNG-PNG blur the line between envelope and LFO. A looping amp MSEG is a tremolo with a composed attack.
Retriggering follows the play mode (see signal flow). POLY starts a fresh envelope for each note. UNI RT retriggers the envelope of every voice on every note. UNI LG plays legato: a new note while another is held changes pitch without restarting envelopes.
11reference
the sample pool
Cumulus never plays "a sample". It plays the selected sample from the pool. The pool is a list of up to 64 decoded samples held in memory. Selection is a parameter (SEL), so you can automate and modulate the loaded sound itself.
managing the pool
- Filling it.
LOAD…with a single file pools its whole folder. With several files, it pools exactly those. Drag and drop appends. See the wave display for the full loading behaviour. - The pool panel lists every entry (
SAMPLE POOL · 12), with a delete control on each row. It is a 2-tap ✕, so a stray touch never drops a sample. - The nav pill in the top strip shows
n/N · name. Its arrows step the selection, and stepping is glitch-free: samples are pre-decoded, so switching never reads the disk during a performance. SELas a target. The selector is a continuous parameter from 0 to 1 across the pool. Automate it, or route any matrix source intoSEL. A steppedRNDhot-swaps the source sample per block, which is the fastest route to glitch collage. All 12 sources can drive it.- What persists. The DAW session stores the exact pool file list and restores it on load. Presets carry their own pool references too. Loading a preset that was saved with a pool brings those samples back. A preset saved without a pool plays over whatever you have loaded, and leaves your selection alone. References are per device.
On iPad the pool starts with a bundled set of loops. LOAD… imports through the Files picker, and imported files are copied into the Cumulus local store. You can delete them from the store list, also with a 2-tap confirm. Pool audio stays in RAM while the plugin runs. A full pool of 64 long stereo files uses a lot of memory, so prune the pool on iPads with limited memory.
12reference
presets
Presets store everything: parameters, the drawn curves (amp MSEG, both mod MSEGs, all 4 LFO shapes, all 8 grain windows), the step bars, the matrix and the sample-pool references. The browser strip at the top steps through them. The factory bank is organised by texture.
the factory bank
The factory bank has 20 patches. Each is a starting point built on a single idea. Each leaves most of the instrument at its defaults, so what you hear is the idea and not a stack of adjustments.
| Category | Preset | The idea |
|---|---|---|
| pads | Init Cloud |
the neutral start: a medium cloud and a little VERB. Build from here |
| pads | Cirrus Drift |
5 heads spread in position and pan. A 0.07 Hz sine drifts the cloud through the sample |
| pads | Stratus Bed |
an octave down, half-second grains, a closed-down FILTER into a large VERB. A dark floor |
| pads | Shimmer Stack |
6 heads fanned in pitch and pan, with PRISM ringing at 1.2 kHz. The bright one |
| keys | Granular Keys |
12 voices, tight 70 ms grains, instant attack, slap DELAY. Plays like an instrument |
| keys | Plucked Cloud |
the PERC grain window does the plucking. Short decay, a little VERB |
| textures | Rain on Glass |
26 ms grains, high jitter, RND flickering the levels |
| textures | Frozen Aurora |
4 frozen heads, 420 ms grains, 2 slow LFOs bending size and pan |
| lo-fi | Tape Ghost |
every head in reverse, an octave down at 0.6× speed, a 4.5 Hz wobble on pitch |
| lo-fi | Vinyl Memories |
warm low shelf, softened top, slapback. Worn media |
| rhythmic | Pendulum |
ping-pong scan in a tight region with speed spread. The heads swing |
| rhythmic | Chop Gate |
the step sequencer ducks the cloud through a gate mask. DELAY fills the gaps |
| harmonic | Swarm of Fifths |
LINK off. Heads voiced root · fifth · octaves and panned wide: a chord from a single note |
| harmonic | Sub Choir |
heads at −12 and −24 under the root, filtered, for weight |
| glitch | Microscopic |
9 ms grains, with stepped RND throwing the position |
| noise | Dust Storm |
random-direction grains through FOLD and VERB |
| fx | Reso Bloom |
PRISM past half feedback, with an LFO sweeping the band. The effect is the instrument |
| fx | Comb Cathedral |
RESON on FIFTHS at 85 % feedback into a large VERB |
| cinematic | Slow Motion |
0.08× scan, 900 ms grains, a very large VERB, softened top |
| wild | Total Chaos |
VARIATE! is the play surface: amount at 85 %, everything unlocked |
Factory presets install once into your user folder, and then they are yours. You can edit them, retag them or delete them. A deleted factory preset stays deleted.
saving and sharing
- Save captures the complete current state under a name. Saving under an existing name overwrites it, and its favourite status and tags survive. A
*next to the preset name means the live state differs from the saved file. - The palette opens when you click the preset name. It lists every preset with search, filtering, tags and favourites. Deletes use a 2-tap confirm.
- On disk, a preset is a single human-readable JSON file:
~/Library/Application Support/com.drowld.Cumulus/presetson macOS,%APPDATA%\drowld\Cumulus\data\presetson Windows. To share a preset, copy the file. Sample audio is not embedded. Presets reference pool files by path, so share the samples with the preset. - On iPad, presets live inside the AUv3's own sandbox and persist across sessions and hosts. They are not shared with the desktop build. Cross-device sync is a planned opt-in.
- Presets are independent of the host's own state save. Your DAW session restores exactly what you had. Named presets are the library you carry between sessions.
13reference
tips and techniques
Each tip is a starting point, built on the 2 or 3 parameters that matter.
one tap, endless pad
Turn a short percussive hit (a rim, a glass tap, a single piano note) into a pad that does not end.
- Set
HEADSto 8 withLINKon. SetSIZEto around 300 ms andOVERLAPto 4 or more. - Spread
SIZEwide (±2 oct at full) so the heads disagree about time, and spreadPANfor width. - Route
RND(smooth, about 0.1 Hz) intoA POSat 10 to 20 %. The cloud wanders across the hit without leaving it. - Put
VERBlast in the rack, withSIZEhigh andMIXto taste. - Use the amp MSEG in
HOLDmode with a slow attack, or pushATTACKandRELEASEpast 1 s each.
The percussive transient disappears into the overlap. What remains is the body of the sound, held open.
clouds that stay in tune
Random pitch is the fastest way to lose the tonal centre. To build wide clouds that still sit in a key:
- Keep
PJ(pitch jitter) at 0 andJITTERlow. - Voice the heads instead. Turn
LINKoff, then set thePITtrims to intervals: +7, +12, +19, −12. This is theSwarm of Fifthsrecipe. SpreadLVLslightly negative so the upper heads sit behind the root. - For shimmer without smear, add a
CLOUDeffect withGRIDon andRANGEat1OCT. Its transposes then land on exact semitones. - For sustain, use head
FRZ(freeze the scan where the note blooms), or latch theFREEZEeffect on a bar of the result.
rhythms from texture
You can turn any pad patch into a groove without changing the sound itself:
- Draw a gate mask in
STEP, with full bars and empty bars. SetCOUNTto 8 or 16 and the rate to1/16. - Route
STEPintoA LVLat −100 %. Full bars now duck the cloud to silence, and empty bars let it through. Inverting the routing is what makes the edges hard. - Clock mode
TRSPlocks the pattern to the host timeline.NOTErestarts it on every played note. DUBafter the gate turns the chops into answers:SYNCon,NOTEat1/4,X-FBon for ping-pong.TIDEbefore it, slow and deep, keeps the sustained parts moving.- Tighten the amp envelope:
ATTACKa few ms,RELEASEshort,SUSTAINfull.
14reference
troubleshooting
the auv3 does not appear in my ipad host
Launch the stand-alone Cumulus app once, then restart the host and rescan its plugin list. iPadOS registers extensions on the first launch of the app.
no sound
Work down the signal path:
- Is MIDI arriving? Play the on-screen keyboard (iPad) or check the host's MIDI routing into the plugin. If the VU meter moves, MIDI and the engine are working, and the problem is after Cumulus.
- Levels. Check that master
LEVELis up. The grain masterLVLgoes down to −60 dB, so check it has not been automated down. For each head, check thatMUTEis off andLVLis above the floor. - The envelope. An ADSR with
SUSTAINat 0 and a shortDECAYis silent on held notes. WithMSEGon, a drawn shape that ends early behaves the same way. Check the mode:HOLDsustains,1-SHOTdoes not. - The region and the scan. A tiny region between
STARTandENDthat sits on silence, withSPEEDat 0, plays that silence indefinitely. Move a head or widen the region. - The step sequencer.
STEProuted intoA LVLat −100 % is a gate. InTRSPmode it only advances while the host transport runs, so a stopped transport can hold the gate closed. - The rack. A
FREEZEslot withX.GATEoff mutes the dry path whenever it is not frozen. That is its job, but it sounds like a fault if you forget it.MUTEthe slots one at a time to find the cause.
crackles or high cpu
The engine's load is voices × heads × grains per head. The defaults (8 × 4 × 4) are light. The worst case (16 × 8 × 16) is over 2,000 simultaneous grain reads. It is meant for freezing to audio, not for a busy live set.
- Lower
VOICESfirst. It multiplies everything. - Then lower
GRAINSandOVERLAP. Concurrent grains per head are roughly grains × overlap (capped at 16), so halving either halves the work. - In the rack,
DIFFUSION,VERB,CLOUDand theFDNandVERBmodes ofZEBRAare the heavier kinds.MUTEthem to test. - Host buffer sizes of 256 samples and above leave comfortable headroom. Granular spawning is bursty by nature.
- On iPad, a live FX kind switch goes dry briefly while the new DSP builds in the background. This is by design, not a glitch. Switching presets pre-builds everything.
something else
Write to hello@softsystems.app with your OS, host, plugin version and, if it crashed, the crash report. The version and build stamp are in the top-right corner of the plugin.
15reference
specifications
engine
| Spec | Value |
|---|---|
| Polyphony | up to 16 voices (default 8) · play modes POLY / UNI RT / UNI LG |
| Playheads | up to 8 per voice (default 4) |
| Grains | up to 16 per head, 128 streams per voice, 2048 engine-wide. Pre-allocated, with no allocation on the audio thread |
| Interpolation | 4-point Hermite sample reads |
| Grain window | drawn per-head curves (6 presets) or the GR ENV trapezoid |
| LFOs | 4, with 7 shapes plus a drawable USER curve (the default) |
| MSEG envelopes | 2 mod sources plus the amp MSEG, up to 64 points each |
| Other sources | STEP (16 steps) · RND (smooth or stepped) · ENV FOLLOW (sidechain-capable) · note · velocity |
| Matrix | 12 sources × 79 targets, bipolar depths |
| Sync divisions | 4/1 … 1/128, straight, dotted or triplet (FX sync cells: 1/1 … 1/8T) |
| FX rack | 8 serial slots · 16 effect kinds, built on demand off the audio thread |
| Sample pool | up to 64 samples · wav aif aiff flac mp3 · selection is a modulation target |
| Presets | a single JSON file each · 20-patch factory bank |
| Window | 1280 × 780 logical (iPad 1280 × 900) · UI zoom 50 – 250 % · dark / OLED / light · 6 accents |
formats and platforms
| Platform | Formats |
|---|---|
| macOS | VST3 · CLAP |
| Windows | VST3 · CLAP |
| iPadOS | AUv3 + stand-alone |
Sample rate and block size follow the host. There is no internal resampling.
Minimum OS versions, Apple silicon and Intel notes, disk footprint and the tested host list are added at release.
credits
The LOFI tape stage is a port of Airwindows ToTape by Chris Johnson, used under the MIT licence.
16reference
version history
| Version | Date | Notes |
|---|---|---|
| 1.0 beta | 2026 | current (on-device iPad rounds in progress) |
The full changelog is added at release.
still stuck?
Write to hello@softsystems.app with your system, your host and the plugin's version. If it crashed, attach the crash report.
Back to Cumulus