CURVA · Dev Log

It Started with a Free Kick: How CURVA Came to Be

July 15, 2026
Back to blog

Every plugin we’ve shipped started in the studio. This one started on a sofa.

It was late, and the TV was showing a 2026 World Cup knockout tie. The match had reached a nerve-shredding 89th minute, and France had won a free kick about twenty-five yards out. Wall set. Keeper shading the near post. The strike went up and over — and then it bent. It dipped past the last head in the wall, held its curve for half a second longer than physics seemed to allow, and dropped in at the far post. The stadium noise moved with it: rising as the ball climbed, brightening as it cleared the wall, whipping past like a car on a wet road as it dove.

Watching a 2026 World Cup free kick on TV, late at night from the sofa
The 89th minute, from the sofa. Everyone else saw a goal.

One of us said it out loud before thinking: that flight was a pan curve. The climb and dip was a filter sweep. The whip past the wall was pure Doppler. Somebody’s living room, close to midnight, and we were hearing a stereo mover where everyone else was hearing a goal.

We didn’t know it yet, but CURVA had just been kicked off.

We tried to recreate the physics

The next morning, back in the studio, we tried to recreate that one second of sound. Just as an exercise. One second of a ball bending through the air — how hard could it be?

Here is what it actually took: an automation lane for pan. A second lane for a low-pass filter, riding up and down to fake the brightness of something flying toward you and away. A third lane for pitch, because motion without Doppler is motion on a screen, not motion in a room. Then a modulation matrix to keep the three of them breathing together, because the moment they drift apart the illusion collapses — the ear instantly hears three separate effects instead of one moving object.

Forty minutes of drawing nodes. For one second of flight.

Nobody at the stadium drew any automation.

That sentence became the whole brief. A ball in flight is the most physical, most instantly legible motion in the world — a six-year-old can read a trajectory. And our industry’s best tools describe it as a spreadsheet: lanes, nodes, matrices, assignment pages. Somewhere along the way, motion stopped being a thing you do and became a thing you administrate.

That felt backwards. So we decided to build the interface the stadium already gave us.

So we built the pitch

Pan  L→R Brightness ↑ Doppler
The original whiteboard sketch, more or less. The labels came later — but the mapping never changed.

The first drawing was embarrassingly simple. A football pitch, viewed from the stands. Horizontal position is pan. Height is filter brightness. The speed of the climb and dive is Doppler pitch. Kick the ball, and the sound flies.

The important decision — the one we argued about longest — was that the pitch would not be a visualization. Plenty of plugins draw pretty pictures of what the DSP is doing underneath. We wanted the opposite: the pitch is the control surface, and there is nothing underneath. There’s no LFO assignment page hiding behind the grass. The ball’s position is the parameter state. If you can read a replay, you can already operate CURVA.

Once the pitch existed, the rest of the product suggested itself, one football question at a time.

What shape is the shot? That became the MOVE engine — Spin bends the trajectory, Loft shapes the arc, Speed sets the flight rate, free-running or locked to your session tempo. And crucially, the three sonic axes — pan, brightness, pitch — stay locked to the one trajectory. They can’t drift apart, because they aren’t three modulators. They’re one ball.

What if I want a flight nobody would program? That became DRAW. Pick up the pencil and freehand your own path straight onto the pitch — it records in the order you draw, so it can reverse, loop back, cross itself. Whatever you draw is what the sound flies.

Who’s in goal? That became the SAVE engine: a reactive echo that answers your shot instead of sitting on a timeline. We gave the position five personalities — Classic, the textbook full-range reflection; Wall, one dead gated thud and no repeats; Turbo, a bright rockabilly slapback; Bounce, ping-ponging the ball left-right across the goal; and Phantom, a haunted parry that shimmers an octave up and trails away into one of five rooms. Drag the keeper along the pitch and you’re dragging where the echo lands.

And who’s taking the kick? That became the squad. Four strikers who each load a playing style into your knobs, plus two dials we’re prouder of than we probably should be: Chaos, which lets the striker re-roll the shot on every flight, and Defend, which gives the keeper a mind of his own, darting to a spot you never asked for and making a save you didn’t program. Controlled randomness with a temperament, not white noise on a dice roll.

