MINI-JV
JV-880 Emulator VST Plugin for MPC OS
💬 Questions or feedback? Join the Open MPC Discord.
MPC OS. Tested on a Force (MPC OS 3.x). From v1.0.6 the plugin library and the touchscreen skin are built in the shapes MPC OS 2.15.1 reads, and the catalog labels that release "MPC OS 2.x + 3.x" from its checks, but it has not been tried on a 2.x unit yet: testers on an MPC Live / One / X / Key running 2.x are welcome (Discord link above). Earlier releases (v1.0.5 and before) are 3.x only: on 2.x they load and play from the Q-Links, but the touchscreen page stays empty. The catalog shows which MPC OS each release works on, and the installers warn before putting a 3.x-only plugin on a 2.x device. See MPC OS 2.x vs 3.x in the main repo.
MINI-JV as a native VST2 instrument for Akai MPC OS standalone devices (MPC Live/One/X/Key, Force). It loads in MPC's built-in plugin host and has its own touchscreen skin with Q-Link support.
Current release: v1.0.6 — see Releases.
Features
- Roland JV-880 sample-based (ROM PCM) sound engine, with the JV-880's own reverb and chorus.
- Play page: eight macros (cutoff, resonance, filter envelope depth, LFO depth, attack, decay, sustain, release), output (octave, patch pan, patch level, tone 1-4 on/off), patch settings (analog feel, bend range, portamento, key assign, velocity switch, solo legato) and reverb and chorus, all on one screen.
- Banks page: a list of every loaded bank and its patches. Tap a bank to browse it, tap a patch to load it; the selected bank and the loaded patch stay highlighted. The top strip has three steppers (bank, patch, patch page) and the page's Q-Links and the data wheel step the bank, the patch and the page. The lists number top to bottom, and stepping the patch across a bank follows it.
- Tone 1-4 pages: wave selection, pitch, pitch/filter/amp envelopes (knobs for every level and time) and both LFOs for each tone. Moving an envelope knob shows that tone's three envelope curves for a few seconds in place of the LFO blocks; the VIEW switch on the Amp panel holds them open.
- SR-JV80 expansion cards load automatically and appear as extra banks (up to 19 in addition to the 3 built-in banks; verified with 4133 patches across 22 banks).
- 16 Q-Links per page, following the page you are on.
- Hardware-style panel: dark rack, amber highlights, green dot-matrix LCD, black keycap buttons.
ROMs (required, not included)
The plugin makes no sound without your own JV-880 ROM dump, which must be v1.0.0 (v1.0.1 causes
CPU traps in the emulated H8/300 core). The ROMs and any SR-JV80 expansion cards are copyrighted Roland
firmware, so they are not included, bundled or committed anywhere in this repo or its release zip. Stage
them on the device yourself: see docs/ROMS.md for exact filenames, sizes and locations
(jv880-roms/roms/ inside the plugin folder, e.g. /sdcard/Synths/sd88me - VST - JV-880/jv880-roms/roms/, expansions under roms/expansions/).
Requirements
- A first-generation MPC OS standalone device (32-bit ARM: Force, MPC Live / Live II, One, X, Key 61). Tested on a Force.
- Root SSH access to the device. Installing plugins this way is unofficial: back up first, use at your own risk.
Install
-
Download
JV-880-1.0.7-mpc-armv7.zipfrom the latest release and unzip it. -
Copy the folder to the device and run the installer (it stops MPC, so save your project first):
scp -r JV-880-1.0.7 root@<device-ip>:/tmp/ ssh root@<device-ip> sh /tmp/JV-880-1.0.7/install.sh -
Stage your ROMs as described in docs/ROMS.md.
-
Add JV-880 to a track from the plugin browser (Instrument plugins).
The zip's INSTALL.md has the manual steps and the uninstall command. Running the installer again
upgrades in place. After replacing the plugin file on a running device, remove and re-insert the plugin
on any track that uses it.
Build from source
Needs a sibling checkout of mpc-vst-plugins (the shared
wrapper, build_port.sh, skin tooling) at ../mpc-vst-plugins, or set MPC_VST to point at one.
Docker (with QEMU for arm32v7) is needed by its build pipeline.
./build.sh
Output in build/: jv880.so, the skin folder, and pluginlist-entry.xml. No third-party source is
fetched at build time. To put a build on a device, package it and use the installer (the plugin is one folder in
/sdcard/Synths, ROMs in its jv880-roms/roms/):
./release.sh <version> # dist/JV-880-<version>-mpc-armv7.zip; unzip, copy to the device, run install.sh
A skin-only change needs no MPC restart: re-insert the plugin or reload the project. Registering the
plugin in MPC.settings and the rest of the device workflow are in mpc-vst-plugins'
docs/PORTING.md and .claude/skills/mpc-vst-plugin/SKILL.md.
Status
v1.0.0. Builds clean for armhf and runs on a real Force with all ROMs and 19 SR-JV80 expansions loaded; audio, bank/patch browsing and Q-Link control are checked on that hardware. The release zip was not run through its own installer on a device before publishing; the plugin and skin it contains are the ones tested.
CPU (Force, RK3288 at 1.8 GHz, one instance, 2026-09-27). The synthesis runs on the plugin's own
jv880-emu thread, so it is measured from that thread's CPU ticks while the plugin is loaded on a track:
| State | jv880-emu thread |
|---|---|
| Idle, no notes | about 20% of one core |
| Playing chords and held notes (30 s) | about 47% of one core |
The audio-path bench (tools/bench.sh) passes with a p99 of 3.3% of a block, but it does not measure that
thread and understates this port (see mpc-vst-plugins' docs/NOTES.md). Plan for a few instances at most, not
a full set of tracks. The playing figure is one measurement with an unrecorded patch and note count.
Background
The sound engine is a vendored copy of schwung-jv880,
a plugin_api_v2 build of the JV-880's H8/300 MCU and PCM wavetable emulator originally written for
Ableton Move. src/VENDORED.md lists exactly what is vendored, from which commit, and our local source
changes. It is wrapped as an MPC OS VST2 plugin with mpc-vst-plugins' shared tooling.
The screen layout and colour palette started from force-jv880's
Force Shadow page, then were reworked for this plugin (the Play/Patch merge, the Banks page and the
palette are specific to this port). This repo is purely the VST port; force-jv880 remains the separate
MockbaMod/Force Shadow addon for the Force's own on-device app, a different architecture (a separate host
process with an audio-injection tap, not a VST).
More detail: docs/DESIGN-NOTES.md (port rationale and every deviation from the Force Shadow page), docs/ROMS.md (ROM and expansion staging), src/VENDORED.md (what is vendored and why).
Credits
- Roland: the original JV-880 hardware and its ROMs (not included; see docs/ROMS.md).
- nukeykt: the H8/300 MCU + PCM emulation core this traces back to (originally written for Nuked-SC55).
- giulioz: mini-jv880 / juce-jv880, adapting that core specifically into a standalone JV-880 emulator.
- charlesvestal:
schwung-jv880, the
plugin_api_v2build for Ableton Move this port vendors directly. - sd88me: this MPC OS VST2 port, and force-jv880.