Skip to content
DevkoPublic

About

Analog-style monosynth VST for MPC OS on the Akai Force: morphing oscillators, a nonlinear transistor ladder, feedback, Multidrive, Duo, 57 presets, touchscreen pages

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

SubForce

An analog-style monosynth that runs natively inside MPC on the Akai Force.

SubForce is a VST2 instrument for MPC OS's built-in plugin host, with its own touchscreen pages and Q-Link sets. It tips its hat to a classic 37-key American paraphonic analog monosynth (the original in these docs), built on the same plugin groundwork as its sibling PolyForce. The name, DSP and presets are all SubForce's own.

Note

Preview (0.0.x). The engine, plugin, touchscreen pages and factory presets are complete and pass the full test suite on x86 and under ARM emulation. On a Force (MPC OS 3.9) the 0.0.5 release installs and plays, at about 3% of a block (tested.json). The parameter list may still change before v0.1: sounds are saved by name and survive that, but recorded automation (stored by parameter index) could then move a different control.

SubForce's FILTER page

The FILTER page, rendered offline from the skin (on the device MPC fills in the values).

Highlights

  • Two oscillators with a continuously variable wave (triangle → saw → square → narrow pulse), 32' to 2', hard sync, a square sub oscillator (−1 or −2 octaves) and noise (white, pink or dark)
  • Analog: one knob from ideal to a real unit's habits — drift, cycle-to-cycle jitter, slightly imperfect wave shapes, every note a little different, and every instance its own instrument
  • Mixer with feedback — the mixer's output back into it, as on the original: thicker, then gritty, then the chaos of an overdriven loop — and the classic habit of overdriving the filter when the levels are high
  • 4-pole transistor ladder filter: 6, 12, 18 or 24 dB, resonance self-oscillating past 70% of the knob, the ladder's bass loss, Multidrive (asymmetric, tube-like warmth to hard clipping), keyboard tracking up to 200%
  • Two DAHDSR envelopes (filter, amp) with a linear or exponential attack, velocity, keyboard tracking, reset, latch, sync to MPC's tempo, and a loop that runs through the release as the original's does
  • Two mod busses: eight LFO shapes, the envelopes, velocity, pressure, the key or a constant, free, locked to MPC's tempo or in Hi range up to 1 kHz (audio-rate FM, filter FM and ring modulation, worked out every sample; key-tracked for harmonic FM), to pitch, cutoff and one of 19 more destinations (the envelopes' and glide's times among them), their depth from the mod wheel, velocity and pressure
  • Beat Freq: oscillator 2 detuned by up to ±3.5 Hz, beating at the same rate on every note
  • Mono or Duo (each oscillator its own key: by priority, the highest and lowest, or oscillator 2 as a drone), note priority, single or multi trigger, glide (rate, time or exponential; gated or not), the bend on either oscillator
  • Band-limited and oversampled: polyBLEP oscillators and the whole voice at 2× (88.2 kHz) with a halfband decimator; worst aliasing −53 dB up to C7, hard sync −65 dB
  • 108 factory presets in 7 categories, level-matched, most of them for melodic techno (rolling basslines, resonant sequences, big leads, and a melodic set of plucks, stabs, arps and pads); user presets, favorites, a browser, Init and Randomize
  • Light on the CPU: one voice, about 2.9% of a block on the Force (4.3% with everything on), with NEON where the work is parallel

Effects are deliberately left out: use MPC's insert effects on the track.

Listen

From source, on Linux or WSL: make demos renders every factory preset and a filter sweep through the plugin's own entry points into build/demos-out/ (WAV, and all of them back to back as tour.wav), the way MPC plays it — no device needed.

Documentation

Document What's in it
User guide The pages, the sound engine, presets, melodic techno, MIDI
Building Toolchain, make targets, tests, device bench, packaging, release builds
Architecture Source layout, the signal path, threads and real-time rules, saved state
Performance CPU budget, measurements, the DSP's measured quality
Roadmap What's done, what's next, decisions
Changelog What changed in each release

