Echo Random

Roche Lobe

A resonator driven by two orbiting stars.

Roche Lobe is two resonators whose behavior is computed from a two-body orbit.

The plugin runs a Keplerian orbit between two bodies around a shared barycenter, and treats the energy ringing in each resonator as that body's mass. Every body has a Roche lobe: the region where its own gravity still wins. When a resonator accumulates more energy than its lobe can hold, the excess streams through the inner Lagrange point into the other resonator. That transfer changes both masses, which moves the barycenter, resizes both lobes, and retunes the second voice (a heavier body has a lower pitch). The system keeps moving toward a balance it never reaches.

The plugin has no LFO, envelope, step sequencer, tempo sync or random generator. All movement comes from the orbit and the energy transfer. The orbit repeats, but each pass changes the mass ratio, which changes what the next pass does, so the motion never settles into an audible loop.

What it sounds like

Two tuned resonators that keep moving. On a pad, a drum loop, a vocal or a held note, the input rings through both resonators while energy passes between them.

An eccentric orbit squeezes both lobes once per orbit, at closest approach, and spills a burst of energy across the channel. That is the plugin's rhythm, and the only way to change its speed is to change the orbit. With Fill and Conservation high and the masses balanced, energy keeps passing back and forth and never settles. This is the runaway regime. It saturates into a sustained roar rather than blowing up, and turning one knob brings it back.

Between those extremes it is a character resonator with slow movement: patches are still changing thirty seconds in, with no automation.

Working with it

Tune and Resonance are the timbre. They set where the two voices sit and how sharply they ring. High Resonance is vocal and metallic; low is broad and airy. Tune sets the first voice only. The second voice's pitch follows from the first and the current mass ratio, so the interval between them moves on its own.

Separation sets the speed. A smaller separation means a shorter orbit, so everything happens faster, and a larger one gives slow swells. Reach for it first when the movement is at the wrong speed.

Eccentricity is how hard that rhythm hits. At zero the orbit is a circle and the motion is even. Near the top the lobes are squeezed hard at periastron, the closest point of the orbit, and the result is a pronounced once-per-orbit surge.

Fill is sensitivity. It sets how close the resonators sit to overflowing before the input arrives. Low is subtle and occasional; near the top everything is brimming and every transient causes a transfer.

Conservation sets how much of the transferred energy survives each crossing. Near the top the patch rings on. Lower down some energy is lost on every crossing and the patch decays like an echo.

Mass Ratio is the starting balance between the two bodies. Turning it re-seeds the masses and glides them into place, so you can watch the bodies resize as it takes effect.

Full parameter reference, with ranges and the physics behind each one, is in the manual.

The display

The orbital view is drawn from the live state of the DSP, once per audio block. The two bodies are sized by their current mass, ringed by their current Roche lobes, and the inner Lagrange point lights up with a visible stream whenever a body is actually overflowing. When you see a transfer, a transfer is happening.

In practice it is the fastest way to understand what the plugin is doing. Set Fill too low and you can see that nothing is ever crossing the channel. Push into runaway and you can see why it will not settle.

Demos

Rendered straight from the plugin with no other processing. The source sounds were synthesized for these demos.

The editor

The Roche Lobe editor: the orbit display at the top, then output meters, presets, and the orbit and body controls.
The editor, with audio running through it.

Parameters

Mass RatioInitial energy balance between the two resonators.
SeparationOrbital separation, which sets the period and so the speed of all motion.
EccentricityOrbit eccentricity, and so the depth of the periastron pumping.
FillHow close the resonators start to overflow. Sensitivity.
ConservationRetention of transferred energy. Sustain against decay.
TuneFundamental of the first resonator. Each resonator also rings on every multiple of its fundamental.
ResonanceHow long the resonances ring, both resonators.
MixDry/wet balance.

The second resonator's pitch follows from the first and the live mass ratio, so there is no separate control for it.

Presets

Close BinaryTight, stable, high-retention. Gentle two-voice ringing.
Mass CascadeNear overflow, with some energy lost in each transfer. Spills between the two resonators and decays.
Periastron PulseHigh eccentricity. Rhythmic transfer bursts once per orbit.
RunawayEqual masses, conservative, brimming. Tips into a sustained roar.
Wide & SlowWide, slow orbit. Long swells, low sensitivity.

Beta soon

Roche Lobe is nearly ready for testers. Beta builds go out to the waitlist in groups. To join, send one line saying which DAW and which Mac you use.

Join the waitlist

Requirements

System macOS 11 Big Sur or later, on Apple Silicon. Intel Macs are not supported.
Formats CLAP, VST3, and Audio Unit (AUv2). All three install from one package.
Hosts Tested in REAPER 7.79 on Apple Silicon. Other hosts are not yet tested.
WindowsNot supported. macOS only.

More plugins

All audio plugins