← All modules

@maru shared this instrument so you can build on it and use it in your DAW.

AvailableInstrument

Handpan

Nine tuned steel notes, with no extra tenth note.

About

A modelled handpan: a ring of tuned steel tone fields around a central ding, in seven real layouts from D Kurd to F Pygmy. Play it from the on-screen disc, a keyboard or MIDI.

The idea

A handpan note is a deliberately tuned object. The maker hammers each field until three partials line up at once: the fundamental, the octave and the compound fifth above that. That clean 1 : 2 : 3 stack is why a handpan sounds warm and sung rather than clangy. The shell's own higher modes, which nobody tunes, ring briefly at the attack and fade first, leaving the tuned core.

The ding in the centre is a dome, not a dimple. Its octave is a pair of partials a few cents apart, so a struck ding shimmers where a tone field does not.

Controls

  • Scale picks the layout: D Kurd 9, D Celtic Minor, D Hijaz, E Integral, F Pygmy, D Sabye or B Kurd 9.
  • Root Note transposes the whole layout; Base Pitch is the reference A the maker tuned to.
  • Note Map decides what happens to notes outside the layout. Snap to steel moves every key to the nearest field, like the real instrument. Free play lets each key ring at its own pitch.
  • Position is where the hand lands: the centre of the field gives the round fundamental, the shoulder brings the octave, fifth and shell forward.
  • Hardness runs from the pad of a thumb to a fingertip or nail. Playing harder also makes the strike harder, so quiet notes are genuinely softer in tone.
  • Strike Noise adds the scrape of skin on steel.
  • Ring, Damping and Body Size set how long and how freely the shell sounds, from a pan damped on the lap to one on a stand in a stairwell.
  • Width spreads the resonance in stereo; Release sets how gently a note is damped when you let go.
  • Fixed Velocity and Velocity pin strikes from the disc to one repeatable level.
  • Level sets the output.

Getting started

Start with D Kurd Steel, the default instrument. Celtic Dusk is soft and ambient, Hijaz Bazaar is struck out at the shoulder, Pygmy Lap is short and damped, Deep B Kurd is the low build, and Fingertip Rhythm plays the pan as a drum.

How it works.

Each note is a hand strike convolved with an impulse response synthesised for that exact note: three to fourteen milliseconds of low-passed noise with a leading click, driving a bank of exponentially-decaying sinusoids. The bank is where the instrument lives. A tone field's first three partials sit at exactly 1, 2 and 3 times the fundamental, because that is what the maker hammered them to, and only the modes above them, the shell's own, which nobody tunes, are inharmonic. The upper modes also die fastest, and that ordering is the shimmering attack: everything arrives at once, the top of the bank leaves within a second, and what remains is the tuned 1 : 2 : 3 core.

The ding gets a different bank, not a transposed one. It is a dome rather than a dimple, so its partials are lower and denser, and its octave is a PAIR of modes at 1.994 and 2.011 rather than a single one, a real asymmetry in a real dome. Rendering both and letting them interfere is what makes a struck ding shimmer and a struck tone field not, and it is the same mechanism modal-ir.ts uses for a gamelan's ombak rather than an amplitude modulation applied afterwards.

Strike position is applied to the modes before the impulse response is rendered, so it changes which partials exist rather than filtering the ones that do. The dimple at the centre of a field is the antinode of its tuned fundamental; the shoulder around it belongs to the shell. Two lobes blended across the bank express that: at the dimple the fundamental is full and the shell modes are down at a fifth of their weight, at the shoulder it inverts. Nothing is ever weighted to zero, because a hand has width and never lands on a mathematical point.

Velocity does two things, both physical. Level follows velocity squared, which is the repo's own perceptual curve. And a harder tap is a shorter contact, which is a wider excitation spectrum, so velocity is coupled into the hand's effective hardness, a quiet note is genuinely duller and not merely quieter. There is no knob to defeat that coupling, because there is no way to defeat it on the instrument. The exciter burst is drawn from a seeded generator forked by the hand setting, so a given touch always produces the same burst; Math.random has no place in this path.

Rendering an impulse response is a few hundred thousand sine evaluations, so they are cached per note and dropped wholesale whenever a parameter that changes the samples moves, scale, base pitch, position, ring, damping, size or width. A nine-note instrument fills its cache in nine strikes. Voices are capped at ten with oldest-first stealing. Each strike is a one-shot whose duration grows from 1.4 to 5.5 seconds with velocity, followed by the Release fade, with an eight-second resource cap.

Which note a key plays is decided before any synthesis by the shared note remapper. In Scale quantises to the nearest field in the selected root-relative layout, including correct held-note release and collision handling; 12-TET passes the chromatic note through and lets the model build a matching field. Keyboard, MIDI, clips and the on-screen surfaces all use the same boundary.

What would you make with Handpan?

Describe what you want to make. Build it with the Studio agent.

Goes well with.

Prototype

Modelled bronze instruments with flexible tuning.

Prototype

A struck gong voice with a late shimmer.

Prototype

Convolution reverb: eight synthesized spaces, twenty-five real cabinets.