Firmware

Rollers_Bass

Rising76/100

Korg NTS1 MK2 and Microkorg 2 Bass OSC

Rollers_Bass is custom firmware for the Korg microKORG 2 and Korg Nu:Tekt NTS-1 digital kit mkII, by @TwistedGenetics. Latest release v1.1.0 (October 2026).

forKorg microKORG 2,Korg Nu:Tekt NTS-1 digital kit mkII·by@TwistedGenetics

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

Downloads
0
Stars
0
Forks
0
Commits
7
Last commit
Download v1.1.0

Rollers.mk2unit· 26 KB· +2 files

Custom license· TwistedGenetics/Rollers_Bass·downloads come from the creator’s GitHub releases

7
Commits
2
Releases
7 commits and 2 releases in the last year
Activity · last 12 months

Rollers

A jungle / drum & bass bass oscillator for the Korg NTS-1 digital kit mkII and the Korg microKORG 2, built with the logue SDK.

Rollers handles the bassline: a heavy, clean sub with a moving Reese (or a Hoover stack) on top. The two are split inside the oscillator. The upper band is high-passed just above the note, so the sub owns the fundamental, and drive and crunch only touch the upper band. However dirty the top gets, the low end stays solid on a big system. A built-in pitch drop on every note gives you 808-style thuds and glides without spending the synth's envelopes, and CRUNCH adds S950/S1000-style resampled grit.

Download & install

Go to Releases and download the file for your synth.

NTS-1 mkII: Rollers.nts1mkiiunit

  1. Open KORG KONTROL Editor with the NTS-1 mkII connected (firmware 1.3 or later recommended).
  2. Drag the file onto the oscillator list, then press SEND.
  3. Select Rollers with the OSC button.

microKORG 2: Rollers.mk2unit

