Early Preview · Kiwisonic, Kiwisynth and Kiwipulse are free during early preview. The shape of all three is still being figured out, and feedback is what drives them forward.

Machines

All docs / Kiwipulse / Machines

Kiwipulse manual

Machines

Every drum in Kiwipulse is built from one machine — a self-contained synthesis engine. You pick a machine for a track, dial its parameters, and save the result as a Sound. There is no separate "instrument editor": a Sound IS a machine choice plus that machine's parameter values.

So "design a kick from scratch" means: choose a machine that can make a kick, then shape it with its knobs, p-locks, LFOs and the shared voice chain.

Start here: the Drum machine

Drum covers the whole kit on its own. Instead of picking a machine per sound, you pick a hit and a body — a beater into a sine body is a kick, wires into a shell is a snare, metallic noise into nothing is a hat. It is the machine the Bench is built around, and the one to reach for first.

The machines

There are three.

Machine Doc Best at Pitched?
**Drum** **[drum.md](drum.md)** **Kicks, snares, hats, claps, toms, rims, cymbals — the whole kit** yes
Sample [sample.md](sample.md) Any recorded one-shot or loop yes
Granular [granular.md](granular.md) Textures, clouds, smears, beat-repeat yes

Bass, stabs and acid are Drum too. They used to need a separate subtractive machine; now the wavetable body covers them — scan it to a saw, open its detune to add the second oscillator, and shape it with the voice chain's filter. That is what a Reese is. The advantage of it being a body rather than its own machine: it p-locks, takes an LFO and answers to a macro like everything else, and you edit it as a drawing.

Where the old machines went

Kiwipulse used to ship a machine per drum: four kicks, four snares, and single-purpose Clap, Noise, Modal, Cymbal, FM, Karplus and Wavetable engines. All of them are Drum now — each one turned out to be a particular hit meeting a particular body, which is the pair Drum lets you choose freely:

Was Is now
Kick engines body = **Sine body**, hit = a beater **Click** or **Knock**
Snare engines body = **Shell**, hit = **Noise burst**
Clap hit = **Clap**
Noise hit = **Noise burst**
Modal body = **Modal**
Cymbal body = **Metal**
Karplus body = **String**
FM body = **FM**
Wavetable body = **Wave**

This is not a capability cut — it is the same synthesis with the pairing opened up, so you can put a clap into a metal body, or a beater into a string, which the old lineup could not express at all. Projects saved with the old machines will not load; Kiwipulse tells you which machine a sound used and what to rebuild it as.

What every voice shares

These apply on top of any machine, so they aren't repeated in each doc.

The voice chain

After the machine renders, every voice runs a lean post-stage — a Syntakt-style per-voice insert. Its params are appended to the machine's own params, so p-locks, LFOs and the UI treat them as just more knobs. At their defaults the whole chain is a transparent passthrough; each stage switches on only when you move it off its neutral value.

Signal order through the chain:

transient shaper → amp envelope (VCA) → drive → bitcrush → sample-rate reduction → filter 1 → filter 2 → room
Param Range Default What it does
`ts_attack` -1 … 1 0 Boost (+) or cut (−) the onset transient
`ts_sustain` -1 … 1 0 Boost (+) or cut (−) the body/tail
`flt_cutoff` 20 … 20000 Hz 20000 Filter 1 cutoff (bypassed when wide open)
`flt_reso` 0 … 1 0 Filter 1 resonance
`flt_type` 0 … 2 0 Filter 1 mode: 0 = low-pass, 1 = high-pass, 2 = band-pass
`amp_attack` 0 … 2 s 0 AHD amp-envelope attack (0 = instant)
`amp_hold` 0 … 2 s 2 Hold at full level (2 ≈ always held → no decay)
`amp_decay` 0 … 8 s 8 Amp-envelope decay (8 ≈ no decay over a hit)
`amp_sync` off / on off Tempo-sync the amp envelope's attack & decay (see [Tempo-synced envelopes](#tempo-synced-envelopes))
`amp_atk_div` 1/32 … 1/1 1/16 Attack as a musical division (used when `amp_sync` is on)
`amp_dec_div` 1/32 … 1/1 1/8 Decay as a musical division (used when `amp_sync` is on)
`fx_drive` 1 … 16 1 Drive amount (1 = unity = off)
`fx_shape` 0 … 2 0 Drive curve: 0 = cubic soft-clip, 1 = tanh, 2 = sine fold
`fx_crush` 1 … 16 bits 16 Bit-depth reduction (16 = off)
`fx_srr` 0 … 1 0 Sample-rate reduction (sample-and-hold; 0 = off)
`flt2_cutoff` 20 … 20000 Hz 20000 Filter 2 cutoff (a second filter in series)
`flt2_reso` 0 … 1 0 Filter 2 resonance
`flt2_type` 0 … 2 0 Filter 2 mode (same as filter 1)
`space_size` 0 … 1 0.35 Room size — sets the tail's *length*
`space_mix` 0 … 1 0 How much room you hear (0 = off, exactly bypassed)
`space_damp` 0 … 1 0.5 How fast the top end leaves the tail