Requirements

  • An Akai Force. Other first-generation (32-bit ARM) MPC OS devices may work but are untested.
  • Root SSH access to the device (for example through MockbaMod). Stock MPC OS has no way to install third-party plugins.
  • MPC OS 3.x (tested on 3.9). Release builds use glibc symbols up to 2.27 only, but they also need GCC 11's libstdc++ (GLIBCXX_3.4.29), and MPC OS 2.x doesn't draw third-party plugin pages: 2.x is untested. A local build with a newer cross toolchain needs glibc 2.38 (3.x only; see Building).

Installation

Download a release package (SubForce-<version>-mpc-armv7.zip) from Releases, or build one with make plugin-package (see Building). Unzip it and follow the INSTALL.md inside. In short:

scp -r SubForce-<version> root@<device-ip>:/tmp/
ssh -t root@<device-ip> sh /tmp/SubForce-<version>/install.sh

The installer asks for confirmation (-y skips it), stops MPC (save your project first), copies the plugin to /sdcard/Synths/Devko - VST - SubForce/, backs up and edits MPC.settings, and starts MPC again. Running it again upgrades in place and keeps your own presets (in Presets/User/ inside that folder) and favorites. Then add SubForce to a track from MPC's instrument plugins.

To uninstall, run the package's uninstall.sh the same way: it stops MPC, removes the plugin and its MPC.settings entry (after a backup) and starts MPC again; your own presets and favorites stay in the plugin folder (delete it to remove them too).

Building from source

On Linux or WSL (developed on Ubuntu 24.04):

make test            # the full test suite under ASan/UBSan
make arm-plugin      # build/arm/subforce.so for the device
make plugin-package  # dist/SubForce-<version>-mpc-armv7.zip

Release packages come from CI (glibc 2.31, profile-guided, checked with the plugin catalog's own checker): see Building.

Status

Stage
Phases 0 and 1 — engine, plugin, pages, 57 presets, tests, package, the original's behaviour ✅
Release build in CI (glibc 2.31, profile-guided, catalog-checked) ✅
On the device: installs, loads and benches (make bench-device) ✅
0.0.2 — the first regular release (in the plugin catalog, with a download) ✅
0.0.3 — the original's modulation: Beat Freq, Hi range, more sources and destinations, depth amounts; 71 presets ✅
0.0.4 — the rest of the original's manual: LFO key tracking, exponential attack, latch, EG sync, osc 2's keys and drone, gated glide, Bend To; 74 presets ✅
0.0.5 — Analog: jitter, imperfect shapes, per-note and per-unit variation ✅
0.0.6 — a review's fixes (EG Sync, glide and EG times, latch and MPC's stop, units, Pitch Bend source) ✅
0.0.7 — Multidrive calibrated against recordings of the original: grittier at full ✅
0.0.8 — the melodic set: 34 presets (108 in all) ✅
On the device: play every page 🔜
v0.1 — parameter list frozen (append-only from then on) ⬜

Details in the roadmap.

License

SubForce is released under the MIT License. Third-party components keep their own licenses (below).

Credits

  • Plugin groundwork (VST2 glue, touchscreen logic, preset library, build and bench tooling): PolyForce, MIT.
  • The ladder's cheap nonlinear zero-delay solution: Teemu "mystran" Voipio's "cheap non-linear zero-delay filters" (KVR forum, 2012). The decimator's structure and coefficient formulas: Laurent de Soras's HIIR (WTFPL). Pink noise: Paul Kellet's "economy" filter.
  • Skin generator, previews and installer: sd88me/mpc-vst-plugins (MIT), vendored in third_party/mpc-vst-plugins with a few small, marked patches.
  • Interface font: Titillium Web, SIL Open Font License 1.1 (surface/fonts/OFL.txt).

SubForce is an independent project, not affiliated with or endorsed by Moog Music, Akai Professional / inMusic or Steinberg, nor by any artist named in its documentation. Akai, Force and MPC are trademarks of inMusic Brands; VST is a trademark of Steinberg Media Technologies GmbH.

About

Analog-style monosynth VST for MPC OS on the Akai Force: morphing oscillators, a nonlinear transistor ladder, feedback, Multidrive, Duo, 57 presets, touchscreen pages

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages