SILICONAntiques™
12 Nov 2026Mellt FM-1, Tant KS-2 and Tonnau WT-3 are out: version 1.0.0, free.Apple Silicon only for now; the universal build for Intel Macs is next.What I'm doing this week →
Silicon Antiques › Coming soon › Dwndwr
Coming soon · planned, not finished

Dwndwr

A drum machine where the sequencer is the source of desire.

dwndwr · Welsh for uproar · said DOON-door, the second part as a Scot says "door"

Our drums live in a sequencer, and the sequencer knows a great deal about each hit before it sounds: how hard it is, which step it came from, which other drums land with it. Dwndwr is built on that. It models the stroke, not a circuit, and nothing in it is trying to imitate anything that came before it.

The thinking

A hit is decided when the stick lands.

A drummer's stroke is committed at the moment of contact; everything after is physics. Traditional drum machines worked the other way round: the voice got a trigger and found out what happened by running.

When a Dwndwr drum is struck, it already holds everything the sound will need: not just how hard it was struck, by what, with what gesture, but also what the step says, the state of the kit, the seed for this exact note. The whole hit is worked out on its own sample, as a plan, and everything after is the drum reading it. It's the same plan on every bounce, so you can see what a step will do before it plays.

What hits and what rings.

Every struck sound is two things: something that puts energy in (a stick, a mallet, a hand, a brush) and something that rings (a head and shell, a bar, a bell). Between them is the contact: how long the stick stays in contact, how hard it is, where it lands. A short, hard contact rings everything; a long, soft one rings the low end. The whole chain, from energy to vibrations, is a series of timbral levers.

Keep the two halves apart and any striker can hit any body. A brush on a bell, a recorded hand-clap striking a snare: routings, not new engines. So Dwndwr has six bodies (a set of modes, a clang of FM operators, a plucked skin, a wave read from a table, a burst of air, a recording) and one way of striking all of them.

In a drum, the envelope is the drum.

When you’re first learning to program drum and percussion sounds you are often told that the envelope is the drum. This is because a drum has no steady tone. A snare is the order things happen in: a snap, then a pitched body falling in pitch and brightness, then a noise tail with its own colour. Move those three a few milliseconds against each other and you have a different drum; change the oscillator and keep the timing and you often have the same one. So, the envelopes are the main tone controls, each a list of segments with its own curve and its own clock: the snap in milliseconds, the body in beats.

Pitch works the same way. A drum's pitch is a family of frequencies and how they lean on each other. Tune it and the family moves together: a tom up a fifth is the same tom, higher. Stretch the family and a drum becomes a bar, then a bell.

Sixteen versions, and a rule for which one plays.

The old complaint about digital hi-hats is that they're the same every time. The usual cure is randomness, but the ear hears variation with a pattern as feel and random jitter as sloppiness. So every Dwndwr drum has sixteen variations and a rule for which one plays: in turn, never the same twice within a few hits, by place in the bar, by accent.

Noise is made the same way. It isn't a hiss you open a gate on; it's a short burst made for each hit from the song's seed, different every time if you want and exactly the same again when you ask. The take you liked comes back, because it was number seven and it's still number seven tomorrow.

Rules, not edits.

This is where the sequencer earns its keep. Fills, builds and ghost notes are often where programmed drums fall down, and they're all conditional. Rolls, ratchets and flams make hits, each on its own sample, and each arrives knowing it's "the fourth of eight" or "the grace before step nine", so the drum can play it differently, not just quieter. Above that sit rules: softer on the off-beats unless it's the last bar; the grace note a lighter stroke than the main one. You draw the rule once instead of hand-editing sixty-four steps, and it bounces exactly.

Velocity gets the same treatment. Hit harder and five things change, not one: it gets louder, contact time decreases, the strike moves nearer the centre, and gains a higher starting pitch and a longer rattle, each along a curve you can see. Pick Stick or Brush and the pad becomes a different hand.

And the kit is one instrument. A choke can be a hand on the cymbal rather than a cut. The kit keeps a map of where every drum's pitch sits, and one button moves them out of each other's way. Twelve rows play drums. The thirteenth plays the kit.

The engineering

A hit is a function of the strike.

OK, this next bit might be a bit nerdy for some of you, but, I know not all of you. The idea above is that a hit is decided when the stick lands. As engineering, that is a rule about what the sound is allowed to depend on:

y[n] = F(R, n − n_0),    n_0 ≤ n < n_end

y[n] is one drum's output at sample n. R is the strike record: how hard and with what gesture, what the step says, which drums land on the same sample, the seed and the variation. n_0 is the sample the hit lands on, F is the drum, and n_end is the sample on which it falls silent, which is itself worked out from R.

If that was too nerdy, try this. Read the equation for what isn't in it. There is no buffer size, no wall clock and no count of how many times play has been pressed. Three properties follow, and a machine can check each of them.

Move the hit by d samples and you get the same samples, d later. Render the same song twice, subtract, and the difference isn't small. It is zero:

n_0 → n_0 + d    gives    y[n] → y[n − d]
y_a[n] − y_b[n] = 0    for every n

d is any whole number of samples; y_a and y_b are two renders of one song. Zero matters more than small because of what it allows next. Change one thing, render again, and the difference between the two files is the effect of that one thing. With a tolerance every difference has to be argued over. With an identity it has a cause or it is a fault. And because the end of every hit comes out of the plan, the work a pattern will ask for can be added up before the pattern plays: for each hit, the count of samples from the one it lands on to the one it ends on.

Again, if that’s too mathsy - The design refuses four things on these grounds.

A random draw per hit. It would put something in the sound that isn't in the strike record.

Finding things out by looking. The economical way to run an envelope is a state machine inspected once per buffer. A boundary found like that waits for the next buffer edge, and at a buffer of 512 samples that can be about a hundredth of a second late. A snare is a snap, a body and a tail a few milliseconds apart, so it would be a different snare at every buffer size. Here every boundary is a sample number computed at the strike.

Rendering ahead. If the hit is a known function, why not compute all of it at the strike and play it back? Because a drum can be told something after it has started: pressure on a ringing pad, a hand on a cymbal, a value locked to a later step. Each must be answered on its own sample. So the plan is kept as a description (boundaries, weights, coefficients), not as audio, and a later event makes a new plan from its own sample on, continuing from wherever the old one had reached.

Looking ahead. Holding a played note back for a moment would let the drum see what follows it. That is latency, and a played note sounds on the sample it arrived on.

One thing a plan can settle, and a circuit left running can't, is where two drums are in their cycles on the sample they share. Two equal partials at one frequency, a kick and a sub, add to

A = 2 × |cos(Δ / 2)|

A is the level of the pair against one of them alone, and Δ is the difference between the phases they start on. Δ = 0 gives 2, which is +6 dB. Δ = 120° gives 1, as if one drum were missing. Δ = 180° gives silence, and no equaliser afterwards can put back a fundamental that cancelled at the source. In plain English, in Dwndwr the starting phase is in the plan: left to run, fixed, or set against the lowest drum landing on the same sample.

A hit's place is a whole number.

If you’ve got this far you’ll be getting a feel for how much I love the intersection between Maths and Music. But they are not always perfect bedfellows. Musical time has thirds, sevenths and swing in it, and a decimal number of beats can't hold a third exactly. The tempting answer in a drum machine is an allowance: treat two positions as equal when they differ by less than a billionth of a beat. An allowance is a place where two machines can disagree and here at Silicon Antiques we’re all about harmony and reconciliation, so in Dwndwr a hit's place is a whole number instead.

The whole number counts units, and there are 80,640 of them in a beat. It is an odd-looking number, chosen for what divides into it: it halves eight times over, and it takes thirds, fifths and sevenths without a remainder.

The shortest step a track can have is one sixteenth of a beat (a sixty-fourth note), 5,040 units, and 5,040 divides by every whole number from 1 to 8. So that step cut into as many as eight ratchets lands on whole units, sevenths included (720 each), and so does a 240th of it (21 units), the size nudges and grooves are stored in. The same holds at every track speed. I looked at a coarser unit with the awkward divisions carried beside it as fractions, which is smaller numbers and two kinds of arithmetic, and at exact fractions everywhere, which is slower and more to prove. One unit won. Swing is the exception: a swung step's delay is kept as the exact fraction it already is and rounded by the same rule. The rules are absolute, but musical value trumps everything.

Another nerdy bit.

A place becomes a sample once, and by one rule: multiply the place by the sample rate, divide by the tempo, and round to the nearest sample, an exact tie going to the later one. The count runs from the start of a song at one tempo. The tempo is held as a whole number too, in ten-thousandths of a beat per minute, so the sum is done in whole numbers from end to end. The division is exact and the answer is the same on every machine.

At 48 kHz and 120 BPM an ordinary sixteenth-note step is 6,000 samples long, and one unit is less than a third of a sample: the musical grid is finer than the grid it is rounded onto. Cut that step into seven ratchets and the rule puts them on samples

0, 857, 1714, 2571, 3429, 4286, 5143

The gaps are 857, 857, 857, 858, 857, 857. The 858 is right: the fifth hit belongs at 3,428.57. A counter that added a rounded 857 each time would put the seventh hit a sample early and the next step at 5,999. Each hit is worked out from its own place, never from the hit before it. Dwndwr does all this maths to make you tap your feet.

Audio arrives in buffers, and a buffer is a parcel, not a clock. When a hit falls part-way through a buffer, the buffer is cut at the hit: the samples before it come from the old state, those from it on from the new. The buffer's size then appears nowhere in the sound, and the rule the instrument is held to is that renders at buffers of 32, 64, 512 and 1,024 samples are the same file, bit for bit. Starting each hit at the next buffer edge instead makes it late by anything up to a whole buffer: at 48 kHz, under a millisecond at the smallest of those sizes and over twenty at the largest. A flam's grace note sits 12 ms ahead of its hit by default; at the largest buffer the two strokes can land on the same edge, and the flam is gone.

Time inside a step is held to the same standard. A gesture curve drawn on a step is read at

x[n] = (m[n] − m_hit) / span

m[n] is the musical position of sample n, from the same clock that places the hits. m_hit is where the hit belongs after swing and nudge, and span is the gesture's length, from one step to one bar. x runs from 0 at the hit to 1 at the end of the span, and the curve is read at x for every sample, one value per sample, so it stretches with the tempo and leans with the swing. Dwndwr leaves room for emotion without sacrificing precision. It shapes the sound and never moves a hit.

The stroke as a product.

The next thought is easy to articulate. A struck sound is two signals. One is the excitation e: the force the stick puts in, there is a few milliseconds of it. The other is the body's impulse response h: what the body would do if it were hit with a single-sample click. If the body is linear, what you hear is the one convolved with the other, and in frequency we call that a product:

y[n] = Σ_m e[m] × h[n − m]
Y(f) = E(f) × H(f)

y is the output, the sum runs over the samples m of the excitation, and E, H and Y are the spectra of e, h and y at frequency f. The product is the reason we keep the halves apart. E and H are designed separately and every pairing works, so a number S of strikers and six bodies are S + 6 things to make, not 6 × S, and a recorded hand-clap is an e like any other. The alternative I considered was a strike stage inside each engine, which is the 6 × S. This picture is exact for the two bodies that are linear resonators, the set of modes and the loop. The others take the strike in their own ways; the operators take it in the phase, as described below.

The contact is a statement about E. Take the force to be a smooth pulse τ seconds long, a half sine:

e(t) = sin(π t / τ),    0 ≤ t ≤ τ
|E(f)| = (2τ / π) × |cos(π f τ)| / |1 − (2 f τ)^2|

