Echo Random

Roche Lobe Manual

Pre-release manual. A binary-star mass-transfer resonator for macOS. CLAP, VST3 and Audio Unit. Back to the product page.

1. What it is

Roche Lobe is two resonators that orbit each other.

The plugin runs a Keplerian two-body orbit around a shared barycenter and treats the energy ringing in each resonator as that body's mass. Each body has a Roche lobe: the region where its own gravity still wins. When a resonator holds more energy than its lobe can contain, the excess streams through the inner Lagrange point (L1) into the other resonator.

That transfer changes both masses. Changing the masses moves the barycenter, resizes both lobes, and retunes the second voice, because the second resonator's pitch is derived from the first and the live mass ratio. The system is always chasing an equilibrium it never reaches.

There is no LFO, envelope, step sequencer, tempo sync or random generator in this plugin. Every pulse, swell, drift and collapse comes out of the orbit and the transfer loop. This is the reason the movement does not settle into an audibly repeating cycle: the orbit is periodic, but the thing it modulates is being changed by the transfer the orbit caused.

2. The physics, in plain English

You do not need this section to use the plugin, but it makes every control predictable instead of a knob you turn until it sounds good.

Picture two stars orbiting each other. Each can hold only so much material before its gravity loses its grip at the saddle point between them, and matter streams across to the companion. Roche Lobe treats audio energy as that material.

3. The display

The orbital view is a readout, not decoration. It is drawn from the live DSP state, published once per audio block:

If you see a transfer, a transfer is happening. This is the fastest way to diagnose a patch: if nothing ever crosses the channel, Fill is too low; if the stream never stops, you are in runaway.

4. Parameters

Eight controls. The second voice's pitch is not one of them. It is derived from Tune and the live mass ratio, so the interval between the voices is itself a physical result.

Mix (0 to 100%)

Dry/wet balance, equal-power. At 0% the input passes through untouched.

The most-reached control on any effect, which is why it sits at the top of the panel rather than the bottom.

Bypass

Crossfades to the unprocessed input over 10 ms and then stops the DSP entirely. This is the same parameter your host's bypass button drives, so either one moves both.

When fully bypassed, the output is bit-for-bit identical to the input, and the resonators are cleared, so re-enabling rings up from silence rather than resuming a stale tail.

Separation (0.5 to 2.0)

Orbital separation, which sets the orbital period, which sets the rate of everything. This is the tempo control that is not a tempo control.

Small values are a short period: fast, frequent pulsing. Large values are long swells. Reach for this first when the movement is in the wrong rhythmic place.

Eccentricity (0 to 95%)

How elongated the orbit is, and therefore how hard the once-per-orbit surge hits.

At 0% the orbit is a circle and the motion is even. Toward the top, the lobes are squeezed hard at periastron and each pass produces a pronounced burst. Eccentricity sets the depth of the rhythm; Separation sets its rate.

Mass Ratio (0.1 to 10.0)

The starting balance of energy between the two bodies (q = B / A).

Turning it re-seeds the masses and glides them into place over a short time constant, so you can watch the bodies resize as it takes effect. Away from 1.0, one voice dominates and the other answers it; near 1.0, with high Fill and Conservation, the system is poised to tip into runaway.

Fill (0 to 100%)

How close the nodes sit to overflowing before any input arrives. Sensitivity.

Low values are subtle and occasional: only loud material causes a transfer. Near the top, everything is brimming and every transient spills across.

Tune (20 Hz to 5 kHz)

The fundamental of node A. Node B's pitch follows from this and the live mass ratio: a heavier body has a lower pitch.

Each node rings on its fundamental and on every whole-number multiple of it, the way a star vibrates in evenly spaced modes. So Tune does not need to match the material. A low Tune gives closely spaced resonances that catch notes anywhere on the keyboard: a 90 Hz node has a resonance every 90 Hz, so a 440 Hz note lands within 10 Hz of one. A Tune on the material's own root note reinforces it instead of coloring it.

Resonance (0.5 to 24)

Sharpness (Q) of both resonators, which sets how long each resonance rings.

Low is broad and airy, color rather than pitch. High is narrow and ringing, closer to a vocal or metallic character, and makes the pitch relationship between the two voices much more audible.

Conservation (0 to 100%)

The fraction of transferred energy that survives the crossing. The sustain-versus-decay axis.

Near 100% the energy is kept and the patch rings on and sustains. Lower down, the difference is lost and the patch decays like an echo. Combined with high Fill and a balanced Mass Ratio, high Conservation is what reaches the runaway regime.

5. Presets

Five factory patches spanning the regimes. Loading one applies all parameters live and re-seeds the masses without a click.

PresetWhat it is
Close BinaryTight, stable, high retention. Gentle two-voice ringing.
Mass CascadeNear-overflow with disk loss. Energy spills between nodes 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.

Use them as starting points rather than destinations. Most of them are one Separation turn away from a completely different tempo.

6. Getting a sound quickly

  1. Start from Close Binary and set Mix to about 50%.
  2. Move Tune until the ringing sits with the material.
  3. Move Separation until the movement is at the right rate.
  4. Raise Fill until the display shows a stream on most transients.
  5. Use Conservation to decide whether it rings on or decays away.
  6. Use Eccentricity last, to decide how hard the rhythm hits.

If it sounds static, Fill is too low or Mix is too low. If it sounds uncontrolled, Conservation and Fill are both high with a balanced Mass Ratio. Back off any one of the three.

7. Installing

The installer places the formats you select in the system plug-in folders:

/Library/Audio/Plug-Ins/Components/Roche Lobe.component    Audio Unit
/Library/Audio/Plug-Ins/VST3/Roche Lobe.vst3               VST3
/Library/Audio/Plug-Ins/CLAP/Roche Lobe.clap               CLAP

Install only the formats your host loads:

HostFormat
Logic Pro, GarageBand, Final Cut ProAudio Unit
Ableton Live, Cubase, Studio One, NuendoVST3
Bitwig Studio, FL StudioCLAP
REAPERany of the three

These are system folders, so macOS asks for an administrator password.

Requirements: macOS 11 Big Sur or later, on Apple Silicon. A host that loads AU, VST3 or CLAP. No internet connection, account or activation is required at any point. The plugin never contacts a server.

8. Host notes

Logic Pro runs Apple's own AU validation the first time it sees a new Audio Unit. It takes a few seconds and happens once. Roche Lobe has not yet been tested in Logic.

REAPER lists the Audio Unit as AU: Roche Lobe, without the vendor suffix the CLAP and VST3 entries carry. Searching the FX browser for "Echo Random" will find two of the three formats and miss the AU.

Any host that does not show the plugin after installing: force a plug-in rescan from its preferences before trying anything else. That fixes it almost every time.

9. Removing it

Delete whichever of these exist:

/Library/Audio/Plug-Ins/Components/Roche Lobe.component
/Library/Audio/Plug-Ins/VST3/Roche Lobe.vst3
/Library/Audio/Plug-Ins/CLAP/Roche Lobe.clap

There is no uninstaller and nothing is written anywhere else.

10. Support

support@echorandom.org

When reporting a problem, include your macOS version, your host and its version, and which plugin format you were using. That is usually enough to reproduce it.