This gives a machine that has no filter of its own (e.g. the kick) two filters anyway, an extra amp VCA to re-shape any machine's envelope, and per-voice grit (drive + lo-fi) — all modulatable. The amp envelope multiplies on top of the machine's own internal envelope, so it shapes whatever the machine produces. The two filters sit after the drive/lo-fi block so they can tame the harmonics those stages add.

**Lo-fi trade-off:** drive and bitcrush run at the native sample rate with no oversampling (the per-voice cost would be too high), so hard drive — the sine fold most of all — will alias. That grit is part of the lo-fi character here; back the drive off if you want the harmonics without the aliasing.

The room

Every voice has its own room. It is not a shared send, so the space belongs to the drum: it locks per hit like anything else, and one strike can land in a bigger space than the one before it.

The ROOM tile at the bottom of the drum draws that room's decay tail, and the tail is the control. Three handles sit on it, each naming itself when you hover it.

  • mix, at the left edge, is the tail's height: how much room you hear. Turned all the way down the room is off and the voice passes through untouched, which is the default. With the room off there is nothing to grab, so clicking anywhere in the tile switches it on.
  • size, where the tail meets the floor, is how long the room rings. Drag it right for a bigger space. Even the biggest is short by design, because this is a drum's own space rather than a hall.
  • damp, halfway along the curve, is how fast the top leaves. Pull it down and the tail goes dark and shortens with it.

Time runs left to right, compressed as it goes. The shortest tail the room can make is about a fortieth of the longest, and an even axis would pile most of the useful settings against the left edge.

Right-click a handle to type its value.

Tempo-synced LFOs

An LFO's rate can lock to the project tempo — a musical division instead of Hz — so its sweep lines up with the grid and keeps its feel at any BPM. You set it on the LFO chip that hangs off whatever handle you're modulating (see Modulation). Divisions, shortest → longest:

1/32 · 1/16T · 1/16 · 1/16. · 1/8T · 1/8 · 1/8. · 1/4 · 1/2 · 1/1 (T = triplet, . = dotted; 1/4 = one beat)

Pitch

A tuned body rings at a pitch — its tune — which you set on the picture itself: the landing line where a pitch fall comes to rest, or the body's own handle. A Drum whose body is No body — a hat, a clap, a shaker — has no pitch to set, because nothing rings. That is the same rule, not an exception.

Presets

Two levels of factory presets, both drawn from the design recipes in these docs:

  • Whole sound — the PRESETS ▾ button on the drum's header loads a complete sound for the current machine in one click (Drum offers a kick, a snare, a hat, a tom, a rim and more — the whole kit from one machine). It resets the sound to the machine's defaults and applies the recipe, so you get the same result every time — then dial from there. A loaded sample is kept, so Sample presets reshape the envelope and lo-fi without losing your audio. The list adapts to the machine.
  • Single card — each card on the Bench (the HIT / BODY halves, the sampling machines' tone and grain tiles, the AMP envelope, and the shared chain cards) carries its own small menu that changes only that card's parameters. Pick Gong on a Drum's BODY and only the body changes, leaving the hit alone. The per-machine lists adapt; the shared chain cards offer the same presets everywhere.

For the full guide to both preset layers and the kit library (save / browse / tag / load / new kit), see Presets & kits.

Modulation (also shared)

Every parameter listed in these docs — machine params and the chain params — is fully p-lockable per hit, can be an LFO destination (2 LFOs/track), and can be a performance macro target. On top of fixed p-locks, any parameter can carry a breathe — a randomize-range spread that re-rolls every pass, the living jitter that keeps a groove from sounding stamped out. And on the Bench's velocity strip, any parameter can answer to how hard the hit lands (velocity → timbre).

All of these sum into the same value the machine reads, so an LFO, a macro, a p-lock and a breathe on one parameter simply add up. The static engine is described here; how you animate it is covered in Per-hit sound design (p-locks and breathe), Modulation (LFOs) and Macros.