t is time and τ the contact time. The spectrum is flat at the bottom, 3 dB down at f = 0.59/τ, at half amplitude at 0.82/τ, reaches its lowest null at 1.5/τ and above that falls as 1/f^2. At 48 kHz a contact of 1 ms is 48 samples and the 3 dB point is 590 Hz; a contact of a quarter of a millisecond is 12 samples and the point is 2.4 kHz. Modes above it are still in H, but E gives them little to ring with. Again in normal English - A short, hard contact rings everything; a long, soft one rings the low end. The half sine is the family of pulse I mean, not a final shape. Hardness is the rest of it: how sharp the pulse's corners are at a given length. A pulse whose k-th derivative jumps falls as 1/f^(k+1), so rounder corners mean a steeper fall.

Where the stick lands decides how E is shared out among the modes. Each mode has a shape, the pattern in which the body moves when that mode rings alone, and a strike drives a mode in proportion to how far that mode moves at the point struck. Call that point x_s. Most modes have places that stay still while the rest moves, and a strike on one of those places gives that mode nothing. Strike a string exactly at its middle and every even-numbered harmonic is missing. Strike a round head dead centre and every mode with a still line running across the head gets nothing; what is left is a small family of circular modes, and that is the thud of a centre hit. Move outwards and the others come in. On the modal body, position is a set of weights per mode read from a node map, drawn or preset, and this is the physics a map is drawn from. On the loop, the operators and the wave it is a tilt.

Once more in less nerdy language, a harder stroke changes three of these at once: the size of e, the length τ and the point x_s. That is the subject of the final section.

A set of modes, in numbers.

The body's half of the product has a form of its own. A struck object rings at a set of frequencies, each dying at its own rate, so what the body does when struck is a sum: one fading sine for each mode. A mode needs only a handful of numbers: its frequency, its level (the weight from the strike), the phase it starts on, and how fast it dies. That last one is a factor a hair below one that the mode's level is multiplied by on every sample; call it r. A few lists of numbers are the whole body, and every number can be tuned, routed to and planned. A recording of the same drum offers none of that, which is why the set of modes exists beside the recording.

Decay is easier to think of as a time. T60 is how long a mode takes to fall by 60 dB, to a thousandth of its level, and fs is the sample rate:

r = 10^(−3 / (T60 × fs))
B = ln(1000) / (π × T60) ≈ 2.2 / T60

T60 is in seconds and B is the width of the mode's resonance in hertz, measured 3 dB down. At 48 kHz a mode that rings for one second has r = 10^(−3/48,000) = 0.999856 and is 2.2 Hz wide. One that rings for a twentieth of a second has r = 0.997126 and is 44 Hz wide. The second line is a law, not a choice: a mode can't be both short and sharply tuned, which is why a tight drum has less pitch than a ringing one. It is also why decay reads as material: listeners tell metal from wood chiefly by how fast each frequency dies (Klatzky, Pai and Krotkov, 2000; Giordano and McAdams, 2006). Out of the maths and back to the music; this means that each mode's decay is a control in its own right, and "brighter" can mean that the upper modes last longer.

Each mode is one two-pole resonator, the smallest filter that can ring. There is more than one way to run it, and I haven't closed the choice between them. With nothing moving, the candidates ring the same way. They part company when the pitch moves while the mode rings, and in a drum it does, because a pitch envelope moves every mode on every sample. One form keeps the mode as a point going round a circle and shrinks the circle by exactly r on each sample, whatever the pitch is doing. The level of a ringing mode is then a matter of the level it started at and its decay alone. The other form stores the last two outputs, and what level they stand for depends on the pitch.

Whichever form carries the mode, that property is what I ask of it, because the plan ends each mode by arithmetic. Knowing the level a mode starts at and how fast it dies, the strike works out the sample on which it will have fallen below a set floor, and stops it there: at 48 kHz a mode with a T60 of half a second that begins 40 dB above the floor is stopped a third of a second in. A mode that would begin below the floor is never started. That is one small sum per mode at the strike and nothing per sample afterwards.

Pitch is kept as ratios, not hertz:

f_k = f_0 × ρ_k
harmonic:     ρ = 1, 2, 3, 4, ...
round head:   ρ = 1, 1.59, 2.14, 2.30, 2.65, ...
uniform bar:  ρ = 1, 2.76, 5.40, 8.93, ...

