parry

20 HP · two patches fight for the mix

Every rising edge on a HIT gate is an attack. The other side's sound freezes, shakes and loses life, and grows crunchier as it falls. Strike just before the other side and theirs glances off.

The PARRY panel: a fighter in a stance in gold dots on black, mirrored so the two face each other across the middle, their fists almost touching under a fighting game's HUD. Across the top under the name, two life bars of sixteen leaning cells in gold outlines lean in toward a round KO badge, with 1P and 2P printed under their outer ends and two small diamonds under each bar; along the foot, two super meters of eight cells in gold outlines. White labels for the jacks 1P IN, 2P IN, 1P HIT and 2P HIT, the big knob DAMAGE, the small knobs 1P POWER, 2P POWER, WINDOW and IMPACT, the RULES switch between STUN and HEAL, the outputs 1P LIFE, 2P LIFE, PARRY, KO, OUT L and OUT R, and the FIGHT button in a white ring. parry at the top, daylight noise at the bottom.

Turn a knob: drag it, roll the wheel over it or use the arrow keys; a double click puts it back. Press FIGHT for a new match, and flip RULES between STUN and HEAL.

Everything but the spoken lines is made in the page as you listen. 1P sits left of the middle and 2P right; headphones help.

example patches

The sound and the lights here are PARRY's own engine: the module's firmware, ported to the page and checked against it sample for sample. The drums, the bass, the arpeggio, the pad and the voices are stand-ins for the rest of a rack.

Two patches, one fight

Each side gets a patch and a gate, and the gate's rising edges are its attacks: a kick and snare's triggers, a sequencer's accents, an envelope follower on a voice.

Hits

An attack lands at once. The other side's sound freezes for a few frames, the last instant held as it was, shaking, then jumps back to live; it dips and swells back over a tenth of a second; and it loses life, shown red at the end of its bar for a moment. The lower its life, the harder it's driven, the fewer bits it keeps and the quieter it gets.

Two edges within 3 ms of each other, two sequencers on one clock, trade: both land.

Parries and the super

If a side's own edge came just before the other side's attack, inside WINDOW, the attack glances off. The attacker freezes instead, longer than a hit. The parrying side's sound rings bright for a moment, a resonance tuned from its own sound; its bar flashes blue, and PARRY fires. An edge that was parried can't parry.

Each parry fills a cell of that side's super meter along the foot. At eight the super fires on its next edge: the whole mix holds still, then a flurry of hits lands on the other side in time with the attacker's rhythm, and one last heavy one.

Rounds and KO

Life at zero is a KO: KO fires and the badge between the bars lights red. The loser drops out, the winner plays alone a while, and the next round starts on the next edge. Two round wins, the diamonds under the bars, take the match; then the winner plays alone longer, and a new match starts by itself.

Two rules

The CV outs

The panel

Twenty HP, every part on the line's staggered grid and mirrored about the middle. The art is one fighter in a stance, backlit in haze, mirrored to face themselves across the spine, in gold dots on black. The HUD is the panel itself: 54 cells of bare circuit board lit from behind by sixty LEDs. The bars and the meters sit in outlines of bare gold, and a parry flashes the parrying side's bar blue.

Inside

One four-layer board sits 10 mm behind the panel, with the jacks, the knobs, RULES, FIGHT and sixty tiny RGB LEDs on its front and everything else on its back. A black printed baffle stands between, a cell under every window, so each cell lights only its own glass. An RP2350 runs the fight 46,875 times a second, both sides at once, and catches every gate's edge by interrupt, so an attack lands on the sample it came in on.

The PARRY panel mid-fight: 1P's life bar flashing blue from a parry, 2P's low with white and red damage, five cells of 1P's super meter lit, its knobs on.

Drag to look around. Lift the panel: the knobs and the nuts go with it, and the baffle stays on the board, its cells lit down to their LEDs.

Specs

Format

Width
20 HP
Depth
about 21 mm behind the panel, its power header included
+12 V
about 110 mA with the HUD dark, 185 mA at the most (the HUD at its cap)
−12 V
about 8 mA
+5 V
not used; 10-pin header
Panel
1.6 mm FR4: ENIG gold through black mask, white labels, 54 windows of bare glass
Controls
5 knobs (DAMAGE's big), a toggle, a button

I/O

1P IN, 2P IN
audio, ±5 V with room to ±9; 100 k. 2P IN normalled to 1P IN
1P HIT, 2P HIT
gates, rising past about 1.2 V; 100 k
OUT L, OUT R
1P and 2P, ±5 V, straight to 4.5 V and bending to 5; 1 k
1P LIFE, 2P LIFE
0 V at a KO to 8 V full; 1 k
PARRY, KO
triggers, 5 V for 10 ms; 1 k

Engine

Brain
RP2350, both cores, 46.875 kHz, 32-bit float
Converters
PCM1808 in, PCM5102A out, on one I2S clock
Edges
by interrupt, each on its own sample (21 µs)
Memory
1.4 s of each side's sound, for the freezes and the slow tail
HUD
60 RGB LEDs behind 54 cells, their current capped
Firmware
over USB-C or the debug header, on the back