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.
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.
-
Periastron Pulse
The chord surges once per orbit, about every three quarters of a second, and grows as the lobes fill. -
Periastron Pulse
Resonances on 110 Hz and its multiples ring under the melody. Notes that land on one of them bloom, and the rest pick up color. -
Runaway
Each note rings on for about half a second through closely spaced resonances on 60 Hz. -
Runaway
Each hit rings the same 60 Hz series, a low roar under the kit. -
Wide & Slow
The second voice glides down to meet the first as the masses even out, then settles into a steady color.
The editor
Parameters
| Mass Ratio | Initial energy balance between the two resonators. |
|---|---|
| Separation | Orbital separation, which sets the period and so the speed of all motion. |
| Eccentricity | Orbit eccentricity, and so the depth of the periastron pumping. |
| Fill | How close the resonators start to overflow. Sensitivity. |
| Conservation | Retention of transferred energy. Sustain against decay. |
| Tune | Fundamental of the first resonator. Each resonator also rings on every multiple of its fundamental. |
| Resonance | How long the resonances ring, both resonators. |
| Mix | Dry/wet balance. |
Presets
| Close Binary | Tight, stable, high-retention. Gentle two-voice ringing. |
|---|---|
| Mass Cascade | Near overflow, with some energy lost in each transfer. Spills between the two resonators and decays. |
| Periastron Pulse | High eccentricity. Rhythmic transfer bursts once per orbit. |
| Runaway | Equal masses, conservative, brimming. Tips into a sustained roar. |
| Wide & Slow | Wide, 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 waitlistRequirements
| 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. |
| Windows | Not supported. macOS only. |

