Application to create basic MPC Sample starter projects from your desktop

bajdev 6d71a6771b Merge branch 'safe-export' of bajdev/mpckit into main 16 小時之前
build 0ae366e1fc Release as 0.5.1 1 天之前
cmd 3c2b97b38c M3: export, CLI and device checkpoint A pack 2 天之前
docs 08bd7ce725 Rename samples named after Windows devices 17 小時之前
frontend 91d97fdb75 Name the app MPCkit 1 天之前
internal 08bd7ce725 Rename samples named after Windows devices 17 小時之前
pull-requests 08bd7ce725 Rename samples named after Windows devices 17 小時之前
testdata 13f4e4ac26 M1: xpj container and ordered JSON tree 2 天之前
tools 91d97fdb75 Name the app MPCkit 1 天之前
.gitignore 7bd77faa2c M4: app shell 2 天之前
LICENSE cf62ee7ba7 Set licence copyright and add Akai disclaimer 2 天之前
README.md 0ae366e1fc Release as 0.5.1 1 天之前
Taskfile.yml 0ae366e1fc Release as 0.5.1 1 天之前
dialogs.go 6cbfe07496 M6: move, copy and swap pads; load projects 1 天之前
go.mod 7bd77faa2c M4: app shell 2 天之前
go.sum 7bd77faa2c M4: app shell 2 天之前
main.go bcc54b31a8 Reject malformed projects at load 19 小時之前
main_test.go fbd8cc2a1b Fit the window and layout to the display 2 天之前

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
  • 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.1" 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.