overdub

schwung-busdriver

legsmechanical/schwung-busdriver · ★ 0

Bus Driver — a measured model of Ableton Live's Drum Buss, for Schwung on Ableton Move

Built on Schwung

README from GitHub, MIT

Bus Driver

A model of Ableton Live 12's Drum Buss, for Schwung on Ableton Move. Built from measurement of the device rather than from its documentation.

Using it

Add Bus Driver as an Audio FX in a Signal Chain (or Master FX) and open its editor. It has two pages — jog past the second to loop back to the first.

Shape — the sound-shaping controls, all turn-and-hold knobs:

KnobRangeWhat it does
Drive0..1Amount of drive into whichever Character is selected.
Char (Character)Soft / Medium / HardThree genuinely different machines. Soft is a wavefolder — past about half way its 3rd harmonic overtakes the fundamental and the tone hollows out. Medium is a limiter, and the only one with measurable asymmetry. Hard is a clean clipper and reaches its ceiling fastest. Turning it pops up the option list — tap to pick.
Crunch0..1Mid-high grit. Its brightness is not an EQ curve — the linear response is a broad mid boost and the high end comes from harmonics it generates. Damp is the antidote.
Damp500..20000 HzOne-pole low-pass. The number is the −3 dB corner; the low end is untouched at every setting. Sits after Crunch, so it tames what Crunch adds.
Trans (Transients)−1..+1, centeredAsymmetric by sign. Down is a gate — shortens the tail, leaves the hit alone. Up raises attack and sustain, attack more. Most of the range is in the last quarter either way.
Boom0..1A tuned sub generator that boosts around its tuning and cuts below it, which is what stops it adding subsonic mud. Does little past 0.75.
B Freq (Boom Freq)30..90 HzWhere Boom is tuned.
Decay (Boom Decay)0..1How long Boom rings — not its level.

Mix — the utility strip, one switch and three level controls:

ControlWhat it does
CompA fixed compressor, not an amount — a plain on/off switch, tap to flip: threshold −20 dBFS, ~2.3:1 soft knee, +11 dB makeup, ~420 ms release. Sits before the Drive, so it changes what the distortion sees.
Trim−70..0 dB, before the distortion — sets how hard you hit it. Draws as a level bar, not a dial.
Out (Output)−40..+3 dB, after everything — a clean level control. Draws as a level bar.
Mix (Dry/Wet)0..1 across the whole device, so under 100% is parallel processing. At 0 it is a true bypass and nulls. Draws as a level bar.

⚠️ It is not transparent at its defaults — it adds about 3 dB and saturates. That is what the original does; only Mix at 0 is a bypass.

Measured signal order

Trim → Transients → Compress → Drive → Crunch → Damp → Boom → Dry/Wet → Output

Measured, not taken from the documentation. Two placements rest on an argument that a gain downstream of a nonlinearity cannot change the harmonic-to-linear ratio: toggling Compress moves that ratio, and so does Transients, so both must sit upstream of the distortion.

Install

scripts/build.sh      # Docker cross-compile + package dist/
scripts/install.sh    # scp to move.local (MOVE_HOST=172.16.254.1 for USB tether)

Then insert Bus Driver as an Audio FX in a Signal Chain (or Master FX).

Development

tests/run_tests.sh — offline harness driven through the real audio_fx_api_v2 surface. The checks assert against Ableton's measurements, not against this implementation's own behaviour, so they can fail when the model is wrong rather than only when it changes.

tools/score.py — scores the model against the 22 stock presets on held-out audio. That number is the project's actual claim.

Credits

MIT (see LICENSE). Built on the Schwung framework by Charles Vestal. Drum Buss is Ableton's device; this is an independent model of it, not affiliated with or endorsed by Ableton.