Needs microKORG 2 firmware 2.0.0 or later (the version that added logue SDK support).

  • KORG Sound Librarian (Korg's official app for v2.0): connect the microKORG 2 by USB, add Rollers.mk2unit as a user oscillator and send it to the synth.
  • Or USB mass storage: hold the first option button while powering on, then copy the file into Units/Oscs/ (into a SlotN folder) on the drive that appears.

Rollers then appears at the end of the oscillator list. The microKORG 2 version is polyphonic: every voice has its own pitch drop and its own Reese drift.

The microKORG 2 runs a lean version of the engine (core/rollers_lean4.h, since v1.1.0), because the full engine run once per voice was too heavy for the synth and crackled. It renders four voices at a time with NEON, works out the slow-moving maths once per audio buffer instead of every sample, and uses cheaper saws (DPW, as in Korg's own vox). Silent voices cost nothing. The controls and sound are the same; levels match the NTS-1 version within about 1.5 dB.

RLmeter.mk2unit (optional, also in each Release) is the same oscillator with its CPU load shown next to MODE, e.g. S+RS 37% (peak over the last half second; 100 % = out of time, crackles). Load it alongside Rollers if you hear crackles and want to know how close to the limit a patch is.

Controls

The parameters are the same on both synths, in the same order.

NTS-1 mkIImicroKORG 2ParameterRangeWhat it does
Knob AOSC page 1BLEND0–1023Sub ↔ upper balance. Both are at full level around the middle (512). In SUB mode it adds "body" (a clean 2nd harmonic); in REESE mode it's a tone control (dark → open)
Knob BOSC page 1DETUNE0–1023Reese detune, from slow phasing (0.5 cent) to full wobble (±45 cents); also sets how far DRIFT wanders
Edit 1OSC page 1SUB SHAPESINE, TRI, FOLDSub waveform. FOLD is a lightly folded sine (adds a 3rd harmonic), so the sub still reads on laptop speakers and phones
Edit 2OSC page 2PITCH DROP0–100 %How far above the note each note starts, falling back to the note (0 to 2 octaves). Affects the whole oscillator
Edit 3OSC page 2DROP TIME0–100 %How fast it falls: 5 ms (punchy click/thud) to ~0.8 s (long 808 glide)
Edit 4OSC page 2VOICES2–4Number of detuned saws in the Reese / Hoover stack. Level is compensated
Edit 5OSC page 2DRIFT RATE0–100 %Speed of the slow random wander of each saw's tuning (0.05–4 Hz; 0 = static). Stops the Reese sounding like a fixed chorus. In HOOVER it also speeds up the PWM
Edit 6OSC page 2DRIVE0–100 %tanh saturation on the upper band only, level compensated
Edit 7OSC page 3CRUNCH0–100 %Sample-rate reduction (48 kHz → ~4 kHz) + bit reduction (16 → 5 bits) on the upper band only. Aliasing is deliberate here. 0 = clean
Edit 8OSC page 3MODESUB, REESE, SUB+RS, HOOVERWhat's playing (below)

NTS-1 mkII: hold OSC and turn the TYPE encoder to choose an Edit parameter, then use Knob B to set the value. The NTS-1's shape LFO modulates BLEND, which is good for sub/Reese swells.

microKORG 2: the parameters are on OSC pages 1–3. In the virtual patch, Rollers adds four modulation destinations: Blend, Detune, Drive and Crunch. Modulation is per voice. Try velocity → Drive, or an envelope → Detune for a Reese that widens as the note opens.

Modes

  • SUB: just the sub. Knob A adds body (2nd harmonic).
  • REESE: just the detuned saw stack, full range (no sub, no split). Knob A is a low-pass tone control. Classic Reese on its own, for layering with something else.
  • SUB+RS (default): clean sub plus the high-passed Reese on top. Knob A balances them. The main jungle/DnB bass.
  • HOOVER: a detuned stack of PWM-modulated saws with a short pitch dip on attack (starts a fifth low and swoops up over ~70 ms), the "Mentasm" family of sounds. Sub underneath as in SUB+RS.

Changing MODE or VOICES while a note is playing does a quick (one block) fade-out/fade-in instead of a hard switch, so it doesn't click.

Starter settings

Hit the notes with short gates for rollers, longer for 808-ish glides. Knob values are the NTS-1 readout (0–1023).

NameModeBlendDetuneSub shapeDropDrop timeVoicesDriftDriveCrunch
Rolling subSUB00SINE25 %25 %20 %0 %0 %
Classic ReeseSUB+RS560450SINE0 %30 %335 %30 %0 %
Dark ReeseREESE350650SINE0 %30 %455 %60 %0 %
Hoover stabHOOVER700520SINE15 %15 %440 %20 %0 %
Crunchy 94SUB+RS600400FOLD10 %20 %330 %45 %55 %
808 glideSUB+RS150300TRI70 %70 %220 %20 %0 %

The desktop tests render a short 170 BPM riff with each of these to test/out/preset_*.wav. They're also in each CI run's artifact, so you can hear them before loading anything.

Test checklist (by ear on the hardware)

Start from the defaults (SUB+RS, Blend 560, Detune 410, 3 voices, Drop 20 %, Drive 25 %).

  • Tuning: MODE SUB, SINE, PITCH DROP 0: A4 reads 440 Hz on a tuner.
  • Pitch drop: DROP 100 %, DROP TIME low → a thud; DROP TIME high → a long falling glide that lands in tune.
  • Blend: Knob A from 0 to 1023 goes sub → sub+Reese → Reese with no volume jumps or clicks.
  • Sub stays clean: SUB+RS, Blend ~512, turn DRIVE and CRUNCH to 100 %: the top gets filthy, the sub doesn't get weaker or distorted.
  • Detune / drift: DETUNE 0 → slow phasing; DETUNE up → wide wobble; DRIFT 0 = steady, DRIFT up = the movement wanders.
  • Voices: 2/3/4 sound progressively thicker at about the same level.
  • Crunch: 0 clean; small amounts add grit; 100 % = very lo-fi, aliasing top end.
  • Hoover: swoops up into each note; the stack shimmers (PWM).
  • Switching: change MODE and VOICES while holding a note: a brief dip, no click.
  • High notes: top octave with DRIVE and CRUNCH at 0 sounds clean, no whistling aliases.
  • NTS-1 shape LFO: route to shape → BLEND wobbles between sub and Reese.
  • microKORG 2 virtual patch: route an LFO or envelope to Blend / Detune / Drive / Crunch and hear each move.
  • microKORG 2 chords / full polyphony: HOOVER, 4 voices, DRIVE and CRUNCH up, hold 8 notes: no dropouts or crackles (this is the heaviest case for the CPU). With RLmeter loaded, note the % shown next to MODE.
  • Everything at max: loud and nasty, but no dropouts, crackles, or the unit stopping.

CPU

Rollers uses no tables and allocates no memory. Expensive maths (detune, drift, drive/crunch settings, PWM widths, filter coefficients) runs once per block. The per-sample work is a handful of PolyBLEP saws and polynomial sines, plus one exp2 while a pitch drop is still falling.

  • Desktop (test harness, worst case: HOOVER, 4 voices, drop + drive + crunch): ~50 ns per sample, about 0.25 % of real time on the build machine.
  • NTS-1 mkII (Cortex-M7): this is an estimate, not a measurement. At a few hundred cycles per sample, it should sit well under 10 % of the CPU.
  • microKORG 2 (Cortex-A7, up to 8 voices): the lean renderer measures about 275 instructions per sample for a group of four voices in the typical case (SUB+RS, 3 saws, drive on) and about 450 in the worst case (HOOVER, 4 saws, drive and crunch at max). That's desktop SSE2 counts; NEON needs fewer. Groups with no sounding voice are skipped. Korg doesn't publish the per-oscillator budget, so check with RLmeter. If a big chord still crackles, use fewer VOICES, a lighter mode, or fewer voices in the patch.

The NTS-1 unit is ~8.5 KB (limit 48 KB) and links no library code beyond what Korg's examples use.

Building

GitHub Actions builds both units with Korg's own toolchains and runs the DSP tests on every push. Each run's files are under the Actions tab.

Releases are automatic: when .version in nts1mkii/header.c and microkorg2/header.c changes (e.g. 0x00010001U = 1.0.1) and is pushed to main, Actions tags it and publishes a new Release with both unit files. Pushes that keep the same version refresh that Release's files.

To build locally (no Docker needed):

./build.sh          # both units into dist/
./build.sh nts1     # NTS-1 mkII only
./build.sh mk2      # microKORG 2 only (Linux: Korg only publishes its toolchain for Linux)

This downloads the toolchains and the logue SDK into .deps/ on first run.

Desktop DSP tests check NaN/clipping/DC across every mode, shape, voice count and note range, plus tuning, pitch-drop landing, aliasing, zipper noise, level consistency, and that drive and crunch don't touch the sub. They also write demo WAVs to test/out/:

./test/run.sh

Layout

core/         rollers.h (full DSP: NTS-1 mkII, desktop tests), rollers_lean4.h (4-voice NEON renderer: microKORG 2)
nts1mkii/     NTS-1 mkII unit: header.c (parameters), unit.cc (SDK callbacks), Makefile, config.mk
microkorg2/   microKORG 2 unit: header.c, unit.cc (voice groups, voice events, virtual patch, optional load meter), Makefile, config.mk
tools/mk2-meter/  RLmeter: the microKORG 2 unit built with the CPU load meter
test/         render.cc, run.sh
build.sh
.github/workflows/build.yml   CI build + release

Notes

  • Developer ID 0x5477476E ('TwGn'), unit ID 3 (VectorFM is 1, Formant Mutator is 2). If you register an ID with Korg (pull request to the logue SDK's developer_ids.md), set it in both header.c files.
  • Built against logue SDK commit e78b16c.
  • BSD 3-Clause licence (see LICENSE).