overdub

schwung-performance-fx

charlesvestal/schwung-performance-fx · ★ 4

Performance FX module for Move Anything - 32 punch-in audio effects with pressure control

README from GitHub, MIT

Performance FX

Live punch-in audio effects processor for Schwung on Ableton Move hardware. 32 pressure-sensitive FX pads with latching.

Prerequisites

  • Schwung 0.12.0 or later on your Ableton Move. Older hosts run the effects only on Schwung's own audio, so Move's mix passes through unchanged.

Installation

  1. Launch Move Everything on your Move
  2. Open Overtake Modules (Shift+Vol+Jog Click)
  3. Select Module Store
  4. Navigate to Performance FX and install

Manual Installation

./scripts/build.sh
./scripts/install.sh

Features

  • 32 punch-in FX pads — hold to activate, release to stop
  • Pressure sensitivity — press harder for more effect intensity
  • Shift+hold latching — lock FX on, Shift+hold again to unlatch
  • Global EQ — tilt EQ and DJ filter on dedicated knobs

FX Layout

Row 4 — Time/Repeat (Orange)

PadEffectDescription
1RPT 1/4Beat repeat, quarter notes
2RPT 1/8Beat repeat, eighth notes
3RPT 1/16Beat repeat, sixteenth notes
4RPT TRPBeat repeat, triplet
5STUTTERGlitch stutter
6SCATTERRhythmic slice rearrangement
7REVERSEReverse playback
8STRETCHTime-stretch slowdown

Row 3 — Filter Sweeps (Blue)

PadEffectDescription
1LP SWPLow-pass filter sweep down
2HP SWPHigh-pass filter sweep up
3BP RISEBand-pass filter sweep up
4BP FALLBand-pass filter sweep down
5RESO SWResonant sweep
6PHASERPhaser
7FLANGERFlanger
8AUTOFLTAuto-filter (LFO-swept SVF)

Row 2 — Space/Delay (Purple)

PadEffectDescription
1DLY 1/4Delay, quarter note
2DLY D8Delay, dotted eighth
3PP 1/4Ping-pong delay, quarter note
4PP D8Ping-pong delay, dotted eighth
5ROOMRoom reverb
6HALLHall reverb
7DK VERBDark reverb
8SPRINGSpring reverb

Row 1 — Distortion/Rhythm (Pink/Green/Yellow)

PadEffectDescription
1CRUSHBit crusher
2DWNSMPLSample rate reduction
3SATURATESaturation/drive
4GATERhythmic gate
5TREMOLOTremolo/autopan
6OCT DNOctave down pitch shift
7VINYLVinyl noise overlay
8VNL BRKVinyl brake slowdown

Encoders

KnobFunction
E1Repeat Length
E2Repeat Speed
E3Repeat Loop on/off
E4-E6Per-FX params for the last touched pad (see below)
E7Tilt EQ
E8DJ Filter
Shift+E8Global Dry/Wet

Touch any knob to see its current value. Tap a latched pad to select it for E4-E6 editing without unlatching. The display always shows the selected pad's own three labels, read from the DSP, so what you see is what that effect actually implements.

Per-FX Parameters (E4 / E5 / E6)

Knobs set the base value and pressure moves it either side of that, so a knob never takes expression away from the pad.

EffectE4E5E6
RPT 1/4 – RPT TRPFilterGateDecay
STUTTERFilterGateDecay
SCATTERPatternGateReverse
REVERSELengthFilterDecay
STRETCHSpeedFilter—
LP SWP / HP SWPSpeedResoDepth
BP RISE / BP FALLSpeedResoDepth
RESO SWSpeedResoMix
PHASERDepthFeedbackMix
FLANGERDepthFeedbackMix
AUTOFLTDepthResoCenter
DLY 1/4 / DLY D8FeedbackToneLevel
PP 1/4 / PP D8FeedbackToneLevel
ROOM / HALL / DK VERB / SPRINGDecayToneLevel
CRUSHBitsToneMix
DWNSMPLRateToneMix
SATURATEDriveToneMix
GATERateDutyDepth
TREMOLORateDepthShape
OCT DNPitchToneMix
VINYLNoiseWarmthMix
VNL BRKRateNoiseTone

A wet control (Mix, or Level on the sends) only appears where blending against the dry signal is a real technique. Effects that move audio in time get something more useful instead — their wet signal is a delayed copy of the dry, so mixing the two comb-filters rather than blends. SCATTER's Pattern selects one of five slice orders: Shuffle, Stutter, Interleave, Scramble, Retrograde.

Controls

ControlFunction
PadsHold = FX on, release = off
PressureModulates the selected parameter around its knob position
Shift+PadLatch/unlatch FX
Undo (tap)Bypass toggle
Undo (hold)Momentary bypass
Jog turnCoarse BPM
Shift+Jog turnFine BPM
BackExit

Building

Requires Docker for ARM64 cross-compilation:

./scripts/build.sh      # Build via Docker
./scripts/install.sh    # Deploy to Move

Third-Party Libraries

  • Bungee — Time-stretching library (MPL-2.0)
  • Eigen — Linear algebra (MPL-2.0)
  • PFFFT — FFT library (BSD-like, FFTPACK license)
  • cxxopts — Command-line parser (MIT) (build-time dependency of Bungee)
  • RevSC — Costello/Soundpipe-style FDN reverb (MIT, clean reimplementation)

License

MIT