Skip to content

Releases: zsoltf/mpc-3-community-edition

MPC 3 Community Edition v0.2.4

Pre-release

Choose a tag to compare

@zsoltf zsoltf released this 17 Sep 20:16

v0.2.4

Build your image
| Controller guide

Fixed

  • The X-Touch's Save button no longer stops the controller. Pressing it used to
    kill the connection until the MPC was restarted. The button now does nothing;
    save from the MPC itself.

Install

Build the image, then flash it with the MPC's normal update procedure.
Settings and projects are kept.

Known limits

  • Save, the center button as Enter, and one-press Duplicate Sequence are not
    enabled on the X-Touch.
  • The Record button stays dark while overdubbing, and it records rather than
    overdubs.
  • Recorded automation is stepped at about ten points per second.
  • Session logs can be read only over SSH.
  • Reinstalling official firmware leaves the mpclearn folder; nothing uses it.
  • A fast wheel spin on some sliders overshoots.

MPC 3 Community Edition v0.2.3

Pre-release

Choose a tag to compare

@zsoltf zsoltf released this 17 Sep 18:00

v0.2.3

Build your image
| Controller guide

Changed

  • The controller runs directly from the installed image.
  • It keeps one small folder, mpclearn, in the MPC's internal system storage:
    the motor-fader setting and at most 16 MB of session logs.

Install

Build the image, then flash it with the MPC's normal update procedure.
Settings and projects are kept.

Known limits

  • Reinstalling official firmware leaves the mpclearn folder; nothing uses it.
  • Session logs can be read only over SSH.
  • Recorded automation is stepped at about ten points per second.
  • The center button as Enter and one-press Duplicate Sequence are not enabled.
  • A fast wheel spin on some sliders overshoots.

MPC 3 Community Edition v0.2.2

Pre-release

Choose a tag to compare

@zsoltf zsoltf released this 17 Sep 14:58

v0.2.2 - automation Write no longer freezes the controller

v0.2.2 repairs a bug in v0.2.0 that killed the X-Touch whenever you recorded
plugin automation from the controller, fixes track names and colours turning
into dashes after a few project loads, and does less work per tick.

Build your image
| Read the controller guide

If you are on v0.2.0, upgrade. The freeze is easy to hit in ordinary use.

Fixed: the controller froze when recording automation

On v0.2.0, arming automation Write and then moving a controller fader or
encoder bound to a plugin parameter stopped the X-Touch dead. Faders went limp,
the display froze, and only a restart brought it back. It did not matter
whether Write was armed from the controller or from the MPC's own screen.
Recording plugin automation from the faders with Flip on, which is a normal way
to work, hit it immediately.

The cause was a check that was too suspicious of ordinary activity. While the
controller has a change in flight, the runtime confirms what the app did with
it. With Write armed, the app records automation by making its own change to
the same parameter inside that window. The runtime could see the call was not
the one it asked for, but instead of ignoring it as somebody else's work, it
declared the whole session untrustworthy and shut the controller down.

Seven places across six subsystems had the same flaw. Three were found only by
defining the defect by its shape rather than by the subsystem it first appeared
in, and each is a path you drive from the controller that automation Write can
shadow: mute and solo, pad parameters, and program volume and pan.

One further fault was different in kind. During recording the app hands the
runtime one of several internal objects, chosen at run time. The check accepted
only one of them, and never the one automation actually uses, so it could not
have worked. It now accepts every object that genuinely carries the work, and
still refuses the one that discards it.

Fixed: track names and colours became dashes

After roughly five project loads, track names and colours stopped updating and
showed dashes while faders and modes kept working. An internal table filled up
because entries were never reclaimed when the things they described went away.
Entries are now reclaimed, so the tables hold steady across project loads.

Less work per tick

  • Meters go quiet when the music does. Meter levels were re-sent every
    50 ms for every strip regardless of value, up to 160 messages a second over
    USB while the machine sat in silence. A level that is still moving is still
    refreshed; a level that has reached zero is sent once. The bars fall and stay
    down.
  • The state copy stopped clearing what it immediately overwrites. Every
    tick, a hundred times a second, the bridge was zeroing memory it was about to
    fill in. It now clears only what is genuinely not written. Memory bandwidth,
    not processor share, is what previously produced audible clicks on this
    hardware, so that is the quantity this cuts.
  • Smaller trims: cached strip lookups, playhead text formatted only when it
    changes, and a skipped read for work already done.

