16-track stereo tape looper · Ableton Move

Loopex

A looping instrument for ambient and experimental music. Sixteen free-running tape loops, four playheads each, a deep set of performance effects, and every gesture click-free.

16 stereo loops 4 playheads / loop 16 punch-in FX 29 send effects 4 reverbs 64 session slots 13 tape models 13 character voicings Schwung Overtake

Built for the Schwung framework on Ableton Move. Free & open source: source on GitHub.

The idea

A looper you play like an instrument

Loopex turns Move's pads into sixteen independent tape loops that never have to agree on a length or a downbeat. You layer sound freely, then treat every loop as raw material: re-pitched, re-ordered, filtered, granulated, frozen, with the whole surface live under your hands.

Free-running

Each loop is its own tape. Record one at 3 seconds and another at 40, in different keys, at different speeds. Nothing is quantized to a grid unless you ask.

Everything performs

Speed, pitch, filter, grain, reverb sends, playheads: all live per loop. Sixteen momentary punch-in effects sit on the right pads, pressure-sensitive and stackable.

Click-free

Every jump, mute, overdub and knob move is crossfaded or smoothed. You can be violent with it and it stays musical.

Loopex draws its screen and widgets with Schwung's own param-page renderer, so it looks and behaves like a native Move instrument: round knobs, notched enum squares, animated buttons, header and footer.
Quickstart

Your first loop in a minute

  1. Open Loopex from the Overtake / Tools list in Schwung. The left 4×4 pads are your loops; the right 4×4 are punch-in effects.
  2. Record. Tap an empty left pad to start recording, tap again to close the loop and play. It loops instantly.
  3. Layer. Tap other empty pads and record more loops on top. They run independently: no need to match lengths.
  4. Shape it. Press a step button to select a loop and see its waveform. Turn the eight knobs to sweep Filter, Pitch, Scatter, Seed and more across its five pages (Up/Down change page).
  5. Punch an effect. Hold a right pad: Haze, Freeze, Chop: over the whole mix. Press harder for more. Shift+pad latches it hands-free.
  6. Send to a reverb. On loop page 1, turn Send A up; open Send FX (track button 3) and choose Veil or Space. Then Save it all to a session with the record button.

Full-exit is Shift+Back. A plain Back only suspends, keeping your loops in memory.

Hardware map

Where everything lives

Screen: the page on screen: loop params, a menu, or a held punch effect. 8 knobs edit the page.
Jog wheel: scrub the selected loop, or move a playhead on the Heads page.
Back closes a menu · Menu opens Sessions.
Track buttons (the four colours beside the pads): 1 Input FX · 2 Perform · 3 Send FX · 4 Settings.
Play · Record. Right of them: 16 steps select a loop or an FX-seq pattern.
◔ ▮▮ ◐
LOOPEX
M
+
left 16 pads: loops · right 16 pads: punch FX · 16 steps
Loops (left pads) Loop FX Grains Pitch Time Palette FX
Big knob: master volume.
Capture: Input Tape · Sample: Drift.
Loop: loop length · M Mute.
Delete: FX sequencer · Copy: clone.
Undo · Shift.
+ − page up / down · ◀ ▶ tape brake / wind.

Loop pads (left)

Tap to record / play / pause — un-pausing restarts the loop from its Start point, re-phasing all four playheads. Undo + pad overdubs. Hold to clear. Colour shows state, tinted by playback speed.

Punch pads (right)

Hold to apply a momentary effect on the master. Coloured by family. Up to five stack in series; pressure adds intensity.

Steps + arrows

A step selects a loop and shows its waveform. Up/Down move between its five pages. ◀ ▶ are the tape brake / wind.

Jog wheel

Scrubs the selected loop like tape: audibly, even when paused. On the Playheads page it moves the touched head.

The screen

What you see

Three views. A touched knob takes over the header with the parameter's full name and value; the views fall back to the overview after ten seconds.

Input

What goes onto the tape

