Application to create basic MPC Sample starter projects from your desktop

bajdev f56cd2de51 Merge branch 'atomic-edits' of bajdev/mpckit into main 7 часов назад
build f5ae1ed1e4 Release 0.5.2 13 часов назад
cmd 3c2b97b38c M3: export, CLI and device checkpoint A pack 2 дней назад
docs 08bd7ce725 Rename samples named after Windows devices 13 часов назад
frontend 4b9088a393 Stop exposing raw paths to the window 13 часов назад
internal d891586e51 Make edits all-or-nothing 8 часов назад
pull-requests d891586e51 Make edits all-or-nothing 8 часов назад
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 f5ae1ed1e4 Release 0.5.2 13 часов назад
Taskfile.yml f5ae1ed1e4 Release 0.5.2 13 часов назад
dialogs.go 6cbfe07496 M6: move, copy and swap pads; load projects 1 день назад
go.mod f5ae1ed1e4 Release 0.5.2 13 часов назад
go.sum 7bd77faa2c M4: app shell 2 дней назад
main.go bcc54b31a8 Reject malformed projects at load 16 часов назад
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. 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.2" 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.