Twice the resolution when tweaking a plugin live

Changing a plugin parameter from the controller cost two of the app's screen
updates: one to apply the change and one to read back the result. The readback
ran at the start of an update while the value it needed arrived just after the
previous one, so it always just missed and waited out a whole cycle for a value
that already existed. It now looks again at the end of the same update.

Measured on hardware: a parameter now reads back in 10 ms instead of 50, and a
steady encoder turn records 16 to 20 points a second instead of 9 to 11. Twenty
a second is the ceiling the app allows.

Known limitations

  • Recorded automation is still stair-stepped. The improvement above applies
    when Write is off. While recording, the app runs a second step of its own
    that the value must not be read before, so a recorded lane still captures
    about ten points a second and fast moves show visible steps. The contour is
    correct and no input is lost. This is the app's own recorder timing and is
    unchanged from v0.2.0.
  • The cursor cluster's centre button as Enter and one-press Duplicate
    Sequence
    remain built but disabled, unchanged from v0.2.0.
  • A fast wheel spin on some sliders still overshoots.

Upgrading

The provisioner upgrades devices running r2, r3, r4, r5 and v0.2.0 into a new
stage and replaces their boot helpers. Your settings and projects are
preserved. Flash the image the same way you flashed v0.2.0.

There was no public v0.2.1. It was packaged and then superseded by this release
before it was ever published.

Building from source works again

The source published with v0.1.0-rc.3 and v0.2.0 could not be built: it was
missing four files that the runtime includes, for mouse support, the data wheel,
the jog press and Duplicate Sequence. The images for those releases were
unaffected, because they are built from the full development tree. If you tried
to build either from source and hit a missing-file error, that is why.

This release's public source was built from a clean copy and produces the same
runtime as the published image, byte for byte in every code and data section.
The export now refuses to publish a tree that references a file it does not
include.

Verification

Both published images were decoded by an independent decoder and match the
reviewed filesystem byte for byte. The regression suites pass at 48, 83 and 7
checks with no failures, and every new guard was proved to fail when broken.
The freeze fix was reviewed independently, which re-ran the mutation set itself
rather than trusting the implementer. Every fix in this release was reproduced
and then confirmed fixed on real hardware.

MPC 3 Community Edition v0.2.0

Pre-release

Choose a tag to compare

@zsoltf zsoltf released this 16 Sep 17:31

v0.2.0 - X-Touch jog, cursor and footswitch control

v0.2.0 brings hands-on Mackie Control for the full-size Behringer X-Touch,
USB mouse support, and a set of new X-Touch controls that turn the jog wheel,
the cursor cluster and the footswitches into MPC controls. No Global MIDI Learn
profile is required; the controller drives the MPC through the app's own
commands, with motorized fader feedback from the MPC's own state.

Build your image
| Read the controller guide

What's new since the mouse release

  • Jog wheel as the MPC data wheel. The Scrub button toggles the
    jog wheel between its scrub behaviour (move the position by bars, beats and
    ticks) and data-wheel mode, where one detent is one step on whatever control
    has focus - lists, fields and sliders alike. The Scrub LED is lit in scrub
    mode and off in data-wheel mode, and the mode resets to scrub whenever a
    project loads or the controller reconnects.
  • Cursor cluster. In data-wheel mode the up/down keys are one data-wheel
    step up and down, like the MPC's plus and minus, and left/right move to the
    previous and next control, like Shift+Tab and Tab. In scrub mode the cluster
    keeps the plain cursor arrows and the centre button's zoom toggle.
  • Footswitches. Footswitch 1 is Play and footswitch 2 is Record, for
    hands-free looping. Check the X-Touch footswitch polarity setting if a switch
    reads as pressed at rest.

Not yet

Two controls are built and exercised by the test suite but are disabled in
this build
and do not do anything on the device:

  • The cursor cluster's centre button as Enter (select/confirm the focused
    item).
  • One-press Duplicate Sequence on the Replace button.

