Firmware

schwung-303

Hype15/100

TB-303 emulator for Schwung on Ableton Move — Open303 + Devilfish + GuitarML neural overdrive

schwung-303 is custom firmware for the Ableton Move, by @charlesvestal. Open source under GPL-3.0, latest release v0.3.3 (August 2026), 9 stars on GitHub.

forAbleton Move·by@charlesvestal

Unclaimed. Is this yours? Sign in with GitHub as @charlesvestal to claim it.

Downloads
0
Stars
9
Fork
1
Commits
21
Last commit
Download v0.3.3

303-module.tar.gz· 55 KB

GPL-3.0· charlesvestal/schwung-303·downloads come from the creator’s GitHub releases

21
Commits
6
Releases
21 commits and 6 releases in the last year
Activity · last 12 months
6 releases
  1. v0.3.3Latest1 file

    Corrects a mistake in v0.3.2.

    • Knobs 7 and 8 are Drive and Mix. v0.3.2 changed the help to say Waveform and Tuning, replacing a correct statement with an incorrect one.

      The root level declares both a params list and a knobs array. knobs is the knob assignment: planPages takes knobKeys(lvl) first and chunks it into the leading knob page, then appends the leftover params onto later pages. So the first page is exactly [cutoff, resonance, env_mod, decay, accent, volume, drive, drive_mix], and waveform/tuning are the overflow that lands on the page after it. v0.3.2 read the params declaration order instead.

    • Also now says where Waveform and Tuning actually live — jog on past knob 8 — which is the one thing the original text never covered, and notes that Drive and Mix are the same two values you see in the Drive submenu.

  2. v0.3.21 file

    Correction: the knob-list change in this release was wrong. Use v0.3.3.

    This release claimed knob 7 is Waveform and knob 8 is Tuning. They are Drive and Mix, as the help said before this release. The root level declares both a params list and a knobs array, and knobs is the knob assignment — planPages chunks it into the leading knob page and pushes leftover params (waveform, tuning) onto a later page. I read the params order. v0.3.3 restores Drive and Mix and says where Waveform and Tuning actually live.

    • On-device help now works at all. The help.json used a sections schema the Help viewer discards — it only reads a top-level children array — so the module had always shown "No help content available for this module". This part of the release stands.
    • Help covers accent (velocity ≥ 100), slide (overlapping notes), the CC map, the Devilfish mods and both drive models.
    • Corrects the Module Store description, which still advertised the GuitarML overdrive that was replaced by the Soft/RAT drive stage.
  3. v0.3.11 file
    • Add short_name to parameters for the Schwung knob grid
  4. v0.3.01 file

    Replaces LSTM overdrive with Soft + RAT drive models

    The GuitarML 40-unit LSTM overdrive was ~25-30% of an ARM core per instance at 44.1 kHz. Two 303s with OD on (a normal setup) combined with Link Audio publish load reliably tipped Move's audio threads over budget. This release drops the LSTM entirely and ships a 2-model drive stage:

    • Soft — tilt-EQ + 2x oversample + asymmetric tanh. Generic warm softclip, ~1-2% CPU.
    • RAT — ported from davemollen/dm-Rat (GPL-3.0). 3rd-order op-amp IIR with distortion-modulated coefficients → algebraic waveshaper x/(1+x⁴)^(1/4) around 2x oversampling → 1-pole tone stack. Classic ProCo RAT grit, ~2-3% CPU.

    Drive = 0 fully bypasses the stage (zero CPU cost). drive_model param selects Soft/RAT. CC 12/13 are unchanged on the wire (now labeled Drive/Mix instead of Overdrive Level/Dry-Wet).

    Housekeeping

    • Removed src/dsp/guitarml/, deps/RTNeural/, deps/Eigen/, src/models/
    • Tarball: ~5MB → 55KB
    • Attribution for dm-Rat added to README, LICENSE, and drive.h SPDX header

    Compatibility note

    Pairs with schwung-tb3po v0.2.3+ which updates the T1 secondary page to show "Drive"/"Mix" labels and queries the new param keys. Old TB-3PO (v0.2.2 and earlier) still sends CC 12/13 correctly but won't populate K7/K8 on initial sync.

  5. v0.2.01 file

    Changes since v0.1.0

    • State save/restore: the Shadow UI can now persist all params (including overdrive model and devilfish toggle) across reboots and preset recalls, via the standard state get/set key that other Schwung modules use.

    From v0.1.0

    • Open303 engine + jc303 Devilfish mod params + GuitarML neural overdrive (37 bundled amp/pedal models)
    • MIDI CC map: 74 cutoff, 71 resonance, 75 decay, 70 env_mod, 16 accent, 7 volume, 12 overdrive level, 13 overdrive dry/wet
    • Accent = velocity ≥ 100, slide = overlapping notes — matches tb3po's emission exactly
  6. v0.1.01 file

    Initial release.

    TB-303 emulator for Schwung on Ableton Move.

    What's in it

    • DSP: Robin Schmidt's Open303 engine, extended with jc303's Devilfish-inspired mod parameters (separate normal/accent decay, feedback HPF, soft attack, slide time, tanh shaper drive)
    • Overdrive: 37 neural-network amp/pedal models (TS9, RAT, Big Muff, Princeton, Mesa Mini Rec, Dumble, …) via RTNeural. Toggle off to bypass.
    • MIDI: notes drive pitch and gate. Accent = velocity ≥ 100. Slide = overlapping notes (matches tb3po). CC map honors conventions — 74=cutoff, 71=resonance, 75=decay, 7=volume, plus 70/16/12/13 for env-mod/accent/drive/mix.
    • No built-in sequencer — pair with schwung-tb3po or any MIDI source.

    Credits

    Ported from midilab/jc303 (GPL-3.0). Open303 engine by Robin Schmidt (MIT). Neural overdrive from GuitarML via RTNeural.