Application to create basic MPC Sample starter projects from your desktop

bajdev c436348a3a Merge branch 'release-0-5-3' of bajdev/mpckit into main hace 1 hora
build 5417ce1846 Release 0.5.3 hace 1 hora
cmd 3c2b97b38c M3: export, CLI and device checkpoint A pack hace 2 días
docs f6af7c4fdc Plan: add PR 8b, bind only what the window needs hace 5 horas
frontend cd198bb23c Bind only what the window needs hace 2 horas
internal 5417ce1846 Release 0.5.3 hace 1 hora
pull-requests d1da8797d3 Correct the release note on failed edits hace 1 hora
testdata 13f4e4ac26 M1: xpj container and ordered JSON tree hace 2 días
tools 91d97fdb75 Name the app MPCkit hace 1 día
.gitignore 7bd77faa2c M4: app shell hace 2 días
LICENSE cf62ee7ba7 Set licence copyright and add Akai disclaimer hace 2 días
README.md 5417ce1846 Release 0.5.3 hace 1 hora
Taskfile.yml 5417ce1846 Release 0.5.3 hace 1 hora
dialogs.go 6cbfe07496 M6: move, copy and swap pads; load projects hace 1 día
go.mod f5ae1ed1e4 Release 0.5.2 hace 12 horas
go.sum 7bd77faa2c M4: app shell hace 2 días
main.go cd198bb23c Bind only what the window needs hace 2 horas
main_test.go fbd8cc2a1b Fit the window and layout to the display hace 1 día

README.md

MPCkit

Application to create basic MPC Sample starter projects from your desktop.

The 0.5 releases are betas for testing. Expect rough edges, and keep copies of projects you care about.

What it does

  • Build kits for the Akai MPC Sample on your computer: assign WAV files to pads (banks A–H, 16 pads each), tune them, set mute groups, and move, copy or swap pads.
  • Set up sequences: name, tempo and length. Notes are recorded on the device.
  • Load a project saved on the device, change it, and export it again.
  • Export to a folder (for example straight onto the device's card) or a zip. A project is a .xpj file plus a <name>_[ProjectData] folder with the samples.

Install

Builds are not signed yet, so each system warns the first time you open MPCkit.

  • Windows 10 and 11: run mpckit.exe. If SmartScreen says "Windows protected your PC", choose More info, then Run anyway. MPCkit uses the WebView2 runtime, which is part of Windows 11 and current Windows 10.
  • macOS: move mpckit.app to Applications and open it. macOS will say it can't check the app for malicious software. Open System Settings → Privacy & Security, scroll to the message about MPCkit and choose Open Anyway, then confirm.
  • Linux: make the file executable (chmod +x mpckit) and run it. It needs the GTK 4 and WebKitGTK 6.0 libraries, which current desktop distributions include or offer in their package manager.

Development

MPCkit is a Wails v3 app: Go for all file work, Svelte + TypeScript for the window.

You need:

  • Go 1.26 or newer. Builds use Go 1.27.4 or later (the toolchain line in go.mod, for a net/http security fix); an older Go downloads 1.27.4 by itself. Some Linux packages, openSUSE's among them, set GOTOOLCHAIN=local and ignore that line: there, set GOTOOLCHAIN=go1.27.4 for every Go and wails3 command.
  • Node.js (current LTS) with npm
  • The Wails CLI: go install github.com/wailsapp/wails/v3/cmd/wails3@v3.1.0
  • On Windows, the WebView2 runtime (already part of Windows 11). On Linux, the GTK and WebKitGTK development packages that wails3 doctor lists.

Then, from the repository root (cmd, PowerShell or a shell):

wails3 doctor      # checks the tools above
wails3 dev         # builds and opens the app; reloads on changes
wails3 build       # builds bin/mpckit (bin\mpckit.exe on Windows)

The first run installs the frontend packages and generates frontend/bindings from the Go service.

wails3 build stamps the version (APP_VERSION in Taskfile.yml, kept in step with version in build/config.yml) and the commit it was built from, so About shows, for example, "Version 0.5.3" and "Build 2354f57" ("-dirty" if there were uncommitted changes). wails3 dev shows "dev".

Releasing a new version: set it in APP_VERSION (Taskfile.yml), version in build/config.yml, build/windows/info.json (four places), build/windows/wails.exe.manifest, build/windows/nsis/wails_tools.nsh, build/darwin/Info.plist and Info.dev.plist (two places each) and build/linux/nfpm/nfpm.yaml. After the merge, tag the merge commit v<version>.

The app icon is drawn by go run ./tools/icon build/appicon.png. The Windows and macOS icon files are generated from that PNG during the build.

Tests: go test ./.... On Linux without the GTK packages, use CGO_ENABLED=0 go test -tags purego ./... instead.

go run ./cmd/mpckit-cli builds a project from the command line, go run ./tools/checkpoint-a builds the device test pack (see its README), and go run ./tools/xpjdiff A.xpj B.xpj compares two projects (the .xpj contents and the data folders).

Disclaimer

MPCkit is an independent project. It is not affiliated with, endorsed by or supported by Akai Professional or inMusic Brands. Akai, MPC and MPC Sample are trademarks of their respective owners and are used here only to describe the device MPCkit works with.

Licence

MIT. See LICENSE.