Both call an MPC entry point synchronously from the controller's input drain -
one opens a modal, the other waits on the Copy Sequence command's thread
rendezvous - which froze the X-Touch bridge in device testing. They are held
back pending an asynchronous redesign (post to the app's message thread and
return at once) and are gated off in the shipped bridge. Everything else in the
cluster works.

The USB mouse

  • A cursor appears after a boot with the mouse plugged in, and on hot-plug
    afterwards. No manual step, no Remote Screen and no web server.
  • Left click acts as a touch: buttons, pads, fields and drag-select work as if
    you touched the screen.
  • The wheel is the data wheel for whatever control has focus, not a scroll
    wheel tied to the cursor position. Select notes, tap Lengthen, turn the wheel.
  • Known limit: a fast wheel spin on some sliders, for example a volume slider,
    overshoots and drags the value. Slow notches and fast spins over lists,
    tracks, presets and numeric fields are stable. The right button and long-tap
    gestures are not implemented.

Also included

  • Mixer faders, pan, mute/solo/arm/select, fixed banks, names and colors.
  • Selected-track sends/returns, drum pad mixing and I/O.
  • Grouped insert parameters, bypass, toggle clicks and Flip.
  • Q-Link banks, mode selection, live feedback and Flip.
  • Transport, jog scrub, position feedback, automation Read/Write and Undo/Redo.
  • Add Track and track-type shortcuts that open MPC's native choosers.
  • Automatic startup and reconnection after loading projects.
  • One mixer snapshot per input batch, visible-bank meters only and live state in
    RAM instead of on the flash partition, so a heavy project plays cleanly with
    the controller connected.
  • A browser image builder with SSH disabled by default and optional owner keys.

Upgrading from an earlier image

Build and flash the v0.2.0 image the same way. On first boot it installs the
v0.2.0 runtime into its own directory, replaces the boot helpers from the
earlier release, and switches startup to v0.2.0. Any earlier installation and
its session files stay on the device, a disabled installation stays disabled,
and settings and projects are preserved. This works from every prior image the
project has shipped.

Before you install

This is an experimental pre-release, not a production-stability claim. It
was tested on a single MPC Live II 3.9.1 + full X-Touch MC/USB (and one
mouse). Other Gen1 models are community test targets. Gen2 MPCs, Force, HUI and
other MCU controllers are not supported by this release.

The X-Touch jog, cursor and footswitch controls, the mouse, and the mixer,
transport and audio were confirmed on the owner's Live II. The shipped runtime
is that same tested source rebuilt for the v0.2.0 stage directory, because the
stage path is compiled into the package; it is the tested build's source with
the same hook recipe, built against the new paths, not the exact bytes the
owner tested. The v0.2.0 image itself has not yet been flashed or booted on
hardware; the provisioner and image checks here are filesystem-level only.

Retain your official firmware and back up your projects. Disable Track, Global
and Control for the X-TOUCH_INT input in MIDI/Sync before making music.

Downloads

Most users should use the Image Builder above. Supply the official firmware
from Akai; do not upload or share a generated complete image.

  • mpc3-ce-website-v0.2.0.zip: static image builder for self-hosting.
  • mpc3-ce-mcu-81f3086.tar.gz: matched runtime payload for developers; not a
    firmware image or a standalone end-user installer.
  • SHA256SUMS: checksums for the attached archives.
  • GitHub's source archives contain the public release source and documentation.

Known limits: controller-only chooser navigation, full synth/preset navigation,
MIDI pan/sends and CV volume are absent. Some buttons remain unassigned.
See the full guide before testing.

Please share compatibility reports through
Issues.
Include hardware, firmware and reproduction steps; exclude private keys,
complete settings and projects. Thank you for helping make this useful for
more MPC musicians.

MPC 3 Community Edition v0.1.0-rc.3

Pre-release

Choose a tag to compare

@zsoltf zsoltf released this 16 Sep 02:43

v0.1.0-rc.3 - USB mouse support (r5)

The r5 update makes a USB mouse a usable input on the MPC. MPC 3.9.1 already
contains pointer handling and a hardware cursor, but the feature is gated by a
flag that only the Remote Screen listener sets and that has no setting on this
firmware. The runtime now calls the app's own enable routine once, on its UI
thread, when a pointer device appears, and routes the mouse wheel into the
focused control's data wheel. Everything else is the r4 runtime: MCU behaviour,
the command and mirror formats and the controller bridge are unchanged, and the
r4 heavy-project audio repair is kept.