f_0 is the fundamental and ρ_k the ratio of mode k to it; the second and third rows are the textbook sets for an ideal membrane and an ideal bar. Tune f_0 and the family moves together while every T60 stays put: the same tom, higher. Repitch a recording by a factor c and every frequency is multiplied by c and every decay divided by it. Up a fifth, c = 3/2, each mode rings two thirds as long: a smaller drum. Both are useful, and so in Dwndwr each body has a switch for which it does.

A loop for a skin, operators for a clang.

Two of the six bodies are taken whole from instruments I had already built, Tant KS-2 and Mellt FM-1, and each brings its own mathematics.

The skin is a loop: a short delay line whose output goes back to its input, losing a little on each trip round (Karplus and Strong, 1983). Think of a tape loop exactly one cycle long. Only what fits the loop a whole number of times survives, so in the terms of the section above a loop is a set of modes at 1, 2, 3 and so on, every one dying at the same rate. At 48 kHz a 100 Hz loop holds every harmonic of 100 Hz up to half the sample rate, 240 of them, for the work of one delay line. It can't ring at a bar's ratios, which is why there is a set of modes as well; and a bank of loops, one for each partial, would ring at every harmonic of every partial, dense, muddy and expensive.

Two things in the plain loop have to be designed, not accepted. One is tuning. A loop a whole number of samples long can only play the pitches whole numbers allow, and up high the steps between them are coarse: around 2 kHz at 48 kHz, one sample more or less is most of a semitone. So the loop is read between samples, through a one-pole allpass while the pitch is steady, and the fraction counts as part of the loop's length (Jaffe and Smith, 1983). The other is decay. The original loop had no control over its loss. The loss came from averaging each sample with its neighbour, which takes a little off the top on every trip and takes more the higher the harmonic. A loop makes as many trips a second as its pitch, so a high note dies quickly and a low one hardly at all: at 48 kHz the fundamental lasts about 3 seconds at 1 kHz and most of an hour at 100 Hz, where drums live. So in the loop Dwndwr takes from Tant, the pitch and the T60 of the fundamental are solved for exactly, and a separate low-pass in the loop sets how much sooner the upper harmonics go.

The clang is frequency modulation (Chowning, 1973): one sine, the carrier, with its phase pushed about by another, the modulator. What comes out is not two tones but a row of partials, spaced the modulator's frequency apart on either side of the carrier. How many of them matter depends on how far the phase is pushed, a quantity called the index: about the index plus one on each side carry nearly all the energy. When the two frequencies aren't in a ratio of small whole numbers the row is inharmonic: a clang. In the engine inherited from Mellt a modulator at full level puts nearly all the energy in the 14 partials either side.

For a drum the point is that the index isn't a setting. It is an envelope, and as it falls the spectrum collapses from that wide row to a single sine: a filter sweep with no filter in it. The strike enters the same way, by preference. Push a small burst into a carrier's phase and what comes out is, near enough, the tone plus the strike multiplied by the tone: the strike's own spectrum, moved up and down by the carrier's frequency, sitting on the tone for as long as the stick does and gone when it leaves.

An envelope is a list of segments.

A drum has no steady state for an envelope to rest at, so a shape with a fixed set of stages built round a sustain is the wrong container. Each of the three envelopes is a list of up to eight segments, and a segment is three choices: a level to arrive at, a curve to arrive by, and a length on a clock of its own. The alternatives were one envelope for each of the five stages of the voice, or the same lists with the classic four-stage presets and nothing made for percussion. The competition was to see which approach brought the most musical value. Three lists with roles won.

Every boundary between segments is a sample number computed at the strike from the hit's own sample and the lengths. None is found by looking. A length in milliseconds is a fixed count: m milliseconds are 48 m samples at 48 kHz, whatever the tempo. A length in beats moves with the tempo: a sixteenth note is 6,000 samples at 120 BPM and 8,000 at 90. Put the snap on the one clock and the body on the other, and a change of tempo resizes the body and leaves the snap alone. The stick doesn't slow down when the song does. The games you can play here will keep you up way past bedtime.