Even the light became a parameter. The Scenes row — Dawn, Noon, Dusk, Night — changes the time of day on the pitch, and the analog-style saturation voicing follows it: soft warmth at dawn, an open sheen at noon, golden-hour color, and the thickest, darkest character under the floodlights. Nothing on this UI is only visual. That rule held from the first sketch to the final build.

CURVA plugin interface — the football pitch in play
The pitch in play. The ball’s position is the parameter state — there is no second layer underneath.

We made all of this playful on purpose, and we want to be precise about why, because “fun” is usually where audio marketing goes to lie. Play is not the decoration here. Play is the search algorithm. When moving a sound is as cheap as flicking a ball, you try trajectories you would never have typed into an automation lane — and some of those are the moves that end up defining a record. Every producer knows the feeling of stumbling into a sound. CURVA is that feeling, given a stadium.

Nothing under the grass is a toy

Here’s the part of the story where we stop being fans and go back to being engineers. Because we knew from day one exactly how a plugin that looks like this gets dismissed: cute demo, but I’d never put it on a real session.

A toy you can’t trust in a session isn’t a toy. It’s a liability.

So everything under the grass is deliberately, unglamorously boring. This chapter is the receipts.

Mix at zero is an exact bypass. Not “close enough” — sample-accurate, bit-transparent, latency reported to the host. If CURVA is on the track but the ball isn’t in play, your audio passes through untouched. We test this the way we test everything at Sugoi: a null test against the dry signal, not a listening impression.

Width is true Mid/Side math, and it is mono-safe. The stereo spread comes from honest M/S processing, not from phase tricks that fall apart the moment a club system, a phone speaker, or a broadcast chain folds your mix to mono. Push the width, collapse to mono, and the sound stays standing.

Every transition is a ~30-millisecond ramp. Switch keepers mid-phrase, load a preset on the downbeat, grab a knob during a take — every one of those moves crossfades through a short, seamless ramp. No zipper noise, no clicks. A performance instrument that punishes you for performing isn’t one, so we treated click-free switching as a launch requirement, not a nice-to-have.

The feedback engine cannot run away. Each keeper has its own stability ceiling, and the feedback control rides that ceiling rather than a raw multiplier. 100% means “as much as this keeper can safely give you” — it does not mean “self-oscillate until you blow up the session.” You can hand Defend the keys and walk away.

Low Anchor keeps the floor under the flight. Everything below 120 Hz stays centered and un-pitched while the rest of the spectrum flies. This one exists because of a very specific test: an 808 sub swerving across the stereo field sounds spectacular for four seconds and ruins a mix in five. With Low Anchor, the sub holds the center of the pitch while the harmonics take the shot. Made for 808s, safe for full mixes.

And the AAX build is PACE-signed, so CURVA walks into Pro Tools through the front door — alongside the AU, VST3, and Standalone builds, on both macOS and Windows.

None of this is visible on the pitch. All of it is why the pitch is allowed to exist. The playful surface and the boring foundation aren’t in tension — the second is what makes the first shippable. We spent roughly as long on the ramps, the null tests, and the anchor as we did on the football.

And it’s free

CURVA costs nothing. Full version — both engines, all five keepers, the pencil, the squad, all four scenes, all 57 presets, every format. No trial timer, no locked knobs, no email toll booth.

The honest reason: this is the most us thing we’ve ever built, and we want it on as many sessions as possible. Sugoi makes serious tools — dynamics, EQs, machine-learning processors — and we’ll keep charging for those, because months of engineering are worth money. But CURVA started on a sofa, as a grin, and it never stopped being one. Charging admission to a kickabout felt wrong.

So: it’s free, it’s finished, and it’s built to the same standard as everything we sell. If it earns a place on your session, feel free to explore the rest of our catalog while you’re here.

Final thoughts

Somewhere in the middle of development, we noticed the team had stopped saying “render the trajectory” and started saying “take the kick.” That’s when we knew the metaphor had stopped being a skin and become the instrument itself — an effect built to spark ideas, not just describe them.

Building CURVA taught us something we mean to keep: the best design ideas often come from life, not from a spec sheet. The interface your idea deserves might not look like an interface at all. It might look like a match you watched from a sofa, deep in the 89th minute, when a ball bent past a wall and the whole stadium’s sound bent with it.

CURVA is out now — AU, VST3, PACE-signed AAX, and Standalone, on macOS and Windows, with 57 set pieces scouted and ready. It’s completely free.

Go on. Draw something.

Get CURVA — Free