The MPC 3 Community Edition brings hands-on MCU control to MPC standalone,
including motorized fader feedback from the MPC's own state. No Global MIDI
Learn profile is required.

Build your image
| Read the controller guide

What the mouse does

  • A cursor appears after a boot with the mouse plugged in, and on hot-plug
    afterwards. No manual step, no Remote Screen and no web server.
  • Left click acts as a touch: buttons, pads, fields and drag-select work as if
    you touched the screen.
  • The wheel is the data wheel for whatever control has focus, not a scroll
    wheel tied to the cursor position. Select notes, tap Lengthen, turn the
    wheel. Slow and fast spins were both tested on the device.

What is not done

  • The right button does nothing. Long-tap callouts are not implemented.
  • Slow drags do not accumulate sub-pixel movement, so a very slow drag can
    jitter. Pointer acceleration is whatever libinput's default profile gives.
  • A fast wheel spin on some sliders, for example a volume slider, still
    overshoots and drags the value; slow notches and fast spins over lists,
    tracks, presets and numeric fields are stable.
  • The feature was tested with one mouse (a Logitech G402) on one MPC Live II.

Also included

  • Mixer faders, pan, mute/solo/arm/select, fixed banks, names and colors.
  • Selected-track sends/returns, drum pad mixing and I/O.
  • Grouped insert parameters, bypass, toggle clicks and Flip.
  • Q-Link banks, mode selection, live feedback and Flip.
  • Transport, jog, position feedback, automation Read/Write and Undo/Redo.
  • Add Track and track-type shortcuts that open MPC's native choosers.
  • Automatic startup and reconnection after loading projects.
  • The r4 heavy-project repair: one mixer snapshot per input batch, visible-bank
    meters only and live state in RAM instead of on the flash partition.
  • A browser image builder with SSH disabled by default and optional owner keys.

Why the wheel needed a rework

MPC's numeric editors run a time-based accelerator: it multiplies a velocity on
every call that follows closely on the previous one, and the result is
truncated to a signed byte, so calling the app's single-step data-wheel entry
once per wheel notch wrapped negative on a fast spin and the value rubber-banded.
The hardware data wheel does not work that way - it makes one call carrying a
signed notch count. The runtime now does the same: each scroll event banks its
notches, and one signed, clamped ProcessDataWheelRotation call is made per
libinput drain. The same hook also neutralises MPC's own JUCE wheel delivery for
that event, because otherwise one notch moved the selection (from the runtime)
and scrolled the view (from JUCE) at the same time.

One gap is documented rather than hidden: the hardware path also walks the
component tree to check that the focused control is really showing. That walk is
not replicated; a showing-flag check on the focused component substitutes for it.

Upgrading from r2, r3 or r4

Build and flash the r5 image the same way. On first boot it installs the r5
runtime into its own directory, replaces the boot helpers from the earlier
release, and switches startup to r5. Earlier installations and their session
files stay on the device. A disabled installation stays disabled. Settings and
projects are preserved.

Before you install

This is an experimental pre-release, not a production-stability claim.
Runtime testing used MPC Live II 3.9.1 + full X-Touch MC/USB. Other Gen1
models are community test targets. Gen2 MPCs, Force, HUI and other MCU
controllers are not supported by this release.

The mouse runtime was tested on the owner's Live II in the r4 stage: cursor at
boot and on hot-plug, clicking and drag-select, and the wheel over tracks and
presets at slow and fast speeds. The shipped runtime is that same source
rebuilt for the r5 stage, because the stage directory is compiled into the
package; it is the tested commit's source built against the new paths, with the
same hook recipe as the binary the owner tested, not a different implementation.
The owner then flashed the r5 image over the r4 installation on the Live II:
it booted, installed the r5 stage, replaced the boot helpers, kept the r4
stage and its session files, and the flashed build showed the cursor at boot
and after hot-plug, clicked and drag-selected, drove the wheel over tracks and
presets, and played the heavy project with the X-Touch connected. The r2 and
r3 upgrade paths are checked in an extracted ARM filesystem only.

Retain your official firmware and back up your projects. Disable Track, Global
and Control for the X-TOUCH_INT input in MIDI/Sync before making music.