The curve of a segment is one setting that runs from one kind of bend, through a straight line, to the opposite bend. At one end the level moves fast and then slow, the way a capacitor approaches its target. At the other it moves slow and then fast. In the middle it is a ruler. That is the family I mean, not the final formula.

The setting matters because two decays of the same length are not the same drum. An exponential decay falls at a constant rate in decibels, so half-way through its time it is half-way down. A straight line is only 6 dB down at half-way, hangs on almost to the end, and then drops to nothing. Same peak, same length, and the straight line carries more than four times the energy. Most acoustic drums are neither; they fall fast and then slowly, which a list does with two segments.

The same arithmetic says where a drum's energy is. A drum that dies away exponentially over a full second has spent half its energy in the first twentieth of a second, and 99 % of it in a third of a second. The verdict on a drum is formed where a few milliseconds are a large part of the evidence, and that is why the envelopes are the main tone controls.

Pitch gets the same treatment. A kick is a sine whose frequency falls from the pitch at the strike to the pitch it settles on, for instance quickly at first and then ever more slowly. Because the plan holds the envelope as a formula, where the sine is in its cycle at any sample is a formula too, which is what lets a starting phase be chosen and kept. And the drop adds a fixed number of extra cycles in all, its depth multiplied by its time: one number that depth and speed trade against each other.

Noise with an address, and a counter for sixteen.

Half of a kit is noise. In an analog machine noise is a source: always running, never the same twice, heard when a gate opens. This means that there are some use cases for which analog drum voices will always sound better. But those are not the use cases Dwndwr is solving for. You see, digital noise is a sequence, and a sequence has an address.

s = H(S, id, v)
u[n] = G(s, n − n_0),    0 ≤ n − n_0 < L

S is the song's seed, id the identity of the note, and v the variation, a whole number from 1 to 16. H is a fixed function that mixes them into one seed s. G is the generator, u the burst, n_0 the hit's sample and L the burst's length. What H is given is the whole design. There is no clock among its arguments and no count of passes, so the same hit in the same song is the same burst, and the take you liked has a number. The alternative was a generator left running behind a filter and an envelope. That is the sort of thinking we are all about avoiding. We didn’t start with a model of an analog process, we started with a musical ambition and we looked to deliver that ambition through mathematics. A burst has two things a running generator lacks: an end on a known sample, and a length that can be musical. A sixteenth-note hat is 6,000 samples at 120 BPM and 48 kHz, and 8,000 at 90.

The burst is made to a recipe (a colour, a set of formants or a comb, a few detuned partials for metal, a length, a shape), and the recipe, not the audio, is what a kit stores. Two bursts from one seed are identical. Two from different seeds are as unrelated as their length allows, and the longer the burst, the less they have in common: for fifty milliseconds of white noise, about two parts in a hundred. So stereo width is a seed offset between left and right, and mono comes back exactly when the offset is zero.

Each of the sixteen variations is a seed in this sense. It reaches the burst, the choice of strike, and a spread in pitch, level and contact. Each of those has a set value and a declared width, and the seed picks a point inside the width. The widths are written into the patch, so the spread is a property of the sound, not of the moment.

That leaves the question of which of the sixteen plays. The usual answer is a random draw, and it fails at its own job. Draw sixteen hats at random from sixteen versions and the odds are better than three in five that some version plays twice running, so most bars still contain the repeat the versions were there to remove, and nothing you heard can be asked for again.

The rule used here has no random term. Which version a hit plays is settled by three things: the kind of rule chosen in the patch, what the hit knows about itself (its place in the bar, its accent, its rank among the hits landing with it, that it is the fourth of eight), and a counter kept by the track, which moves on by a fixed step at each hit and wraps round at sixteen. With a step of one the versions play in turn. Give the counter any odd step and, since an odd number shares no factor with 16, it visits all sixteen values before one returns: no version within fifteen hits of itself, in an order that isn't 1, 2, 3. "Never the same twice within N hits" is the general statement, a bound of N in place of fifteen. The counter returns to zero on the bar or on the phrase, so the same bar plays the same sequence.

