Early Preview · Kiwisonic, Kiwisynth, Kiwipulse and Kiwibass are free during early preview. Their shape 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 modulation treat them as just more params. 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

The chain row, under the drum, is these stages. It holds one picture per stage, in the order above, and it only shows the stages this drum is using. A stage sitting at its neutral value is doing nothing to the sound, so it is not drawn — which is why a plain kick has an empty chain row and nothing to read. The + at the end of the row lists the stages that are not in use; pick one and it appears, already doing something you can hear. Set a stage back to neutral and it leaves the row again.

Each stage draws what it does rather than naming its parameters:

  • TRANSIENT — one hit, with the strike lifted or ducked and the body lifted or ducked, drawn over a ghost of the same hit left alone. Drag the onset, drag the tail.
  • AMP — the envelope's own shape: a ramp up, a flat top, a fall away. Drag the corners for attack, hold and decay. The pill says seconds or tempo; on tempo, the attack and decay are musical divisions and the readout names them. Hold is never tempo-synced.
  • DRIVE — the transfer curve on the left (how the drive bends the signal, with its shape on a pill), and a test tone on the right showing bit crush as coarser steps and rate reduction as wider plateaus. Drag the curve for drive; drag the right-hand picture for crush, or hold shift for rate.
  • FILTER — one curve for both filters, because they run in series and what you hear is the two together. Each filter in use has a corner on it: drag sideways for cutoff, up and down for resonance, and its pill steps low, high and band. A resonant band-pass rises above the line, which is what it does to the sound.
  • ROOM — the space this drum sits in, drawn as its decay tail.
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). Read when a hit starts, so a change reaches the next hit
`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 = off; the curve fades in over the first quarter above 1)
`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

A change made while a hit is ringing, from a macro, host automation or a drag, glides to its new value over about 20 ms instead of jumping, so turning a control mid-note does not click. A new hit and its p-locks start exactly on their values.

Velocity sets a hit's level. The drive and the bit crush treat every hit as if it were played at full velocity, so a soft hit on a driven sound is quieter with the same grit. To make a harder hit distort more, route velocity to fx_drive on the velocity strip.

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 in the chain row 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 — and with it off the tile is not in the row at all. Add it back from the + at the end of the row.
  • 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.

The tail dies away at one even rate, and a room rings as long at 96 kHz as at 44.1 kHz.

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.