Downloads

Most users should use the Image Builder above. Supply the official firmware
from Akai; do not upload or share a generated complete image.

  • mpc3-ce-website-v0.1.0-rc.3.zip: static image builder for self-hosting.
  • mpc3-ce-mcu-4d060dc.tar.gz: matched runtime payload for developers; not a
    firmware image or a standalone end-user installer.
  • SHA256SUMS: checksums for the attached archives.
  • GitHub's source archives contain the public release source and documentation.

Known limits: controller-only chooser navigation, full synth/preset navigation,
MIDI pan/sends and CV volume are absent. Some buttons remain unassigned.
See the full guide before testing.

Please share compatibility reports through
Issues.
Include hardware, firmware and reproduction steps; exclude private keys,
complete settings and projects. Thank you for helping make this useful for
more MPC musicians.

MPC 3 Community Edition v0.1.0-rc.2

Pre-release

Choose a tag to compare

@zsoltf zsoltf released this 15 Sep 17:46

v0.1.0-rc.2 - Heavy-project performance update (r4)

The r4 update repairs audible clicks that the r3 runtime produced in a larger
project (roughly 40 tracks of synths and drums) when several X-Touch faders
moved at once. The bridge now takes one mixer snapshot per input batch instead
of one per MIDI message, validates only the target value before each motor
message, requests level meters for the eight visible strips only, and keeps
its live shared state in RAM instead of on the flash partition. On the tested
Live II the bridge dropped from peaks of 35% of one CPU core to 8%, the MPC
process no longer rose during fader movement, and the owner reported no
clicks with eight faders, unplug/reconnect during playback and Drum Mix on
the project that clicked. These are bounded tests on one project, not a claim
of long-session stability.

The MPC 3 Community Edition brings hands-on MCU control to MPC standalone,
including motorized fader feedback from the MPC's own state. No Global MIDI
Learn profile is required.

Build your image
| Read the controller guide

Included

  • Mixer faders, pan, mute/solo/arm/select, fixed banks, names and colors.
  • Selected-track sends/returns, drum pad mixing and I/O.
  • Grouped insert parameters, bypass, toggle clicks and Flip.
  • Q-Link banks, mode selection, live feedback and Flip.
  • Transport, jog, position feedback, automation Read/Write and Undo/Redo.
  • Add Track and track-type shortcuts that open MPC's native choosers.
  • Automatic startup and reconnection after loading projects.
  • A browser image builder with SSH disabled by default and optional owner keys.

Upgrading from r2 or r3

Build and flash the r4 image the same way. On first boot it installs the r4
runtime into its own directory, replaces the boot helpers from the earlier
release, and switches startup to r4. Earlier installations and their session
files stay on the device. A disabled installation stays disabled. Settings and
projects are preserved.

Before you install

This is an experimental pre-release, not a production-stability claim.
Runtime testing used MPC Live II 3.9.1 + full X-Touch MC/USB. Other Gen1
models are community test targets. Gen2 MPCs, Force, HUI and other MCU
controllers are not supported by this release.

The device owner flashed the r4 image over an r3 installation on MPC Live II.
It booted, upgraded into the r4 stage while keeping the earlier installation,
the controller connected, and audio on the heavy project was clean. This does
not establish compatibility with other hardware or long-session stability.

Retain your official firmware and back up your projects. Disable Track, Global
and Control for the X-TOUCH_INT input in MIDI/Sync before making music.

Downloads

Most users should use the Image Builder above. Supply the official firmware
from Akai; do not upload or share a generated complete image.

  • mpc3-ce-website-v0.1.0-rc.2.zip: static image builder for self-hosting.
  • mpc3-ce-mcu-9000390.tar.gz: matched runtime payload for developers; not a
    firmware image or a standalone end-user installer.
  • SHA256SUMS: checksums for the attached archives.
  • GitHub's source archives contain the public release source and documentation.

Known limits: controller-only chooser navigation, full synth/preset navigation,
MIDI pan/sends and CV volume are absent. Some buttons remain unassigned.
See the full guide before testing.

Please share compatibility reports through
Issues.
Include hardware, firmware and reproduction steps; exclude private keys,
complete settings and projects. Thank you for helping make this useful for
more MPC musicians.