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.