Ping Pong Loop for Elektron Analog Rytm
LOP gets a third value, PIPO: the sample's loop plays forward, then backward (ping-pong). FUNC + turn on STA or END steps to the next zero crossing.
Module version 0.1.2-experimental. Base firmware: 1.74.
About this module
Ping Pong Loop adds PIPO to the SAMPLE page's LOP parameter, after OFF and ON. A sample whose LOP is PIPO plays from STA to END, then back to STA, then forward again, for as long as the note lasts, with no jump at the turns. LOP's switch becomes a three-position switch like BD CLASSIC's WAV: OFF on the left, ON in the middle, PIPO on the right. PIPO is an ordinary LOP value: it saves with the sound and kit, takes parameter locks and scene locks, and comes back after a power cycle. A sound saved with PIPO plays as a normal forward loop (ON) on an OS without the mod. Each turn lands exactly on STA or END, at every pitch. On the SAMPLE page, FUNC + turn on STA or END now moves that point to the next zero crossing of the sample in the direction you turn, stepping as LOP steps through its values, instead of stock's whole-number step; plain turns stay stock.
- Ping-pong loops for any sample, from the SAMPLE page's own LOP knob.
- Lock PIPO on a step, or put it in a scene, like any LOP value.
- No jump at the turns; ON and OFF stay stock.
- Saved with the sound; plays as a forward loop on stock OS.
- FUNC + STA or END steps through the sample's zero crossings, as LOP steps through its values, for click-free start and loop points.
How to use it
- On the SAMPLE page, turn LOP past ON to PIPO and play the sound: the loop between STA and END goes back and forth.
- Set STA and END around a sustained part of the sample (a pad, a vowel, a held note) for a seamless back-and-forth drone.
- Hold a trig in GRID RECORDING and turn LOP to PIPO to ping-pong only on that step; the other steps keep the sound's ON or OFF.
- Hold FUNC and turn STA (or END): the point steps from zero crossing to zero crossing, as LOP steps through its values, so the loop starts and ends where the waveform crosses zero.
Controls
- LOP
- SAMPLE page, encoder G. OFF and ON as stock; PIPO plays the loop between STA and END forward, then backward, and so on. Locks per step and per scene. Drawn as stock's three-position switch, as BD CLASSIC's WAV: OFF left, ON middle, PIPO right.
- FUNC + STA / END
- SAMPLE page, FUNC held, encoder E or F: STA or END steps to the next zero crossing the way you turn, as often as LOP would step a value (more on a fast turn), the frame stock plays from; with none further it holds. STA and END may pass each other or share a crossing. With LOP ON only crossings of the other point's direction. With a trig held in GRID RECORDING it steps that trig's lock. Exact up to 30,720 frames (0.64 s); longer samples take the nearest step. Plain turns are stock.
Compatibility notes
- Zero snap is exact only on samples up to 30,720 frames (0.64 s at 48 kHz): STA and END are steps of 1/30,720 of the sample, so on longer samples the point lands on the nearest step, up to frames / 61,440 frames from the crossing (1 frame at 1 s, about 8 at 10 s, 47 at 60 s).
- Built for OS 1.74 only, with core-ar2 0.7.
- Run on a unit by the author as test builds (PC03, PD01-PD05) as PP14, 0.1.0 alone on core-ar2 0.7, and 0.1.1 as RC07, a combined image; several voices in PIPO, LOP locks and scenes on a unit, MIDI CC 30 and samples over 0.64 s are not yet tested there (TESTING.md).
- MIDI CC 30 (LOP) writes its value unchanged, as on stock: CC value 2 now gives PIPO, every other nonzero value ON. Other OFF/ON parameters still read ON for 2.
- On stock OS, or a build without this mod, PIPO plays as ON; LOP reads ERROR for it until the knob is turned, which steps between OFF and ON.
- LOP's switch is drawn with the knob in the middle for ON, where stock draws it on the right; the value text still reads ON.
- FUNC + turn on STA or END no longer gives stock's whole-number steps; use a plain turn for fine moves.
- With END on the sample's very last frame, a turn can land up to 7 frames off (rytm-emu: the first turn after a hit); set END a little before the end for exact turns.
- Exact turns depend on DMA reading frames the module writes (every cache way is pushed first); rytm-emu does not model the cache; PIPO played on the author's unit, and a dedicated click check of the turns on a unit is still open.
- While a FUNC turn settles (stock glides STA and END over a fraction of a second), a loop wrap or PIPO turn can click; settled points are clean.
- A very slow turn registers no change, as on LOP and stock's stepped controls.
- On SMPL WAVEFORM a line can sit one column left of its crossing (stock spaces the lines over 123 columns and the waveform over 124); the frame played is the crossing.
Test evidence
rytm-emu c5732f0 (PP13): LOP OFF/ON/PIPO switch, exact PIPO turns, p-locks, scenes, two voices, retrig, power-off, stock fallback, zero snap. Hardware, as reported: PP14, RC07 (0.1.1, no clicks at turns) and LF01 (0.1.2 in RC30's set: PIPO loops work; idle block 72.9 % -> 71.1 % with QPERF and Sample Playback Rate fixes).
Module source and documentation