Mapping & customization
Export and import preset JSON
Move presets between machines, share them with collaborators, or version-control them in git. The bridge's preset format is plain JSON, no binary blobs.
Updated
Exporting and importing preset JSON is how you sync a mapping between your studio laptop and your stage rig, share a sick patch with a bandmate, or commit a setup to git so you can roll back when you wreck it. The format is plain UTF-8 JSON — git-diff-friendly, AI-editable, human-readable. No binary blobs, no proprietary archive format, no DRM.
It's also the format other people use to send you presets on Discord. If you're new to the marketplace ecosystem, knowing how to import a raw .json file is the only skill you need.
What you need
An existing preset to export, or a JSON file someone sent you. If you don't have one yet, start with save and load presets.
Export a preset
Open the preset dropdown, right-click the preset, then Export. The bridge writes a single .json file wherever you point the save dialog. The whole thing is one file — no companion assets, no zip required.
Or grab the file directly from the presets folder (see where presets live) and copy it to a USB stick / Dropbox / git repo.
What's inside the JSON
{
"$schema": "https://store.aidxn.com/schemas/preset-v1.json",
"name": "Live Drum Kit",
"version": 1,
"controller": "dualsense",
"buttons": {
"cross": { "type": "note", "note": 36, "channel": 10, "velocity": 110 },
"circle": { "type": "note", "note": 38, "channel": 10, "velocity": 110 },
"square": { "type": "note", "note": 42, "channel": 10, "velocity": 100 },
"triangle": { "type": "note", "note": 46, "channel": 10, "velocity": 100 }
},
"sticks": {
"left": { "x": { "type": "cc", "cc": 74 }, "y": { "type": "cc", "cc": 71, "invert": true } },
"right": { "x": { "type": "cc", "cc": 10 }, "y": { "type": "cc", "cc": 91, "invert": true } }
},
"triggers": {
"L2": { "type": "cc", "cc": 11, "curve": "exponential" },
"R2": { "type": "cc", "cc": 1 }
},
"haptics": { "rules": [] }
} The top-level $schema URL points at the public JSON Schema, which means editors like VS Code give you autocomplete on every field. Worth pasting in if you're hand-editing.
Schema field reference
| Field | Type | Required | Notes |
|---|---|---|---|
$schema | string (URL) | No | Enables IDE autocomplete. |
name | string | Yes | Display name. Must be unique (case-insensitive). |
version | integer | Yes | Format version. Current: 1. |
controller | string | No | dualsense, ds4, xbox, or omit for any. |
buttons | object | No | Per-button bindings, keyed by button name. |
sticks | object | No | left / right, each with X/Y/edges. |
triggers | object | No | L2 / R2 bindings. |
touchpad | object | No | XY or two-finger mode config. |
haptics | object | No | Incoming-MIDI → haptic rules. |
Import a preset
Click the preset dropdown, then Import from file. Pick the .json. The bridge validates against the schema before adding it — a malformed file gets rejected with a line-numbered error rather than silently corrupting your setup.
You can also drag-and-drop a .json straight onto the app window. The bridge picks it up, validates, and adds it to the presets folder.
Versioning and migration
Every preset declares a version integer. The bridge bumps the format on breaking changes and auto-migrates older versions on import. You can keep old exports around — they'll still load.
Common scenarios
Real workflows that use the export/import pipeline:
- Studio → stage sync: Export from studio MacBook, drop the JSON in iCloud, import on the stage laptop. Single source of truth across two rigs.
- Git-versioned preset repo:
git inityour presets folder, commit before every gig.git diff HEAD~1shows exactly which CC you broke at 2am. - AI-generated presets: Paste the schema URL into Claude/ChatGPT, ask for "a granular-cloud preset for Ableton". Paste the JSON output, drag onto the app, done.
- Bandmate sharing: DM the
.jsonon Discord. The other person drags it in, the validator catches any controller-specific fields they can't use. - Backup before destructive edits: Export before reorganising 20 bindings. If you hate the result, drag the backup back in.
What's next
If you want to share with the world, look at share a template to the marketplace. To wipe your local copy and start over, see reset to defaults.