Everything you record passes through the input stage first, so set it before you play. The Input FX menu (track button 1) holds the monitor level, the tape style, input gain and a three-band EQ. The Input Tape page (Capture button) is the machine itself: 13 styles including a true Tapeless bypass, drive, wow, flutter, HF rolloff, low cut, hiss and Generations, the sound of repeated dubbing. The thirteen models are Tapeless · Clean · Cass1 · Cass2 · VHS1 · VHS2 · Reel15 · Reel7 · Reel3 · 4trk · Porta · Dub · Warp. Each one’s high-frequency loss is derived from its head gap and tape speed, with a speed-scaled head bump, so the three reel speeds genuinely differ; VHS1 is the Hi-Fi track (a depth-modulated FM carrier with its companding noise reduction, bright but pumping) and VHS2 the linear edge track, slow and dark. Generations re-applies the selected machine’s own loss filter once per pass, so a fourth-generation dub of a Reel3 is darker than one of a Reel15. Tapeless bypasses the machine — no hiss floor, no head loss or bump — but every knob on the page still works, and Drive soft-clips on Tapeless and Clean too. Whatever you dial here is printed onto the loop: set the page, then record. By default the source is the line/mic input, but InSrc on Settings page 1 can switch it to the Master mix (the whole Move output, minus Loopex's own signal so it never feeds back) or to any single Schwung or Move track in isolation — see the record-source section below.

Loops & playheads

Sixteen tapes, four heads each

Each loop records up to 45 seconds of stereo audio and plays back on its own clock. Three overdub modes shape how layers build: Replace, Multiply (the default; endless decayed layering), and Disintegration (the loop's own effects re-bake each pass, so it slowly falls apart).

Every loop is read by up to four playheads at once, each with a mode: Off · Fwd · Bwd · Ping · Jump: and its own speed from 0.25× to 4×. Jump leaps to a random position at random intervals, crossfaded. One recording becomes a canon, a drone, or a shifting cloud. Heads sum with equal-power normalisation so stacking never clips, and any head that jumps crossfades.

The five loop pages

Select a loop with a step, then Up/Down to move between pages. Speed re-pitches like tape (pitch + tempo together); Pitch shifts independently, leaving tempo alone. Pitch is a Signalsmith Stretch phase vocoder running on its own thread, off the audio engine, its latency cancelled by nudging the playheads so the loop stays in time. Playback reads are 4-point Hermite with rate-aware anti-imaging; the sampler Characters swap that for linear or drop-sample reads.

Page12345678
P1 · LoopSpeedFilterPanVolumeStartEndReverseSend A
P2 · TexturePitchResoSatCompWow/FlutScatterSeedSend B
P3 · ToneBassMidFMidGainTrebleTiltAttackDecayHeads ▸
P4 · HeadsH1 modeH1 spdH2 modeH2 spdH3 modeH3 spdH4 modeH4 spd
P5 · HeadMixH1 VolH1 PanH2 VolH2 PanH3 VolH3 PanH4 VolH4 Pan

HeadMix gives each of the four playheads its own volume and pan (a balance — centre is unity). H1's Vol/Pan are the loop's main level and position (the same controls as page 1); heads 2–4 are independent, defaulting to unity/centre so a loop is unchanged until you touch them.

Seed

A seeded re-order of the loop's slices (2/4/8/16, some reversed). The knob is the seed: every position is a different, repeatable mangle. Click-free.

Scatter

Stochastic slice jumps with crossfades: from gentle stutter to full shuffle.

Filter + Reso

A DJ-style filter: low-pass left of centre, high-pass right, with resonance. Smoothed, so sweeps never step.

Studer EQ

The 961/962 channel EQ, a Fächerentzerrer (fan equaliser): every setting crosses 0 dB at a ~1 kHz pivot and slopes continuously outward, with no shelf plateau in the band. Bass reaches ±15 dB at 20 Hz, Treble ±15 dB at 20 kHz. Corners and slopes are fitted to the curves printed in Studer’s service manual.

Presence

The console’s Präsenz/Absenz band: a ±11 dB peak at Q = 1, sweepable 150 Hz–7 kHz, to the published spec. Tilt sits alongside it and tips the whole spectrum about 800 Hz.

Sends

Two buses, the Palette engine

Each loop has two sends (A on loop page 1, B on page 2) into a pair of shared effect buses: the Palette engine, 29 effects, chosen in the Send FX menu (track button 3). Every effect has the same three knobs, Amount, Macro and Drift, so a bus can be re-voiced live without relearning it.

FamilyEffects
CharacterDrive · Sweeten · Fuzz · Howl · Fold · Swell
MovementDoubler · Vibrato · Phaser · Tremolo · Pitch · Shift
DiffusionCascade · Reels · Collage · Reverse · Space · Bloom
TextureFilter · Squash · Cassette · Broken · Interference · Halo
ReverbsPlate · Quartz · Prism · Veil

The buses are 100% wet: the loop's own level stays dry, the send sets how much reaches the effect. The returns join the master before the punch effects, so a punch can grab a reverb tail too. Every effect is loudness-matched to the dry it replaces, and switching effects morphs — the outgoing one fades as the incoming one fades in — so sweeping through the list never clicks.

Punch-in FX

The right pads: sixteen momentary effects

Hold a pad to apply an effect to the whole mix, reading a rolling 2-second capture of the master. Up to five stack in series, each with four parameters on knobs 5–8, and pad pressure drives a per-effect expression shown in the footer. Oct+, Oct−, Shimmer and Chop spread to stereo through the same microshifter as Stretch and Freeze. The grain effects draw on a 16-grain pool with voice stealing and window-power normalisation.

Loops

Loop12 · Loop16 · LoopSh · Chop. Beat-locked stutters. Chop repeats the last transient on one of 32 rhythmic patterns drawn from Signal. Pressure subdivides.

Grains

Haze · Mosaic · Smear · Strum. Granular clouds: from a shimmering haze to a grid re-sequencer to an arpeggiated cascade. Pressure adds density.

Pitch

Oct− · Oct+ · Glide · Shimmer. Delay-line pitch shifts and a band-limited feedback shimmer that climbs an octave per pass. Pressure pushes regen/glide.

Time

Stretch · Freeze · Reverse · PalFX. Overlap-add stretch and freeze (with a subtle doubler for width), reversed slices, and one whole Palette effect as a punch.

A per-effect LFO on every pad

While a pad is held, knobs 1–4 are its own LFO: Dest (which of the four fx params to modulate), Shape, Rate (0.05–20 Hz) and Depth. Eight shapes: sine, triangle, saw, ramp, square, pulse, sample-and-hold, and smoothed random: for anything from a slow drift to chaotic wobble. Knobs 5–8 stay the effect's parameters.

Shift+pad latches an effect hands-free. Shift while already holding latches it exactly as it is, pressure frozen. Undo+pad resets that pad to its defaults (the LED flashes to confirm).
FX sequencer

The ✕ button: sequencing punch effects

One shared 16-step pattern of punch effects, in the spirit of the Polyend MESS. Each step can hold up to five right pads with their knobs and pressure locked at the moment you write it, so a step keeps sounding the way it did even if you edit the pad later. Every gesture starts from the ✕ (Delete) button.

GestureAction
Tap ✕run or stop the sequencer (the LED is bright while it runs)
Hold ✕pattern view on the 16 steps: orange = a step with effects, dim orange = an extension, white = the playhead. The FX Seq page opens; turn a knob and it stays open after release
✕ + right pad(s) + stepwrite the held pads into that step (up to five). Pads pressed while ✕ is held are silent selections
✕ + step, no padsclear the step
✕ + hold a step + tap a later stepextension: the steps in between hold the first step's effects
✕ + hold a step + knob 4that step's play chance
✕ + hold a step + knobs 5 to 8the locks of the step's first effect (same names and enum squares as the pad itself)
Playrestart the pattern from step 1

The FX Seq page

KnobParameterValues
1RunOff / On (also ✕ tap)
2Speed1/32 · 1/16 · 1/8T · 1/8 · 1/4 · 1/2 · 1 beat
3Length1 to 16 steps
4ChanceAlways · 10 to 90% · Like Last · Play 1 Skip 1 · Play 2 Skip 1 · Skip 1 Play 1. With a step held it edits that step; otherwise it is the default for new steps
5Gate10% of the step up to Hold
6Swing50 to 75%
7DirectionFwd · Bwd · Ping · Rand
8Clearwipe the pattern (asks first)

The clock runs from the Move tempo. A step retriggers its effects the way a finger would, through a short fade; a pad you are holding by hand is never cut by the sequencer. Gate below Hold releases the effects part-way through the step unless the next step is an extension. Like Last follows the previous evaluated step; Play X Skip Y counts cycles per step. The pattern and all its locks save with the session.

Perform & master

The master is a performance surface too

The Perform menu (track button 2) has two pages. Page 1 is the Stumble stochastic glitcher plus Jump and Scan (an exact octave up while held). Page 2 is a master processing block:

Master filter

A low-pass with twelve analog characters ported from Fizzik: Clean, SEM, MS-20, Steiner, four ladders, Prophet, Oberheim, Diode/303, K35, Vintage. Cutoff and resonance are smoothed, so sweeps never step. Self-oscillates on the ladder voicings.

Master Clock

A Chase Bliss Mood-style pitch/rate warp with sample-rate crush. Music mode snaps to wide intervals (octaves, fifths, thirds); Free slides continuously. Place it pre- or post-punch.

Ducking pump

K7–K8: a tempo-synced sidechain pump. It ducks on every beat division and breathes back up: from a gentle swell to a hard rhythmic gate.

Tape transport

The ◀ ▶ arrows brake the whole master to a stop or wind it up to a tone, then ease back to speed on release. Fully organic.

Output (Settings page 2)

The master stage, in signal order after the punch bank and Drift: Out · LoCut · HiCut · PWide · Char · gSat · Glue · Limit. Char is thirteen hardware voicings ordered by grit, and it sets far more than an EQ curve: each one chooses the converter (bit depth, sample-rate hold, µ-law companding on the MPC), the saturator’s curve and asymmetry (first-order anti-aliased, so the grit is the machine’s rather than aliasing), the pole count of LoCut/HiCut, how the loops are read (Hermite → linear → drop-sample), and gives Glue and Limit the attack, release, knee and distortion of the dynamics unit that machine shipped beside — the 2254 behind a Neve, the 2500 with its THRUST sidechain behind an API, the SSL bus compressor.

CharMachineWhat it sets
Offtransparent bypass
962Studer 961/962 desknear-flat, a whisper of transformer; 2-pole filters; no glue colour
AirFocusrite ISA 110the air band: +3 dB at 15 kHz, 3-pole filters, clean and open
SSLSSL 4000 bustight lows, present mids; 3-pole filters; the bus compressor’s fast glue
NeveNeve 1073 + 2254warm lows, silky top; 2254 glue with its diode-bridge distortion
TridentTrident A-Rangebroad mid lift, 2-pole; the slow, soft A-Range dynamics
StuderStuder A800 tape60 Hz head bump, airy top; slow tape glue (30 ms / 600 ms)
APIAPI 550A + 2500forward 800 Hz, fast; 2500 glue with THRUST sidechain tilt
AmpexAmpex ATR-102fat lows, the heaviest saturation; slowest glue, limiter at −1.7 dB
MPCAkai MPC6040 kHz hold, 12-bit µ-law companding, 18 kHz 2-pole reconstruction
S950Akai S95012-bit linear, 25 kHz, 6-pole 10 kHz reconstruction filter; linear-interpolation reads
SP12E-mu SP-120026.04 kHz, 12-bit, no reconstruction filter; drop-sample reads (repeats samples when slowed)
EmuE-mu SP-12the same 26.04 kHz clock, darker fixed output (−4.5 dB at 5.5 kHz); drop-sample reads

Every figure, its source, and whether it is documented, measured or chosen is in CHARACTER-RESEARCH.md.

Loop Filter and record source (Settings page 1)

Loop Filter gives every loop the same twelve analog voicings as the Master Filter (Clean, SEM, MS-20, Steiner, four ladders, Prophet, Oberheim, Diode, K35, Vintage): the loop Filter knob sweeps and its low-pass takes on the chosen model, resonance from Reso. Input source (InSrc) chooses what each new recording samples: Line (the line/mic input, default), Master (the whole Move mix, minus Loopex’s own output so it never feeds back), S1–S4 (Schwung’s four mixer slots) M1–M4 (the four OG Move hardware tracks) or Self. Self is Loopex’s own master output, one block old — every loop, the punch chain, both sends and the master stage — so you can resample the whole mix back into a new loop. Unlike Master it has no feedback guard, because the regeneration is the point; the tape limiter at the end of the master chain keeps it saturating rather than running away, and Input Gain is the control. The per-track sources arrive over Ableton Link Audio — the host publishes its slots on /schwung-pub-audio and reconstructs the Move tracks on /schwung-link-in, each as an isolated stereo stem — so a loop can sample any single Schwung or Move track on its own, not just the summed mix (needs host 1.4 with link_audio_publish, on by default). If a stem is not available, Loopex records Line instead and says so on screen while Settings is open.

Settings page 1 also holds arm threshold, overdub mode, root note, input channels (Stereo · Left · Right · Sum — a mono synth on one jack records to both sides with Left), and MIDI In / MIDI Out; page 2 adds the punch-FX stereo width (mono → wide, per effect).

External MIDI

Play it from a LaunchControl XL

A Novation LaunchControl XL drives all sixteen loops from hardware. MIDI In (Settings page 1) enables external control; MIDI Out (Settings page 1) mirrors each loop’s transport back to the LCXL’s LEDs, sent on MIDI channel 2 so its buttons never collide with the Move’s own channel-1 pads.

Buttons

Track Focus (row 1) records, plays and pauses each loop; Track Control (row 2) mutes and unmutes it. The LEDs follow: red recording, green playing, amber paused, red on the control button when muted.

Knobs & faders

Per column the top knob is Loop Speed, then Filter and Pan, and the fader is Volume — for that loop.

Two SysEx templates ship at the repo root — BlackBox 1-8.syx (loops 1–8) and BlackBox 9-16.syx (loops 9–16). Load them onto the LCXL and set both to MIDI channel 2; Loopex accepts either range at once.

Drift

A memory that never quite repeats

On the Sample button: a global drifting-delay memory station in the spirit of Soma COSMOS. Four delay lines of coprime length, each read at a slowly drifting tap, feed back through a matrix that morphs from self-feedback to a normalised Hadamard cross-mix. The loop mix feeds it, the memory recirculates, and because the lengths are coprime and every line has its own asynchronous LFO, the recombination never lands on an exact repeat. It sits in the master chain just before the pump, so its ambient layer takes the character EQ, glue and limiter. Feedback is capped below unity, so the tail always fades: up to a few minutes at the top of the range. Leave everything paused and a silence bleed clears an abandoned tail after about eight seconds with no input. Drift and Mix start at zero, so it stays silent until you dial it in, and it saves with the session.

Drift · Rate · Size

Drift is how much of the loop mix is written into the memory. Rate is how fast the read taps drift. Size sets the tap length, from a close shimmer to a long hall.

FBk · Supr

FBk is the memory sustain: it is capped below unity so the tail always fades, up to a few minutes at maximum. Supr lets loud new input erase the old content, so you replace a layer by playing over it.

Blur · Damp

Blur opens the feedback from each line feeding itself to a full cross-mix between all four, smearing the taps together. Damp rolls the high end off the tail.

Mix

The wet level of the whole Drift layer blended back into the master. A parallel ambient wash under the loops, not a replacement for them.

Sessions

Save the whole rig

Sixty-four slots on the ≡ (Menu) button. A session stores every setting, the punch-pad values, the FX-sequencer pattern and all recorded audio. Del (K4) erases a slot. Saving over a used slot, or deleting one, asks first; each is date-and-time named, and the header shows which session is loaded. All disk work happens on a background thread, never on the audio callback, so saving never glitches playback; a second background thread runs the per-loop pitch shifters. Sessions live under /data/UserData/schwung/loopex-sessions/ and survive reinstalls.

Cheat sheet

Every gesture

GestureAction
Left 16 pads: the loops
Taprecord → play ⇄ pause
Undo + padoverdub (tap again to stop)
Hold (~1 s)clear the loop (Undo restores)
Shift + left padcycle playback speed ½× · 1× · 2×
Mute + left padquick mute (stays in phase)
Copy + left pad, then a second left padclone the first loop into the second
Loop + left padloop length 1× · ½× · ¼× · ⅛×
Shift + Record, then a left padthreshold-arm record (Shift + Record + jog sets the threshold)
Right 16 pads: the punch effects
Holdapply the effect on the master; press harder for its expression
Shift + right padlatch hands-free (Shift + right pad again unlatches)
Shift while holding a right padlatch it exactly as it is, pressure frozen
Undo + right padreset that effect and its LFO to defaults (LED flashes)
✕ + right pad(s) + stepwrite into the FX sequencer (see the section above)
Everything else
Stepselect loop → waveform · same step = next page
Up / Downloop page, or menu page
Jogscrub loop · P4: move touched head
Tracks 1–4Input · Perform · Send FX · Settings
CaptureInput Tape menu
Record (●, next to Capture)Drift menu
Menu (≡)Sessions menu
✕ (Delete)tap: run / stop the FX sequencer · hold: pattern view + FX Seq page
◀ / ▶tape brake / wind (held)
Undorevert last overdub, else last clear
Back / Shift+Backclose menu, then suspend / full exit
Credits

Standing on open work

Loopex is free and open source under GPL-3.0. It builds on Schwung, Mutable Instruments Clouds & Warps, Signalsmith Stretch, Airwindows, Jon Dattorro's plate, Charles Vestal's Performance FX (the punch-in pattern), and the sibling instruments Punchfx (the punch bank), Fizzik (the 12 filter voicings), Res, Essaim, Phasma, Palette, Magnéto and Signal. The thirteen Character voicings are built from manufacturer documentation and measurements, recorded in CHARACTER-RESEARCH.md. Full list in the repository.