Repository navigation
Releases
v0.5.2
v0.5.1
DR32 0.5.1: no limit on engines in a kit
Requires Schwung 1.5.0 or later.
- A kit can now hold any number of different engines. 0.5.0 turned down an
engine once a kit held too many kinds (TOO MANY ENGINES IN KIT). That limit is
gone: every engine loads. - In a kit with very many different engines, a pad's engine pages can take a
moment to appear. DR32 keeps the pages of the pad you are on and of the engines
you used last. Move to a pad whose engine is not among them and you see Pad and
Mix first, and its engine pages a fraction of a second later. Kits that fit
before behave exactly as they did, and a kit of DR32's own engines always fits. - Sets and kits saved with 0.5.0 open unchanged.
v0.5.0
DR32 0.5.0: engines from other modules
Requires Schwung 1.5.0 or later.
- Other modules can add engines to DR32. A module installed beside DR32 can offer
its own voices as engines. If one of yours does, the ENGN picker shows a section
named after it, below DR32's own, and a pad playing one gets that module's knobs on
its pages. There is nothing to set up. These pads work like any other synth pad:
volume, pan, choke groups, sends, buses, Copy, Link and Resample all apply. A newly
installed module's engines appear after the Move restarts. - A pad whose module is missing is kept. Open a set on a Move without the module
and the pad is silent and reads "name missing". Its sound and settings stay in the
set, and it plays again once the module is installed. - A kit holds a limited number of different engines once other modules' engines
are in it. Past the limit the picker says TOO MANY ENGINES IN KIT and leaves the
pad as it was. Any number of pads can share an engine already in the kit, and a kit
of DR32's own engines never reaches the limit. - Pages are sent to the host for the engines a kit uses, not for every engine
always. A sample kit's page description is a tenth of the size it was. - Sets and kits saved with 0.4.1 open unchanged.
For module developers: a module ships one extra file, dr32_engine.so, and its
sounds appear in DR32. The spec and a walkthrough are in docs/ENGINE_PLUGINS.md,
the contract is the single header dsp/dr32_engine_api.h (MIT), there is a starter
plugin in docs/plugin_template/, and tools/plugin_check.c checks a plugin on your
own machine before it goes near a device.
v0.4.1
DR32 0.4.1: Move's envelope names, and finer envelope knobs
Requires Schwung 1.5.0 or later.
- ENV reads Trigger / Gate, Move's own names for the two envelope modes (the box
shows "Triggr"). Kits and saved sets are unchanged: they still store A-H-D / A-S-R,
so a set saved with 0.4.1 opens on 0.4.0 too. - Attack, Hold and Decay are weighted for short times. The knobs turn exactly as
before, but the first half of each turn covers up to 1 s (Hold, Decay) or 100 ms
(Attack) in fine steps, a few milliseconds per detent around 50 ms, finer with
Shift. While you turn one, a box over the page shows the time. The header shows the
knob's position, 0 to 1. Hold turned fully up is still Inf. - The Shape knobs are in the envelope picture's order: ATK, HOLD, DCY.
- In Gate mode, Hold does nothing, as on Move's Drum Sampler.
v0.4.0
DR32 0.4.0: synth drums, a Stereo page, and Resample
Requires Schwung 1.5.0 or later.
Any pad can be a synth drum
The ENGN knob opens a picker: Sample, or a drum from one of eight engines. Mix them
freely in one kit.
- Simian and Urchin: Punk Labs' OneTrick SIMIAN 2 and URCHIN, with URCHIN's Media page
- 9W9, 6W6, 8W8, CW-78: athousanddetails' drum machines, one drum per pad, played exactly as
the machine plays it - ChowKick: Chowdhury DSP's kick synth, its five factory presets as drums
- FM: DR32's own FM drums as four engines, FM Kick, FM Snare, FM Metal and FM Perc, each ranged
for its drums, with Output and Velocity pages
A synth pad's pages follow the pad, in place of Shape.
New pages
- Stereo on every pad: Comb, Haas or Disperse widening, with a crossover that keeps the low
end centred, plus Time, Comp and Late. - Resample: turn a pad, or every synth pad, into a level-matched 24-bit sample on the pad.
Kits and samples
- The kit list gains Init, and choosing a category loads the kit it lands on.
- Kits load in the background: browsing no longer interrupts audio.
- Drums are seated by note, and the PAD knob shows the pad's number in large type.
- The sample browser is a list you click into, with a scroll bar; a picked sample plays to its end.
- The envelope picture shows Hold and follows the A-H-D / A-S-R switch (thanks, Charles).
Fixes
- Per-pad Send A / Send B were silent; they reach the returns again.
- The Peak filter's gain has a control (RES becomes GAIN in Peak mode).
- Re-loading the same kit or sample does no disk read, and saving is cheaper on the audio thread
(Charles Vestal's fixes).
Credits
The synth drums are other people's instruments, carried over whole: Punk Labs (SIMIAN, URCHIN;
buy them at punklabs.com), athousanddetails (9W9, 6W6, 8W8, CW-78), building on Matthew Cieplak's
ER-99, Matthew Fecher / AudioKit Pro's 606 voices and Sonic Pi's sc808 after Yoshinosuke
Horiuchi's SC-808; Jatin Chowdhury / Chowdhury DSP (ChowKick). Full list in NOTICES.md.
Licence: GPL-3.0-or-later from this release (earlier releases stay MIT).
Manual: https://legsmechanical.github.io/schwung-dr32/manual.html
v0.3.2
Requires Schwung 1.3.0 or later.
Changed
-
Link now exits when you change anything else, not just another linkable control.
Previously the mode only released when you touched a different linkable parameter. The controls Link can never spread — loading a sample, stepping BRWS, changing a pad's note — did not end it, so you could arm Link, swap a sample, and the mode was still armed with nothing on screen saying so. The next knob you touched then flattened the whole kit.
Now any edit ends it, including the master level, which is not a per-pad control and previously missed the rule entirely.
-
Playing a pad still does not end it, so you can audition while you sweep. Focus following a pad hit does not end it either.
Unchanged
Link still never spreads the things that make a pad a distinct pad — its sample, its note, its browse position — and it is still off whenever DR32 loads.
Asset updated in place on 2026-09-09: the tarball now carries a Copying pads page in the on-device help (hold Copy and hit a pad to make it the source, hold Delete to clear, Undo restores the last pad overwritten). dsp.so, module.json and ui.js are byte-identical to the original v0.3.2 upload — only help.json changed, so there is no behaviour difference between the two downloads.
v0.3.1
Documentation release — no behaviour changes. Requires Schwung 1.3.0 or later.
Changed
-
The module bus framework is now documented, in the README, the manual and the on-device help. It was the half that had never been written down: "two sends per pad" described the tapping and said nothing about the grouping.
All 32 pads are published to Schwung's module buses, so the host can render any subset onto its own bus with its own insert effect chain — hats through a reverb while the kick stays dry. Pads arrive labelled from the loaded kit's samples, so you route Kick 707 rather than voice 3, and pad identity is stable, so a routing survives loading a different kit.
The framing used throughout: buses group, sends tap.
-
check_help.mjsnow measures help section titles, not just body lines. A title is drawn by the same routine with the same silent clipping past the right edge of the screen, so an over-long section name would have lost its tail with nothing reported.
help.json ships inside the module, so this is a real version bump rather than a docs-only edit.
v0.3.0
First public release. Requires Schwung 1.3.0 or later.
Move's Drum Rack with 32 pads instead of 16. It loads Move's own .ablpreset drum kits from the Core and User libraries and plays them through a reconstruction of the same Drum Sampler voice — a kit built on the device opens here and sounds like itself, with twice the pads.
What's in it
- Routing. All 32 pads are published to Schwung's module bus framework, so any subset can be rendered onto its own bus with its own insert effect chain. Separately, each pad carries its own Send A / Send B level in dB into the global return buses — which is what a send amount means in a Move kit, so an imported kit arrives with its levels intact.
- A kit browser that only lists kits that load. DR32 builds its own catalogue by reading file content, not extensions: a typical device has 365 presets in the Track Presets tree of which only 75 are drum racks. Grouped as Acoustic / Electronic / Hybrid / My Kits. Scrolling auditions what you land on.
- Four knob banks — Sample, Shape, Mix and Master — plus the two-level Category → Kit browser. Sample, Shape and Mix are three views of one pad, sharing a single focus.
- Per-pad editing: playback region, transpose and detune, choke groups, A-H-D and A-S-R envelopes, four filter types, velocity response, pan, level and Punch.
- Sample swapping in place:
SMPLopens a browser already in that pad's own folder;BRWSsteps through its neighbours one sample per detent. - Link sets one control across all 32 pads at once, releasing when you reach for a different one.
- Pad names follow the loaded sample, so the header names the drum you are editing.
- On-device help under Module Help, and an HTML manual.
Known limits
- Browsing kits has no undo — the cursor loads what you land on, replacing the current kit. Save first.
- Pads 17–32 sit outside Move's 4×4 pad map, so the header's small map does not light for them.
- Per-pad playback effects other than Punch are parsed and preserved (kits stay lossless and reopen on Move) but are not played back.
- Return-chain effects saved inside a kit are preserved but not set up for you.
Install
Download dr32-module.tar.gz below and install it through Schwung Manager, or wait for the catalog entry.