That last point is the reason for a rule at all. The evidence I have is about timing, not timbre: in listening tests random jitter was rated below both played and quantised grooves (Senn and others). Deviation with a pattern is heard as feel and deviation without one as error. I've applied that to which version plays as well as to when it plays.

Velocity is a path, not a gain.

MIDI velocity is one number from 1 to 127, and the simplest thing to do with it is multiply: hit harder, and the whole drum is turned up. The trouble is what that leaves alone. Brightness is a matter of how the partials stand against one another, and if every partial is multiplied by the same amount, the balance doesn't move. The ear knows what a sound is that changes in level and not in spectrum. It is the same event further away, or a fader. That is why a pad wired this way feels like a volume knob.

A stroke isn't one number. In the product of exciter and body, a harder stroke raises the size of e, shortens the contact τ and moves the strike point; beyond the product it raises the pitch the drum starts from and the share of noise. So the velocity, v, goes through a fan, one curve for each destination:

p_j = M_j(v),    j = level, contact, position,
                     pitch drop, noise share

p_j is the value sent to destination j and M_j is a curve, drawn and stored, read at v. Taken together the five curves are one path through a space of five dimensions, and a fan is that path saved under a name. The plain multiply is the special case in which the path runs along a single axis. And yes, spooky stuff lives in those other dimensions. A ghost note is then a different point on the path (a longer contact, further from the centre, less drop) and not a quiet copy of an accent, and a flam's grace note can be a lighter stroke in the same sense. A different hand is a different path: Stick and Brush are two fans read by the same velocity.

The curves shouldn't share a shape. Level wants to rise smoothly. Contact wants to fall fast and then flatten, and there is physics for that. Hertz's law of contact (1882) treats two elastic solids pressed together, a hard mallet on a bar, say, as a spring that stiffens the further it is squeezed. An ordinary spring would hold the striker for the same length of time however hard you hit: the volume knob again. Hertz's spring lets go sooner the faster the striker lands, but not by much: doubling the speed shortens the contact by 13 %, and halving the contact takes 32 times the speed. Across a pad's range that is a curve that falls fast and then flattens, and a striker that stiffens faster as it is squeezed has a steeper curve. Pitch has its reason too: a head pushed out of its plane is under more tension, by an amount that grows as the square of the distance, so a hard stroke starts sharp and settles.

These are musical reasons why Dwndwr has a family of curves, not formulas it computes. The curves are drawn, they are yours to redraw, and what is fixed is the principle: one stroke in, several things out, each by its own law.

What it does

What Dwndwr does.

Decided features only. The rest is below.

  • Twelve drum tracks, and a thirteenth row that changes kit-wide settings step by step.
  • Sixteen patterns, up to 128 steps per track, each track with its own length, speed, direction and swing.
  • Six kinds of drum body, from an FM clang to a plucked skin to your own samples, each struck by a stick, a mallet or a sample.
  • Three envelopes per drum, Strike, Body and Shape, timed in milliseconds or in beats.
  • Sixteen variations of every drum, picked by a rule, not by dice.
  • Per step: chance, step rules, ratchets, flams, locked values and gesture curves played inside the step.
  • A small space and a saturator inside each drum, both off until you turn them on.
  • Eight scenes with a morph between two, and a song mode.
  • Load a sample on any pad, or chop a break by grid, by its hits or by hand and pick a slice for each step.
  • Grooves from a named library, per track, with separate timing and accent amounts; groove files in and out as MIDI.
  • Dwndwr MIDI FX: the same sequencer with no sound, to play your other drums.
Still being decided

On the bench.

How you'll browse, save and mix kits and presets isn't designed yet. Nor is it settled whether Dwndwr will pull a groove out of a recorded break. And the idea I like most, a drum that reads what the pattern plays next so that a tail ends exactly as the next hit lands, at any tempo, comes after the rest. Until it does, a tail ends on the length you set, and the panel says which is in force.

What would you want from a drum machine, or change in this one? Email me: [email protected]. When the plan moves, the Workbench says so.

All five on the Coming soon page