LOFI2 for Elektron Octatrack
One modulator, ring mod or a stereo frequency shifter, followed by sample-rate and bit reduction on stock LO-FI's curves and a high-shelf cut.
Module version 0.1.0-experimental. Base firmware: 1.40C.
About this module
LOFI2 is an insert on its own effect ID, so stock LO-FI stays in the chooser beside it. MODE picks the modulator: RING multiplies the track by a carrier, DOWN and UP shift every partial by FREQ Hz with a stereo Hilbert pair. MIX is the modulator's depth; SRR and BRR run after it on stock LO-FI's measured rates and curve and stay live at MIX 0, and LPF is a -12 dB high shelf last in the chain. Every continuous knob glides to its new value over about 1.5 ms. The defaults are a passthrough.
- Ring modulator with an exponential six-octave FREQ, LOW/HIGH range and L/R carrier phase
- Stereo frequency shifter, up or down, with feedback
- SRR and BRR matched to stock LO-FI in a native render (rates within 0.02 dB of droop, steps within 0.01 bit)
- Passthrough at defaults; every continuous knob glides, no zipper steps above -70 dBFS in the render gate
How to use it
- On an audio track that plays a sample, hold FUNC and press FX2, turn LEVEL to LOFI2 and press YES. Nothing changes yet: the defaults are a passthrough.
- Press FX2 for the main page. Turn MIX (encoder B) to 127 and FREQ (encoder A) to 64: the track is ring-modulated. Raise SRR or BRR (encoders D and E) for sample-rate and bit reduction, and lower LPF (encoder F) from 127 to darken the result.
- For the frequency shifter, hold FUNC and press FX2 and turn MODE (encoder C) to UP or DOWN; on the main page the third knob is now FDBK. To bypass, set MIX, SRR and BRR to 0 and LPF to 127, or choose NONE in FX2 SETUP.
Controls
- FREQ
- Modulator frequency, exponential over six octaves from RNGE's base. RING: 2-130 Hz (LOW) or 60-4,000 Hz (HIGH). SHIFT: 2-128 Hz (LOW) or 31.25-2,000 Hz (HIGH). FREQ 0 is the base frequency, not silence.
- MIX
- Modulator depth: crossfades the ring or shift output against the dry signal. Not a global wet/dry: SRR, BRR and LPF still act at MIX 0.
- FDBK
- One knob, renamed by MODE. In DOWN and UP it is FDBK, the shifter's feedback (a ladder at f, f+d, f+2d), capped at 0.45. In RING the panel shows GAIN: make-up on the ring product, 0 dB at 0, +6 dB at 64, +11.9 dB at 127.
- SRR
- Sample-rate reduction at stock LO-FI's measured rates: no reduction through 7, 8,018 Hz at 64, 3,564 Hz at 127. 0 is off.
- BRR
- Bit-depth reduction on stock LO-FI's curve, round-to-nearest: about 13.5 bits removed at 64 and 20.8 at 127. 0 is full depth.
- LPF
- High-shelf cut, last in the chain: -12 dB above a corner swept from 100 Hz at 0 to 16 kHz at 126. 127 takes it out of circuit bit for bit; turn down to darken.
- RNGE
- FREQ's range (RNGE on the panel): LOW is sub-audio (tremolo in RING, slow swirl in SHIFT), HIGH is the audio range.
- MODE
- RING is the ring modulator; DOWN and UP are the frequency shifter moving every partial down or up. Ring and shift are exclusive. A change ducks the modulator for 5 ms each way so it does not click.
- AMPH
- Ring carrier's L/R phase offset, bipolar: -90 to +88.6 degrees, 0 at the centre. + puts R ahead. RING only.
Compatibility notes
- Hardware evidence for this source (octabam 8250be0c) is one functional report over USB on an MKII, 20 October 2026, about 15 minutes beside five other modules: every mode, the fixed SHIFT by ear, two instances on one core and a third refused (DSP FULL); the base's self-test failed on ColdFire CPU (98.8 %, cause not confirmed). Reloads, a power cycle, BRR and LPF individually ran only with the previous source (21f6de90: card image with five SHIFT instances, and USB package 7ee9277f), which differs in sixteen DSP coefficient words. Eight instances and scenes are untested on a unit. Bryan T's own MKII reports are for his octabam builds of the same DSP source.
- Large: 838 program words and a 516-word table on each DSP core, 1,354 contiguous words. With stock DSP code built in it needs two adjacent stock reverbs given up (PLATE REV + SPRING REV, or SPRING REV + DARK REV); one reverb is not enough.
- SHIFT executes 430 instructions/sample at worst in dsp_host (static 416 cycles), about 1.4x SPRING REV's worst case and dearer than every stock effect; RING is 274. The author ran eight instances at once, four per core, in UP, DOWN and RING on his MKII with this source in his own build.
- Over USB the Modwerk base loads LOFI2 on demand into FX1 or FX2. It declares 637 cycles a sample (timed on an MKII with the previous package, whose instructions are the same), so two instances fit on one DSP core when its other slots are free and a third is refused (DSP FULL).
- In DOWN and UP, once sound has passed through, the output settles at about -83 to -94 dBFS instead of silence and stays there (dsp_host render; the upstream module does the same). RING and the reduction stages return to silence.
- Native octabam refuses LOFI2 together with Analog BD: it is not on Analog BD's reviewed DSP companion list. A scratch-only probe with the list widened placed both only with all three reverbs, LO-FI, DJ EQ and CHORUS given up and LOFI2's table moved to X memory; that layout is unreviewed and untested.
- In a card build only the FX2 chooser was built and captured, and FX1 in a card image was not run on a unit. Over USB the base loads it into FX1 as well; FX1 ran on an MKII with the previous source's USB package (7ee9277f), not yet with this source.
- Effect ID 0x09, placement priority 19 and layout letter F are Modwerk's; they were checked free against the modules in this tree. A project saved with octabam's LOFI2 (ID 0x1f) selects TAPEHEAD's ID here.
- No single-knob bypass: a passthrough is MIX 0, SRR 0, BRR 0 and LPF 127, the defaults.
- A parameter lock holds until the track's next trig, as it does for every stock parameter on this OS.
- Not released until the owner approves the first release.
Test evidence
Ported unchanged in DSP from octabam 8250be0c: the author's optimised LOFI2 (pull request 704) with his SHIFT fix 153063d8 (Hilbert coefficients squared). A private native build on Modwerk's ID 0x09 passed all 70 checks of the author's render gate (the unwanted SHIFT sideband -45.7 to -56.2 dB at 1-15 kHz; SRR and BRR against stock LO-FI rendered from the tester's own OS 1.40C), plus dirty-state, init-register, menu, replaces, label and mode-name gates. Against the previous source (21f6de90) only 16 DSP coefficient data words differ. Static cost 416 cycles/sample; dsp_host benchmark 430 instructions/sample in SHIFT against LO-FI's 290 and SPRING REV's 314; a 32 s eight-instance stress run under memory guards had no hang and no clobber, and perf:audit passes with a justification. fx:audit is clean at the defaults and with the shelf in; in SHIFT a residue of -83 to -94 dBFS stays after the input stops, and at FDBK 124-127 with RNGE HIGH and FREQ about 60-76 the feedback sustains itself near full scale (dsp_host; the previous coefficients did the same at RNGE LOW, FREQ 127); on the MKII, UP at FREQ 64 HIGH with FDBK 127 kept a tone sounding after the input ended and FDBK 120 let it die away. Packages compile. On 20 October 2026 the USB package 4f794ebc ran on the contributor's MKII on flashed beta base 6650236a beside five other modules: install and Keep, every mode, FREQ, MIX, GAIN and SRR, the fixed SHIFT by ear, two instances on one core and a third refused; the base's self-test failed on CPU (98.8 % peak with six modules on an uncached base). The previous source's card-image and USB runs (13 and 15 October) are kept as history (evidence/hardware.md). Not tested on this source: BRR and LPF individually, the feedback case beyond UP at FREQ 64, reloads, a power cycle, eight instances and scenes.
Module source and documentation