overdub

schwung-ruminant

mestela/schwung-ruminant · ★ 1

Frequency-shifting feedback delay for Ableton Move and Schwung

README from GitHub, MIT

Ruminant for Schwung

Ruminant is a frequency-shifting feedback delay for Ableton Move, built as an audio FX module for the Schwung framework. It produces metallic echoes, dub feedback, phasing, flanging, tremolo-like motion and inharmonic sound-design textures.

The signal path combines a fractional delay with a single-sideband frequency shifter inside its feedback loop. Unlike pitch shifting, frequency shifting adds a fixed number of hertz to every partial, so each repeat becomes progressively less harmonic.

Installation

Ruminant is currently an early public test. With Schwung installed, run its installer from a local Schwung checkout:

./scripts/install.sh install-module-github mestela/schwung-ruminant

Alternatively, download ruminant-module.tar.gz from the latest release and install it using the Schwung installer. Ruminant will then appear in the list of audio FX modules.

Controls

  • Shift: linear frequency offset from -2000 to +2000 Hz in Fine mode.
  • Delay: free delay time from 0.05 to 1000 ms.
  • Fdbk: feedback from 0 to 110%, with soft saturation at high levels.
  • Side: blends lower sideband through ring modulation to upper sideband.
  • Mix: dry/wet balance.
  • Tone: low-pass damping inside the feedback loop.
  • Stereo: phase offset between the left and right frequency shifters.
  • Range: Fine uses the displayed Shift value; Wide multiplies it by ten, extending the frequency offset to +/-20 kHz.

Ruminant is an original implementation of the established Bode frequency shifter plus feedback-delay topology. It is not affiliated with or endorsed by Teenage Engineering or Sonic Charge, and contains none of their code or assets.

Technical notes

  • Native ARM64 C DSP at 44.1 kHz with Schwung's v2 audio FX API.
  • Eight-stage all-pass quadrature network for efficient upper/lower single-sideband shifting.
  • Cubic fractional delay with a 0.05–1000 ms range.
  • Smoothed live parameter changes, optional feedback damping, and controlled self-oscillation through a soft-saturated feedback loop.
  • Continuous processing keeps delay tails alive when the input becomes silent.
  • The all-pass shifter is substantially lighter than the original FIR design.

Build and test

./tests/run_tests.sh
./scripts/build.sh

The ARM64 module package is written to dist/ruminant-module.tar.gz.

License

MIT