{
 "firmware": "MAKU",
 "slug": "maku",
 "author": "okumurari (@okumurari2); based on Felucca by Leo Kuroshita, Hügelton Instruments",
 "repo": "https://github.com/okumurari2/maku",
 "licence": "GPL-3.0-only; bundled components include MIT, Apache-2.0, SIL OFL 1.1 and CC0-1.0 material",
 "closed_source": false,
 "mapped_release": "maku-v1.0",
 "mapped_commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
 "release_date": "2026-10-16",
 "date_mapped": "2026-10-17",
 "status": "Independently checked: zero errors in round 3 (2026-10-17), after the round-1 and round-2 fixes. No device testing.",
 "turns_it_into": "A four-part generative ambience instrument that starts a fresh world at power-on and learns from the worlds you like.",
 "docs": [
  {
   "title": "README.md",
   "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/README.md",
   "words": 1560,
   "read_at": "2026-10-17",
   "word_count_method": "Whitespace-separated tokens in the Markdown source."
  },
  {
   "title": "docs/SPEC.md",
   "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/docs/SPEC.md",
   "words": 2641,
   "read_at": "2026-10-17",
   "word_count_method": "Whitespace-separated tokens in the Markdown source."
  },
  {
   "title": "docs/MAKU.md",
   "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/docs/MAKU.md",
   "words": 454,
   "read_at": "2026-10-17",
   "word_count_method": "Whitespace-separated tokens in the Markdown source."
  },
  {
   "title": "LICENSING.md",
   "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/LICENSING.md",
   "words": 1044,
   "read_at": "2026-10-17",
   "word_count_method": "Whitespace-separated tokens in the Markdown source."
  }
 ],
 "install": {
  "official": "https://github.com/okumurari2/maku/releases/tag/maku-v1.0",
  "hub": "https://thefirmwarehub.com/"
 },
 "part_id_notes": "The printed SEL button is B_SCL in the source; its MAKU verb is CASCADE. PRESETS and ALGORITHM are macro encoders, not sound or engine selectors. The encoders have no push action. Button lamps use the corresponding button part under lights; PLAY has orange and green lamps in that same part, distinguished by light. Key lamps are grouped under lights.key_lights and groups.key_lights. Main-panel entries use world for shared behaviour, pulse/floor/haze/voice for the focused part, and named held-button modes for overrides; settings and service modes supersede them. Modes with inherits use that parent's shared entries unless the child gives that part and gesture a different job; the value-row and tab contexts may both apply in settings. For jacks, press means connecting or using that interface, and switch_power press/release means switching on/off.",
 "modes": [
  {
   "id": "world",
   "name": "Playing panel",
   "how_to_get_there": "Power on, or close settings with HOME.",
   "what_it_is": "Shared controls for all four focused parts; sound starts by itself and PLAY controls DRIFT.",
   "source": [
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/main.c",
     "lines": "193-196",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/main.c#L193-L196"
    },
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/ui_input.c",
     "lines": "1173-1204",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1173-L1204"
    }
   ]
  },
  {
   "id": "pulse",
   "name": "PULSE focus",
   "how_to_get_there": "Turn KNOB 1.",
   "what_it_is": "Part 1 has focus; SELECT, PRESETS and ALGORITHM show DENS, TONE, WASH.",
   "source": [
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/ui_input.c",
     "lines": "1136-1164",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1136-L1164"
    },
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/maku.c",
     "lines": "344-364",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L344-L364"
    }
   ],
   "inherits": "world"
  },
  {
   "id": "floor",
   "name": "FLOOR focus",
   "how_to_get_there": "Turn KNOB 2.",
   "what_it_is": "Part 2 has focus; SELECT, PRESETS and ALGORITHM show OPEN, TONE, SWAY.",
   "source": [
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/ui_input.c",
     "lines": "1136-1164",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1136-L1164"
    },
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/maku.c",
     "lines": "344-364",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L344-L364"
    }
   ],
   "inherits": "world"
  },
  {
   "id": "haze",
   "name": "HAZE focus",
   "how_to_get_there": "Turn KNOB 3.",
   "what_it_is": "Part 3 has focus; SELECT, PRESETS and ALGORITHM show GRAIN, TONE, AIR.",
   "source": [
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/ui_input.c",
     "lines": "1136-1164",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1136-L1164"
    },
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/maku.c",
     "lines": "344-364",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L344-L364"
    }
   ],
   "inherits": "world"
  },
  {
   "id": "voice",
   "name": "VOICE focus",
   "how_to_get_there": "Turn KNOB 4.",
   "what_it_is": "Part 4 has focus; SELECT, PRESETS and ALGORITHM show LOOSE, TONE, TRAIL.",
   "source": [
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/ui_input.c",
     "lines": "1136-1164",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1136-L1164"
    },
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/maku.c",
     "lines": "344-364",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L344-L364"
    }
   ],
   "inherits": "world"
  },
  {
   "id": "sink",
   "name": "SINK held",
   "how_to_get_there": "Hold FX.",
   "what_it_is": "The three macro encoders set this verb's rise, hold and fade in beats; several upper verbs can overlap.",
   "source": [
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/ui_input.c",
     "lines": "1173-1197",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1173-L1197"
    },
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/ui_maku.c",
     "lines": "74-85",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_maku.c#L74-L85"
    }
   ],
   "inherits": "world"
  },
  {
   "id": "cascade",
   "name": "CASCADE held",
   "how_to_get_there": "Hold SEL.",
   "what_it_is": "The three macro encoders set this verb's rise, hold and fade in beats; several upper verbs can overlap.",
   "source": [
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/ui_input.c",
     "lines": "1173-1197",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1173-L1197"
    },
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/ui_maku.c",
     "lines": "74-85",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_maku.c#L74-L85"
    }
   ],
   "inherits": "world"
  },
  {
   "id": "swell",
   "name": "SWELL held",
   "how_to_get_there": "Hold ENV.",
   "what_it_is": "The three macro encoders set this verb's rise, hold and fade in beats; several upper verbs can overlap.",
   "source": [
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/ui_input.c",
     "lines": "1173-1197",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1173-L1197"
    },
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/ui_maku.c",
     "lines": "74-85",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_maku.c#L74-L85"
    }
   ],
   "inherits": "world"
  },
  {
   "id": "wobble",
   "name": "WOBBLE held",
   "how_to_get_there": "Hold LFO.",
   "what_it_is": "The three macro encoders set this verb's rise, hold and fade in beats; several upper verbs can overlap.",
   "source": [
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/ui_input.c",
     "lines": "1173-1197",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1173-L1197"
    },
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/ui_maku.c",
     "lines": "74-85",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_maku.c#L74-L85"
    }
   ],
   "inherits": "world"
  },
  {
   "id": "lift",
   "name": "LIFT held",
   "how_to_get_there": "Hold EDIT.",
   "what_it_is": "The three macro encoders set this verb's rise, hold and fade in beats; several upper verbs can overlap.",
   "source": [
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/ui_input.c",
     "lines": "1173-1197",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1173-L1197"
    },
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/ui_maku.c",
     "lines": "74-85",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_maku.c#L74-L85"
    }
   ],
   "inherits": "world"
  },
  {
   "id": "scramble",
   "name": "SCRAMBLE held",
   "how_to_get_there": "Hold GLO.",
   "what_it_is": "The three macro encoders set this verb's rise, hold and fade in beats; several upper verbs can overlap.",
   "source": [
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/ui_input.c",
     "lines": "1173-1197",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1173-L1197"
    },
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/ui_maku.c",
     "lines": "74-85",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_maku.c#L74-L85"
    }
   ],
   "inherits": "world"
  },
  {
   "id": "key",
   "name": "Key controls",
   "how_to_get_there": "Hold ARP until the view opens, or use a key or encoder while holding it.",
   "what_it_is": "ROOT, SCALE and REG control the shared key and drone register; keys choose root by pitch name.",
   "source": [
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/ui_layer.c",
     "lines": "98-107",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_layer.c#L98-L107"
    },
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/ui_layer.c",
     "lines": "249-273",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_layer.c#L249-L273"
    },
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/ui_maku.c",
     "lines": "79",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_maku.c#L79"
    }
   ],
   "inherits": "world"
  },
  {
   "id": "tempo",
   "name": "Tempo controls",
   "how_to_get_there": "Hold SEQ until the view opens, or use a key or encoder while holding it.",
   "what_it_is": "BPM, SWING and DUCK; keys mute parts, unmute all or tap tempo.",
   "source": [
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/ui_layer.c",
     "lines": "98-107",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_layer.c#L98-L107"
    },
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/ui_layer.c",
     "lines": "459-474",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_layer.c#L459-L474"
    },
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/ui_maku.c",
     "lines": "78",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_maku.c#L78"
    }
   ],
   "inherits": "world"
  },
  {
   "id": "drift",
   "name": "DRIFT controls",
   "how_to_get_there": "Hold PLAY.",
   "what_it_is": "RATE, RANGE and REACH set the wandering behaviour; releasing PLAY toggles DRIFT only if none of these was turned.",
   "source": [
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/ui_input.c",
     "lines": "1187-1190",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1187-L1190"
    },
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/ui_input.c",
     "lines": "1128-1133",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1128-L1133"
    },
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/maku.c",
     "lines": "822-874",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L822-L874"
    }
   ],
   "inherits": "world"
  },
  {
   "id": "settings",
   "name": "Settings menu",
   "how_to_get_there": "Press OCT- and keep it down while holding HOME past 0.7 seconds; this moves the running key a fifth down and closing settings does not undo it.",
   "what_it_is": "Four tabs of device settings; the last tab and row remain selected until power-off.",
   "source": [
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/ui_input.c",
     "lines": "1329-1345",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1329-L1345"
    },
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/ui_menu.c",
     "lines": "421-434",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L421-L434"
    },
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/ui_input.c",
     "lines": "1470-1478",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1470-L1478"
    },
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/maku.c",
     "lines": "761-777",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L761-L777"
    },
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/ui_menu.c",
     "lines": "410-416",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L410-L416"
    }
   ]
  },
  {
   "id": "settings_display",
   "name": "DISPLAY tab",
   "how_to_get_there": "Open settings, then turn ALGORITHM to DISPLAY.",
   "what_it_is": "The COLOR, STYLE, LARGE, ANIM, LEDS and SCREEN OFF rows.",
   "source": [
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/menu_items.c",
     "lines": "9-33",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L9-L33"
    },
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/ui_menu.c",
     "lines": "339-399",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L339-L399"
    }
   ],
   "inherits": "settings"
  },
  {
   "id": "settings_control",
   "name": "CONTROL tab",
   "how_to_get_there": "Open settings, then turn ALGORITHM to CONTROL.",
   "what_it_is": "The HOLD, KNOB ACCEL, FX LATCH, BPM LOCK and SCALE LEDS rows.",
   "source": [
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/menu_items.c",
     "lines": "9-33",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L9-L33"
    },
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/ui_menu.c",
     "lines": "339-399",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L339-L399"
    }
   ],
   "inherits": "settings"
  },
  {
   "id": "settings_audio",
   "name": "AUDIO tab",
   "how_to_get_there": "Open settings, then turn ALGORITHM to AUDIO.",
   "what_it_is": "The SPEAKER EQ, USB LEVEL, CLICK, CLICK LEVEL and COUNT-IN rows.",
   "source": [
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/menu_items.c",
     "lines": "9-33",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L9-L33"
    },
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/ui_menu.c",
     "lines": "339-399",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L339-L399"
    }
   ],
   "inherits": "settings"
  },
  {
   "id": "settings_system",
   "name": "SYSTEM tab",
   "how_to_get_there": "Open settings, then turn ALGORITHM to SYSTEM.",
   "what_it_is": "The USB SERIAL, RESTORE LAST, CALIBRATION and ABOUT rows.",
   "source": [
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/menu_items.c",
     "lines": "9-33",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L9-L33"
    },
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/ui_menu.c",
     "lines": "339-399",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L339-L399"
    }
   ],
   "inherits": "settings"
  },
  {
   "id": "settings_color_row",
   "name": "COLOR row",
   "how_to_get_there": "Open settings, turn ALGORITHM to DISPLAY, then use PRESETS to select COLOR.",
   "what_it_is": "Any of KNOB 1–4 or OCT-/OCT+ changes this row.",
   "source": [
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/menu_items.c",
     "lines": "9-33",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L9-L33"
    },
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/ui_menu.c",
     "lines": "447-458",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L447-L458"
    },
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/ui_menu.c",
     "lines": "421-434",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L421-L434"
    },
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/menu_items.c",
     "lines": "25-32",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L25-L32"
    }
   ],
   "inherits": "settings"
  },
  {
   "id": "settings_style_row",
   "name": "STYLE row",
   "how_to_get_there": "Open settings, turn ALGORITHM to DISPLAY, then use PRESETS to select STYLE.",
   "what_it_is": "Any of KNOB 1–4 or OCT-/OCT+ changes this row.",
   "source": [
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/menu_items.c",
     "lines": "9-33",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L9-L33"
    },
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/ui_menu.c",
     "lines": "447-458",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L447-L458"
    },
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/ui_menu.c",
     "lines": "421-434",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L421-L434"
    },
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/menu_items.c",
     "lines": "25-32",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L25-L32"
    }
   ],
   "inherits": "settings"
  },
  {
   "id": "settings_large_row",
   "name": "LARGE row",
   "how_to_get_there": "Open settings, turn ALGORITHM to DISPLAY, then use PRESETS to select LARGE.",
   "what_it_is": "Any of KNOB 1–4 or OCT-/OCT+ changes this row.",
   "source": [
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/menu_items.c",
     "lines": "9-33",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L9-L33"
    },
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/ui_menu.c",
     "lines": "447-458",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L447-L458"
    },
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/ui_menu.c",
     "lines": "421-434",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L421-L434"
    },
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/menu_items.c",
     "lines": "25-32",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L25-L32"
    }
   ],
   "inherits": "settings"
  },
  {
   "id": "settings_anim_row",
   "name": "ANIM row",
   "how_to_get_there": "Open settings, turn ALGORITHM to DISPLAY, then use PRESETS to select ANIM.",
   "what_it_is": "Any of KNOB 1–4 or OCT-/OCT+ changes this row.",
   "source": [
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/menu_items.c",
     "lines": "9-33",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L9-L33"
    },
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/ui_menu.c",
     "lines": "447-458",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L447-L458"
    },
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/ui_menu.c",
     "lines": "421-434",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L421-L434"
    },
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/menu_items.c",
     "lines": "25-32",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L25-L32"
    }
   ],
   "inherits": "settings"
  },
  {
   "id": "settings_leds_row",
   "name": "LEDS row",
   "how_to_get_there": "Open settings, turn ALGORITHM to DISPLAY, then use PRESETS to select LEDS.",
   "what_it_is": "Any of KNOB 1–4 or OCT-/OCT+ changes this row.",
   "source": [
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/menu_items.c",
     "lines": "9-33",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L9-L33"
    },
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/ui_menu.c",
     "lines": "447-458",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L447-L458"
    },
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/ui_menu.c",
     "lines": "421-434",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L421-L434"
    },
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/menu_items.c",
     "lines": "25-32",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L25-L32"
    }
   ],
   "inherits": "settings"
  },
  {
   "id": "settings_screen_off_row",
   "name": "SCREEN OFF row",
   "how_to_get_there": "Open settings, turn ALGORITHM to DISPLAY, then use PRESETS to select SCREEN OFF.",
   "what_it_is": "Any of KNOB 1–4 or OCT-/OCT+ changes this row.",
   "source": [
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/menu_items.c",
     "lines": "9-33",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L9-L33"
    },
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/ui_menu.c",
     "lines": "447-458",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L447-L458"
    },
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/ui_menu.c",
     "lines": "421-434",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L421-L434"
    },
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/menu_items.c",
     "lines": "25-32",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L25-L32"
    }
   ],
   "inherits": "settings"
  },
  {
   "id": "settings_hold_row",
   "name": "HOLD row",
   "how_to_get_there": "Open settings, turn ALGORITHM to CONTROL, then use PRESETS to select HOLD.",
   "what_it_is": "Any of KNOB 1–4 or OCT-/OCT+ changes this row.",
   "source": [
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/menu_items.c",
     "lines": "9-33",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L9-L33"
    },
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/ui_menu.c",
     "lines": "447-458",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L447-L458"
    },
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/ui_menu.c",
     "lines": "421-434",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L421-L434"
    },
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/menu_items.c",
     "lines": "25-32",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L25-L32"
    }
   ],
   "inherits": "settings"
  },
  {
   "id": "settings_accel_row",
   "name": "KNOB ACCEL row",
   "how_to_get_there": "Open settings, turn ALGORITHM to CONTROL, then use PRESETS to select KNOB ACCEL.",
   "what_it_is": "Any of KNOB 1–4 or OCT-/OCT+ changes this row.",
   "source": [
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/menu_items.c",
     "lines": "9-33",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L9-L33"
    },
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/ui_menu.c",
     "lines": "447-458",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L447-L458"
    },
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/ui_menu.c",
     "lines": "421-434",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L421-L434"
    },
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/menu_items.c",
     "lines": "25-32",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L25-L32"
    }
   ],
   "inherits": "settings"
  },
  {
   "id": "settings_latch_row",
   "name": "FX LATCH row",
   "how_to_get_there": "Open settings, turn ALGORITHM to CONTROL, then use PRESETS to select FX LATCH.",
   "what_it_is": "Any of KNOB 1–4 or OCT-/OCT+ changes this row.",
   "source": [
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/menu_items.c",
     "lines": "9-33",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L9-L33"
    },
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/ui_menu.c",
     "lines": "447-458",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L447-L458"
    },
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/ui_menu.c",
     "lines": "421-434",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L421-L434"
    },
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/menu_items.c",
     "lines": "25-32",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L25-L32"
    }
   ],
   "inherits": "settings"
  },
  {
   "id": "settings_bpm_lock_row",
   "name": "BPM LOCK row",
   "how_to_get_there": "Open settings, turn ALGORITHM to CONTROL, then use PRESETS to select BPM LOCK.",
   "what_it_is": "Any of KNOB 1–4 or OCT-/OCT+ changes this row.",
   "source": [
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/menu_items.c",
     "lines": "9-33",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L9-L33"
    },
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/ui_menu.c",
     "lines": "447-458",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L447-L458"
    },
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/ui_menu.c",
     "lines": "421-434",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L421-L434"
    },
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/menu_items.c",
     "lines": "25-32",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L25-L32"
    }
   ],
   "inherits": "settings"
  },
  {
   "id": "settings_scale_leds_row",
   "name": "SCALE LEDS row",
   "how_to_get_there": "Open settings, turn ALGORITHM to CONTROL, then use PRESETS to select SCALE LEDS.",
   "what_it_is": "Any of KNOB 1–4 or OCT-/OCT+ changes this row.",
   "source": [
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/menu_items.c",
     "lines": "9-33",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L9-L33"
    },
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/ui_menu.c",
     "lines": "447-458",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L447-L458"
    },
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/ui_menu.c",
     "lines": "421-434",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L421-L434"
    },
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/menu_items.c",
     "lines": "25-32",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L25-L32"
    }
   ],
   "inherits": "settings"
  },
  {
   "id": "settings_speaker_eq_row",
   "name": "SPEAKER EQ row",
   "how_to_get_there": "Open settings, turn ALGORITHM to AUDIO, then use PRESETS to select SPEAKER EQ.",
   "what_it_is": "Any of KNOB 1–4 or OCT-/OCT+ changes this row.",
   "source": [
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/menu_items.c",
     "lines": "9-33",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L9-L33"
    },
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/ui_menu.c",
     "lines": "447-458",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L447-L458"
    },
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/ui_menu.c",
     "lines": "421-434",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L421-L434"
    },
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/menu_items.c",
     "lines": "25-32",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L25-L32"
    }
   ],
   "inherits": "settings"
  },
  {
   "id": "settings_usb_level_row",
   "name": "USB LEVEL row",
   "how_to_get_there": "Open settings, turn ALGORITHM to AUDIO, then use PRESETS to select USB LEVEL.",
   "what_it_is": "Any of KNOB 1–4 or OCT-/OCT+ changes this row.",
   "source": [
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/menu_items.c",
     "lines": "9-33",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L9-L33"
    },
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/ui_menu.c",
     "lines": "447-458",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L447-L458"
    },
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/ui_menu.c",
     "lines": "421-434",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L421-L434"
    },
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/menu_items.c",
     "lines": "25-32",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L25-L32"
    }
   ],
   "inherits": "settings"
  },
  {
   "id": "settings_click_row",
   "name": "CLICK row",
   "how_to_get_there": "Open settings, turn ALGORITHM to AUDIO, then use PRESETS to select CLICK.",
   "what_it_is": "Any of KNOB 1–4 or OCT-/OCT+ changes this row.",
   "source": [
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/menu_items.c",
     "lines": "9-33",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L9-L33"
    },
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/ui_menu.c",
     "lines": "447-458",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L447-L458"
    },
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/ui_menu.c",
     "lines": "421-434",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L421-L434"
    },
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/menu_items.c",
     "lines": "25-32",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L25-L32"
    }
   ],
   "inherits": "settings"
  },
  {
   "id": "settings_click_level_row",
   "name": "CLICK LEVEL row",
   "how_to_get_there": "Open settings, turn ALGORITHM to AUDIO, then use PRESETS to select CLICK LEVEL.",
   "what_it_is": "Any of KNOB 1–4 or OCT-/OCT+ changes this row.",
   "source": [
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/menu_items.c",
     "lines": "9-33",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L9-L33"
    },
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/ui_menu.c",
     "lines": "447-458",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L447-L458"
    },
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/ui_menu.c",
     "lines": "421-434",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L421-L434"
    },
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/menu_items.c",
     "lines": "25-32",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L25-L32"
    }
   ],
   "inherits": "settings"
  },
  {
   "id": "settings_count_in_row",
   "name": "COUNT-IN row",
   "how_to_get_there": "Open settings, turn ALGORITHM to AUDIO, then use PRESETS to select COUNT-IN.",
   "what_it_is": "Any of KNOB 1–4 or OCT-/OCT+ changes this row.",
   "source": [
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/menu_items.c",
     "lines": "9-33",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L9-L33"
    },
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/ui_menu.c",
     "lines": "447-458",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L447-L458"
    },
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/ui_menu.c",
     "lines": "421-434",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L421-L434"
    },
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/menu_items.c",
     "lines": "25-32",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L25-L32"
    }
   ],
   "inherits": "settings"
  },
  {
   "id": "settings_usb_serial_row",
   "name": "USB SERIAL row",
   "how_to_get_there": "Open settings, turn ALGORITHM to SYSTEM, then use PRESETS to select USB SERIAL.",
   "what_it_is": "Any of KNOB 1–4 or OCT-/OCT+ changes this row.",
   "source": [
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/menu_items.c",
     "lines": "9-33",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L9-L33"
    },
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/ui_menu.c",
     "lines": "447-458",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L447-L458"
    },
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/ui_menu.c",
     "lines": "421-434",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L421-L434"
    },
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/menu_items.c",
     "lines": "25-32",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L25-L32"
    }
   ],
   "inherits": "settings"
  },
  {
   "id": "settings_restore_last_row",
   "name": "RESTORE LAST row",
   "how_to_get_there": "Open settings, turn ALGORITHM to SYSTEM, then use PRESETS to select RESTORE LAST.",
   "what_it_is": "Any of KNOB 1–4 or OCT-/OCT+ changes this row.",
   "source": [
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/menu_items.c",
     "lines": "9-33",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L9-L33"
    },
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/ui_menu.c",
     "lines": "447-458",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L447-L458"
    },
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/ui_menu.c",
     "lines": "421-434",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L421-L434"
    },
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/menu_items.c",
     "lines": "25-32",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L25-L32"
    }
   ],
   "inherits": "settings"
  },
  {
   "id": "about",
   "name": "About and credits",
   "how_to_get_there": "Select SYSTEM > ABOUT and press then release OCT+.",
   "what_it_is": "A scrolling information and licensing page with version, build date, a QR code and credits.",
   "source": [
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/ui_menu.c",
     "lines": "108-140",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L108-L140"
    },
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/ui_menu.c",
     "lines": "459-468",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L459-L468"
    }
   ],
   "inherits": "settings",
   "override_note": "PRESETS scrolls; other encoders do nothing; OCT- returns to the menu and OCT+ does nothing."
  },
  {
   "id": "calibration",
   "name": "Hardware calibration",
   "how_to_get_there": "For stored calibration hold OCT- and OCT+ at power-on; for a temporary change select SYSTEM with ALGORITHM, CALIBRATION with PRESETS and release OCT+.",
   "what_it_is": "Teaches fourteen buttons and seven encoders, with cancellation by a key or 30 seconds idle; only power-on calibration stores the assignments, while menu calibration lasts until power-off.",
   "source": [
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/main.c",
     "lines": "189-192",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/main.c#L189-L192"
    },
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/ui_menu.c",
     "lines": "459-463",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L459-L463"
    },
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/ui_input.c",
     "lines": "1588-1675",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1588-L1675"
    },
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/main.c",
     "lines": "189-196",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/main.c#L189-L196"
    },
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/project.c",
     "lines": "1074-1105",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/project.c#L1074-L1105"
    },
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/ui.c",
     "lines": "394-401",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L394-L401"
    },
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/ui_input.c",
     "lines": "1438-1444",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1438-L1444"
    },
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/seq.c",
     "lines": "1090-1096",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L1090-L1096"
    },
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/ui_menu.c",
     "lines": "447-463",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L447-L463"
    }
   ]
  },
  {
   "id": "screen_off",
   "name": "Sleeping display",
   "how_to_get_there": "Choose a SCREEN OFF timeout and leave the panel idle.",
   "what_it_is": "Sound, MIDI and USB continue while the picture sleeps; a button, key or encoder wakes it and consumes that input.",
   "source": [
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/ui.c",
     "lines": "172-185",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L172-L185"
    },
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/ui.c",
     "lines": "223-243",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L223-L243"
    },
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/ui.c",
     "lines": "246-292",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L246-L292"
    }
   ]
  },
  {
   "id": "update",
   "name": "Update countdown",
   "how_to_get_there": "Hold OCT- and OCT+ together for over two seconds.",
   "what_it_is": "A countdown covers the page until release cancels it or a hold over five seconds enters the bootloader.",
   "source": [
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/main.c",
     "lines": "219-246",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/main.c#L219-L246"
    },
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/ui_draw.c",
     "lines": "1085-1105",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_draw.c#L1085-L1105"
    }
   ]
  },
  {
   "id": "boot_recovery",
   "name": "Boot recovery",
   "how_to_get_there": "Starts automatically after two early failed starts.",
   "what_it_is": "Enters the built-in USB bootloader so firmware can be installed again.",
   "source": [
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/main.c",
     "lines": "299-310",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/main.c#L299-L310"
    }
   ]
  },
  {
   "id": "boot",
   "name": "Starting a world",
   "how_to_get_there": "Switch on without the calibration combination.",
   "what_it_is": "Loads settings and likes, starts a fresh random world and fades it in; likes bias HOME-created worlds rather than the power-on draw.",
   "source": [
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/main.c",
     "lines": "149-196",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/main.c#L149-L196"
    },
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/ui.c",
     "lines": "1286-1336",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L1286-L1336"
    }
   ]
  },
  {
   "id": "installing",
   "name": "Firmware update",
   "how_to_get_there": "Start a supported update from a computer.",
   "what_it_is": "The update transfer temporarily owns the screen and panel input.",
   "source": [
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/main.c",
     "lines": "248-258",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/main.c#L248-L258"
    },
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/ota.c",
     "lines": "339-379",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ota.c#L339-L379"
    }
   ]
  },
  {
   "id": "crash",
   "name": "Crash report",
   "how_to_get_there": "Appears automatically if the firmware faults.",
   "what_it_is": "Sound stops, a diagnostic report appears and the unit restarts after about four seconds.",
   "source": [
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/main.c",
     "lines": "74-95",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/main.c#L74-L95"
    }
   ]
  }
 ],
 "controls": {
  "encoder_knob1": [
   {
    "mode": "world",
    "gesture": "turn",
    "action": "Changes part 1 (PULSE) volume and gives it focus.",
    "short_label": "PULSE LEVEL",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1136-1151",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1136-L1151"
     }
    ]
   },
   {
    "mode": "key",
    "gesture": "turn_while_holding:button_arp",
    "action": "Has no action while this key or tempo view is held.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1295-1297",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1295-L1297"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_layer.c",
      "lines": "503-511",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_layer.c#L503-L511"
     }
    ]
   },
   {
    "mode": "tempo",
    "gesture": "turn_while_holding:button_seq",
    "action": "Has no action while this key or tempo view is held.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1295-1297",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1295-L1297"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_layer.c",
      "lines": "503-511",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_layer.c#L503-L511"
     }
    ]
   },
   {
    "mode": "settings",
    "gesture": "turn",
    "action": "Changes a selected value row by one step in the turn direction, with COLOR wrapping; turning a knob on CALIBRATION or ABOUT has no action.",
    "short_label": "VALUE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_menu.c",
      "lines": "451-458",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L451-L458"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/menu_items.c",
      "lines": "180-192",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L180-L192"
     }
    ]
   },
   {
    "mode": "settings_color_row",
    "gesture": "turn",
    "action": "Cycles through the screen palettes, with an immediate preview.",
    "short_label": "COLOR",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/menu_items.c",
      "lines": "167-171",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L167-L171"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/menu_items.c",
      "lines": "180-192",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L180-L192"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_menu.c",
      "lines": "451-458",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L451-L458"
     }
    ]
   },
   {
    "mode": "settings_style_row",
    "gesture": "turn",
    "action": "Chooses FLAT or LINE for the settings menu while the playing panel keeps its four-quadrant layout.",
    "short_label": "STYLE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/menu_items.c",
      "lines": "49-51",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L49-L51"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/menu_items.c",
      "lines": "172",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L172"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_menu.c",
      "lines": "247-248",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L247-L248"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_menu.c",
      "lines": "392-393",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L392-L393"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_menu.c",
      "lines": "451-458",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L451-L458"
     }
    ]
   },
   {
    "mode": "settings_large_row",
    "gesture": "turn",
    "action": "Chooses larger menu row lettering with ON or the smaller lettering with OFF.",
    "short_label": "LARGE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/menu_items.c",
      "lines": "57-59",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L57-L59"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_menu.c",
      "lines": "203-208",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L203-L208"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_menu.c",
      "lines": "286-296",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L286-L296"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_menu.c",
      "lines": "451-458",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L451-L458"
     }
    ]
   },
   {
    "mode": "settings_anim_row",
    "gesture": "turn",
    "action": "Turns menu tab movement and the clean-start LED sweep on or off.",
    "short_label": "ANIM",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/menu_items.c",
      "lines": "57-59",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L57-L59"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_menu.c",
      "lines": "214-221",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L214-L221"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/main.c",
      "lines": "126-143",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/main.c#L126-L143"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_menu.c",
      "lines": "451-458",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L451-L458"
     }
    ]
   },
   {
    "mode": "settings_leds_row",
    "gesture": "turn",
    "action": "Chooses OFF, DIM LO, AUTO, DIM HI or INV, with AUTO using the brighter glow only while a USB host is connected.",
    "short_label": "LEDS",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/panel.c",
      "lines": "96-101",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/panel.c#L96-L101"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "263-286",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L263-L286"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_menu.c",
      "lines": "451-458",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L451-L458"
     }
    ]
   },
   {
    "mode": "settings_screen_off_row",
    "gesture": "turn",
    "action": "Chooses NEVER or an idle timeout of 5, 15, 30 or 60 minutes before the display sleeps.",
    "short_label": "SCREEN OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/menu_items.c",
      "lines": "78-79",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L78-L79"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "246-263",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L246-L263"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_menu.c",
      "lines": "451-458",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L451-L458"
     }
    ]
   },
   {
    "mode": "settings_hold_row",
    "gesture": "turn",
    "action": "Sets the SEQ and ARP layer threshold to 0.3, 0.4, 0.5 or 0.6 seconds while HOME keeps its separate 0.7-second threshold.",
    "short_label": "HOLD",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/menu_items.c",
      "lines": "73",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L73"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_layer.c",
      "lines": "254-263",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_layer.c#L254-L263"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "950-967",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L950-L967"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_menu.c",
      "lines": "451-458",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L451-L458"
     }
    ]
   },
   {
    "mode": "settings_accel_row",
    "gesture": "turn",
    "action": "Turns faster changes of wide parameter ranges on or off for quick encoder turns.",
    "short_label": "KNOB ACCEL",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/menu_items.c",
      "lines": "60",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L60"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "369-395",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L369-L395"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_menu.c",
      "lines": "451-458",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L451-L458"
     }
    ]
   },
   {
    "mode": "settings_latch_row",
    "gesture": "turn",
    "action": "Changes the inherited effect-key latch setting without making MAKU's verb buttons latch.",
    "short_label": "FX LATCH",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/menu_items.c",
      "lines": "61",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L61"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/perform.c",
      "lines": "119-128",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/perform.c#L119-L128"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_layer.c",
      "lines": "96-107",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_layer.c#L96-L107"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1436-1445",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1436-L1445"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_menu.c",
      "lines": "451-458",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L451-L458"
     }
    ]
   },
   {
    "mode": "settings_bpm_lock_row",
    "gesture": "turn",
    "action": "Changes the inherited tempo-lock flag while MAKU already reserves tempo turns for the held SEQ layer.",
    "short_label": "BPM LOCK",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/menu_items.c",
      "lines": "63",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L63"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1530-1548",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1530-L1548"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_layer.c",
      "lines": "96-107",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_layer.c#L96-L107"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_menu.c",
      "lines": "451-458",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L451-L458"
     }
    ]
   },
   {
    "mode": "settings_scale_leds_row",
    "gesture": "turn",
    "action": "Turns the focused part's scale-key glow on or off outside a special key map, with root keys brighter.",
    "short_label": "SCALE LEDS",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/menu_items.c",
      "lines": "66",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L66"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "219-243",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L219-L243"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "324-337",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L324-L337"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_menu.c",
      "lines": "451-458",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L451-L458"
     }
    ]
   },
   {
    "mode": "settings_speaker_eq_row",
    "gesture": "turn",
    "action": "Chooses FLAT, LOWCUT or BASS+ for the master output including USB and headphones, without switching off the speaker.",
    "short_label": "SPEAKER EQ",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/menu_items.c",
      "lines": "68-72",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L68-L72"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/menu_items.c",
      "lines": "173",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L173"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/fx.c",
      "lines": "843-852",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/fx.c#L843-L852"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_menu.c",
      "lines": "451-458",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L451-L458"
     }
    ]
   },
   {
    "mode": "settings_usb_level_row",
    "gesture": "turn",
    "action": "Chooses MASTER for USB audio following MASTER or FIXED for USB audio at full level while MASTER still controls the speaker and headphones.",
    "short_label": "USB LEVEL",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/menu_items.c",
      "lines": "62",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L62"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/menu_items.c",
      "lines": "157-164",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L157-L164"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/fx.c",
      "lines": "108-121",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/fx.c#L108-L121"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_menu.c",
      "lines": "451-458",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L451-L458"
     }
    ]
   },
   {
    "mode": "settings_click_row",
    "gesture": "turn",
    "action": "Chooses OFF, REC or ON, with ON clicking while the transport runs and REC requiring an armed recording track.",
    "short_label": "CLICK",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/menu_items.c",
      "lines": "75",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L75"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "69-79",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L69-L79"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "360-364",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L360-L364"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_menu.c",
      "lines": "451-458",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L451-L458"
     }
    ]
   },
   {
    "mode": "settings_click_level_row",
    "gesture": "turn",
    "action": "Chooses LOW, MID or HIGH for the metronome volume.",
    "short_label": "CLICK LEVEL",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/menu_items.c",
      "lines": "76",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L76"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "69-79",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L69-L79"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/click.c",
      "lines": "21-36",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/click.c#L21-L36"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_menu.c",
      "lines": "451-458",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L451-L458"
     }
    ]
   },
   {
    "mode": "settings_count_in_row",
    "gesture": "turn",
    "action": "Chooses OFF, 1 BAR or 2 BARS for the inherited recording count-in, which normal MAKU panel use does not start.",
    "short_label": "COUNT-IN",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/menu_items.c",
      "lines": "77",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L77"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "69-79",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L69-L79"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "1020-1028",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L1020-L1028"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1254-1258",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1254-L1258"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_menu.c",
      "lines": "451-458",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L451-L458"
     }
    ]
   },
   {
    "mode": "settings_usb_serial_row",
    "gesture": "turn",
    "action": "Enables or removes the serial console on menu close, briefly disconnecting USB MIDI and audio while the whole USB device reconnects.",
    "short_label": "USB SERIAL",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/menu_items.c",
      "lines": "81-97",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L81-L97"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1243-1247",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1243-L1247"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_menu.c",
      "lines": "451-458",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L451-L458"
     }
    ]
   },
   {
    "mode": "settings_restore_last_row",
    "gesture": "turn",
    "action": "Changes the inherited restore flag while MAKU still creates a fresh world at every start and never runs the inherited autosave loop.",
    "short_label": "RESTORE LAST",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/menu_items.c",
      "lines": "65",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L65"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/main.c",
      "lines": "189-196",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/main.c#L189-L196"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/main.c",
      "lines": "277-288",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/main.c#L277-L288"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_menu.c",
      "lines": "451-458",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L451-L458"
     }
    ]
   },
   {
    "mode": "about",
    "gesture": "turn",
    "action": "Has no effect on the information page.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_menu.c",
      "lines": "439-445",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L439-L445"
     }
    ]
   },
   {
    "mode": "calibration",
    "gesture": "turn_cw",
    "action": "Assigns this encoder and its direction to the name currently requested on screen.",
    "short_label": "TEACH KNOB",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/panel.c",
      "lines": "9-15",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/panel.c#L9-L15"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1643-1665",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1643-L1665"
     }
    ]
   },
   {
    "mode": "screen_off",
    "gesture": "turn",
    "action": "Wakes the picture without changing a value and consumes encoder turns until they have rested for 0.3 seconds.",
    "short_label": "WAKE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "223-243",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L223-L243"
     }
    ]
   }
  ],
  "encoder_select": [
   {
    "mode": "pulse",
    "gesture": "turn",
    "action": "Changes kick density and the voice phrase's activity, with extra noise hits at high values; hand-set kicks stay independent of density outside the slow breathing range.",
    "short_label": "DENS",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1152-1163",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1152-L1163"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "344-349",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L344-L349"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "380-421",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L380-L421"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "622-664",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L622-L664"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/eng_drum.c",
      "lines": "313-329",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/eng_drum.c#L313-L329"
     }
    ]
   },
   {
    "mode": "floor",
    "gesture": "turn",
    "action": "Opens the floor chord and makes its changes more frequent.",
    "short_label": "OPEN",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1152-1163",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1152-L1163"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "349-354",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L349-L354"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "380-421",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L380-L421"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "666-697",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L666-L697"
     }
    ]
   },
   {
    "mode": "haze",
    "gesture": "turn",
    "action": "Changes the haze's texture and activity using the macros assigned to its current voice.",
    "short_label": "GRAIN",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1152-1163",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1152-L1163"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "354-359",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L354-L359"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "380-421",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L380-L421"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "698-723",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L698-L723"
     }
    ]
   },
   {
    "mode": "voice",
    "gesture": "turn",
    "action": "Makes the voice phrase less sparse and adds more note changes and octave jumps.",
    "short_label": "LOOSE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1152-1163",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1152-L1163"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "360-364",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L360-L364"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "380-421",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L380-L421"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "478-550",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L478-L550"
     }
    ]
   },
   {
    "mode": "sink",
    "gesture": "turn_while_holding:button_fx",
    "action": "Sets SINK's rise time from a quarter of a beat to eight beats, kept across new worlds until power-off.",
    "short_label": "RISE BEATS",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1126-1127",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1126-L1127"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "877-907",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L877-L907"
     }
    ]
   },
   {
    "mode": "cascade",
    "gesture": "turn_while_holding:button_sel",
    "action": "Sets CASCADE's rise time from a quarter of a beat to eight beats, kept across new worlds until power-off.",
    "short_label": "RISE BEATS",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1126-1127",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1126-L1127"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "877-907",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L877-L907"
     }
    ]
   },
   {
    "mode": "swell",
    "gesture": "turn_while_holding:button_env",
    "action": "Sets SWELL's rise time from a quarter of a beat to eight beats, kept across new worlds until power-off.",
    "short_label": "RISE BEATS",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1126-1127",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1126-L1127"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "877-907",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L877-L907"
     }
    ]
   },
   {
    "mode": "wobble",
    "gesture": "turn_while_holding:button_lfo",
    "action": "Sets WOBBLE's rise time from a quarter of a beat to eight beats, kept across new worlds until power-off.",
    "short_label": "RISE BEATS",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1126-1127",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1126-L1127"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "877-907",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L877-L907"
     }
    ]
   },
   {
    "mode": "lift",
    "gesture": "turn_while_holding:button_edit",
    "action": "Sets LIFT's rise time from a quarter of a beat to eight beats, kept across new worlds until power-off.",
    "short_label": "RISE BEATS",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1126-1127",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1126-L1127"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "877-907",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L877-L907"
     }
    ]
   },
   {
    "mode": "scramble",
    "gesture": "turn_while_holding:button_glo",
    "action": "Sets SCRAMBLE's rise time from a quarter of a beat to eight beats, kept across new worlds until power-off.",
    "short_label": "RISE BEATS",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1126-1127",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1126-L1127"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "877-907",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L877-L907"
     }
    ]
   },
   {
    "mode": "key",
    "gesture": "turn_while_holding:button_arp",
    "action": "Chooses the shared root by semitone without transposing notes already sounding.",
    "short_label": "ROOT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1112-1125",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1112-L1125"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "44-45",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L44-L45"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "232-235",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L232-L235"
     }
    ]
   },
   {
    "mode": "tempo",
    "gesture": "turn_while_holding:button_seq",
    "action": "Sets the tempo from 40 to 240 BPM, with breathing behaviour gradually replacing the pulse below 70 on the internal clock.",
    "short_label": "BPM",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1298-1319",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1298-L1319"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1540-1543",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1540-L1543"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1128-1131",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1128-L1131"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "949-994",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L949-L994"
     }
    ]
   },
   {
    "mode": "drift",
    "gesture": "turn_while_holding:button_play_stop",
    "action": "Sets how quickly values wander without switching DRIFT when PLAY is released.",
    "short_label": "DRIFT RATE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1128-1133",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1128-L1133"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "847-874",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L847-L874"
     }
    ]
   },
   {
    "mode": "settings",
    "gesture": "turn",
    "action": "Has no menu action.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_menu.c",
      "lines": "403-408",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L403-L408"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_menu.c",
      "lines": "447-470",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L447-L470"
     }
    ]
   },
   {
    "mode": "about",
    "gesture": "turn",
    "action": "Has no effect on the information page.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_menu.c",
      "lines": "439-445",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L439-L445"
     }
    ]
   },
   {
    "mode": "calibration",
    "gesture": "turn_cw",
    "action": "Assigns this encoder and its direction to the name currently requested on screen.",
    "short_label": "TEACH KNOB",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/panel.c",
      "lines": "9-15",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/panel.c#L9-L15"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1643-1665",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1643-L1665"
     }
    ]
   },
   {
    "mode": "screen_off",
    "gesture": "turn",
    "action": "Wakes the picture without changing a value and consumes encoder turns until they have rested for 0.3 seconds.",
    "short_label": "WAKE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "223-243",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L223-L243"
     }
    ]
   }
  ],
  "encoder_presets": [
   {
    "mode": "pulse",
    "gesture": "turn",
    "action": "Moves the pulse from a low kick towards a brighter beep while changing its decay and drive.",
    "short_label": "PULSE TONE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1152-1163",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1152-L1163"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "344-349",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L344-L349"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "380-421",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L380-L421"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "622-664",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L622-L664"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/eng_drum.c",
      "lines": "313-329",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/eng_drum.c#L313-L329"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/drum_voice.c",
      "lines": "20-24",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/drum_voice.c#L20-L24"
     }
    ]
   },
   {
    "mode": "floor",
    "gesture": "turn",
    "action": "Changes the floor sound's timbre using the macros assigned to its current voice.",
    "short_label": "FLOOR TONE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1152-1163",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1152-L1163"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "349-354",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L349-L354"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "380-421",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L380-L421"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "666-697",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L666-L697"
     }
    ]
   },
   {
    "mode": "haze",
    "gesture": "turn",
    "action": "Changes the haze sound's timbre using the macros assigned to its current voice.",
    "short_label": "HAZE TONE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1152-1163",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1152-L1163"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "354-359",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L354-L359"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "380-421",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L380-L421"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "698-723",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L698-L723"
     }
    ]
   },
   {
    "mode": "voice",
    "gesture": "turn",
    "action": "Changes the voice sound's timbre using the macros assigned to its current voice.",
    "short_label": "VOICE TONE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1152-1163",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1152-L1163"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "360-364",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L360-L364"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "380-421",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L380-L421"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "478-550",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L478-L550"
     }
    ]
   },
   {
    "mode": "sink",
    "gesture": "turn_while_holding:button_fx",
    "action": "Sets SINK's hold time from zero, or about half a beat to 32 beats, kept across new worlds until power-off.",
    "short_label": "HOLD BEATS",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1126-1127",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1126-L1127"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "877-907",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L877-L907"
     }
    ]
   },
   {
    "mode": "cascade",
    "gesture": "turn_while_holding:button_sel",
    "action": "Sets CASCADE's hold time from zero, or about half a beat to 32 beats, kept across new worlds until power-off.",
    "short_label": "HOLD BEATS",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1126-1127",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1126-L1127"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "877-907",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L877-L907"
     }
    ]
   },
   {
    "mode": "swell",
    "gesture": "turn_while_holding:button_env",
    "action": "Sets SWELL's hold time from zero, or about half a beat to 32 beats, kept across new worlds until power-off.",
    "short_label": "HOLD BEATS",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1126-1127",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1126-L1127"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "877-907",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L877-L907"
     }
    ]
   },
   {
    "mode": "wobble",
    "gesture": "turn_while_holding:button_lfo",
    "action": "Sets WOBBLE's hold time from zero, or about half a beat to 32 beats, kept across new worlds until power-off.",
    "short_label": "HOLD BEATS",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1126-1127",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1126-L1127"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "877-907",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L877-L907"
     }
    ]
   },
   {
    "mode": "lift",
    "gesture": "turn_while_holding:button_edit",
    "action": "Sets LIFT's hold time from zero, or about half a beat to 32 beats, kept across new worlds until power-off.",
    "short_label": "HOLD BEATS",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1126-1127",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1126-L1127"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "877-907",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L877-L907"
     }
    ]
   },
   {
    "mode": "scramble",
    "gesture": "turn_while_holding:button_glo",
    "action": "Sets SCRAMBLE's hold time from zero, or about half a beat to 32 beats, kept across new worlds until power-off.",
    "short_label": "HOLD BEATS",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1126-1127",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1126-L1127"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "877-907",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L877-L907"
     }
    ]
   },
   {
    "mode": "key",
    "gesture": "turn_while_holding:button_arp",
    "action": "Chooses one of the eight shared scales, stopping at the ends of the list.",
    "short_label": "SCALE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1112-1125",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1112-L1125"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "44-45",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L44-L45"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "232-235",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L232-L235"
     }
    ]
   },
   {
    "mode": "tempo",
    "gesture": "turn_while_holding:button_seq",
    "action": "Adds swing to the voice phrase and lengthens the exhale in the slow breathing range.",
    "short_label": "SWING",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1298-1319",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1298-L1319"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1540-1543",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1540-L1543"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1128-1131",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1128-L1131"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "949-994",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L949-L994"
     }
    ]
   },
   {
    "mode": "drift",
    "gesture": "turn_while_holding:button_play_stop",
    "action": "Sets the wandering range around each value's anchor without switching DRIFT when PLAY is released.",
    "short_label": "DRIFT RANGE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1128-1133",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1128-L1133"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "847-874",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L847-L874"
     }
    ]
   },
   {
    "mode": "settings",
    "gesture": "turn",
    "action": "Moves between rows within the selected tab, wrapping at the ends.",
    "short_label": "ROW",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_menu.c",
      "lines": "421-425",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L421-L425"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_menu.c",
      "lines": "447-450",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L447-L450"
     }
    ]
   },
   {
    "mode": "about",
    "gesture": "turn",
    "action": "Scrolls the information and credits, stopping at the document ends.",
    "short_label": "SCROLL",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_menu.c",
      "lines": "439-445",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L439-L445"
     }
    ]
   },
   {
    "mode": "calibration",
    "gesture": "turn_cw",
    "action": "Assigns this encoder and its direction to the name currently requested on screen.",
    "short_label": "TEACH KNOB",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/panel.c",
      "lines": "9-15",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/panel.c#L9-L15"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1643-1665",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1643-L1665"
     }
    ]
   },
   {
    "mode": "screen_off",
    "gesture": "turn",
    "action": "Wakes the picture without changing a value and consumes encoder turns until they have rested for 0.3 seconds.",
    "short_label": "WAKE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "223-243",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L223-L243"
     }
    ]
   }
  ],
  "encoder_algorithm": [
   {
    "mode": "pulse",
    "gesture": "turn",
    "action": "Raises the pulse's reverb, delay and drive together.",
    "short_label": "WASH",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1152-1163",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1152-L1163"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "344-349",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L344-L349"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "380-421",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L380-L421"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "622-664",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L622-L664"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/eng_drum.c",
      "lines": "313-329",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/eng_drum.c#L313-L329"
     }
    ]
   },
   {
    "mode": "floor",
    "gesture": "turn",
    "action": "Adds chorus, filter movement, release, insert movement and detuning to the floor.",
    "short_label": "SWAY",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1152-1163",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1152-L1163"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "349-354",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L349-L354"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "380-421",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L380-L421"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "666-697",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L666-L697"
     }
    ]
   },
   {
    "mode": "haze",
    "gesture": "turn",
    "action": "Adds reverb, delay, slower attack, insert movement and detuning, with reverse reverb above 20.",
    "short_label": "AIR",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1152-1163",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1152-L1163"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "354-359",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L354-L359"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "380-421",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L380-L421"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "698-723",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L698-L723"
     }
    ]
   },
   {
    "mode": "voice",
    "gesture": "turn",
    "action": "Adds delay, reverb, release and chorus to the voice.",
    "short_label": "TRAIL",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1152-1163",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1152-L1163"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "360-364",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L360-L364"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "380-421",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L380-L421"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "478-550",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L478-L550"
     }
    ]
   },
   {
    "mode": "sink",
    "gesture": "turn_while_holding:button_fx",
    "action": "Sets SINK's fade time from two to 32 beats, kept across new worlds until power-off.",
    "short_label": "FADE BEATS",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1126-1127",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1126-L1127"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "877-907",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L877-L907"
     }
    ]
   },
   {
    "mode": "cascade",
    "gesture": "turn_while_holding:button_sel",
    "action": "Sets CASCADE's fade time from two to 32 beats, kept across new worlds until power-off.",
    "short_label": "FADE BEATS",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1126-1127",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1126-L1127"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "877-907",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L877-L907"
     }
    ]
   },
   {
    "mode": "swell",
    "gesture": "turn_while_holding:button_env",
    "action": "Sets SWELL's fade time from two to 32 beats, kept across new worlds until power-off.",
    "short_label": "FADE BEATS",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1126-1127",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1126-L1127"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "877-907",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L877-L907"
     }
    ]
   },
   {
    "mode": "wobble",
    "gesture": "turn_while_holding:button_lfo",
    "action": "Sets WOBBLE's fade time from two to 32 beats, kept across new worlds until power-off.",
    "short_label": "FADE BEATS",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1126-1127",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1126-L1127"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "877-907",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L877-L907"
     }
    ]
   },
   {
    "mode": "lift",
    "gesture": "turn_while_holding:button_edit",
    "action": "Sets LIFT's fade time from two to 32 beats, kept across new worlds until power-off.",
    "short_label": "FADE BEATS",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1126-1127",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1126-L1127"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "877-907",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L877-L907"
     }
    ]
   },
   {
    "mode": "scramble",
    "gesture": "turn_while_holding:button_glo",
    "action": "Sets SCRAMBLE's fade time from two to 32 beats, kept across new worlds until power-off.",
    "short_label": "FADE BEATS",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1126-1127",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1126-L1127"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "877-907",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L877-L907"
     }
    ]
   },
   {
    "mode": "key",
    "gesture": "turn_while_holding:button_arp",
    "action": "Chooses LOW, MID or HIGH for the generated drones' register.",
    "short_label": "REGISTER",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1112-1125",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1112-L1125"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "44-45",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L44-L45"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "232-235",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L232-L235"
     }
    ]
   },
   {
    "mode": "tempo",
    "gesture": "turn_while_holding:button_seq",
    "action": "Sets the pulse's ducking depth, or the breathing level movement in the slow breathing range.",
    "short_label": "DUCK",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1298-1319",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1298-L1319"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1540-1543",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1540-L1543"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1128-1131",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1128-L1131"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "949-994",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L949-L994"
     }
    ]
   },
   {
    "mode": "drift",
    "gesture": "turn_while_holding:button_play_stop",
    "action": "Extends wandering to extra space at 43 and to tempo, swing and ducking at 86, while external clock prevents tempo drift.",
    "short_label": "DRIFT REACH",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1128-1133",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1128-L1133"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "847-874",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L847-L874"
     }
    ]
   },
   {
    "mode": "settings",
    "gesture": "turn",
    "action": "Moves between the four tabs, wrapping around and remembering the row last used in each.",
    "short_label": "TAB",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_menu.c",
      "lines": "427-450",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L427-L450"
     }
    ]
   },
   {
    "mode": "about",
    "gesture": "turn",
    "action": "Has no effect on the information page.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_menu.c",
      "lines": "439-445",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L439-L445"
     }
    ]
   },
   {
    "mode": "calibration",
    "gesture": "turn_cw",
    "action": "Assigns this encoder and its direction to the name currently requested on screen.",
    "short_label": "TEACH KNOB",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/panel.c",
      "lines": "9-15",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/panel.c#L9-L15"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1643-1665",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1643-L1665"
     }
    ]
   },
   {
    "mode": "screen_off",
    "gesture": "turn",
    "action": "Wakes the picture without changing a value and consumes encoder turns until they have rested for 0.3 seconds.",
    "short_label": "WAKE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "223-243",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L223-L243"
     }
    ]
   }
  ],
  "encoder_knob2": [
   {
    "mode": "world",
    "gesture": "turn",
    "action": "Changes part 2 (FLOOR) volume and gives it focus.",
    "short_label": "FLOOR LEVEL",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1136-1151",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1136-L1151"
     }
    ]
   },
   {
    "mode": "key",
    "gesture": "turn_while_holding:button_arp",
    "action": "Has no action while this key or tempo view is held.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1295-1297",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1295-L1297"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_layer.c",
      "lines": "503-511",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_layer.c#L503-L511"
     }
    ]
   },
   {
    "mode": "tempo",
    "gesture": "turn_while_holding:button_seq",
    "action": "Has no action while this key or tempo view is held.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1295-1297",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1295-L1297"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_layer.c",
      "lines": "503-511",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_layer.c#L503-L511"
     }
    ]
   },
   {
    "mode": "settings",
    "gesture": "turn",
    "action": "Changes a selected value row by one step in the turn direction, with COLOR wrapping; turning a knob on CALIBRATION or ABOUT has no action.",
    "short_label": "VALUE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_menu.c",
      "lines": "451-458",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L451-L458"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/menu_items.c",
      "lines": "180-192",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L180-L192"
     }
    ]
   },
   {
    "mode": "settings_color_row",
    "gesture": "turn",
    "action": "Cycles through the screen palettes, with an immediate preview.",
    "short_label": "COLOR",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/menu_items.c",
      "lines": "167-171",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L167-L171"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/menu_items.c",
      "lines": "180-192",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L180-L192"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_menu.c",
      "lines": "451-458",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L451-L458"
     }
    ]
   },
   {
    "mode": "settings_style_row",
    "gesture": "turn",
    "action": "Chooses FLAT or LINE for the settings menu while the playing panel keeps its four-quadrant layout.",
    "short_label": "STYLE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/menu_items.c",
      "lines": "49-51",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L49-L51"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/menu_items.c",
      "lines": "172",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L172"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_menu.c",
      "lines": "247-248",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L247-L248"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_menu.c",
      "lines": "392-393",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L392-L393"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_menu.c",
      "lines": "451-458",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L451-L458"
     }
    ]
   },
   {
    "mode": "settings_large_row",
    "gesture": "turn",
    "action": "Chooses larger menu row lettering with ON or the smaller lettering with OFF.",
    "short_label": "LARGE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/menu_items.c",
      "lines": "57-59",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L57-L59"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_menu.c",
      "lines": "203-208",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L203-L208"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_menu.c",
      "lines": "286-296",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L286-L296"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_menu.c",
      "lines": "451-458",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L451-L458"
     }
    ]
   },
   {
    "mode": "settings_anim_row",
    "gesture": "turn",
    "action": "Turns menu tab movement and the clean-start LED sweep on or off.",
    "short_label": "ANIM",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/menu_items.c",
      "lines": "57-59",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L57-L59"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_menu.c",
      "lines": "214-221",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L214-L221"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/main.c",
      "lines": "126-143",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/main.c#L126-L143"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_menu.c",
      "lines": "451-458",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L451-L458"
     }
    ]
   },
   {
    "mode": "settings_leds_row",
    "gesture": "turn",
    "action": "Chooses OFF, DIM LO, AUTO, DIM HI or INV, with AUTO using the brighter glow only while a USB host is connected.",
    "short_label": "LEDS",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/panel.c",
      "lines": "96-101",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/panel.c#L96-L101"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "263-286",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L263-L286"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_menu.c",
      "lines": "451-458",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L451-L458"
     }
    ]
   },
   {
    "mode": "settings_screen_off_row",
    "gesture": "turn",
    "action": "Chooses NEVER or an idle timeout of 5, 15, 30 or 60 minutes before the display sleeps.",
    "short_label": "SCREEN OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/menu_items.c",
      "lines": "78-79",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L78-L79"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "246-263",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L246-L263"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_menu.c",
      "lines": "451-458",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L451-L458"
     }
    ]
   },
   {
    "mode": "settings_hold_row",
    "gesture": "turn",
    "action": "Sets the SEQ and ARP layer threshold to 0.3, 0.4, 0.5 or 0.6 seconds while HOME keeps its separate 0.7-second threshold.",
    "short_label": "HOLD",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/menu_items.c",
      "lines": "73",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L73"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_layer.c",
      "lines": "254-263",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_layer.c#L254-L263"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "950-967",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L950-L967"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_menu.c",
      "lines": "451-458",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L451-L458"
     }
    ]
   },
   {
    "mode": "settings_accel_row",
    "gesture": "turn",
    "action": "Turns faster changes of wide parameter ranges on or off for quick encoder turns.",
    "short_label": "KNOB ACCEL",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/menu_items.c",
      "lines": "60",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L60"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "369-395",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L369-L395"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_menu.c",
      "lines": "451-458",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L451-L458"
     }
    ]
   },
   {
    "mode": "settings_latch_row",
    "gesture": "turn",
    "action": "Changes the inherited effect-key latch setting without making MAKU's verb buttons latch.",
    "short_label": "FX LATCH",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/menu_items.c",
      "lines": "61",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L61"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/perform.c",
      "lines": "119-128",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/perform.c#L119-L128"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_layer.c",
      "lines": "96-107",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_layer.c#L96-L107"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1436-1445",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1436-L1445"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_menu.c",
      "lines": "451-458",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L451-L458"
     }
    ]
   },
   {
    "mode": "settings_bpm_lock_row",
    "gesture": "turn",
    "action": "Changes the inherited tempo-lock flag while MAKU already reserves tempo turns for the held SEQ layer.",
    "short_label": "BPM LOCK",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/menu_items.c",
      "lines": "63",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L63"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1530-1548",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1530-L1548"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_layer.c",
      "lines": "96-107",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_layer.c#L96-L107"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_menu.c",
      "lines": "451-458",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L451-L458"
     }
    ]
   },
   {
    "mode": "settings_scale_leds_row",
    "gesture": "turn",
    "action": "Turns the focused part's scale-key glow on or off outside a special key map, with root keys brighter.",
    "short_label": "SCALE LEDS",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/menu_items.c",
      "lines": "66",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L66"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "219-243",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L219-L243"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "324-337",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L324-L337"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_menu.c",
      "lines": "451-458",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L451-L458"
     }
    ]
   },
   {
    "mode": "settings_speaker_eq_row",
    "gesture": "turn",
    "action": "Chooses FLAT, LOWCUT or BASS+ for the master output including USB and headphones, without switching off the speaker.",
    "short_label": "SPEAKER EQ",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/menu_items.c",
      "lines": "68-72",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L68-L72"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/menu_items.c",
      "lines": "173",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L173"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/fx.c",
      "lines": "843-852",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/fx.c#L843-L852"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_menu.c",
      "lines": "451-458",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L451-L458"
     }
    ]
   },
   {
    "mode": "settings_usb_level_row",
    "gesture": "turn",
    "action": "Chooses MASTER for USB audio following MASTER or FIXED for USB audio at full level while MASTER still controls the speaker and headphones.",
    "short_label": "USB LEVEL",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/menu_items.c",
      "lines": "62",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L62"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/menu_items.c",
      "lines": "157-164",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L157-L164"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/fx.c",
      "lines": "108-121",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/fx.c#L108-L121"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_menu.c",
      "lines": "451-458",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L451-L458"
     }
    ]
   },
   {
    "mode": "settings_click_row",
    "gesture": "turn",
    "action": "Chooses OFF, REC or ON, with ON clicking while the transport runs and REC requiring an armed recording track.",
    "short_label": "CLICK",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/menu_items.c",
      "lines": "75",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L75"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "69-79",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L69-L79"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "360-364",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L360-L364"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_menu.c",
      "lines": "451-458",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L451-L458"
     }
    ]
   },
   {
    "mode": "settings_click_level_row",
    "gesture": "turn",
    "action": "Chooses LOW, MID or HIGH for the metronome volume.",
    "short_label": "CLICK LEVEL",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/menu_items.c",
      "lines": "76",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L76"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "69-79",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L69-L79"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/click.c",
      "lines": "21-36",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/click.c#L21-L36"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_menu.c",
      "lines": "451-458",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L451-L458"
     }
    ]
   },
   {
    "mode": "settings_count_in_row",
    "gesture": "turn",
    "action": "Chooses OFF, 1 BAR or 2 BARS for the inherited recording count-in, which normal MAKU panel use does not start.",
    "short_label": "COUNT-IN",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/menu_items.c",
      "lines": "77",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L77"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "69-79",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L69-L79"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "1020-1028",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L1020-L1028"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1254-1258",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1254-L1258"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_menu.c",
      "lines": "451-458",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L451-L458"
     }
    ]
   },
   {
    "mode": "settings_usb_serial_row",
    "gesture": "turn",
    "action": "Enables or removes the serial console on menu close, briefly disconnecting USB MIDI and audio while the whole USB device reconnects.",
    "short_label": "USB SERIAL",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/menu_items.c",
      "lines": "81-97",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L81-L97"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1243-1247",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1243-L1247"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_menu.c",
      "lines": "451-458",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L451-L458"
     }
    ]
   },
   {
    "mode": "settings_restore_last_row",
    "gesture": "turn",
    "action": "Changes the inherited restore flag while MAKU still creates a fresh world at every start and never runs the inherited autosave loop.",
    "short_label": "RESTORE LAST",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/menu_items.c",
      "lines": "65",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L65"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/main.c",
      "lines": "189-196",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/main.c#L189-L196"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/main.c",
      "lines": "277-288",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/main.c#L277-L288"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_menu.c",
      "lines": "451-458",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L451-L458"
     }
    ]
   },
   {
    "mode": "about",
    "gesture": "turn",
    "action": "Has no effect on the information page.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_menu.c",
      "lines": "439-445",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L439-L445"
     }
    ]
   },
   {
    "mode": "calibration",
    "gesture": "turn_cw",
    "action": "Assigns this encoder and its direction to the name currently requested on screen.",
    "short_label": "TEACH KNOB",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/panel.c",
      "lines": "9-15",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/panel.c#L9-L15"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1643-1665",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1643-L1665"
     }
    ]
   },
   {
    "mode": "screen_off",
    "gesture": "turn",
    "action": "Wakes the picture without changing a value and consumes encoder turns until they have rested for 0.3 seconds.",
    "short_label": "WAKE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "223-243",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L223-L243"
     }
    ]
   }
  ],
  "encoder_knob3": [
   {
    "mode": "world",
    "gesture": "turn",
    "action": "Changes part 3 (HAZE) volume and gives it focus.",
    "short_label": "HAZE LEVEL",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1136-1151",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1136-L1151"
     }
    ]
   },
   {
    "mode": "key",
    "gesture": "turn_while_holding:button_arp",
    "action": "Has no action while this key or tempo view is held.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1295-1297",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1295-L1297"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_layer.c",
      "lines": "503-511",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_layer.c#L503-L511"
     }
    ]
   },
   {
    "mode": "tempo",
    "gesture": "turn_while_holding:button_seq",
    "action": "Has no action while this key or tempo view is held.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1295-1297",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1295-L1297"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_layer.c",
      "lines": "503-511",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_layer.c#L503-L511"
     }
    ]
   },
   {
    "mode": "settings",
    "gesture": "turn",
    "action": "Changes a selected value row by one step in the turn direction, with COLOR wrapping; turning a knob on CALIBRATION or ABOUT has no action.",
    "short_label": "VALUE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_menu.c",
      "lines": "451-458",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L451-L458"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/menu_items.c",
      "lines": "180-192",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L180-L192"
     }
    ]
   },
   {
    "mode": "settings_color_row",
    "gesture": "turn",
    "action": "Cycles through the screen palettes, with an immediate preview.",
    "short_label": "COLOR",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/menu_items.c",
      "lines": "167-171",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L167-L171"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/menu_items.c",
      "lines": "180-192",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L180-L192"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_menu.c",
      "lines": "451-458",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L451-L458"
     }
    ]
   },
   {
    "mode": "settings_style_row",
    "gesture": "turn",
    "action": "Chooses FLAT or LINE for the settings menu while the playing panel keeps its four-quadrant layout.",
    "short_label": "STYLE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/menu_items.c",
      "lines": "49-51",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L49-L51"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/menu_items.c",
      "lines": "172",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L172"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_menu.c",
      "lines": "247-248",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L247-L248"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_menu.c",
      "lines": "392-393",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L392-L393"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_menu.c",
      "lines": "451-458",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L451-L458"
     }
    ]
   },
   {
    "mode": "settings_large_row",
    "gesture": "turn",
    "action": "Chooses larger menu row lettering with ON or the smaller lettering with OFF.",
    "short_label": "LARGE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/menu_items.c",
      "lines": "57-59",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L57-L59"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_menu.c",
      "lines": "203-208",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L203-L208"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_menu.c",
      "lines": "286-296",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L286-L296"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_menu.c",
      "lines": "451-458",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L451-L458"
     }
    ]
   },
   {
    "mode": "settings_anim_row",
    "gesture": "turn",
    "action": "Turns menu tab movement and the clean-start LED sweep on or off.",
    "short_label": "ANIM",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/menu_items.c",
      "lines": "57-59",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L57-L59"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_menu.c",
      "lines": "214-221",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L214-L221"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/main.c",
      "lines": "126-143",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/main.c#L126-L143"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_menu.c",
      "lines": "451-458",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L451-L458"
     }
    ]
   },
   {
    "mode": "settings_leds_row",
    "gesture": "turn",
    "action": "Chooses OFF, DIM LO, AUTO, DIM HI or INV, with AUTO using the brighter glow only while a USB host is connected.",
    "short_label": "LEDS",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/panel.c",
      "lines": "96-101",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/panel.c#L96-L101"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "263-286",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L263-L286"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_menu.c",
      "lines": "451-458",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L451-L458"
     }
    ]
   },
   {
    "mode": "settings_screen_off_row",
    "gesture": "turn",
    "action": "Chooses NEVER or an idle timeout of 5, 15, 30 or 60 minutes before the display sleeps.",
    "short_label": "SCREEN OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/menu_items.c",
      "lines": "78-79",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L78-L79"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "246-263",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L246-L263"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_menu.c",
      "lines": "451-458",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L451-L458"
     }
    ]
   },
   {
    "mode": "settings_hold_row",
    "gesture": "turn",
    "action": "Sets the SEQ and ARP layer threshold to 0.3, 0.4, 0.5 or 0.6 seconds while HOME keeps its separate 0.7-second threshold.",
    "short_label": "HOLD",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/menu_items.c",
      "lines": "73",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L73"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_layer.c",
      "lines": "254-263",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_layer.c#L254-L263"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "950-967",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L950-L967"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_menu.c",
      "lines": "451-458",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L451-L458"
     }
    ]
   },
   {
    "mode": "settings_accel_row",
    "gesture": "turn",
    "action": "Turns faster changes of wide parameter ranges on or off for quick encoder turns.",
    "short_label": "KNOB ACCEL",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/menu_items.c",
      "lines": "60",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L60"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "369-395",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L369-L395"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_menu.c",
      "lines": "451-458",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L451-L458"
     }
    ]
   },
   {
    "mode": "settings_latch_row",
    "gesture": "turn",
    "action": "Changes the inherited effect-key latch setting without making MAKU's verb buttons latch.",
    "short_label": "FX LATCH",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/menu_items.c",
      "lines": "61",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L61"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/perform.c",
      "lines": "119-128",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/perform.c#L119-L128"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_layer.c",
      "lines": "96-107",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_layer.c#L96-L107"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1436-1445",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1436-L1445"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_menu.c",
      "lines": "451-458",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L451-L458"
     }
    ]
   },
   {
    "mode": "settings_bpm_lock_row",
    "gesture": "turn",
    "action": "Changes the inherited tempo-lock flag while MAKU already reserves tempo turns for the held SEQ layer.",
    "short_label": "BPM LOCK",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/menu_items.c",
      "lines": "63",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L63"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1530-1548",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1530-L1548"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_layer.c",
      "lines": "96-107",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_layer.c#L96-L107"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_menu.c",
      "lines": "451-458",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L451-L458"
     }
    ]
   },
   {
    "mode": "settings_scale_leds_row",
    "gesture": "turn",
    "action": "Turns the focused part's scale-key glow on or off outside a special key map, with root keys brighter.",
    "short_label": "SCALE LEDS",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/menu_items.c",
      "lines": "66",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L66"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "219-243",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L219-L243"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "324-337",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L324-L337"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_menu.c",
      "lines": "451-458",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L451-L458"
     }
    ]
   },
   {
    "mode": "settings_speaker_eq_row",
    "gesture": "turn",
    "action": "Chooses FLAT, LOWCUT or BASS+ for the master output including USB and headphones, without switching off the speaker.",
    "short_label": "SPEAKER EQ",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/menu_items.c",
      "lines": "68-72",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L68-L72"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/menu_items.c",
      "lines": "173",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L173"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/fx.c",
      "lines": "843-852",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/fx.c#L843-L852"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_menu.c",
      "lines": "451-458",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L451-L458"
     }
    ]
   },
   {
    "mode": "settings_usb_level_row",
    "gesture": "turn",
    "action": "Chooses MASTER for USB audio following MASTER or FIXED for USB audio at full level while MASTER still controls the speaker and headphones.",
    "short_label": "USB LEVEL",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/menu_items.c",
      "lines": "62",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L62"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/menu_items.c",
      "lines": "157-164",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L157-L164"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/fx.c",
      "lines": "108-121",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/fx.c#L108-L121"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_menu.c",
      "lines": "451-458",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L451-L458"
     }
    ]
   },
   {
    "mode": "settings_click_row",
    "gesture": "turn",
    "action": "Chooses OFF, REC or ON, with ON clicking while the transport runs and REC requiring an armed recording track.",
    "short_label": "CLICK",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/menu_items.c",
      "lines": "75",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L75"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "69-79",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L69-L79"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "360-364",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L360-L364"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_menu.c",
      "lines": "451-458",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L451-L458"
     }
    ]
   },
   {
    "mode": "settings_click_level_row",
    "gesture": "turn",
    "action": "Chooses LOW, MID or HIGH for the metronome volume.",
    "short_label": "CLICK LEVEL",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/menu_items.c",
      "lines": "76",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L76"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "69-79",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L69-L79"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/click.c",
      "lines": "21-36",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/click.c#L21-L36"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_menu.c",
      "lines": "451-458",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L451-L458"
     }
    ]
   },
   {
    "mode": "settings_count_in_row",
    "gesture": "turn",
    "action": "Chooses OFF, 1 BAR or 2 BARS for the inherited recording count-in, which normal MAKU panel use does not start.",
    "short_label": "COUNT-IN",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/menu_items.c",
      "lines": "77",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L77"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "69-79",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L69-L79"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "1020-1028",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L1020-L1028"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1254-1258",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1254-L1258"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_menu.c",
      "lines": "451-458",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L451-L458"
     }
    ]
   },
   {
    "mode": "settings_usb_serial_row",
    "gesture": "turn",
    "action": "Enables or removes the serial console on menu close, briefly disconnecting USB MIDI and audio while the whole USB device reconnects.",
    "short_label": "USB SERIAL",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/menu_items.c",
      "lines": "81-97",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L81-L97"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1243-1247",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1243-L1247"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_menu.c",
      "lines": "451-458",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L451-L458"
     }
    ]
   },
   {
    "mode": "settings_restore_last_row",
    "gesture": "turn",
    "action": "Changes the inherited restore flag while MAKU still creates a fresh world at every start and never runs the inherited autosave loop.",
    "short_label": "RESTORE LAST",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/menu_items.c",
      "lines": "65",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L65"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/main.c",
      "lines": "189-196",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/main.c#L189-L196"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/main.c",
      "lines": "277-288",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/main.c#L277-L288"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_menu.c",
      "lines": "451-458",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L451-L458"
     }
    ]
   },
   {
    "mode": "about",
    "gesture": "turn",
    "action": "Has no effect on the information page.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_menu.c",
      "lines": "439-445",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L439-L445"
     }
    ]
   },
   {
    "mode": "calibration",
    "gesture": "turn_cw",
    "action": "Assigns this encoder and its direction to the name currently requested on screen.",
    "short_label": "TEACH KNOB",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/panel.c",
      "lines": "9-15",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/panel.c#L9-L15"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1643-1665",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1643-L1665"
     }
    ]
   },
   {
    "mode": "screen_off",
    "gesture": "turn",
    "action": "Wakes the picture without changing a value and consumes encoder turns until they have rested for 0.3 seconds.",
    "short_label": "WAKE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "223-243",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L223-L243"
     }
    ]
   }
  ],
  "encoder_knob4": [
   {
    "mode": "world",
    "gesture": "turn",
    "action": "Changes part 4 (VOICE) volume and gives it focus.",
    "short_label": "VOICE LEVEL",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1136-1151",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1136-L1151"
     }
    ]
   },
   {
    "mode": "key",
    "gesture": "turn_while_holding:button_arp",
    "action": "Has no action while this key or tempo view is held.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1295-1297",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1295-L1297"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_layer.c",
      "lines": "503-511",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_layer.c#L503-L511"
     }
    ]
   },
   {
    "mode": "tempo",
    "gesture": "turn_while_holding:button_seq",
    "action": "Has no action while this key or tempo view is held.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1295-1297",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1295-L1297"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_layer.c",
      "lines": "503-511",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_layer.c#L503-L511"
     }
    ]
   },
   {
    "mode": "settings",
    "gesture": "turn",
    "action": "Changes a selected value row by one step in the turn direction, with COLOR wrapping; turning a knob on CALIBRATION or ABOUT has no action.",
    "short_label": "VALUE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_menu.c",
      "lines": "451-458",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L451-L458"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/menu_items.c",
      "lines": "180-192",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L180-L192"
     }
    ]
   },
   {
    "mode": "settings_color_row",
    "gesture": "turn",
    "action": "Cycles through the screen palettes, with an immediate preview.",
    "short_label": "COLOR",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/menu_items.c",
      "lines": "167-171",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L167-L171"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/menu_items.c",
      "lines": "180-192",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L180-L192"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_menu.c",
      "lines": "451-458",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L451-L458"
     }
    ]
   },
   {
    "mode": "settings_style_row",
    "gesture": "turn",
    "action": "Chooses FLAT or LINE for the settings menu while the playing panel keeps its four-quadrant layout.",
    "short_label": "STYLE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/menu_items.c",
      "lines": "49-51",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L49-L51"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/menu_items.c",
      "lines": "172",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L172"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_menu.c",
      "lines": "247-248",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L247-L248"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_menu.c",
      "lines": "392-393",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L392-L393"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_menu.c",
      "lines": "451-458",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L451-L458"
     }
    ]
   },
   {
    "mode": "settings_large_row",
    "gesture": "turn",
    "action": "Chooses larger menu row lettering with ON or the smaller lettering with OFF.",
    "short_label": "LARGE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/menu_items.c",
      "lines": "57-59",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L57-L59"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_menu.c",
      "lines": "203-208",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L203-L208"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_menu.c",
      "lines": "286-296",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L286-L296"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_menu.c",
      "lines": "451-458",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L451-L458"
     }
    ]
   },
   {
    "mode": "settings_anim_row",
    "gesture": "turn",
    "action": "Turns menu tab movement and the clean-start LED sweep on or off.",
    "short_label": "ANIM",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/menu_items.c",
      "lines": "57-59",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L57-L59"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_menu.c",
      "lines": "214-221",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L214-L221"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/main.c",
      "lines": "126-143",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/main.c#L126-L143"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_menu.c",
      "lines": "451-458",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L451-L458"
     }
    ]
   },
   {
    "mode": "settings_leds_row",
    "gesture": "turn",
    "action": "Chooses OFF, DIM LO, AUTO, DIM HI or INV, with AUTO using the brighter glow only while a USB host is connected.",
    "short_label": "LEDS",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/panel.c",
      "lines": "96-101",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/panel.c#L96-L101"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "263-286",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L263-L286"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_menu.c",
      "lines": "451-458",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L451-L458"
     }
    ]
   },
   {
    "mode": "settings_screen_off_row",
    "gesture": "turn",
    "action": "Chooses NEVER or an idle timeout of 5, 15, 30 or 60 minutes before the display sleeps.",
    "short_label": "SCREEN OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/menu_items.c",
      "lines": "78-79",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L78-L79"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "246-263",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L246-L263"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_menu.c",
      "lines": "451-458",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L451-L458"
     }
    ]
   },
   {
    "mode": "settings_hold_row",
    "gesture": "turn",
    "action": "Sets the SEQ and ARP layer threshold to 0.3, 0.4, 0.5 or 0.6 seconds while HOME keeps its separate 0.7-second threshold.",
    "short_label": "HOLD",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/menu_items.c",
      "lines": "73",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L73"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_layer.c",
      "lines": "254-263",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_layer.c#L254-L263"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "950-967",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L950-L967"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_menu.c",
      "lines": "451-458",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L451-L458"
     }
    ]
   },
   {
    "mode": "settings_accel_row",
    "gesture": "turn",
    "action": "Turns faster changes of wide parameter ranges on or off for quick encoder turns.",
    "short_label": "KNOB ACCEL",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/menu_items.c",
      "lines": "60",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L60"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "369-395",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L369-L395"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_menu.c",
      "lines": "451-458",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L451-L458"
     }
    ]
   },
   {
    "mode": "settings_latch_row",
    "gesture": "turn",
    "action": "Changes the inherited effect-key latch setting without making MAKU's verb buttons latch.",
    "short_label": "FX LATCH",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/menu_items.c",
      "lines": "61",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L61"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/perform.c",
      "lines": "119-128",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/perform.c#L119-L128"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_layer.c",
      "lines": "96-107",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_layer.c#L96-L107"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1436-1445",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1436-L1445"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_menu.c",
      "lines": "451-458",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L451-L458"
     }
    ]
   },
   {
    "mode": "settings_bpm_lock_row",
    "gesture": "turn",
    "action": "Changes the inherited tempo-lock flag while MAKU already reserves tempo turns for the held SEQ layer.",
    "short_label": "BPM LOCK",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/menu_items.c",
      "lines": "63",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L63"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1530-1548",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1530-L1548"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_layer.c",
      "lines": "96-107",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_layer.c#L96-L107"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_menu.c",
      "lines": "451-458",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L451-L458"
     }
    ]
   },
   {
    "mode": "settings_scale_leds_row",
    "gesture": "turn",
    "action": "Turns the focused part's scale-key glow on or off outside a special key map, with root keys brighter.",
    "short_label": "SCALE LEDS",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/menu_items.c",
      "lines": "66",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L66"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "219-243",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L219-L243"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "324-337",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L324-L337"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_menu.c",
      "lines": "451-458",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L451-L458"
     }
    ]
   },
   {
    "mode": "settings_speaker_eq_row",
    "gesture": "turn",
    "action": "Chooses FLAT, LOWCUT or BASS+ for the master output including USB and headphones, without switching off the speaker.",
    "short_label": "SPEAKER EQ",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/menu_items.c",
      "lines": "68-72",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L68-L72"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/menu_items.c",
      "lines": "173",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L173"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/fx.c",
      "lines": "843-852",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/fx.c#L843-L852"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_menu.c",
      "lines": "451-458",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L451-L458"
     }
    ]
   },
   {
    "mode": "settings_usb_level_row",
    "gesture": "turn",
    "action": "Chooses MASTER for USB audio following MASTER or FIXED for USB audio at full level while MASTER still controls the speaker and headphones.",
    "short_label": "USB LEVEL",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/menu_items.c",
      "lines": "62",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L62"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/menu_items.c",
      "lines": "157-164",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L157-L164"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/fx.c",
      "lines": "108-121",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/fx.c#L108-L121"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_menu.c",
      "lines": "451-458",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L451-L458"
     }
    ]
   },
   {
    "mode": "settings_click_row",
    "gesture": "turn",
    "action": "Chooses OFF, REC or ON, with ON clicking while the transport runs and REC requiring an armed recording track.",
    "short_label": "CLICK",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/menu_items.c",
      "lines": "75",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L75"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "69-79",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L69-L79"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "360-364",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L360-L364"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_menu.c",
      "lines": "451-458",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L451-L458"
     }
    ]
   },
   {
    "mode": "settings_click_level_row",
    "gesture": "turn",
    "action": "Chooses LOW, MID or HIGH for the metronome volume.",
    "short_label": "CLICK LEVEL",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/menu_items.c",
      "lines": "76",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L76"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "69-79",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L69-L79"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/click.c",
      "lines": "21-36",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/click.c#L21-L36"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_menu.c",
      "lines": "451-458",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L451-L458"
     }
    ]
   },
   {
    "mode": "settings_count_in_row",
    "gesture": "turn",
    "action": "Chooses OFF, 1 BAR or 2 BARS for the inherited recording count-in, which normal MAKU panel use does not start.",
    "short_label": "COUNT-IN",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/menu_items.c",
      "lines": "77",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L77"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "69-79",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L69-L79"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "1020-1028",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L1020-L1028"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1254-1258",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1254-L1258"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_menu.c",
      "lines": "451-458",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L451-L458"
     }
    ]
   },
   {
    "mode": "settings_usb_serial_row",
    "gesture": "turn",
    "action": "Enables or removes the serial console on menu close, briefly disconnecting USB MIDI and audio while the whole USB device reconnects.",
    "short_label": "USB SERIAL",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/menu_items.c",
      "lines": "81-97",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L81-L97"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1243-1247",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1243-L1247"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_menu.c",
      "lines": "451-458",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L451-L458"
     }
    ]
   },
   {
    "mode": "settings_restore_last_row",
    "gesture": "turn",
    "action": "Changes the inherited restore flag while MAKU still creates a fresh world at every start and never runs the inherited autosave loop.",
    "short_label": "RESTORE LAST",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/menu_items.c",
      "lines": "65",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L65"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/main.c",
      "lines": "189-196",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/main.c#L189-L196"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/main.c",
      "lines": "277-288",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/main.c#L277-L288"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_menu.c",
      "lines": "451-458",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L451-L458"
     }
    ]
   },
   {
    "mode": "about",
    "gesture": "turn",
    "action": "Has no effect on the information page.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_menu.c",
      "lines": "439-445",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L439-L445"
     }
    ]
   },
   {
    "mode": "calibration",
    "gesture": "turn_cw",
    "action": "Assigns this encoder and its direction to the name currently requested on screen.",
    "short_label": "TEACH KNOB",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/panel.c",
      "lines": "9-15",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/panel.c#L9-L15"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1643-1665",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1643-L1665"
     }
    ]
   },
   {
    "mode": "screen_off",
    "gesture": "turn",
    "action": "Wakes the picture without changing a value and consumes encoder turns until they have rested for 0.3 seconds.",
    "short_label": "WAKE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "223-243",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L223-L243"
     }
    ]
   }
  ],
  "button_fx": [
   {
    "mode": "world",
    "gesture": "press",
    "action": "Deepens the reverb and delay, softens dry voices and fades the pulse away.",
    "short_label": "SINK",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1173-1197",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1173-L1197"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "998-1054",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L998-L1054"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "565-585",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L565-L585"
     }
    ]
   },
   {
    "mode": "world",
    "gesture": "hold",
    "action": "Keeps this verb rising or fully active and gives its timing controls to the three macro encoders unless a newer held verb takes them.",
    "short_label": "SINK TIMES",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1180-1197",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1180-L1197"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "912-946",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L912-L946"
     }
    ]
   },
   {
    "mode": "sink",
    "gesture": "release",
    "action": "Finishes the rise if needed, waits for the chosen hold time, then fades this verb away.",
    "short_label": "SINK TAIL",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "912-946",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L912-L946"
     }
    ]
   },
   {
    "mode": "settings",
    "gesture": "press",
    "action": "Has no menu action.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1347-1355",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1347-L1355"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_layer.c",
      "lines": "96-107",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_layer.c#L96-L107"
     }
    ]
   },
   {
    "mode": "calibration",
    "gesture": "press",
    "action": "Assigns this physical button to the name currently requested on screen, without a confirmation step.",
    "short_label": "TEACH BUTTON",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/panel.c",
      "lines": "9-15",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/panel.c#L9-L15"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1627-1642",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1627-L1642"
     }
    ]
   },
   {
    "mode": "screen_off",
    "gesture": "press",
    "action": "Wakes the picture without performing this button's normal action and waits for all buttons and keys to be released.",
    "short_label": "WAKE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "223-243",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L223-L243"
     }
    ]
   }
  ],
  "button_sel": [
   {
    "mode": "world",
    "gesture": "press",
    "action": "Fills the voice phrase's gaps and adds higher notes and a third above.",
    "short_label": "CASCADE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1173-1197",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1173-L1197"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "998-1054",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L998-L1054"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "565-585",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L565-L585"
     }
    ]
   },
   {
    "mode": "world",
    "gesture": "hold",
    "action": "Keeps this verb rising or fully active and gives its timing controls to the three macro encoders unless a newer held verb takes them.",
    "short_label": "SET TIMES",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1180-1197",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1180-L1197"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "912-946",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L912-L946"
     }
    ]
   },
   {
    "mode": "cascade",
    "gesture": "release",
    "action": "Finishes the rise if needed, waits for the chosen hold time, then fades this verb away.",
    "short_label": "CASCADE TAIL",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "912-946",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L912-L946"
     }
    ]
   },
   {
    "mode": "settings",
    "gesture": "press",
    "action": "Has no menu action.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1347-1355",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1347-L1355"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_layer.c",
      "lines": "96-107",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_layer.c#L96-L107"
     }
    ]
   },
   {
    "mode": "calibration",
    "gesture": "press",
    "action": "Assigns this physical button to the name currently requested on screen, without a confirmation step.",
    "short_label": "TEACH BUTTON",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/panel.c",
      "lines": "9-15",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/panel.c#L9-L15"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1627-1642",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1627-L1642"
     }
    ]
   },
   {
    "mode": "screen_off",
    "gesture": "press",
    "action": "Wakes the picture without performing this button's normal action and waits for all buttons and keys to be released.",
    "short_label": "WAKE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "223-243",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L223-L243"
     }
    ]
   }
  ],
  "button_env": [
   {
    "mode": "world",
    "gesture": "press",
    "action": "Restrikes the floor and haze chords, lengthens their envelopes and raises the background bed.",
    "short_label": "SWELL",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1173-1197",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1173-L1197"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "998-1054",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L998-L1054"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "565-585",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L565-L585"
     }
    ]
   },
   {
    "mode": "world",
    "gesture": "hold",
    "action": "Keeps this verb rising or fully active and gives its timing controls to the three macro encoders unless a newer held verb takes them.",
    "short_label": "SWELL TIMES",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1180-1197",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1180-L1197"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "912-946",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L912-L946"
     }
    ]
   },
   {
    "mode": "swell",
    "gesture": "release",
    "action": "Finishes the rise if needed, waits for the chosen hold time, then fades this verb away.",
    "short_label": "SWELL TAIL",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "912-946",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L912-L946"
     }
    ]
   },
   {
    "mode": "settings",
    "gesture": "press",
    "action": "Has no menu action.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1347-1355",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1347-L1355"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_layer.c",
      "lines": "96-107",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_layer.c#L96-L107"
     }
    ]
   },
   {
    "mode": "calibration",
    "gesture": "press",
    "action": "Assigns this physical button to the name currently requested on screen, without a confirmation step.",
    "short_label": "TEACH BUTTON",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/panel.c",
      "lines": "9-15",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/panel.c#L9-L15"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1627-1642",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1627-L1642"
     }
    ]
   },
   {
    "mode": "screen_off",
    "gesture": "press",
    "action": "Wakes the picture without performing this button's normal action and waits for all buttons and keys to be released.",
    "short_label": "WAKE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "223-243",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L223-L243"
     }
    ]
   }
  ],
  "button_lfo": [
   {
    "mode": "world",
    "gesture": "press",
    "action": "Adds faster and deeper filter motion, chorus and pitch movement.",
    "short_label": "WOBBLE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1173-1197",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1173-L1197"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "998-1054",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L998-L1054"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "565-585",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L565-L585"
     }
    ]
   },
   {
    "mode": "world",
    "gesture": "hold",
    "action": "Keeps this verb rising or fully active and gives its timing controls to the three macro encoders unless a newer held verb takes them.",
    "short_label": "WOBBLE TIMES",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1180-1197",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1180-L1197"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "912-946",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L912-L946"
     }
    ]
   },
   {
    "mode": "wobble",
    "gesture": "release",
    "action": "Finishes the rise if needed, waits for the chosen hold time, then fades this verb away.",
    "short_label": "WOBBLE TAIL",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "912-946",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L912-L946"
     }
    ]
   },
   {
    "mode": "settings",
    "gesture": "press",
    "action": "Has no menu action.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1347-1355",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1347-L1355"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_layer.c",
      "lines": "96-107",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_layer.c#L96-L107"
     }
    ]
   },
   {
    "mode": "calibration",
    "gesture": "press",
    "action": "Assigns this physical button to the name currently requested on screen, without a confirmation step.",
    "short_label": "TEACH BUTTON",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/panel.c",
      "lines": "9-15",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/panel.c#L9-L15"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1627-1642",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1627-L1642"
     }
    ]
   },
   {
    "mode": "screen_off",
    "gesture": "press",
    "action": "Wakes the picture without performing this button's normal action and waits for all buttons and keys to be released.",
    "short_label": "WAKE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "223-243",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L223-L243"
     }
    ]
   }
  ],
  "button_edit": [
   {
    "mode": "world",
    "gesture": "press",
    "action": "Brightens all four parts, adds distortion to the melodic parts and raises the output high-pass filter.",
    "short_label": "LIFT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1173-1197",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1173-L1197"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "998-1054",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L998-L1054"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "565-585",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L565-L585"
     }
    ]
   },
   {
    "mode": "world",
    "gesture": "hold",
    "action": "Keeps this verb rising or fully active and gives its timing controls to the three macro encoders unless a newer held verb takes them.",
    "short_label": "LIFT TIMES",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1180-1197",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1180-L1197"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "912-946",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L912-L946"
     }
    ]
   },
   {
    "mode": "lift",
    "gesture": "release",
    "action": "Finishes the rise if needed, waits for the chosen hold time, then fades this verb away.",
    "short_label": "LIFT TAIL",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "912-946",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L912-L946"
     }
    ]
   },
   {
    "mode": "settings",
    "gesture": "press",
    "action": "Has no menu action.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1347-1355",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1347-L1355"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_layer.c",
      "lines": "96-107",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_layer.c#L96-L107"
     }
    ]
   },
   {
    "mode": "calibration",
    "gesture": "press",
    "action": "Assigns this physical button to the name currently requested on screen, without a confirmation step.",
    "short_label": "TEACH BUTTON",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/panel.c",
      "lines": "9-15",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/panel.c#L9-L15"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1627-1642",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1627-L1642"
     }
    ]
   },
   {
    "mode": "screen_off",
    "gesture": "press",
    "action": "Wakes the picture without performing this button's normal action and waits for all buttons and keys to be released.",
    "short_label": "WAKE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "223-243",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L223-L243"
     }
    ]
   }
  ],
  "button_glo": [
   {
    "mode": "world",
    "gesture": "press",
    "action": "Breaks up the voice phrase and pulse with jumps, repeats, missing hits and extra swing.",
    "short_label": "SCRAMBLE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1173-1197",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1173-L1197"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "998-1054",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L998-L1054"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "565-585",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L565-L585"
     }
    ]
   },
   {
    "mode": "world",
    "gesture": "hold",
    "action": "Keeps this verb rising or fully active and gives its timing controls to the three macro encoders unless a newer held verb takes them.",
    "short_label": "SET TIMES",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1180-1197",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1180-L1197"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "912-946",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L912-L946"
     }
    ]
   },
   {
    "mode": "scramble",
    "gesture": "release",
    "action": "Finishes the rise if needed, waits for the chosen hold time, then fades this verb away.",
    "short_label": "FADE OUT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "912-946",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L912-L946"
     }
    ]
   },
   {
    "mode": "settings",
    "gesture": "press",
    "action": "Has no menu action.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1347-1355",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1347-L1355"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_layer.c",
      "lines": "96-107",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_layer.c#L96-L107"
     }
    ]
   },
   {
    "mode": "calibration",
    "gesture": "press",
    "action": "Assigns this physical button to the name currently requested on screen, without a confirmation step.",
    "short_label": "TEACH BUTTON",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/panel.c",
      "lines": "9-15",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/panel.c#L9-L15"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1627-1642",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1627-L1642"
     }
    ]
   },
   {
    "mode": "screen_off",
    "gesture": "press",
    "action": "Wakes the picture without performing this button's normal action and waits for all buttons and keys to be released.",
    "short_label": "WAKE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "223-243",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L223-L243"
     }
    ]
   }
  ],
  "button_arp": [
   {
    "mode": "world",
    "gesture": "hold",
    "action": "Opens the key controls after the HOLD setting (0.4 seconds by default), or immediately when another control is used with it.",
    "short_label": "KEY CONTROLS",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_layer.c",
      "lines": "98-107",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_layer.c#L98-L107"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_layer.c",
      "lines": "249-273",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_layer.c#L249-L273"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/panel.c",
      "lines": "76-81",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/panel.c#L76-L81"
     }
    ]
   },
   {
    "mode": "key",
    "gesture": "release",
    "action": "Returns to the part macros when no shortcut key remains held, keeping the changes in this running world.",
    "short_label": "CLOSE KEY",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_layer.c",
      "lines": "154-171",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_layer.c#L154-L171"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_layer.c",
      "lines": "286-293",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_layer.c#L286-L293"
     }
    ]
   },
   {
    "mode": "world",
    "gesture": "release",
    "action": "A tap advances the shared scale through MAJ, MIN, LYD, DOR, MIX, PHRY, PEN and MPEN.",
    "short_label": "NEXT SCALE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_layer.c",
      "lines": "302-308",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_layer.c#L302-L308"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "44-45",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L44-L45"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "238-244",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L238-L244"
     }
    ]
   },
   {
    "mode": "settings",
    "gesture": "press",
    "action": "Has no menu action.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1347-1355",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1347-L1355"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_layer.c",
      "lines": "96-107",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_layer.c#L96-L107"
     }
    ]
   },
   {
    "mode": "calibration",
    "gesture": "press",
    "action": "Assigns this physical button to the name currently requested on screen, without a confirmation step.",
    "short_label": "TEACH BUTTON",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/panel.c",
      "lines": "9-15",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/panel.c#L9-L15"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1627-1642",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1627-L1642"
     }
    ]
   },
   {
    "mode": "screen_off",
    "gesture": "press",
    "action": "Wakes the picture without performing this button's normal action and waits for all buttons and keys to be released.",
    "short_label": "WAKE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "223-243",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L223-L243"
     }
    ]
   }
  ],
  "button_seq": [
   {
    "mode": "world",
    "gesture": "hold",
    "action": "Opens the tempo controls after the HOLD setting (0.4 seconds by default), or immediately when another control is used with it.",
    "short_label": "TEMPO",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_layer.c",
      "lines": "98-107",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_layer.c#L98-L107"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_layer.c",
      "lines": "249-273",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_layer.c#L249-L273"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/panel.c",
      "lines": "76-81",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/panel.c#L76-L81"
     }
    ]
   },
   {
    "mode": "tempo",
    "gesture": "release",
    "action": "Returns to the part macros when no shortcut key remains held, keeping the changes in this running world.",
    "short_label": "CLOSE TEMPO",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_layer.c",
      "lines": "154-171",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_layer.c#L154-L171"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_layer.c",
      "lines": "286-293",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_layer.c#L286-L293"
     }
    ]
   },
   {
    "mode": "world",
    "gesture": "release",
    "action": "A tap has no action.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_layer.c",
      "lines": "310-311",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_layer.c#L310-L311"
     }
    ]
   },
   {
    "mode": "settings",
    "gesture": "press",
    "action": "Has no menu action.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1347-1355",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1347-L1355"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_layer.c",
      "lines": "96-107",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_layer.c#L96-L107"
     }
    ]
   },
   {
    "mode": "calibration",
    "gesture": "press",
    "action": "Assigns this physical button to the name currently requested on screen, without a confirmation step.",
    "short_label": "TEACH BUTTON",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/panel.c",
      "lines": "9-15",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/panel.c#L9-L15"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1627-1642",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1627-L1642"
     }
    ]
   },
   {
    "mode": "screen_off",
    "gesture": "press",
    "action": "Wakes the picture without performing this button's normal action and waits for all buttons and keys to be released.",
    "short_label": "WAKE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "223-243",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L223-L243"
     }
    ]
   }
  ],
  "button_play_stop": [
   {
    "mode": "world",
    "gesture": "hold",
    "action": "Shows RATE, RANGE and REACH while PLAY is down.",
    "short_label": "DRIFT SETUP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1173-1197",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1173-L1197"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_maku.c",
      "lines": "82",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_maku.c#L82"
     }
    ]
   },
   {
    "mode": "drift",
    "gesture": "release",
    "action": "Toggles DRIFT if none of its three controls was turned, allowing slow changes to macros, the bed and occasional voice choices.",
    "short_label": "DRIFT SWITCH",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1187-1190",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1187-L1190"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "822-874",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L822-L874"
     }
    ]
   },
   {
    "mode": "settings",
    "gesture": "press",
    "action": "Has no menu action.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1347-1355",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1347-L1355"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_layer.c",
      "lines": "96-107",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_layer.c#L96-L107"
     }
    ]
   },
   {
    "mode": "calibration",
    "gesture": "press",
    "action": "Assigns this physical button to the name currently requested on screen, without a confirmation step.",
    "short_label": "TEACH BUTTON",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/panel.c",
      "lines": "9-15",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/panel.c#L9-L15"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1627-1642",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1627-L1642"
     }
    ]
   },
   {
    "mode": "screen_off",
    "gesture": "press",
    "action": "Wakes the picture without performing this button's normal action and waits for all buttons and keys to be released.",
    "short_label": "WAKE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "223-243",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L223-L243"
     }
    ]
   }
  ],
  "button_save": [
   {
    "mode": "world",
    "gesture": "press",
    "action": "Has no action on the playing panel, including no save or undo.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1254-1258",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1254-L1258"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1438-1444",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1438-L1444"
     }
    ]
   },
   {
    "mode": "settings",
    "gesture": "press",
    "action": "Has no menu action.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1347-1355",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1347-L1355"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_layer.c",
      "lines": "96-107",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_layer.c#L96-L107"
     }
    ]
   },
   {
    "mode": "calibration",
    "gesture": "press",
    "action": "Assigns this physical button to the name currently requested on screen, without a confirmation step.",
    "short_label": "TEACH BUTTON",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/panel.c",
      "lines": "9-15",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/panel.c#L9-L15"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1627-1642",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1627-L1642"
     }
    ]
   },
   {
    "mode": "screen_off",
    "gesture": "press",
    "action": "Wakes the picture without performing this button's normal action and waits for all buttons and keys to be released.",
    "short_label": "WAKE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "223-243",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L223-L243"
     }
    ]
   }
  ],
  "button_home": [
   {
    "mode": "world",
    "gesture": "release",
    "action": "A short tap returns to the home state without making a new world.",
    "short_label": "PART VIEW",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1433-1434",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1433-L1434"
     }
    ]
   },
   {
    "mode": "world",
    "gesture": "long_press",
    "action": "After about 0.7 seconds replaces the running world without a question or undo, drawing randomly or with up to 90 percent chance from varied likes and preparing the unused likes copy for a later save.",
    "short_label": "NEW WORLD",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "953-967",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L953-L967"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1332-1335",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1332-L1335"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "1341-1351",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L1341-L1351"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku_fav.c",
      "lines": "58-60",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku_fav.c#L58-L60"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku_fav.c",
      "lines": "227-259",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku_fav.c#L227-L259"
     }
    ]
   },
   {
    "mode": "settings",
    "gesture": "release",
    "action": "Closes settings without saving menu edits or menu calibration, which last only until power-off in ordinary MAKU use.",
    "short_label": "CLOSE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1329-1345",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1329-L1345"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_menu.c",
      "lines": "410-415",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L410-L415"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/project.c",
      "lines": "1081-1105",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/project.c#L1081-L1105"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/main.c",
      "lines": "189-196",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/main.c#L189-L196"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/project.c",
      "lines": "1074-1105",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/project.c#L1074-L1105"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "394-401",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L394-L401"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1438-1444",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1438-L1444"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "1090-1096",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L1090-L1096"
     }
    ]
   },
   {
    "mode": "settings",
    "gesture": "long_press",
    "action": "After 0.7 seconds closes settings without saving menu edits or menu calibration, which last only until power-off in ordinary MAKU use.",
    "short_label": "CLOSE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "950-967",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L950-L967"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1336-1345",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1336-L1345"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_menu.c",
      "lines": "410-415",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L410-L415"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/project.c",
      "lines": "1081-1105",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/project.c#L1081-L1105"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/main.c",
      "lines": "189-196",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/main.c#L189-L196"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/project.c",
      "lines": "1074-1105",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/project.c#L1074-L1105"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "394-401",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L394-L401"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1438-1444",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1438-L1444"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "1090-1096",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L1090-L1096"
     }
    ]
   },
   {
    "mode": "about",
    "gesture": "release",
    "action": "Closes the settings menu and returns to the playing panel without saving menu edits, which last only until power-off in ordinary MAKU use.",
    "short_label": "CLOSE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1329-1345",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1329-L1345"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_menu.c",
      "lines": "410-415",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L410-L415"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/project.c",
      "lines": "1081-1105",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/project.c#L1081-L1105"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/main.c",
      "lines": "189-196",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/main.c#L189-L196"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/project.c",
      "lines": "1074-1105",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/project.c#L1074-L1105"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "394-401",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L394-L401"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1438-1444",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1438-L1444"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "1090-1096",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L1090-L1096"
     }
    ]
   },
   {
    "mode": "calibration",
    "gesture": "press",
    "action": "Assigns this physical button to the name currently requested on screen, without a confirmation step.",
    "short_label": "TEACH BUTTON",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/panel.c",
      "lines": "9-15",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/panel.c#L9-L15"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1627-1642",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1627-L1642"
     }
    ]
   },
   {
    "mode": "screen_off",
    "gesture": "press",
    "action": "Wakes the picture without performing this button's normal action and waits for all buttons and keys to be released.",
    "short_label": "WAKE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "223-243",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L223-L243"
     }
    ]
   },
   {
    "mode": "world",
    "gesture": "press_while_holding:button_oct_down",
    "action": "Press OCT- and hold HOME past 0.7 seconds to open settings, changing the running key a fifth down with no automatic reversal on close.",
    "short_label": "SETTINGS",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "953-967",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L953-L967"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1332-1345",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1332-L1345"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1353-1354",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1353-L1354"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1470-1478",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1470-L1478"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "761-777",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L761-L777"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_menu.c",
      "lines": "410-416",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L410-L416"
     }
    ]
   }
  ],
  "button_oct_down": [
   {
    "mode": "world",
    "gesture": "press",
    "action": "Moves the key a fifth down, remaps remembered phrase notes to the new signature and leaves sounding chords ringing.",
    "short_label": "FIFTH DOWN",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1470-1478",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1470-L1478"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "761-777",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L761-L777"
     }
    ]
   },
   {
    "mode": "key",
    "gesture": "release",
    "action": "Restores the focused part's root, scale and chord settings captured when ARP opened, which the generator then shares, while REG stays changed.",
    "short_label": "PUT BACK",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_layer.c",
      "lines": "217-245",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_layer.c#L217-L245"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_layer.c",
      "lines": "559-614",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_layer.c#L559-L614"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "1059-1067",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L1059-L1067"
     }
    ]
   },
   {
    "mode": "tempo",
    "gesture": "release",
    "action": "Restores the four mutes, four levels and BPM captured when SEQ opened, while SWING and DUCK stay changed.",
    "short_label": "PUT BACK",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_layer.c",
      "lines": "217-245",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_layer.c#L217-L245"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_layer.c",
      "lines": "559-614",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_layer.c#L559-L614"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "1059-1067",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L1059-L1067"
     }
    ]
   },
   {
    "mode": "settings",
    "gesture": "release",
    "action": "Chooses the previous value on a value row, stopping at the ends except that COLOR wraps.",
    "short_label": "VALUE DOWN",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "863-880",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L863-L880"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_menu.c",
      "lines": "453-458",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L453-L458"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/menu_items.c",
      "lines": "180-192",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L180-L192"
     }
    ]
   },
   {
    "mode": "about",
    "gesture": "release",
    "action": "Returns to the settings tabs.",
    "short_label": "BACK",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_menu.c",
      "lines": "439-445",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L439-L445"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "863-880",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L863-L880"
     }
    ]
   },
   {
    "mode": "settings_system",
    "gesture": "release",
    "action": "Does nothing when CALIBRATION or ABOUT is selected.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_menu.c",
      "lines": "453-469",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L453-L469"
     }
    ]
   },
   {
    "mode": "calibration",
    "gesture": "press",
    "action": "Assigns this physical button to the name currently requested on screen, without a confirmation step.",
    "short_label": "TEACH BUTTON",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/panel.c",
      "lines": "9-15",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/panel.c#L9-L15"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1627-1642",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1627-L1642"
     }
    ]
   },
   {
    "mode": "screen_off",
    "gesture": "press",
    "action": "Wakes the picture without performing this button's normal action and waits for all buttons and keys to be released.",
    "short_label": "WAKE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "223-243",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L223-L243"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "press_with:button_oct_up",
    "action": "Holding both octave buttons for over two seconds shows a countdown and over five seconds stops audio and enters the USB bootloader.",
    "short_label": "UPDATE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/main.c",
      "lines": "219-246",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/main.c#L219-L246"
     }
    ]
   },
   {
    "mode": "update",
    "gesture": "release",
    "action": "Cancels the countdown when either octave button is released before bootloader entry.",
    "short_label": "CANCEL",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/main.c",
      "lines": "223-230",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/main.c#L223-L230"
     }
    ]
   }
  ],
  "button_oct_up": [
   {
    "mode": "world",
    "gesture": "press",
    "action": "Moves the key a fifth up, remaps remembered phrase notes to the new signature and leaves sounding chords ringing.",
    "short_label": "FIFTH UP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1470-1478",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1470-L1478"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "761-777",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L761-L777"
     }
    ]
   },
   {
    "mode": "key",
    "gesture": "release",
    "action": "Has no action in this held view.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_layer.c",
      "lines": "559-614",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_layer.c#L559-L614"
     }
    ]
   },
   {
    "mode": "tempo",
    "gesture": "release",
    "action": "Has no action in this held view.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_layer.c",
      "lines": "559-614",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_layer.c#L559-L614"
     }
    ]
   },
   {
    "mode": "settings",
    "gesture": "release",
    "action": "Chooses the next value on a value row, stopping at the ends except that COLOR wraps.",
    "short_label": "VALUE UP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "863-880",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L863-L880"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_menu.c",
      "lines": "453-458",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L453-L458"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/menu_items.c",
      "lines": "180-192",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L180-L192"
     }
    ]
   },
   {
    "mode": "about",
    "gesture": "release",
    "action": "Has no effect on the information page.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_menu.c",
      "lines": "439-445",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L439-L445"
     }
    ]
   },
   {
    "mode": "settings_system",
    "gesture": "release",
    "action": "Opens CALIBRATION or ABOUT when that row is selected.",
    "short_label": "OPEN",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_menu.c",
      "lines": "459-468",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L459-L468"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "863-880",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L863-L880"
     }
    ]
   },
   {
    "mode": "calibration",
    "gesture": "press",
    "action": "Assigns this physical button to the name currently requested on screen, without a confirmation step.",
    "short_label": "TEACH BUTTON",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/panel.c",
      "lines": "9-15",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/panel.c#L9-L15"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1627-1642",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1627-L1642"
     }
    ]
   },
   {
    "mode": "screen_off",
    "gesture": "press",
    "action": "Wakes the picture without performing this button's normal action and waits for all buttons and keys to be released.",
    "short_label": "WAKE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "223-243",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L223-L243"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "press_with:button_oct_down",
    "action": "Holding both octave buttons for over two seconds shows a countdown and over five seconds stops audio and enters the USB bootloader.",
    "short_label": "UPDATE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/main.c",
      "lines": "219-246",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/main.c#L219-L246"
     }
    ]
   },
   {
    "mode": "update",
    "gesture": "release",
    "action": "Cancels the countdown when either octave button is released before bootloader entry.",
    "short_label": "CANCEL",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/main.c",
      "lines": "223-230",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/main.c#L223-L230"
     }
    ]
   }
  ],
  "button_rec": [
   {
    "mode": "world",
    "gesture": "release",
    "action": "On release before two seconds adds a like and tries to write it immediately without a question or undo, dropping the oldest of 16 when full and showing LIKED, NOT SAVED if the write fails.",
    "short_label": "LIKE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1206-1226",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1206-L1226"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku_fav.c",
      "lines": "84-126",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku_fav.c#L84-L126"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku_fav.c",
      "lines": "345-367",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku_fav.c#L345-L367"
     }
    ]
   },
   {
    "mode": "world",
    "gesture": "long_press",
    "action": "Holding past two seconds clears all likes and tries to write the empty set immediately without a question or undo, reporting CLEARED, NOT SAVED on failure and adding no like on release.",
    "short_label": "CLEAR LIKES",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1206-1226",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1206-L1226"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku_fav.c",
      "lines": "369-374",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku_fav.c#L369-L374"
     }
    ]
   },
   {
    "mode": "settings",
    "gesture": "press",
    "action": "Has no menu action.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1347-1355",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1347-L1355"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_layer.c",
      "lines": "96-107",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_layer.c#L96-L107"
     }
    ]
   },
   {
    "mode": "calibration",
    "gesture": "press",
    "action": "Assigns this physical button to the name currently requested on screen, without a confirmation step.",
    "short_label": "TEACH BUTTON",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/panel.c",
      "lines": "9-15",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/panel.c#L9-L15"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1627-1642",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1627-L1642"
     }
    ]
   },
   {
    "mode": "screen_off",
    "gesture": "press",
    "action": "Wakes the picture without performing this button's normal action and waits for all buttons and keys to be released.",
    "short_label": "WAKE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "223-243",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L223-L243"
     }
    ]
   }
  ],
  "key_f3": [
   {
    "mode": "floor",
    "gesture": "press",
    "action": "Plays F3 with the focused part's sound without scale snapping and feeds that pitch into the voice's fading phrase memory.",
    "short_label": "F3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "1135-1144",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L1135-L1144"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "99-135",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L99-L135"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "674-695",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L674-L695"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1201-1203",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1201-L1203"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "456-465",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L456-L465"
     }
    ]
   },
   {
    "mode": "floor",
    "gesture": "release",
    "action": "Releases F3 on the part that received its press, with that sound's release tail.",
    "short_label": "RELEASE F3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "699-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L699-L707"
     }
    ]
   },
   {
    "mode": "haze",
    "gesture": "press",
    "action": "Plays F3 with the focused part's sound without scale snapping and feeds that pitch into the voice's fading phrase memory.",
    "short_label": "F3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "1135-1144",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L1135-L1144"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "99-135",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L99-L135"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "674-695",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L674-L695"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1201-1203",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1201-L1203"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "456-465",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L456-L465"
     }
    ]
   },
   {
    "mode": "haze",
    "gesture": "release",
    "action": "Releases F3 on the part that received its press, with that sound's release tail.",
    "short_label": "RELEASE F3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "699-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L699-L707"
     }
    ]
   },
   {
    "mode": "voice",
    "gesture": "press",
    "action": "Plays F3 with the focused part's sound without scale snapping and feeds that pitch into the voice's fading phrase memory.",
    "short_label": "F3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "1135-1144",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L1135-L1144"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "99-135",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L99-L135"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "674-695",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L674-L695"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1201-1203",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1201-L1203"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "456-465",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L456-L465"
     }
    ]
   },
   {
    "mode": "voice",
    "gesture": "release",
    "action": "Releases F3 on the part that received its press, with that sound's release tail.",
    "short_label": "RELEASE F3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "699-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L699-L707"
     }
    ]
   },
   {
    "mode": "pulse",
    "gesture": "press",
    "action": "Toggles the hand-set kick at step 1 without saving it; an existing hit is removed on the next input pass on the home panel.",
    "short_label": "STEP 1",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "502-536",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L502-L536"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "553-560",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L553-L560"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "570-581",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L570-L581"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1512-1514",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1512-L1514"
     }
    ]
   },
   {
    "mode": "pulse",
    "gesture": "press_while_holding:key_cs5",
    "action": "Toggles the accent at step 1 while ACC (C#5) is held, without saving it.",
    "short_label": "ACCENT 1",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "60-70",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L60-L70"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "502-536",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L502-L536"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "570-581",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L570-L581"
     }
    ]
   },
   {
    "mode": "key",
    "gesture": "press_while_holding:button_arp",
    "action": "Chooses F as the shared root without playing this key.",
    "short_label": "ROOT F",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_layer.c",
      "lines": "473-474",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_layer.c#L473-L474"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "669-685",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L669-L685"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "1059-1067",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L1059-L1067"
     }
    ]
   },
   {
    "mode": "tempo",
    "gesture": "press_while_holding:button_seq",
    "action": "Has no action and plays no note while SEQ is held.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_layer.c",
      "lines": "459-474",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_layer.c#L459-L474"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "669-685",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L669-L685"
     }
    ]
   },
   {
    "mode": "settings",
    "gesture": "press",
    "action": "Plays the focused part through its current key mapping while the menu stays open.",
    "short_label": "PLAY NOTE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1328-1355",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1328-L1355"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "471-475",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L471-L475"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "669-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L669-L707"
     }
    ]
   },
   {
    "mode": "settings",
    "gesture": "release",
    "action": "Releases the note started by this key on its original part.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "699-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L699-L707"
     }
    ]
   },
   {
    "mode": "calibration",
    "gesture": "press",
    "action": "Cancels calibration and restores the previous button and encoder assignments.",
    "short_label": "CANCEL SETUP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1588-1592",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1588-L1592"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1671-1675",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1671-L1675"
     }
    ]
   },
   {
    "mode": "screen_off",
    "gesture": "press",
    "action": "Wakes the picture without playing a note and waits for all buttons and keys to be released.",
    "short_label": "WAKE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "223-243",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L223-L243"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "674-678",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L674-L678"
     }
    ]
   }
  ],
  "key_fs3": [
   {
    "mode": "floor",
    "gesture": "press",
    "action": "Plays F#3 with the focused part's sound without scale snapping and feeds that pitch into the voice's fading phrase memory.",
    "short_label": "F#3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "1135-1144",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L1135-L1144"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "99-135",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L99-L135"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "674-695",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L674-L695"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1201-1203",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1201-L1203"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "456-465",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L456-L465"
     }
    ]
   },
   {
    "mode": "floor",
    "gesture": "release",
    "action": "Releases F#3 on the part that received its press, with that sound's release tail.",
    "short_label": "RELEASE F#3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "699-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L699-L707"
     }
    ]
   },
   {
    "mode": "haze",
    "gesture": "press",
    "action": "Plays F#3 with the focused part's sound without scale snapping and feeds that pitch into the voice's fading phrase memory.",
    "short_label": "F#3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "1135-1144",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L1135-L1144"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "99-135",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L99-L135"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "674-695",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L674-L695"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1201-1203",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1201-L1203"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "456-465",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L456-L465"
     }
    ]
   },
   {
    "mode": "haze",
    "gesture": "release",
    "action": "Releases F#3 on the part that received its press, with that sound's release tail.",
    "short_label": "RELEASE F#3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "699-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L699-L707"
     }
    ]
   },
   {
    "mode": "voice",
    "gesture": "press",
    "action": "Plays F#3 with the focused part's sound without scale snapping and feeds that pitch into the voice's fading phrase memory.",
    "short_label": "F#3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "1135-1144",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L1135-L1144"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "99-135",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L99-L135"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "674-695",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L674-L695"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1201-1203",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1201-L1203"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "456-465",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L456-L465"
     }
    ]
   },
   {
    "mode": "voice",
    "gesture": "release",
    "action": "Releases F#3 on the part that received its press, with that sound's release tail.",
    "short_label": "RELEASE F#3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "699-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L699-L707"
     }
    ]
   },
   {
    "mode": "pulse",
    "gesture": "press",
    "action": "Plays the pulse's ride shimmer noise pad without adding a sequencer step or feeding the voice phrase.",
    "short_label": "RIDE SHIMMER",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "296-335",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L296-L335"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "687-695",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L687-L695"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1201-1203",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1201-L1203"
     }
    ]
   },
   {
    "mode": "pulse",
    "gesture": "release",
    "action": "Releases this key while its noise hit continues through its own decay.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "699-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L699-L707"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/eng_drum.c",
      "lines": "24-33",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/eng_drum.c#L24-L33"
     }
    ]
   },
   {
    "mode": "key",
    "gesture": "press_while_holding:button_arp",
    "action": "Chooses F# as the shared root without playing this key.",
    "short_label": "ROOT F#",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_layer.c",
      "lines": "473-474",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_layer.c#L473-L474"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "669-685",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L669-L685"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "1059-1067",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L1059-L1067"
     }
    ]
   },
   {
    "mode": "tempo",
    "gesture": "press_while_holding:button_seq",
    "action": "Toggles part 1's mute in the running world without saving it.",
    "short_label": "MUTE 1",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_layer.c",
      "lines": "459-466",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_layer.c#L459-L466"
     }
    ]
   },
   {
    "mode": "settings",
    "gesture": "press",
    "action": "Plays the focused part through its current key mapping while the menu stays open.",
    "short_label": "PLAY NOTE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1328-1355",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1328-L1355"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "471-475",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L471-L475"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "669-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L669-L707"
     }
    ]
   },
   {
    "mode": "settings",
    "gesture": "release",
    "action": "Releases the note started by this key on its original part.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "699-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L699-L707"
     }
    ]
   },
   {
    "mode": "calibration",
    "gesture": "press",
    "action": "Cancels calibration and restores the previous button and encoder assignments.",
    "short_label": "CANCEL SETUP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1588-1592",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1588-L1592"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1671-1675",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1671-L1675"
     }
    ]
   },
   {
    "mode": "screen_off",
    "gesture": "press",
    "action": "Wakes the picture without playing a note and waits for all buttons and keys to be released.",
    "short_label": "WAKE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "223-243",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L223-L243"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "674-678",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L674-L678"
     }
    ]
   }
  ],
  "key_g3": [
   {
    "mode": "floor",
    "gesture": "press",
    "action": "Plays G3 with the focused part's sound without scale snapping and feeds that pitch into the voice's fading phrase memory.",
    "short_label": "G3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "1135-1144",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L1135-L1144"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "99-135",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L99-L135"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "674-695",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L674-L695"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1201-1203",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1201-L1203"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "456-465",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L456-L465"
     }
    ]
   },
   {
    "mode": "floor",
    "gesture": "release",
    "action": "Releases G3 on the part that received its press, with that sound's release tail.",
    "short_label": "RELEASE G3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "699-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L699-L707"
     }
    ]
   },
   {
    "mode": "haze",
    "gesture": "press",
    "action": "Plays G3 with the focused part's sound without scale snapping and feeds that pitch into the voice's fading phrase memory.",
    "short_label": "G3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "1135-1144",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L1135-L1144"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "99-135",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L99-L135"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "674-695",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L674-L695"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1201-1203",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1201-L1203"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "456-465",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L456-L465"
     }
    ]
   },
   {
    "mode": "haze",
    "gesture": "release",
    "action": "Releases G3 on the part that received its press, with that sound's release tail.",
    "short_label": "RELEASE G3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "699-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L699-L707"
     }
    ]
   },
   {
    "mode": "voice",
    "gesture": "press",
    "action": "Plays G3 with the focused part's sound without scale snapping and feeds that pitch into the voice's fading phrase memory.",
    "short_label": "G3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "1135-1144",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L1135-L1144"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "99-135",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L99-L135"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "674-695",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L674-L695"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1201-1203",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1201-L1203"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "456-465",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L456-L465"
     }
    ]
   },
   {
    "mode": "voice",
    "gesture": "release",
    "action": "Releases G3 on the part that received its press, with that sound's release tail.",
    "short_label": "RELEASE G3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "699-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L699-L707"
     }
    ]
   },
   {
    "mode": "pulse",
    "gesture": "press",
    "action": "Toggles the hand-set kick at step 2 without saving it; an existing hit is removed on the next input pass on the home panel.",
    "short_label": "STEP 2",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "502-536",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L502-L536"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "553-560",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L553-L560"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "570-581",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L570-L581"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1512-1514",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1512-L1514"
     }
    ]
   },
   {
    "mode": "pulse",
    "gesture": "press_while_holding:key_cs5",
    "action": "Toggles the accent at step 2 while ACC (C#5) is held, without saving it.",
    "short_label": "ACCENT 2",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "60-70",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L60-L70"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "502-536",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L502-L536"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "570-581",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L570-L581"
     }
    ]
   },
   {
    "mode": "key",
    "gesture": "press_while_holding:button_arp",
    "action": "Chooses G as the shared root without playing this key.",
    "short_label": "ROOT G",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_layer.c",
      "lines": "473-474",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_layer.c#L473-L474"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "669-685",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L669-L685"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "1059-1067",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L1059-L1067"
     }
    ]
   },
   {
    "mode": "tempo",
    "gesture": "press_while_holding:button_seq",
    "action": "Has no action and plays no note while SEQ is held.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_layer.c",
      "lines": "459-474",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_layer.c#L459-L474"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "669-685",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L669-L685"
     }
    ]
   },
   {
    "mode": "settings",
    "gesture": "press",
    "action": "Plays the focused part through its current key mapping while the menu stays open.",
    "short_label": "PLAY NOTE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1328-1355",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1328-L1355"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "471-475",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L471-L475"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "669-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L669-L707"
     }
    ]
   },
   {
    "mode": "settings",
    "gesture": "release",
    "action": "Releases the note started by this key on its original part.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "699-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L699-L707"
     }
    ]
   },
   {
    "mode": "calibration",
    "gesture": "press",
    "action": "Cancels calibration and restores the previous button and encoder assignments.",
    "short_label": "CANCEL SETUP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1588-1592",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1588-L1592"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1671-1675",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1671-L1675"
     }
    ]
   },
   {
    "mode": "screen_off",
    "gesture": "press",
    "action": "Wakes the picture without playing a note and waits for all buttons and keys to be released.",
    "short_label": "WAKE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "223-243",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L223-L243"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "674-678",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L674-L678"
     }
    ]
   }
  ],
  "key_gs3": [
   {
    "mode": "floor",
    "gesture": "press",
    "action": "Plays G#3 with the focused part's sound without scale snapping and feeds that pitch into the voice's fading phrase memory.",
    "short_label": "G#3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "1135-1144",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L1135-L1144"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "99-135",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L99-L135"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "674-695",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L674-L695"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1201-1203",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1201-L1203"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "456-465",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L456-L465"
     }
    ]
   },
   {
    "mode": "floor",
    "gesture": "release",
    "action": "Releases G#3 on the part that received its press, with that sound's release tail.",
    "short_label": "RELEASE G#3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "699-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L699-L707"
     }
    ]
   },
   {
    "mode": "haze",
    "gesture": "press",
    "action": "Plays G#3 with the focused part's sound without scale snapping and feeds that pitch into the voice's fading phrase memory.",
    "short_label": "G#3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "1135-1144",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L1135-L1144"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "99-135",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L99-L135"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "674-695",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L674-L695"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1201-1203",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1201-L1203"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "456-465",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L456-L465"
     }
    ]
   },
   {
    "mode": "haze",
    "gesture": "release",
    "action": "Releases G#3 on the part that received its press, with that sound's release tail.",
    "short_label": "RELEASE G#3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "699-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L699-L707"
     }
    ]
   },
   {
    "mode": "voice",
    "gesture": "press",
    "action": "Plays G#3 with the focused part's sound without scale snapping and feeds that pitch into the voice's fading phrase memory.",
    "short_label": "G#3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "1135-1144",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L1135-L1144"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "99-135",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L99-L135"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "674-695",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L674-L695"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1201-1203",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1201-L1203"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "456-465",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L456-L465"
     }
    ]
   },
   {
    "mode": "voice",
    "gesture": "release",
    "action": "Releases G#3 on the part that received its press, with that sound's release tail.",
    "short_label": "RELEASE G#3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "699-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L699-L707"
     }
    ]
   },
   {
    "mode": "pulse",
    "gesture": "press",
    "action": "Plays the pulse's guiro scrape noise pad without adding a sequencer step or feeding the voice phrase.",
    "short_label": "GUIRO SCRAPE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "296-335",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L296-L335"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "687-695",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L687-L695"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1201-1203",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1201-L1203"
     }
    ]
   },
   {
    "mode": "pulse",
    "gesture": "release",
    "action": "Releases this key while its noise hit continues through its own decay.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "699-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L699-L707"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/eng_drum.c",
      "lines": "24-33",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/eng_drum.c#L24-L33"
     }
    ]
   },
   {
    "mode": "key",
    "gesture": "press_while_holding:button_arp",
    "action": "Chooses G# as the shared root without playing this key.",
    "short_label": "ROOT G#",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_layer.c",
      "lines": "473-474",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_layer.c#L473-L474"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "669-685",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L669-L685"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "1059-1067",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L1059-L1067"
     }
    ]
   },
   {
    "mode": "tempo",
    "gesture": "press_while_holding:button_seq",
    "action": "Toggles part 2's mute in the running world without saving it.",
    "short_label": "MUTE 2",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_layer.c",
      "lines": "459-466",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_layer.c#L459-L466"
     }
    ]
   },
   {
    "mode": "settings",
    "gesture": "press",
    "action": "Plays the focused part through its current key mapping while the menu stays open.",
    "short_label": "PLAY NOTE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1328-1355",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1328-L1355"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "471-475",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L471-L475"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "669-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L669-L707"
     }
    ]
   },
   {
    "mode": "settings",
    "gesture": "release",
    "action": "Releases the note started by this key on its original part.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "699-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L699-L707"
     }
    ]
   },
   {
    "mode": "calibration",
    "gesture": "press",
    "action": "Cancels calibration and restores the previous button and encoder assignments.",
    "short_label": "CANCEL SETUP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1588-1592",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1588-L1592"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1671-1675",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1671-L1675"
     }
    ]
   },
   {
    "mode": "screen_off",
    "gesture": "press",
    "action": "Wakes the picture without playing a note and waits for all buttons and keys to be released.",
    "short_label": "WAKE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "223-243",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L223-L243"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "674-678",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L674-L678"
     }
    ]
   }
  ],
  "key_a3": [
   {
    "mode": "floor",
    "gesture": "press",
    "action": "Plays A3 with the focused part's sound without scale snapping and feeds that pitch into the voice's fading phrase memory.",
    "short_label": "A3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "1135-1144",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L1135-L1144"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "99-135",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L99-L135"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "674-695",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L674-L695"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1201-1203",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1201-L1203"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "456-465",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L456-L465"
     }
    ]
   },
   {
    "mode": "floor",
    "gesture": "release",
    "action": "Releases A3 on the part that received its press, with that sound's release tail.",
    "short_label": "RELEASE A3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "699-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L699-L707"
     }
    ]
   },
   {
    "mode": "haze",
    "gesture": "press",
    "action": "Plays A3 with the focused part's sound without scale snapping and feeds that pitch into the voice's fading phrase memory.",
    "short_label": "A3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "1135-1144",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L1135-L1144"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "99-135",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L99-L135"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "674-695",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L674-L695"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1201-1203",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1201-L1203"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "456-465",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L456-L465"
     }
    ]
   },
   {
    "mode": "haze",
    "gesture": "release",
    "action": "Releases A3 on the part that received its press, with that sound's release tail.",
    "short_label": "RELEASE A3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "699-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L699-L707"
     }
    ]
   },
   {
    "mode": "voice",
    "gesture": "press",
    "action": "Plays A3 with the focused part's sound without scale snapping and feeds that pitch into the voice's fading phrase memory.",
    "short_label": "A3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "1135-1144",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L1135-L1144"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "99-135",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L99-L135"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "674-695",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L674-L695"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1201-1203",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1201-L1203"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "456-465",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L456-L465"
     }
    ]
   },
   {
    "mode": "voice",
    "gesture": "release",
    "action": "Releases A3 on the part that received its press, with that sound's release tail.",
    "short_label": "RELEASE A3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "699-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L699-L707"
     }
    ]
   },
   {
    "mode": "pulse",
    "gesture": "press",
    "action": "Toggles the hand-set kick at step 3 without saving it; an existing hit is removed on the next input pass on the home panel.",
    "short_label": "STEP 3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "502-536",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L502-L536"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "553-560",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L553-L560"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "570-581",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L570-L581"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1512-1514",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1512-L1514"
     }
    ]
   },
   {
    "mode": "pulse",
    "gesture": "press_while_holding:key_cs5",
    "action": "Toggles the accent at step 3 while ACC (C#5) is held, without saving it.",
    "short_label": "ACCENT 3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "60-70",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L60-L70"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "502-536",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L502-L536"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "570-581",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L570-L581"
     }
    ]
   },
   {
    "mode": "key",
    "gesture": "press_while_holding:button_arp",
    "action": "Chooses A as the shared root without playing this key.",
    "short_label": "ROOT A",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_layer.c",
      "lines": "473-474",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_layer.c#L473-L474"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "669-685",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L669-L685"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "1059-1067",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L1059-L1067"
     }
    ]
   },
   {
    "mode": "tempo",
    "gesture": "press_while_holding:button_seq",
    "action": "Has no action and plays no note while SEQ is held.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_layer.c",
      "lines": "459-474",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_layer.c#L459-L474"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "669-685",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L669-L685"
     }
    ]
   },
   {
    "mode": "settings",
    "gesture": "press",
    "action": "Plays the focused part through its current key mapping while the menu stays open.",
    "short_label": "PLAY NOTE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1328-1355",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1328-L1355"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "471-475",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L471-L475"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "669-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L669-L707"
     }
    ]
   },
   {
    "mode": "settings",
    "gesture": "release",
    "action": "Releases the note started by this key on its original part.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "699-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L699-L707"
     }
    ]
   },
   {
    "mode": "calibration",
    "gesture": "press",
    "action": "Cancels calibration and restores the previous button and encoder assignments.",
    "short_label": "CANCEL SETUP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1588-1592",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1588-L1592"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1671-1675",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1671-L1675"
     }
    ]
   },
   {
    "mode": "screen_off",
    "gesture": "press",
    "action": "Wakes the picture without playing a note and waits for all buttons and keys to be released.",
    "short_label": "WAKE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "223-243",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L223-L243"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "674-678",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L674-L678"
     }
    ]
   }
  ],
  "key_as3": [
   {
    "mode": "floor",
    "gesture": "press",
    "action": "Plays A#3 with the focused part's sound without scale snapping and feeds that pitch into the voice's fading phrase memory.",
    "short_label": "A#3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "1135-1144",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L1135-L1144"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "99-135",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L99-L135"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "674-695",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L674-L695"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1201-1203",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1201-L1203"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "456-465",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L456-L465"
     }
    ]
   },
   {
    "mode": "floor",
    "gesture": "release",
    "action": "Releases A#3 on the part that received its press, with that sound's release tail.",
    "short_label": "RELEASE A#3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "699-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L699-L707"
     }
    ]
   },
   {
    "mode": "haze",
    "gesture": "press",
    "action": "Plays A#3 with the focused part's sound without scale snapping and feeds that pitch into the voice's fading phrase memory.",
    "short_label": "A#3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "1135-1144",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L1135-L1144"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "99-135",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L99-L135"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "674-695",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L674-L695"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1201-1203",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1201-L1203"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "456-465",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L456-L465"
     }
    ]
   },
   {
    "mode": "haze",
    "gesture": "release",
    "action": "Releases A#3 on the part that received its press, with that sound's release tail.",
    "short_label": "RELEASE A#3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "699-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L699-L707"
     }
    ]
   },
   {
    "mode": "voice",
    "gesture": "press",
    "action": "Plays A#3 with the focused part's sound without scale snapping and feeds that pitch into the voice's fading phrase memory.",
    "short_label": "A#3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "1135-1144",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L1135-L1144"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "99-135",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L99-L135"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "674-695",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L674-L695"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1201-1203",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1201-L1203"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "456-465",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L456-L465"
     }
    ]
   },
   {
    "mode": "voice",
    "gesture": "release",
    "action": "Releases A#3 on the part that received its press, with that sound's release tail.",
    "short_label": "RELEASE A#3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "699-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L699-L707"
     }
    ]
   },
   {
    "mode": "pulse",
    "gesture": "press",
    "action": "Plays the pulse's pedal hat noise pad without adding a sequencer step or feeding the voice phrase.",
    "short_label": "PEDAL HAT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "296-335",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L296-L335"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "687-695",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L687-L695"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1201-1203",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1201-L1203"
     }
    ]
   },
   {
    "mode": "pulse",
    "gesture": "release",
    "action": "Releases this key while its noise hit continues through its own decay.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "699-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L699-L707"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/eng_drum.c",
      "lines": "24-33",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/eng_drum.c#L24-L33"
     }
    ]
   },
   {
    "mode": "key",
    "gesture": "press_while_holding:button_arp",
    "action": "Chooses A# as the shared root without playing this key.",
    "short_label": "ROOT A#",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_layer.c",
      "lines": "473-474",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_layer.c#L473-L474"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "669-685",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L669-L685"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "1059-1067",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L1059-L1067"
     }
    ]
   },
   {
    "mode": "tempo",
    "gesture": "press_while_holding:button_seq",
    "action": "Toggles part 3's mute in the running world without saving it.",
    "short_label": "MUTE 3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_layer.c",
      "lines": "459-466",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_layer.c#L459-L466"
     }
    ]
   },
   {
    "mode": "settings",
    "gesture": "press",
    "action": "Plays the focused part through its current key mapping while the menu stays open.",
    "short_label": "PLAY NOTE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1328-1355",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1328-L1355"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "471-475",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L471-L475"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "669-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L669-L707"
     }
    ]
   },
   {
    "mode": "settings",
    "gesture": "release",
    "action": "Releases the note started by this key on its original part.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "699-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L699-L707"
     }
    ]
   },
   {
    "mode": "calibration",
    "gesture": "press",
    "action": "Cancels calibration and restores the previous button and encoder assignments.",
    "short_label": "CANCEL SETUP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1588-1592",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1588-L1592"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1671-1675",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1671-L1675"
     }
    ]
   },
   {
    "mode": "screen_off",
    "gesture": "press",
    "action": "Wakes the picture without playing a note and waits for all buttons and keys to be released.",
    "short_label": "WAKE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "223-243",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L223-L243"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "674-678",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L674-L678"
     }
    ]
   }
  ],
  "key_b3": [
   {
    "mode": "floor",
    "gesture": "press",
    "action": "Plays B3 with the focused part's sound without scale snapping and feeds that pitch into the voice's fading phrase memory.",
    "short_label": "B3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "1135-1144",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L1135-L1144"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "99-135",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L99-L135"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "674-695",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L674-L695"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1201-1203",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1201-L1203"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "456-465",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L456-L465"
     }
    ]
   },
   {
    "mode": "floor",
    "gesture": "release",
    "action": "Releases B3 on the part that received its press, with that sound's release tail.",
    "short_label": "RELEASE B3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "699-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L699-L707"
     }
    ]
   },
   {
    "mode": "haze",
    "gesture": "press",
    "action": "Plays B3 with the focused part's sound without scale snapping and feeds that pitch into the voice's fading phrase memory.",
    "short_label": "B3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "1135-1144",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L1135-L1144"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "99-135",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L99-L135"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "674-695",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L674-L695"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1201-1203",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1201-L1203"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "456-465",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L456-L465"
     }
    ]
   },
   {
    "mode": "haze",
    "gesture": "release",
    "action": "Releases B3 on the part that received its press, with that sound's release tail.",
    "short_label": "RELEASE B3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "699-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L699-L707"
     }
    ]
   },
   {
    "mode": "voice",
    "gesture": "press",
    "action": "Plays B3 with the focused part's sound without scale snapping and feeds that pitch into the voice's fading phrase memory.",
    "short_label": "B3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "1135-1144",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L1135-L1144"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "99-135",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L99-L135"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "674-695",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L674-L695"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1201-1203",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1201-L1203"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "456-465",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L456-L465"
     }
    ]
   },
   {
    "mode": "voice",
    "gesture": "release",
    "action": "Releases B3 on the part that received its press, with that sound's release tail.",
    "short_label": "RELEASE B3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "699-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L699-L707"
     }
    ]
   },
   {
    "mode": "pulse",
    "gesture": "press",
    "action": "Toggles the hand-set kick at step 4 without saving it; an existing hit is removed on the next input pass on the home panel.",
    "short_label": "STEP 4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "502-536",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L502-L536"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "553-560",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L553-L560"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "570-581",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L570-L581"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1512-1514",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1512-L1514"
     }
    ]
   },
   {
    "mode": "pulse",
    "gesture": "press_while_holding:key_cs5",
    "action": "Toggles the accent at step 4 while ACC (C#5) is held, without saving it.",
    "short_label": "ACCENT 4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "60-70",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L60-L70"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "502-536",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L502-L536"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "570-581",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L570-L581"
     }
    ]
   },
   {
    "mode": "key",
    "gesture": "press_while_holding:button_arp",
    "action": "Chooses B as the shared root without playing this key.",
    "short_label": "ROOT B",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_layer.c",
      "lines": "473-474",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_layer.c#L473-L474"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "669-685",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L669-L685"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "1059-1067",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L1059-L1067"
     }
    ]
   },
   {
    "mode": "tempo",
    "gesture": "press_while_holding:button_seq",
    "action": "Has no action and plays no note while SEQ is held.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_layer.c",
      "lines": "459-474",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_layer.c#L459-L474"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "669-685",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L669-L685"
     }
    ]
   },
   {
    "mode": "settings",
    "gesture": "press",
    "action": "Plays the focused part through its current key mapping while the menu stays open.",
    "short_label": "PLAY NOTE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1328-1355",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1328-L1355"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "471-475",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L471-L475"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "669-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L669-L707"
     }
    ]
   },
   {
    "mode": "settings",
    "gesture": "release",
    "action": "Releases the note started by this key on its original part.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "699-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L699-L707"
     }
    ]
   },
   {
    "mode": "calibration",
    "gesture": "press",
    "action": "Cancels calibration and restores the previous button and encoder assignments.",
    "short_label": "CANCEL SETUP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1588-1592",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1588-L1592"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1671-1675",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1671-L1675"
     }
    ]
   },
   {
    "mode": "screen_off",
    "gesture": "press",
    "action": "Wakes the picture without playing a note and waits for all buttons and keys to be released.",
    "short_label": "WAKE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "223-243",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L223-L243"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "674-678",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L674-L678"
     }
    ]
   }
  ],
  "key_c4": [
   {
    "mode": "floor",
    "gesture": "press",
    "action": "Plays C4 with the focused part's sound without scale snapping and feeds that pitch into the voice's fading phrase memory.",
    "short_label": "C4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "1135-1144",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L1135-L1144"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "99-135",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L99-L135"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "674-695",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L674-L695"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1201-1203",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1201-L1203"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "456-465",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L456-L465"
     }
    ]
   },
   {
    "mode": "floor",
    "gesture": "release",
    "action": "Releases C4 on the part that received its press, with that sound's release tail.",
    "short_label": "RELEASE C4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "699-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L699-L707"
     }
    ]
   },
   {
    "mode": "haze",
    "gesture": "press",
    "action": "Plays C4 with the focused part's sound without scale snapping and feeds that pitch into the voice's fading phrase memory.",
    "short_label": "C4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "1135-1144",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L1135-L1144"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "99-135",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L99-L135"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "674-695",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L674-L695"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1201-1203",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1201-L1203"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "456-465",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L456-L465"
     }
    ]
   },
   {
    "mode": "haze",
    "gesture": "release",
    "action": "Releases C4 on the part that received its press, with that sound's release tail.",
    "short_label": "RELEASE C4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "699-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L699-L707"
     }
    ]
   },
   {
    "mode": "voice",
    "gesture": "press",
    "action": "Plays C4 with the focused part's sound without scale snapping and feeds that pitch into the voice's fading phrase memory.",
    "short_label": "C4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "1135-1144",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L1135-L1144"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "99-135",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L99-L135"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "674-695",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L674-L695"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1201-1203",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1201-L1203"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "456-465",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L456-L465"
     }
    ]
   },
   {
    "mode": "voice",
    "gesture": "release",
    "action": "Releases C4 on the part that received its press, with that sound's release tail.",
    "short_label": "RELEASE C4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "699-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L699-L707"
     }
    ]
   },
   {
    "mode": "pulse",
    "gesture": "press",
    "action": "Toggles the hand-set kick at step 5 without saving it; an existing hit is removed on the next input pass on the home panel.",
    "short_label": "STEP 5",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "502-536",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L502-L536"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "553-560",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L553-L560"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "570-581",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L570-L581"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1512-1514",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1512-L1514"
     }
    ]
   },
   {
    "mode": "pulse",
    "gesture": "press_while_holding:key_cs5",
    "action": "Toggles the accent at step 5 while ACC (C#5) is held, without saving it.",
    "short_label": "ACCENT 5",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "60-70",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L60-L70"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "502-536",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L502-L536"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "570-581",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L570-L581"
     }
    ]
   },
   {
    "mode": "key",
    "gesture": "press_while_holding:button_arp",
    "action": "Chooses C as the shared root without playing this key.",
    "short_label": "ROOT C",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_layer.c",
      "lines": "473-474",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_layer.c#L473-L474"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "669-685",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L669-L685"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "1059-1067",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L1059-L1067"
     }
    ]
   },
   {
    "mode": "tempo",
    "gesture": "press_while_holding:button_seq",
    "action": "Unmutes all four parts without saving the change.",
    "short_label": "UNMUTE ALL",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_layer.c",
      "lines": "467-469",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_layer.c#L467-L469"
     }
    ]
   },
   {
    "mode": "settings",
    "gesture": "press",
    "action": "Plays the focused part through its current key mapping while the menu stays open.",
    "short_label": "PLAY NOTE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1328-1355",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1328-L1355"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "471-475",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L471-L475"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "669-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L669-L707"
     }
    ]
   },
   {
    "mode": "settings",
    "gesture": "release",
    "action": "Releases the note started by this key on its original part.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "699-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L699-L707"
     }
    ]
   },
   {
    "mode": "calibration",
    "gesture": "press",
    "action": "Cancels calibration and restores the previous button and encoder assignments.",
    "short_label": "CANCEL SETUP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1588-1592",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1588-L1592"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1671-1675",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1671-L1675"
     }
    ]
   },
   {
    "mode": "screen_off",
    "gesture": "press",
    "action": "Wakes the picture without playing a note and waits for all buttons and keys to be released.",
    "short_label": "WAKE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "223-243",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L223-L243"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "674-678",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L674-L678"
     }
    ]
   }
  ],
  "key_cs4": [
   {
    "mode": "floor",
    "gesture": "press",
    "action": "Plays C#4 with the focused part's sound without scale snapping and feeds that pitch into the voice's fading phrase memory.",
    "short_label": "C#4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "1135-1144",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L1135-L1144"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "99-135",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L99-L135"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "674-695",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L674-L695"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1201-1203",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1201-L1203"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "456-465",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L456-L465"
     }
    ]
   },
   {
    "mode": "floor",
    "gesture": "release",
    "action": "Releases C#4 on the part that received its press, with that sound's release tail.",
    "short_label": "RELEASE C#4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "699-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L699-L707"
     }
    ]
   },
   {
    "mode": "haze",
    "gesture": "press",
    "action": "Plays C#4 with the focused part's sound without scale snapping and feeds that pitch into the voice's fading phrase memory.",
    "short_label": "C#4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "1135-1144",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L1135-L1144"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "99-135",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L99-L135"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "674-695",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L674-L695"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1201-1203",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1201-L1203"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "456-465",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L456-L465"
     }
    ]
   },
   {
    "mode": "haze",
    "gesture": "release",
    "action": "Releases C#4 on the part that received its press, with that sound's release tail.",
    "short_label": "RELEASE C#4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "699-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L699-L707"
     }
    ]
   },
   {
    "mode": "voice",
    "gesture": "press",
    "action": "Plays C#4 with the focused part's sound without scale snapping and feeds that pitch into the voice's fading phrase memory.",
    "short_label": "C#4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "1135-1144",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L1135-L1144"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "99-135",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L99-L135"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "674-695",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L674-L695"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1201-1203",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1201-L1203"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "456-465",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L456-L465"
     }
    ]
   },
   {
    "mode": "voice",
    "gesture": "release",
    "action": "Releases C#4 on the part that received its press, with that sound's release tail.",
    "short_label": "RELEASE C#4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "699-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L699-L707"
     }
    ]
   },
   {
    "mode": "pulse",
    "gesture": "press",
    "action": "Plays the pulse's cabasa noise pad without adding a sequencer step or feeding the voice phrase.",
    "short_label": "CABASA",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "296-335",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L296-L335"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "687-695",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L687-L695"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1201-1203",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1201-L1203"
     }
    ]
   },
   {
    "mode": "pulse",
    "gesture": "release",
    "action": "Releases this key while its noise hit continues through its own decay.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "699-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L699-L707"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/eng_drum.c",
      "lines": "24-33",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/eng_drum.c#L24-L33"
     }
    ]
   },
   {
    "mode": "key",
    "gesture": "press_while_holding:button_arp",
    "action": "Chooses C# as the shared root without playing this key.",
    "short_label": "ROOT C#",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_layer.c",
      "lines": "473-474",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_layer.c#L473-L474"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "669-685",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L669-L685"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "1059-1067",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L1059-L1067"
     }
    ]
   },
   {
    "mode": "tempo",
    "gesture": "press_while_holding:button_seq",
    "action": "Toggles part 4's mute in the running world without saving it.",
    "short_label": "MUTE 4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_layer.c",
      "lines": "459-466",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_layer.c#L459-L466"
     }
    ]
   },
   {
    "mode": "settings",
    "gesture": "press",
    "action": "Plays the focused part through its current key mapping while the menu stays open.",
    "short_label": "PLAY NOTE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1328-1355",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1328-L1355"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "471-475",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L471-L475"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "669-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L669-L707"
     }
    ]
   },
   {
    "mode": "settings",
    "gesture": "release",
    "action": "Releases the note started by this key on its original part.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "699-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L699-L707"
     }
    ]
   },
   {
    "mode": "calibration",
    "gesture": "press",
    "action": "Cancels calibration and restores the previous button and encoder assignments.",
    "short_label": "CANCEL SETUP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1588-1592",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1588-L1592"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1671-1675",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1671-L1675"
     }
    ]
   },
   {
    "mode": "screen_off",
    "gesture": "press",
    "action": "Wakes the picture without playing a note and waits for all buttons and keys to be released.",
    "short_label": "WAKE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "223-243",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L223-L243"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "674-678",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L674-L678"
     }
    ]
   }
  ],
  "key_d4": [
   {
    "mode": "floor",
    "gesture": "press",
    "action": "Plays D4 with the focused part's sound without scale snapping and feeds that pitch into the voice's fading phrase memory.",
    "short_label": "D4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "1135-1144",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L1135-L1144"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "99-135",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L99-L135"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "674-695",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L674-L695"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1201-1203",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1201-L1203"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "456-465",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L456-L465"
     }
    ]
   },
   {
    "mode": "floor",
    "gesture": "release",
    "action": "Releases D4 on the part that received its press, with that sound's release tail.",
    "short_label": "RELEASE D4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "699-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L699-L707"
     }
    ]
   },
   {
    "mode": "haze",
    "gesture": "press",
    "action": "Plays D4 with the focused part's sound without scale snapping and feeds that pitch into the voice's fading phrase memory.",
    "short_label": "D4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "1135-1144",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L1135-L1144"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "99-135",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L99-L135"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "674-695",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L674-L695"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1201-1203",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1201-L1203"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "456-465",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L456-L465"
     }
    ]
   },
   {
    "mode": "haze",
    "gesture": "release",
    "action": "Releases D4 on the part that received its press, with that sound's release tail.",
    "short_label": "RELEASE D4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "699-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L699-L707"
     }
    ]
   },
   {
    "mode": "voice",
    "gesture": "press",
    "action": "Plays D4 with the focused part's sound without scale snapping and feeds that pitch into the voice's fading phrase memory.",
    "short_label": "D4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "1135-1144",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L1135-L1144"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "99-135",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L99-L135"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "674-695",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L674-L695"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1201-1203",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1201-L1203"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "456-465",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L456-L465"
     }
    ]
   },
   {
    "mode": "voice",
    "gesture": "release",
    "action": "Releases D4 on the part that received its press, with that sound's release tail.",
    "short_label": "RELEASE D4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "699-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L699-L707"
     }
    ]
   },
   {
    "mode": "pulse",
    "gesture": "press",
    "action": "Toggles the hand-set kick at step 6 without saving it; an existing hit is removed on the next input pass on the home panel.",
    "short_label": "STEP 6",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "502-536",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L502-L536"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "553-560",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L553-L560"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "570-581",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L570-L581"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1512-1514",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1512-L1514"
     }
    ]
   },
   {
    "mode": "pulse",
    "gesture": "press_while_holding:key_cs5",
    "action": "Toggles the accent at step 6 while ACC (C#5) is held, without saving it.",
    "short_label": "ACCENT 6",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "60-70",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L60-L70"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "502-536",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L502-L536"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "570-581",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L570-L581"
     }
    ]
   },
   {
    "mode": "key",
    "gesture": "press_while_holding:button_arp",
    "action": "Chooses D as the shared root without playing this key.",
    "short_label": "ROOT D",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_layer.c",
      "lines": "473-474",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_layer.c#L473-L474"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "669-685",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L669-L685"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "1059-1067",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L1059-L1067"
     }
    ]
   },
   {
    "mode": "tempo",
    "gesture": "press_while_holding:button_seq",
    "action": "Has no action and plays no note while SEQ is held.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_layer.c",
      "lines": "459-474",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_layer.c#L459-L474"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "669-685",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L669-L685"
     }
    ]
   },
   {
    "mode": "settings",
    "gesture": "press",
    "action": "Plays the focused part through its current key mapping while the menu stays open.",
    "short_label": "PLAY NOTE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1328-1355",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1328-L1355"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "471-475",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L471-L475"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "669-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L669-L707"
     }
    ]
   },
   {
    "mode": "settings",
    "gesture": "release",
    "action": "Releases the note started by this key on its original part.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "699-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L699-L707"
     }
    ]
   },
   {
    "mode": "calibration",
    "gesture": "press",
    "action": "Cancels calibration and restores the previous button and encoder assignments.",
    "short_label": "CANCEL SETUP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1588-1592",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1588-L1592"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1671-1675",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1671-L1675"
     }
    ]
   },
   {
    "mode": "screen_off",
    "gesture": "press",
    "action": "Wakes the picture without playing a note and waits for all buttons and keys to be released.",
    "short_label": "WAKE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "223-243",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L223-L243"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "674-678",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L674-L678"
     }
    ]
   }
  ],
  "key_ds4": [
   {
    "mode": "floor",
    "gesture": "press",
    "action": "Plays D#4 with the focused part's sound without scale snapping and feeds that pitch into the voice's fading phrase memory.",
    "short_label": "D#4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "1135-1144",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L1135-L1144"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "99-135",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L99-L135"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "674-695",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L674-L695"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1201-1203",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1201-L1203"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "456-465",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L456-L465"
     }
    ]
   },
   {
    "mode": "floor",
    "gesture": "release",
    "action": "Releases D#4 on the part that received its press, with that sound's release tail.",
    "short_label": "RELEASE D#4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "699-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L699-L707"
     }
    ]
   },
   {
    "mode": "haze",
    "gesture": "press",
    "action": "Plays D#4 with the focused part's sound without scale snapping and feeds that pitch into the voice's fading phrase memory.",
    "short_label": "D#4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "1135-1144",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L1135-L1144"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "99-135",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L99-L135"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "674-695",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L674-L695"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1201-1203",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1201-L1203"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "456-465",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L456-L465"
     }
    ]
   },
   {
    "mode": "haze",
    "gesture": "release",
    "action": "Releases D#4 on the part that received its press, with that sound's release tail.",
    "short_label": "RELEASE D#4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "699-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L699-L707"
     }
    ]
   },
   {
    "mode": "voice",
    "gesture": "press",
    "action": "Plays D#4 with the focused part's sound without scale snapping and feeds that pitch into the voice's fading phrase memory.",
    "short_label": "D#4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "1135-1144",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L1135-L1144"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "99-135",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L99-L135"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "674-695",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L674-L695"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1201-1203",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1201-L1203"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "456-465",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L456-L465"
     }
    ]
   },
   {
    "mode": "voice",
    "gesture": "release",
    "action": "Releases D#4 on the part that received its press, with that sound's release tail.",
    "short_label": "RELEASE D#4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "699-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L699-L707"
     }
    ]
   },
   {
    "mode": "pulse",
    "gesture": "press",
    "action": "Plays the pulse's tambourine noise pad without adding a sequencer step or feeding the voice phrase.",
    "short_label": "TAMB.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "296-335",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L296-L335"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "687-695",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L687-L695"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1201-1203",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1201-L1203"
     }
    ]
   },
   {
    "mode": "pulse",
    "gesture": "release",
    "action": "Releases this key while its noise hit continues through its own decay.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "699-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L699-L707"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/eng_drum.c",
      "lines": "24-33",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/eng_drum.c#L24-L33"
     }
    ]
   },
   {
    "mode": "key",
    "gesture": "press_while_holding:button_arp",
    "action": "Chooses D# as the shared root without playing this key.",
    "short_label": "ROOT D#",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_layer.c",
      "lines": "473-474",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_layer.c#L473-L474"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "669-685",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L669-L685"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "1059-1067",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L1059-L1067"
     }
    ]
   },
   {
    "mode": "tempo",
    "gesture": "press_while_holding:button_seq",
    "action": "Has no action and plays no note while SEQ is held.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_layer.c",
      "lines": "459-474",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_layer.c#L459-L474"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "669-685",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L669-L685"
     }
    ]
   },
   {
    "mode": "settings",
    "gesture": "press",
    "action": "Plays the focused part through its current key mapping while the menu stays open.",
    "short_label": "PLAY NOTE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1328-1355",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1328-L1355"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "471-475",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L471-L475"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "669-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L669-L707"
     }
    ]
   },
   {
    "mode": "settings",
    "gesture": "release",
    "action": "Releases the note started by this key on its original part.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "699-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L699-L707"
     }
    ]
   },
   {
    "mode": "calibration",
    "gesture": "press",
    "action": "Cancels calibration and restores the previous button and encoder assignments.",
    "short_label": "CANCEL SETUP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1588-1592",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1588-L1592"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1671-1675",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1671-L1675"
     }
    ]
   },
   {
    "mode": "screen_off",
    "gesture": "press",
    "action": "Wakes the picture without playing a note and waits for all buttons and keys to be released.",
    "short_label": "WAKE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "223-243",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L223-L243"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "674-678",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L674-L678"
     }
    ]
   }
  ],
  "key_e4": [
   {
    "mode": "floor",
    "gesture": "press",
    "action": "Plays E4 with the focused part's sound without scale snapping and feeds that pitch into the voice's fading phrase memory.",
    "short_label": "E4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "1135-1144",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L1135-L1144"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "99-135",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L99-L135"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "674-695",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L674-L695"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1201-1203",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1201-L1203"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "456-465",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L456-L465"
     }
    ]
   },
   {
    "mode": "floor",
    "gesture": "release",
    "action": "Releases E4 on the part that received its press, with that sound's release tail.",
    "short_label": "RELEASE E4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "699-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L699-L707"
     }
    ]
   },
   {
    "mode": "haze",
    "gesture": "press",
    "action": "Plays E4 with the focused part's sound without scale snapping and feeds that pitch into the voice's fading phrase memory.",
    "short_label": "E4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "1135-1144",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L1135-L1144"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "99-135",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L99-L135"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "674-695",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L674-L695"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1201-1203",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1201-L1203"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "456-465",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L456-L465"
     }
    ]
   },
   {
    "mode": "haze",
    "gesture": "release",
    "action": "Releases E4 on the part that received its press, with that sound's release tail.",
    "short_label": "RELEASE E4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "699-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L699-L707"
     }
    ]
   },
   {
    "mode": "voice",
    "gesture": "press",
    "action": "Plays E4 with the focused part's sound without scale snapping and feeds that pitch into the voice's fading phrase memory.",
    "short_label": "E4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "1135-1144",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L1135-L1144"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "99-135",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L99-L135"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "674-695",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L674-L695"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1201-1203",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1201-L1203"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "456-465",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L456-L465"
     }
    ]
   },
   {
    "mode": "voice",
    "gesture": "release",
    "action": "Releases E4 on the part that received its press, with that sound's release tail.",
    "short_label": "RELEASE E4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "699-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L699-L707"
     }
    ]
   },
   {
    "mode": "pulse",
    "gesture": "press",
    "action": "Toggles the hand-set kick at step 7 without saving it; an existing hit is removed on the next input pass on the home panel.",
    "short_label": "STEP 7",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "502-536",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L502-L536"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "553-560",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L553-L560"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "570-581",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L570-L581"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1512-1514",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1512-L1514"
     }
    ]
   },
   {
    "mode": "pulse",
    "gesture": "press_while_holding:key_cs5",
    "action": "Toggles the accent at step 7 while ACC (C#5) is held, without saving it.",
    "short_label": "ACCENT 7",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "60-70",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L60-L70"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "502-536",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L502-L536"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "570-581",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L570-L581"
     }
    ]
   },
   {
    "mode": "key",
    "gesture": "press_while_holding:button_arp",
    "action": "Chooses E as the shared root without playing this key.",
    "short_label": "ROOT E",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_layer.c",
      "lines": "473-474",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_layer.c#L473-L474"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "669-685",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L669-L685"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "1059-1067",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L1059-L1067"
     }
    ]
   },
   {
    "mode": "tempo",
    "gesture": "press_while_holding:button_seq",
    "action": "Has no action and plays no note while SEQ is held.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_layer.c",
      "lines": "459-474",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_layer.c#L459-L474"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "669-685",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L669-L685"
     }
    ]
   },
   {
    "mode": "settings",
    "gesture": "press",
    "action": "Plays the focused part through its current key mapping while the menu stays open.",
    "short_label": "PLAY NOTE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1328-1355",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1328-L1355"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "471-475",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L471-L475"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "669-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L669-L707"
     }
    ]
   },
   {
    "mode": "settings",
    "gesture": "release",
    "action": "Releases the note started by this key on its original part.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "699-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L699-L707"
     }
    ]
   },
   {
    "mode": "calibration",
    "gesture": "press",
    "action": "Cancels calibration and restores the previous button and encoder assignments.",
    "short_label": "CANCEL SETUP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1588-1592",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1588-L1592"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1671-1675",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1671-L1675"
     }
    ]
   },
   {
    "mode": "screen_off",
    "gesture": "press",
    "action": "Wakes the picture without playing a note and waits for all buttons and keys to be released.",
    "short_label": "WAKE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "223-243",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L223-L243"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "674-678",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L674-L678"
     }
    ]
   }
  ],
  "key_f4": [
   {
    "mode": "floor",
    "gesture": "press",
    "action": "Plays F4 with the focused part's sound without scale snapping and feeds that pitch into the voice's fading phrase memory.",
    "short_label": "F4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "1135-1144",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L1135-L1144"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "99-135",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L99-L135"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "674-695",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L674-L695"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1201-1203",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1201-L1203"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "456-465",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L456-L465"
     }
    ]
   },
   {
    "mode": "floor",
    "gesture": "release",
    "action": "Releases F4 on the part that received its press, with that sound's release tail.",
    "short_label": "RELEASE F4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "699-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L699-L707"
     }
    ]
   },
   {
    "mode": "haze",
    "gesture": "press",
    "action": "Plays F4 with the focused part's sound without scale snapping and feeds that pitch into the voice's fading phrase memory.",
    "short_label": "F4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "1135-1144",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L1135-L1144"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "99-135",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L99-L135"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "674-695",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L674-L695"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1201-1203",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1201-L1203"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "456-465",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L456-L465"
     }
    ]
   },
   {
    "mode": "haze",
    "gesture": "release",
    "action": "Releases F4 on the part that received its press, with that sound's release tail.",
    "short_label": "RELEASE F4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "699-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L699-L707"
     }
    ]
   },
   {
    "mode": "voice",
    "gesture": "press",
    "action": "Plays F4 with the focused part's sound without scale snapping and feeds that pitch into the voice's fading phrase memory.",
    "short_label": "F4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "1135-1144",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L1135-L1144"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "99-135",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L99-L135"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "674-695",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L674-L695"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1201-1203",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1201-L1203"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "456-465",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L456-L465"
     }
    ]
   },
   {
    "mode": "voice",
    "gesture": "release",
    "action": "Releases F4 on the part that received its press, with that sound's release tail.",
    "short_label": "RELEASE F4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "699-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L699-L707"
     }
    ]
   },
   {
    "mode": "pulse",
    "gesture": "press",
    "action": "Toggles the hand-set kick at step 8 without saving it; an existing hit is removed on the next input pass on the home panel.",
    "short_label": "STEP 8",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "502-536",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L502-L536"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "553-560",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L553-L560"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "570-581",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L570-L581"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1512-1514",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1512-L1514"
     }
    ]
   },
   {
    "mode": "pulse",
    "gesture": "press_while_holding:key_cs5",
    "action": "Toggles the accent at step 8 while ACC (C#5) is held, without saving it.",
    "short_label": "ACCENT 8",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "60-70",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L60-L70"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "502-536",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L502-L536"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "570-581",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L570-L581"
     }
    ]
   },
   {
    "mode": "key",
    "gesture": "press_while_holding:button_arp",
    "action": "Chooses F as the shared root without playing this key.",
    "short_label": "ROOT F",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_layer.c",
      "lines": "473-474",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_layer.c#L473-L474"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "669-685",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L669-L685"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "1059-1067",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L1059-L1067"
     }
    ]
   },
   {
    "mode": "tempo",
    "gesture": "press_while_holding:button_seq",
    "action": "Taps the tempo from successive presses while using the internal clock.",
    "short_label": "TAP TEMPO",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_layer.c",
      "lines": "467-471",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_layer.c#L467-L471"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_layer.c",
      "lines": "357-378",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_layer.c#L357-L378"
     }
    ]
   },
   {
    "mode": "settings",
    "gesture": "press",
    "action": "Plays the focused part through its current key mapping while the menu stays open.",
    "short_label": "PLAY NOTE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1328-1355",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1328-L1355"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "471-475",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L471-L475"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "669-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L669-L707"
     }
    ]
   },
   {
    "mode": "settings",
    "gesture": "release",
    "action": "Releases the note started by this key on its original part.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "699-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L699-L707"
     }
    ]
   },
   {
    "mode": "calibration",
    "gesture": "press",
    "action": "Cancels calibration and restores the previous button and encoder assignments.",
    "short_label": "CANCEL SETUP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1588-1592",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1588-L1592"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1671-1675",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1671-L1675"
     }
    ]
   },
   {
    "mode": "screen_off",
    "gesture": "press",
    "action": "Wakes the picture without playing a note and waits for all buttons and keys to be released.",
    "short_label": "WAKE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "223-243",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L223-L243"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "674-678",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L674-L678"
     }
    ]
   }
  ],
  "key_fs4": [
   {
    "mode": "floor",
    "gesture": "press",
    "action": "Plays F#4 with the focused part's sound without scale snapping and feeds that pitch into the voice's fading phrase memory.",
    "short_label": "F#4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "1135-1144",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L1135-L1144"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "99-135",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L99-L135"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "674-695",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L674-L695"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1201-1203",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1201-L1203"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "456-465",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L456-L465"
     }
    ]
   },
   {
    "mode": "floor",
    "gesture": "release",
    "action": "Releases F#4 on the part that received its press, with that sound's release tail.",
    "short_label": "RELEASE F#4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "699-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L699-L707"
     }
    ]
   },
   {
    "mode": "haze",
    "gesture": "press",
    "action": "Plays F#4 with the focused part's sound without scale snapping and feeds that pitch into the voice's fading phrase memory.",
    "short_label": "F#4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "1135-1144",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L1135-L1144"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "99-135",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L99-L135"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "674-695",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L674-L695"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1201-1203",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1201-L1203"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "456-465",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L456-L465"
     }
    ]
   },
   {
    "mode": "haze",
    "gesture": "release",
    "action": "Releases F#4 on the part that received its press, with that sound's release tail.",
    "short_label": "RELEASE F#4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "699-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L699-L707"
     }
    ]
   },
   {
    "mode": "voice",
    "gesture": "press",
    "action": "Plays F#4 with the focused part's sound without scale snapping and feeds that pitch into the voice's fading phrase memory.",
    "short_label": "F#4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "1135-1144",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L1135-L1144"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "99-135",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L99-L135"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "674-695",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L674-L695"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1201-1203",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1201-L1203"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "456-465",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L456-L465"
     }
    ]
   },
   {
    "mode": "voice",
    "gesture": "release",
    "action": "Releases F#4 on the part that received its press, with that sound's release tail.",
    "short_label": "RELEASE F#4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "699-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L699-L707"
     }
    ]
   },
   {
    "mode": "pulse",
    "gesture": "press",
    "action": "Plays the pulse's maracas noise pad without adding a sequencer step or feeding the voice phrase.",
    "short_label": "MARACAS",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "296-335",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L296-L335"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "687-695",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L687-L695"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1201-1203",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1201-L1203"
     }
    ]
   },
   {
    "mode": "pulse",
    "gesture": "release",
    "action": "Releases this key while its noise hit continues through its own decay.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "699-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L699-L707"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/eng_drum.c",
      "lines": "24-33",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/eng_drum.c#L24-L33"
     }
    ]
   },
   {
    "mode": "key",
    "gesture": "press_while_holding:button_arp",
    "action": "Chooses F# as the shared root without playing this key.",
    "short_label": "ROOT F#",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_layer.c",
      "lines": "473-474",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_layer.c#L473-L474"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "669-685",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L669-L685"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "1059-1067",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L1059-L1067"
     }
    ]
   },
   {
    "mode": "tempo",
    "gesture": "press_while_holding:button_seq",
    "action": "Has no action and plays no note while SEQ is held.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_layer.c",
      "lines": "459-474",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_layer.c#L459-L474"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "669-685",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L669-L685"
     }
    ]
   },
   {
    "mode": "settings",
    "gesture": "press",
    "action": "Plays the focused part through its current key mapping while the menu stays open.",
    "short_label": "PLAY NOTE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1328-1355",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1328-L1355"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "471-475",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L471-L475"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "669-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L669-L707"
     }
    ]
   },
   {
    "mode": "settings",
    "gesture": "release",
    "action": "Releases the note started by this key on its original part.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "699-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L699-L707"
     }
    ]
   },
   {
    "mode": "calibration",
    "gesture": "press",
    "action": "Cancels calibration and restores the previous button and encoder assignments.",
    "short_label": "CANCEL SETUP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1588-1592",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1588-L1592"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1671-1675",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1671-L1675"
     }
    ]
   },
   {
    "mode": "screen_off",
    "gesture": "press",
    "action": "Wakes the picture without playing a note and waits for all buttons and keys to be released.",
    "short_label": "WAKE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "223-243",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L223-L243"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "674-678",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L674-L678"
     }
    ]
   }
  ],
  "key_g4": [
   {
    "mode": "floor",
    "gesture": "press",
    "action": "Plays G4 with the focused part's sound without scale snapping and feeds that pitch into the voice's fading phrase memory.",
    "short_label": "G4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "1135-1144",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L1135-L1144"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "99-135",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L99-L135"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "674-695",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L674-L695"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1201-1203",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1201-L1203"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "456-465",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L456-L465"
     }
    ]
   },
   {
    "mode": "floor",
    "gesture": "release",
    "action": "Releases G4 on the part that received its press, with that sound's release tail.",
    "short_label": "RELEASE G4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "699-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L699-L707"
     }
    ]
   },
   {
    "mode": "haze",
    "gesture": "press",
    "action": "Plays G4 with the focused part's sound without scale snapping and feeds that pitch into the voice's fading phrase memory.",
    "short_label": "G4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "1135-1144",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L1135-L1144"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "99-135",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L99-L135"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "674-695",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L674-L695"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1201-1203",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1201-L1203"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "456-465",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L456-L465"
     }
    ]
   },
   {
    "mode": "haze",
    "gesture": "release",
    "action": "Releases G4 on the part that received its press, with that sound's release tail.",
    "short_label": "RELEASE G4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "699-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L699-L707"
     }
    ]
   },
   {
    "mode": "voice",
    "gesture": "press",
    "action": "Plays G4 with the focused part's sound without scale snapping and feeds that pitch into the voice's fading phrase memory.",
    "short_label": "G4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "1135-1144",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L1135-L1144"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "99-135",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L99-L135"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "674-695",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L674-L695"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1201-1203",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1201-L1203"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "456-465",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L456-L465"
     }
    ]
   },
   {
    "mode": "voice",
    "gesture": "release",
    "action": "Releases G4 on the part that received its press, with that sound's release tail.",
    "short_label": "RELEASE G4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "699-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L699-L707"
     }
    ]
   },
   {
    "mode": "pulse",
    "gesture": "press",
    "action": "Toggles the hand-set kick at step 9 without saving it; an existing hit is removed on the next input pass on the home panel.",
    "short_label": "STEP 9",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "502-536",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L502-L536"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "553-560",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L553-L560"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "570-581",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L570-L581"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1512-1514",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1512-L1514"
     }
    ]
   },
   {
    "mode": "pulse",
    "gesture": "press_while_holding:key_cs5",
    "action": "Toggles the accent at step 9 while ACC (C#5) is held, without saving it.",
    "short_label": "ACCENT 9",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "60-70",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L60-L70"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "502-536",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L502-L536"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "570-581",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L570-L581"
     }
    ]
   },
   {
    "mode": "key",
    "gesture": "press_while_holding:button_arp",
    "action": "Chooses G as the shared root without playing this key.",
    "short_label": "ROOT G",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_layer.c",
      "lines": "473-474",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_layer.c#L473-L474"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "669-685",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L669-L685"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "1059-1067",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L1059-L1067"
     }
    ]
   },
   {
    "mode": "tempo",
    "gesture": "press_while_holding:button_seq",
    "action": "Has no action and plays no note while SEQ is held.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_layer.c",
      "lines": "459-474",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_layer.c#L459-L474"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "669-685",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L669-L685"
     }
    ]
   },
   {
    "mode": "settings",
    "gesture": "press",
    "action": "Plays the focused part through its current key mapping while the menu stays open.",
    "short_label": "PLAY NOTE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1328-1355",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1328-L1355"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "471-475",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L471-L475"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "669-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L669-L707"
     }
    ]
   },
   {
    "mode": "settings",
    "gesture": "release",
    "action": "Releases the note started by this key on its original part.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "699-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L699-L707"
     }
    ]
   },
   {
    "mode": "calibration",
    "gesture": "press",
    "action": "Cancels calibration and restores the previous button and encoder assignments.",
    "short_label": "CANCEL SETUP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1588-1592",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1588-L1592"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1671-1675",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1671-L1675"
     }
    ]
   },
   {
    "mode": "screen_off",
    "gesture": "press",
    "action": "Wakes the picture without playing a note and waits for all buttons and keys to be released.",
    "short_label": "WAKE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "223-243",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L223-L243"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "674-678",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L674-L678"
     }
    ]
   }
  ],
  "key_gs4": [
   {
    "mode": "floor",
    "gesture": "press",
    "action": "Plays G#4 with the focused part's sound without scale snapping and feeds that pitch into the voice's fading phrase memory.",
    "short_label": "G#4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "1135-1144",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L1135-L1144"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "99-135",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L99-L135"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "674-695",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L674-L695"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1201-1203",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1201-L1203"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "456-465",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L456-L465"
     }
    ]
   },
   {
    "mode": "floor",
    "gesture": "release",
    "action": "Releases G#4 on the part that received its press, with that sound's release tail.",
    "short_label": "RELEASE G#4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "699-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L699-L707"
     }
    ]
   },
   {
    "mode": "haze",
    "gesture": "press",
    "action": "Plays G#4 with the focused part's sound without scale snapping and feeds that pitch into the voice's fading phrase memory.",
    "short_label": "G#4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "1135-1144",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L1135-L1144"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "99-135",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L99-L135"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "674-695",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L674-L695"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1201-1203",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1201-L1203"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "456-465",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L456-L465"
     }
    ]
   },
   {
    "mode": "haze",
    "gesture": "release",
    "action": "Releases G#4 on the part that received its press, with that sound's release tail.",
    "short_label": "RELEASE G#4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "699-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L699-L707"
     }
    ]
   },
   {
    "mode": "voice",
    "gesture": "press",
    "action": "Plays G#4 with the focused part's sound without scale snapping and feeds that pitch into the voice's fading phrase memory.",
    "short_label": "G#4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "1135-1144",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L1135-L1144"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "99-135",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L99-L135"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "674-695",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L674-L695"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1201-1203",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1201-L1203"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "456-465",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L456-L465"
     }
    ]
   },
   {
    "mode": "voice",
    "gesture": "release",
    "action": "Releases G#4 on the part that received its press, with that sound's release tail.",
    "short_label": "RELEASE G#4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "699-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L699-L707"
     }
    ]
   },
   {
    "mode": "pulse",
    "gesture": "press",
    "action": "Plays the pulse's open hat noise pad without adding a sequencer step or feeding the voice phrase.",
    "short_label": "OPEN HAT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "296-335",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L296-L335"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "687-695",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L687-L695"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1201-1203",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1201-L1203"
     }
    ]
   },
   {
    "mode": "pulse",
    "gesture": "release",
    "action": "Releases this key while its noise hit continues through its own decay.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "699-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L699-L707"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/eng_drum.c",
      "lines": "24-33",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/eng_drum.c#L24-L33"
     }
    ]
   },
   {
    "mode": "key",
    "gesture": "press_while_holding:button_arp",
    "action": "Chooses G# as the shared root without playing this key.",
    "short_label": "ROOT G#",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_layer.c",
      "lines": "473-474",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_layer.c#L473-L474"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "669-685",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L669-L685"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "1059-1067",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L1059-L1067"
     }
    ]
   },
   {
    "mode": "tempo",
    "gesture": "press_while_holding:button_seq",
    "action": "Has no action and plays no note while SEQ is held.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_layer.c",
      "lines": "459-474",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_layer.c#L459-L474"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "669-685",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L669-L685"
     }
    ]
   },
   {
    "mode": "settings",
    "gesture": "press",
    "action": "Plays the focused part through its current key mapping while the menu stays open.",
    "short_label": "PLAY NOTE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1328-1355",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1328-L1355"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "471-475",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L471-L475"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "669-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L669-L707"
     }
    ]
   },
   {
    "mode": "settings",
    "gesture": "release",
    "action": "Releases the note started by this key on its original part.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "699-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L699-L707"
     }
    ]
   },
   {
    "mode": "calibration",
    "gesture": "press",
    "action": "Cancels calibration and restores the previous button and encoder assignments.",
    "short_label": "CANCEL SETUP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1588-1592",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1588-L1592"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1671-1675",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1671-L1675"
     }
    ]
   },
   {
    "mode": "screen_off",
    "gesture": "press",
    "action": "Wakes the picture without playing a note and waits for all buttons and keys to be released.",
    "short_label": "WAKE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "223-243",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L223-L243"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "674-678",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L674-L678"
     }
    ]
   }
  ],
  "key_a4": [
   {
    "mode": "floor",
    "gesture": "press",
    "action": "Plays A4 with the focused part's sound without scale snapping and feeds that pitch into the voice's fading phrase memory.",
    "short_label": "A4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "1135-1144",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L1135-L1144"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "99-135",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L99-L135"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "674-695",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L674-L695"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1201-1203",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1201-L1203"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "456-465",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L456-L465"
     }
    ]
   },
   {
    "mode": "floor",
    "gesture": "release",
    "action": "Releases A4 on the part that received its press, with that sound's release tail.",
    "short_label": "RELEASE A4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "699-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L699-L707"
     }
    ]
   },
   {
    "mode": "haze",
    "gesture": "press",
    "action": "Plays A4 with the focused part's sound without scale snapping and feeds that pitch into the voice's fading phrase memory.",
    "short_label": "A4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "1135-1144",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L1135-L1144"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "99-135",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L99-L135"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "674-695",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L674-L695"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1201-1203",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1201-L1203"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "456-465",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L456-L465"
     }
    ]
   },
   {
    "mode": "haze",
    "gesture": "release",
    "action": "Releases A4 on the part that received its press, with that sound's release tail.",
    "short_label": "RELEASE A4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "699-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L699-L707"
     }
    ]
   },
   {
    "mode": "voice",
    "gesture": "press",
    "action": "Plays A4 with the focused part's sound without scale snapping and feeds that pitch into the voice's fading phrase memory.",
    "short_label": "A4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "1135-1144",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L1135-L1144"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "99-135",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L99-L135"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "674-695",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L674-L695"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1201-1203",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1201-L1203"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "456-465",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L456-L465"
     }
    ]
   },
   {
    "mode": "voice",
    "gesture": "release",
    "action": "Releases A4 on the part that received its press, with that sound's release tail.",
    "short_label": "RELEASE A4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "699-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L699-L707"
     }
    ]
   },
   {
    "mode": "pulse",
    "gesture": "press",
    "action": "Toggles the hand-set kick at step 10 without saving it; an existing hit is removed on the next input pass on the home panel.",
    "short_label": "STEP 10",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "502-536",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L502-L536"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "553-560",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L553-L560"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "570-581",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L570-L581"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1512-1514",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1512-L1514"
     }
    ]
   },
   {
    "mode": "pulse",
    "gesture": "press_while_holding:key_cs5",
    "action": "Toggles the accent at step 10 while ACC (C#5) is held, without saving it.",
    "short_label": "ACCENT 10",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "60-70",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L60-L70"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "502-536",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L502-L536"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "570-581",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L570-L581"
     }
    ]
   },
   {
    "mode": "key",
    "gesture": "press_while_holding:button_arp",
    "action": "Chooses A as the shared root without playing this key.",
    "short_label": "ROOT A",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_layer.c",
      "lines": "473-474",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_layer.c#L473-L474"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "669-685",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L669-L685"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "1059-1067",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L1059-L1067"
     }
    ]
   },
   {
    "mode": "tempo",
    "gesture": "press_while_holding:button_seq",
    "action": "Has no action and plays no note while SEQ is held.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_layer.c",
      "lines": "459-474",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_layer.c#L459-L474"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "669-685",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L669-L685"
     }
    ]
   },
   {
    "mode": "settings",
    "gesture": "press",
    "action": "Plays the focused part through its current key mapping while the menu stays open.",
    "short_label": "PLAY NOTE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1328-1355",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1328-L1355"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "471-475",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L471-L475"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "669-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L669-L707"
     }
    ]
   },
   {
    "mode": "settings",
    "gesture": "release",
    "action": "Releases the note started by this key on its original part.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "699-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L699-L707"
     }
    ]
   },
   {
    "mode": "calibration",
    "gesture": "press",
    "action": "Cancels calibration and restores the previous button and encoder assignments.",
    "short_label": "CANCEL SETUP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1588-1592",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1588-L1592"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1671-1675",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1671-L1675"
     }
    ]
   },
   {
    "mode": "screen_off",
    "gesture": "press",
    "action": "Wakes the picture without playing a note and waits for all buttons and keys to be released.",
    "short_label": "WAKE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "223-243",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L223-L243"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "674-678",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L674-L678"
     }
    ]
   }
  ],
  "key_as4": [
   {
    "mode": "floor",
    "gesture": "press",
    "action": "Plays A#4 with the focused part's sound without scale snapping and feeds that pitch into the voice's fading phrase memory.",
    "short_label": "A#4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "1135-1144",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L1135-L1144"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "99-135",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L99-L135"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "674-695",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L674-L695"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1201-1203",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1201-L1203"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "456-465",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L456-L465"
     }
    ]
   },
   {
    "mode": "floor",
    "gesture": "release",
    "action": "Releases A#4 on the part that received its press, with that sound's release tail.",
    "short_label": "RELEASE A#4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "699-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L699-L707"
     }
    ]
   },
   {
    "mode": "haze",
    "gesture": "press",
    "action": "Plays A#4 with the focused part's sound without scale snapping and feeds that pitch into the voice's fading phrase memory.",
    "short_label": "A#4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "1135-1144",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L1135-L1144"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "99-135",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L99-L135"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "674-695",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L674-L695"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1201-1203",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1201-L1203"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "456-465",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L456-L465"
     }
    ]
   },
   {
    "mode": "haze",
    "gesture": "release",
    "action": "Releases A#4 on the part that received its press, with that sound's release tail.",
    "short_label": "RELEASE A#4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "699-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L699-L707"
     }
    ]
   },
   {
    "mode": "voice",
    "gesture": "press",
    "action": "Plays A#4 with the focused part's sound without scale snapping and feeds that pitch into the voice's fading phrase memory.",
    "short_label": "A#4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "1135-1144",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L1135-L1144"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "99-135",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L99-L135"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "674-695",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L674-L695"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1201-1203",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1201-L1203"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "456-465",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L456-L465"
     }
    ]
   },
   {
    "mode": "voice",
    "gesture": "release",
    "action": "Releases A#4 on the part that received its press, with that sound's release tail.",
    "short_label": "RELEASE A#4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "699-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L699-L707"
     }
    ]
   },
   {
    "mode": "pulse",
    "gesture": "press",
    "action": "Plays the pulse's splash noise pad without adding a sequencer step or feeding the voice phrase.",
    "short_label": "SPLASH",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "296-335",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L296-L335"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "687-695",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L687-L695"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1201-1203",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1201-L1203"
     }
    ]
   },
   {
    "mode": "pulse",
    "gesture": "release",
    "action": "Releases this key while its noise hit continues through its own decay.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "699-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L699-L707"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/eng_drum.c",
      "lines": "24-33",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/eng_drum.c#L24-L33"
     }
    ]
   },
   {
    "mode": "key",
    "gesture": "press_while_holding:button_arp",
    "action": "Chooses A# as the shared root without playing this key.",
    "short_label": "ROOT A#",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_layer.c",
      "lines": "473-474",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_layer.c#L473-L474"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "669-685",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L669-L685"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "1059-1067",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L1059-L1067"
     }
    ]
   },
   {
    "mode": "tempo",
    "gesture": "press_while_holding:button_seq",
    "action": "Has no action and plays no note while SEQ is held.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_layer.c",
      "lines": "459-474",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_layer.c#L459-L474"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "669-685",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L669-L685"
     }
    ]
   },
   {
    "mode": "settings",
    "gesture": "press",
    "action": "Plays the focused part through its current key mapping while the menu stays open.",
    "short_label": "PLAY NOTE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1328-1355",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1328-L1355"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "471-475",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L471-L475"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "669-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L669-L707"
     }
    ]
   },
   {
    "mode": "settings",
    "gesture": "release",
    "action": "Releases the note started by this key on its original part.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "699-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L699-L707"
     }
    ]
   },
   {
    "mode": "calibration",
    "gesture": "press",
    "action": "Cancels calibration and restores the previous button and encoder assignments.",
    "short_label": "CANCEL SETUP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1588-1592",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1588-L1592"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1671-1675",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1671-L1675"
     }
    ]
   },
   {
    "mode": "screen_off",
    "gesture": "press",
    "action": "Wakes the picture without playing a note and waits for all buttons and keys to be released.",
    "short_label": "WAKE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "223-243",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L223-L243"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "674-678",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L674-L678"
     }
    ]
   }
  ],
  "key_b4": [
   {
    "mode": "floor",
    "gesture": "press",
    "action": "Plays B4 with the focused part's sound without scale snapping and feeds that pitch into the voice's fading phrase memory.",
    "short_label": "B4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "1135-1144",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L1135-L1144"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "99-135",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L99-L135"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "674-695",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L674-L695"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1201-1203",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1201-L1203"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "456-465",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L456-L465"
     }
    ]
   },
   {
    "mode": "floor",
    "gesture": "release",
    "action": "Releases B4 on the part that received its press, with that sound's release tail.",
    "short_label": "RELEASE B4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "699-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L699-L707"
     }
    ]
   },
   {
    "mode": "haze",
    "gesture": "press",
    "action": "Plays B4 with the focused part's sound without scale snapping and feeds that pitch into the voice's fading phrase memory.",
    "short_label": "B4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "1135-1144",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L1135-L1144"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "99-135",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L99-L135"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "674-695",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L674-L695"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1201-1203",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1201-L1203"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "456-465",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L456-L465"
     }
    ]
   },
   {
    "mode": "haze",
    "gesture": "release",
    "action": "Releases B4 on the part that received its press, with that sound's release tail.",
    "short_label": "RELEASE B4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "699-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L699-L707"
     }
    ]
   },
   {
    "mode": "voice",
    "gesture": "press",
    "action": "Plays B4 with the focused part's sound without scale snapping and feeds that pitch into the voice's fading phrase memory.",
    "short_label": "B4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "1135-1144",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L1135-L1144"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "99-135",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L99-L135"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "674-695",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L674-L695"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1201-1203",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1201-L1203"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "456-465",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L456-L465"
     }
    ]
   },
   {
    "mode": "voice",
    "gesture": "release",
    "action": "Releases B4 on the part that received its press, with that sound's release tail.",
    "short_label": "RELEASE B4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "699-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L699-L707"
     }
    ]
   },
   {
    "mode": "pulse",
    "gesture": "press",
    "action": "Toggles the hand-set kick at step 11 without saving it; an existing hit is removed on the next input pass on the home panel.",
    "short_label": "STEP 11",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "502-536",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L502-L536"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "553-560",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L553-L560"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "570-581",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L570-L581"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1512-1514",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1512-L1514"
     }
    ]
   },
   {
    "mode": "pulse",
    "gesture": "press_while_holding:key_cs5",
    "action": "Toggles the accent at step 11 while ACC (C#5) is held, without saving it.",
    "short_label": "ACCENT 11",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "60-70",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L60-L70"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "502-536",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L502-L536"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "570-581",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L570-L581"
     }
    ]
   },
   {
    "mode": "key",
    "gesture": "press_while_holding:button_arp",
    "action": "Chooses B as the shared root without playing this key.",
    "short_label": "ROOT B",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_layer.c",
      "lines": "473-474",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_layer.c#L473-L474"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "669-685",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L669-L685"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "1059-1067",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L1059-L1067"
     }
    ]
   },
   {
    "mode": "tempo",
    "gesture": "press_while_holding:button_seq",
    "action": "Has no action and plays no note while SEQ is held.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_layer.c",
      "lines": "459-474",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_layer.c#L459-L474"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "669-685",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L669-L685"
     }
    ]
   },
   {
    "mode": "settings",
    "gesture": "press",
    "action": "Plays the focused part through its current key mapping while the menu stays open.",
    "short_label": "PLAY NOTE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1328-1355",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1328-L1355"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "471-475",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L471-L475"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "669-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L669-L707"
     }
    ]
   },
   {
    "mode": "settings",
    "gesture": "release",
    "action": "Releases the note started by this key on its original part.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "699-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L699-L707"
     }
    ]
   },
   {
    "mode": "calibration",
    "gesture": "press",
    "action": "Cancels calibration and restores the previous button and encoder assignments.",
    "short_label": "CANCEL SETUP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1588-1592",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1588-L1592"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1671-1675",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1671-L1675"
     }
    ]
   },
   {
    "mode": "screen_off",
    "gesture": "press",
    "action": "Wakes the picture without playing a note and waits for all buttons and keys to be released.",
    "short_label": "WAKE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "223-243",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L223-L243"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "674-678",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L674-L678"
     }
    ]
   }
  ],
  "key_c5": [
   {
    "mode": "floor",
    "gesture": "press",
    "action": "Plays C5 with the focused part's sound without scale snapping and feeds that pitch into the voice's fading phrase memory.",
    "short_label": "C5",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "1135-1144",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L1135-L1144"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "99-135",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L99-L135"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "674-695",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L674-L695"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1201-1203",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1201-L1203"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "456-465",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L456-L465"
     }
    ]
   },
   {
    "mode": "floor",
    "gesture": "release",
    "action": "Releases C5 on the part that received its press, with that sound's release tail.",
    "short_label": "RELEASE C5",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "699-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L699-L707"
     }
    ]
   },
   {
    "mode": "haze",
    "gesture": "press",
    "action": "Plays C5 with the focused part's sound without scale snapping and feeds that pitch into the voice's fading phrase memory.",
    "short_label": "C5",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "1135-1144",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L1135-L1144"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "99-135",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L99-L135"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "674-695",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L674-L695"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1201-1203",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1201-L1203"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "456-465",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L456-L465"
     }
    ]
   },
   {
    "mode": "haze",
    "gesture": "release",
    "action": "Releases C5 on the part that received its press, with that sound's release tail.",
    "short_label": "RELEASE C5",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "699-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L699-L707"
     }
    ]
   },
   {
    "mode": "voice",
    "gesture": "press",
    "action": "Plays C5 with the focused part's sound without scale snapping and feeds that pitch into the voice's fading phrase memory.",
    "short_label": "C5",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "1135-1144",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L1135-L1144"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "99-135",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L99-L135"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "674-695",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L674-L695"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1201-1203",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1201-L1203"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "456-465",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L456-L465"
     }
    ]
   },
   {
    "mode": "voice",
    "gesture": "release",
    "action": "Releases C5 on the part that received its press, with that sound's release tail.",
    "short_label": "RELEASE C5",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "699-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L699-L707"
     }
    ]
   },
   {
    "mode": "pulse",
    "gesture": "press",
    "action": "Toggles the hand-set kick at step 12 without saving it; an existing hit is removed on the next input pass on the home panel.",
    "short_label": "STEP 12",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "502-536",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L502-L536"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "553-560",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L553-L560"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "570-581",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L570-L581"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1512-1514",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1512-L1514"
     }
    ]
   },
   {
    "mode": "pulse",
    "gesture": "press_while_holding:key_cs5",
    "action": "Toggles the accent at step 12 while ACC (C#5) is held, without saving it.",
    "short_label": "ACCENT 12",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "60-70",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L60-L70"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "502-536",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L502-L536"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "570-581",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L570-L581"
     }
    ]
   },
   {
    "mode": "key",
    "gesture": "press_while_holding:button_arp",
    "action": "Chooses C as the shared root without playing this key.",
    "short_label": "ROOT C",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_layer.c",
      "lines": "473-474",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_layer.c#L473-L474"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "669-685",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L669-L685"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "1059-1067",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L1059-L1067"
     }
    ]
   },
   {
    "mode": "tempo",
    "gesture": "press_while_holding:button_seq",
    "action": "Has no action and plays no note while SEQ is held.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_layer.c",
      "lines": "459-474",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_layer.c#L459-L474"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "669-685",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L669-L685"
     }
    ]
   },
   {
    "mode": "settings",
    "gesture": "press",
    "action": "Plays the focused part through its current key mapping while the menu stays open.",
    "short_label": "PLAY NOTE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1328-1355",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1328-L1355"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "471-475",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L471-L475"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "669-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L669-L707"
     }
    ]
   },
   {
    "mode": "settings",
    "gesture": "release",
    "action": "Releases the note started by this key on its original part.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "699-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L699-L707"
     }
    ]
   },
   {
    "mode": "calibration",
    "gesture": "press",
    "action": "Cancels calibration and restores the previous button and encoder assignments.",
    "short_label": "CANCEL SETUP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1588-1592",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1588-L1592"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1671-1675",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1671-L1675"
     }
    ]
   },
   {
    "mode": "screen_off",
    "gesture": "press",
    "action": "Wakes the picture without playing a note and waits for all buttons and keys to be released.",
    "short_label": "WAKE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "223-243",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L223-L243"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "674-678",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L674-L678"
     }
    ]
   }
  ],
  "key_cs5": [
   {
    "mode": "floor",
    "gesture": "press",
    "action": "Plays C#5 with the focused part's sound without scale snapping and feeds that pitch into the voice's fading phrase memory.",
    "short_label": "C#5",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "1135-1144",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L1135-L1144"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "99-135",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L99-L135"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "674-695",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L674-L695"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1201-1203",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1201-L1203"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "456-465",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L456-L465"
     }
    ]
   },
   {
    "mode": "floor",
    "gesture": "release",
    "action": "Releases C#5 on the part that received its press, with that sound's release tail.",
    "short_label": "RELEASE C#5",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "699-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L699-L707"
     }
    ]
   },
   {
    "mode": "haze",
    "gesture": "press",
    "action": "Plays C#5 with the focused part's sound without scale snapping and feeds that pitch into the voice's fading phrase memory.",
    "short_label": "C#5",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "1135-1144",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L1135-L1144"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "99-135",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L99-L135"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "674-695",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L674-L695"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1201-1203",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1201-L1203"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "456-465",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L456-L465"
     }
    ]
   },
   {
    "mode": "haze",
    "gesture": "release",
    "action": "Releases C#5 on the part that received its press, with that sound's release tail.",
    "short_label": "RELEASE C#5",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "699-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L699-L707"
     }
    ]
   },
   {
    "mode": "voice",
    "gesture": "press",
    "action": "Plays C#5 with the focused part's sound without scale snapping and feeds that pitch into the voice's fading phrase memory.",
    "short_label": "C#5",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "1135-1144",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L1135-L1144"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "99-135",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L99-L135"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "674-695",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L674-L695"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1201-1203",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1201-L1203"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "456-465",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L456-L465"
     }
    ]
   },
   {
    "mode": "voice",
    "gesture": "release",
    "action": "Releases C#5 on the part that received its press, with that sound's release tail.",
    "short_label": "RELEASE C#5",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "699-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L699-L707"
     }
    ]
   },
   {
    "mode": "pulse",
    "gesture": "hold",
    "action": "Makes the sixteen white keys edit kick accents while held.",
    "short_label": "HOLD ACC",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "60-70",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L60-L70"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "502-536",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L502-L536"
     }
    ]
   },
   {
    "mode": "pulse",
    "gesture": "release",
    "action": "Returns the sixteen white keys to kick hit editing.",
    "short_label": "END ACC",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "74-85",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L74-L85"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "524-534",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L524-L534"
     }
    ]
   },
   {
    "mode": "key",
    "gesture": "press_while_holding:button_arp",
    "action": "Chooses C# as the shared root without playing this key.",
    "short_label": "ROOT C#",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_layer.c",
      "lines": "473-474",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_layer.c#L473-L474"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "669-685",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L669-L685"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "1059-1067",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L1059-L1067"
     }
    ]
   },
   {
    "mode": "tempo",
    "gesture": "press_while_holding:button_seq",
    "action": "Has no action and plays no note while SEQ is held.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_layer.c",
      "lines": "459-474",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_layer.c#L459-L474"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "669-685",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L669-L685"
     }
    ]
   },
   {
    "mode": "settings",
    "gesture": "press",
    "action": "Plays the focused part through its current key mapping while the menu stays open.",
    "short_label": "PLAY NOTE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1328-1355",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1328-L1355"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "471-475",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L471-L475"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "669-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L669-L707"
     }
    ]
   },
   {
    "mode": "settings",
    "gesture": "release",
    "action": "Releases the note started by this key on its original part.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "699-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L699-L707"
     }
    ]
   },
   {
    "mode": "calibration",
    "gesture": "press",
    "action": "Cancels calibration and restores the previous button and encoder assignments.",
    "short_label": "CANCEL SETUP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1588-1592",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1588-L1592"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1671-1675",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1671-L1675"
     }
    ]
   },
   {
    "mode": "screen_off",
    "gesture": "press",
    "action": "Wakes the picture without playing a note and waits for all buttons and keys to be released.",
    "short_label": "WAKE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "223-243",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L223-L243"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "674-678",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L674-L678"
     }
    ]
   }
  ],
  "key_d5": [
   {
    "mode": "floor",
    "gesture": "press",
    "action": "Plays D5 with the focused part's sound without scale snapping and feeds that pitch into the voice's fading phrase memory.",
    "short_label": "D5",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "1135-1144",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L1135-L1144"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "99-135",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L99-L135"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "674-695",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L674-L695"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1201-1203",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1201-L1203"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "456-465",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L456-L465"
     }
    ]
   },
   {
    "mode": "floor",
    "gesture": "release",
    "action": "Releases D5 on the part that received its press, with that sound's release tail.",
    "short_label": "RELEASE D5",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "699-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L699-L707"
     }
    ]
   },
   {
    "mode": "haze",
    "gesture": "press",
    "action": "Plays D5 with the focused part's sound without scale snapping and feeds that pitch into the voice's fading phrase memory.",
    "short_label": "D5",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "1135-1144",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L1135-L1144"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "99-135",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L99-L135"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "674-695",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L674-L695"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1201-1203",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1201-L1203"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "456-465",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L456-L465"
     }
    ]
   },
   {
    "mode": "haze",
    "gesture": "release",
    "action": "Releases D5 on the part that received its press, with that sound's release tail.",
    "short_label": "RELEASE D5",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "699-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L699-L707"
     }
    ]
   },
   {
    "mode": "voice",
    "gesture": "press",
    "action": "Plays D5 with the focused part's sound without scale snapping and feeds that pitch into the voice's fading phrase memory.",
    "short_label": "D5",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "1135-1144",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L1135-L1144"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "99-135",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L99-L135"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "674-695",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L674-L695"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1201-1203",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1201-L1203"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "456-465",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L456-L465"
     }
    ]
   },
   {
    "mode": "voice",
    "gesture": "release",
    "action": "Releases D5 on the part that received its press, with that sound's release tail.",
    "short_label": "RELEASE D5",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "699-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L699-L707"
     }
    ]
   },
   {
    "mode": "pulse",
    "gesture": "press",
    "action": "Toggles the hand-set kick at step 13 without saving it; an existing hit is removed on the next input pass on the home panel.",
    "short_label": "STEP 13",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "502-536",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L502-L536"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "553-560",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L553-L560"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "570-581",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L570-L581"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1512-1514",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1512-L1514"
     }
    ]
   },
   {
    "mode": "pulse",
    "gesture": "press_while_holding:key_cs5",
    "action": "Toggles the accent at step 13 while ACC (C#5) is held, without saving it.",
    "short_label": "ACCENT 13",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "60-70",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L60-L70"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "502-536",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L502-L536"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "570-581",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L570-L581"
     }
    ]
   },
   {
    "mode": "key",
    "gesture": "press_while_holding:button_arp",
    "action": "Chooses D as the shared root without playing this key.",
    "short_label": "ROOT D",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_layer.c",
      "lines": "473-474",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_layer.c#L473-L474"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "669-685",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L669-L685"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "1059-1067",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L1059-L1067"
     }
    ]
   },
   {
    "mode": "tempo",
    "gesture": "press_while_holding:button_seq",
    "action": "Has no action and plays no note while SEQ is held.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_layer.c",
      "lines": "459-474",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_layer.c#L459-L474"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "669-685",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L669-L685"
     }
    ]
   },
   {
    "mode": "settings",
    "gesture": "press",
    "action": "Plays the focused part through its current key mapping while the menu stays open.",
    "short_label": "PLAY NOTE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1328-1355",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1328-L1355"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "471-475",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L471-L475"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "669-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L669-L707"
     }
    ]
   },
   {
    "mode": "settings",
    "gesture": "release",
    "action": "Releases the note started by this key on its original part.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "699-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L699-L707"
     }
    ]
   },
   {
    "mode": "calibration",
    "gesture": "press",
    "action": "Cancels calibration and restores the previous button and encoder assignments.",
    "short_label": "CANCEL SETUP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1588-1592",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1588-L1592"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1671-1675",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1671-L1675"
     }
    ]
   },
   {
    "mode": "screen_off",
    "gesture": "press",
    "action": "Wakes the picture without playing a note and waits for all buttons and keys to be released.",
    "short_label": "WAKE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "223-243",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L223-L243"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "674-678",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L674-L678"
     }
    ]
   }
  ],
  "key_ds5": [
   {
    "mode": "floor",
    "gesture": "press",
    "action": "Plays D#5 with the focused part's sound without scale snapping and feeds that pitch into the voice's fading phrase memory.",
    "short_label": "D#5",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "1135-1144",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L1135-L1144"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "99-135",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L99-L135"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "674-695",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L674-L695"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1201-1203",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1201-L1203"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "456-465",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L456-L465"
     }
    ]
   },
   {
    "mode": "floor",
    "gesture": "release",
    "action": "Releases D#5 on the part that received its press, with that sound's release tail.",
    "short_label": "RELEASE D#5",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "699-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L699-L707"
     }
    ]
   },
   {
    "mode": "haze",
    "gesture": "press",
    "action": "Plays D#5 with the focused part's sound without scale snapping and feeds that pitch into the voice's fading phrase memory.",
    "short_label": "D#5",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "1135-1144",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L1135-L1144"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "99-135",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L99-L135"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "674-695",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L674-L695"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1201-1203",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1201-L1203"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "456-465",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L456-L465"
     }
    ]
   },
   {
    "mode": "haze",
    "gesture": "release",
    "action": "Releases D#5 on the part that received its press, with that sound's release tail.",
    "short_label": "RELEASE D#5",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "699-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L699-L707"
     }
    ]
   },
   {
    "mode": "voice",
    "gesture": "press",
    "action": "Plays D#5 with the focused part's sound without scale snapping and feeds that pitch into the voice's fading phrase memory.",
    "short_label": "D#5",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "1135-1144",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L1135-L1144"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "99-135",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L99-L135"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "674-695",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L674-L695"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1201-1203",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1201-L1203"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "456-465",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L456-L465"
     }
    ]
   },
   {
    "mode": "voice",
    "gesture": "release",
    "action": "Releases D#5 on the part that received its press, with that sound's release tail.",
    "short_label": "RELEASE D#5",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "699-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L699-L707"
     }
    ]
   },
   {
    "mode": "pulse",
    "gesture": "press",
    "action": "Has no action in the single-page pulse grid.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "505-515",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L505-L515"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "687-690",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L687-L690"
     }
    ]
   },
   {
    "mode": "key",
    "gesture": "press_while_holding:button_arp",
    "action": "Chooses D# as the shared root without playing this key.",
    "short_label": "ROOT D#",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_layer.c",
      "lines": "473-474",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_layer.c#L473-L474"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "669-685",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L669-L685"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "1059-1067",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L1059-L1067"
     }
    ]
   },
   {
    "mode": "tempo",
    "gesture": "press_while_holding:button_seq",
    "action": "Has no action and plays no note while SEQ is held.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_layer.c",
      "lines": "459-474",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_layer.c#L459-L474"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "669-685",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L669-L685"
     }
    ]
   },
   {
    "mode": "settings",
    "gesture": "press",
    "action": "Plays the focused part through its current key mapping while the menu stays open.",
    "short_label": "PLAY NOTE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1328-1355",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1328-L1355"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "471-475",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L471-L475"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "669-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L669-L707"
     }
    ]
   },
   {
    "mode": "settings",
    "gesture": "release",
    "action": "Releases the note started by this key on its original part.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "699-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L699-L707"
     }
    ]
   },
   {
    "mode": "calibration",
    "gesture": "press",
    "action": "Cancels calibration and restores the previous button and encoder assignments.",
    "short_label": "CANCEL SETUP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1588-1592",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1588-L1592"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1671-1675",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1671-L1675"
     }
    ]
   },
   {
    "mode": "screen_off",
    "gesture": "press",
    "action": "Wakes the picture without playing a note and waits for all buttons and keys to be released.",
    "short_label": "WAKE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "223-243",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L223-L243"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "674-678",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L674-L678"
     }
    ]
   }
  ],
  "key_e5": [
   {
    "mode": "floor",
    "gesture": "press",
    "action": "Plays E5 with the focused part's sound without scale snapping and feeds that pitch into the voice's fading phrase memory.",
    "short_label": "E5",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "1135-1144",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L1135-L1144"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "99-135",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L99-L135"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "674-695",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L674-L695"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1201-1203",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1201-L1203"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "456-465",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L456-L465"
     }
    ]
   },
   {
    "mode": "floor",
    "gesture": "release",
    "action": "Releases E5 on the part that received its press, with that sound's release tail.",
    "short_label": "RELEASE E5",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "699-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L699-L707"
     }
    ]
   },
   {
    "mode": "haze",
    "gesture": "press",
    "action": "Plays E5 with the focused part's sound without scale snapping and feeds that pitch into the voice's fading phrase memory.",
    "short_label": "E5",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "1135-1144",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L1135-L1144"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "99-135",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L99-L135"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "674-695",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L674-L695"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1201-1203",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1201-L1203"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "456-465",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L456-L465"
     }
    ]
   },
   {
    "mode": "haze",
    "gesture": "release",
    "action": "Releases E5 on the part that received its press, with that sound's release tail.",
    "short_label": "RELEASE E5",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "699-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L699-L707"
     }
    ]
   },
   {
    "mode": "voice",
    "gesture": "press",
    "action": "Plays E5 with the focused part's sound without scale snapping and feeds that pitch into the voice's fading phrase memory.",
    "short_label": "E5",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "1135-1144",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L1135-L1144"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "99-135",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L99-L135"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "674-695",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L674-L695"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1201-1203",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1201-L1203"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "456-465",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L456-L465"
     }
    ]
   },
   {
    "mode": "voice",
    "gesture": "release",
    "action": "Releases E5 on the part that received its press, with that sound's release tail.",
    "short_label": "RELEASE E5",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "699-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L699-L707"
     }
    ]
   },
   {
    "mode": "pulse",
    "gesture": "press",
    "action": "Toggles the hand-set kick at step 14 without saving it; an existing hit is removed on the next input pass on the home panel.",
    "short_label": "STEP 14",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "502-536",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L502-L536"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "553-560",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L553-L560"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "570-581",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L570-L581"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1512-1514",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1512-L1514"
     }
    ]
   },
   {
    "mode": "pulse",
    "gesture": "press_while_holding:key_cs5",
    "action": "Toggles the accent at step 14 while ACC (C#5) is held, without saving it.",
    "short_label": "ACCENT 14",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "60-70",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L60-L70"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "502-536",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L502-L536"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "570-581",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L570-L581"
     }
    ]
   },
   {
    "mode": "key",
    "gesture": "press_while_holding:button_arp",
    "action": "Chooses E as the shared root without playing this key.",
    "short_label": "ROOT E",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_layer.c",
      "lines": "473-474",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_layer.c#L473-L474"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "669-685",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L669-L685"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "1059-1067",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L1059-L1067"
     }
    ]
   },
   {
    "mode": "tempo",
    "gesture": "press_while_holding:button_seq",
    "action": "Has no action and plays no note while SEQ is held.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_layer.c",
      "lines": "459-474",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_layer.c#L459-L474"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "669-685",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L669-L685"
     }
    ]
   },
   {
    "mode": "settings",
    "gesture": "press",
    "action": "Plays the focused part through its current key mapping while the menu stays open.",
    "short_label": "PLAY NOTE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1328-1355",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1328-L1355"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "471-475",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L471-L475"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "669-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L669-L707"
     }
    ]
   },
   {
    "mode": "settings",
    "gesture": "release",
    "action": "Releases the note started by this key on its original part.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "699-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L699-L707"
     }
    ]
   },
   {
    "mode": "calibration",
    "gesture": "press",
    "action": "Cancels calibration and restores the previous button and encoder assignments.",
    "short_label": "CANCEL SETUP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1588-1592",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1588-L1592"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1671-1675",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1671-L1675"
     }
    ]
   },
   {
    "mode": "screen_off",
    "gesture": "press",
    "action": "Wakes the picture without playing a note and waits for all buttons and keys to be released.",
    "short_label": "WAKE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "223-243",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L223-L243"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "674-678",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L674-L678"
     }
    ]
   }
  ],
  "key_f5": [
   {
    "mode": "floor",
    "gesture": "press",
    "action": "Plays F5 with the focused part's sound without scale snapping and feeds that pitch into the voice's fading phrase memory.",
    "short_label": "F5",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "1135-1144",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L1135-L1144"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "99-135",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L99-L135"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "674-695",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L674-L695"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1201-1203",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1201-L1203"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "456-465",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L456-L465"
     }
    ]
   },
   {
    "mode": "floor",
    "gesture": "release",
    "action": "Releases F5 on the part that received its press, with that sound's release tail.",
    "short_label": "RELEASE F5",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "699-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L699-L707"
     }
    ]
   },
   {
    "mode": "haze",
    "gesture": "press",
    "action": "Plays F5 with the focused part's sound without scale snapping and feeds that pitch into the voice's fading phrase memory.",
    "short_label": "F5",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "1135-1144",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L1135-L1144"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "99-135",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L99-L135"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "674-695",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L674-L695"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1201-1203",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1201-L1203"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "456-465",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L456-L465"
     }
    ]
   },
   {
    "mode": "haze",
    "gesture": "release",
    "action": "Releases F5 on the part that received its press, with that sound's release tail.",
    "short_label": "RELEASE F5",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "699-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L699-L707"
     }
    ]
   },
   {
    "mode": "voice",
    "gesture": "press",
    "action": "Plays F5 with the focused part's sound without scale snapping and feeds that pitch into the voice's fading phrase memory.",
    "short_label": "F5",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "1135-1144",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L1135-L1144"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "99-135",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L99-L135"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "674-695",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L674-L695"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1201-1203",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1201-L1203"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "456-465",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L456-L465"
     }
    ]
   },
   {
    "mode": "voice",
    "gesture": "release",
    "action": "Releases F5 on the part that received its press, with that sound's release tail.",
    "short_label": "RELEASE F5",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "699-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L699-L707"
     }
    ]
   },
   {
    "mode": "pulse",
    "gesture": "press",
    "action": "Toggles the hand-set kick at step 15 without saving it; an existing hit is removed on the next input pass on the home panel.",
    "short_label": "STEP 15",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "502-536",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L502-L536"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "553-560",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L553-L560"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "570-581",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L570-L581"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1512-1514",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1512-L1514"
     }
    ]
   },
   {
    "mode": "pulse",
    "gesture": "press_while_holding:key_cs5",
    "action": "Toggles the accent at step 15 while ACC (C#5) is held, without saving it.",
    "short_label": "ACCENT 15",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "60-70",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L60-L70"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "502-536",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L502-L536"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "570-581",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L570-L581"
     }
    ]
   },
   {
    "mode": "key",
    "gesture": "press_while_holding:button_arp",
    "action": "Chooses F as the shared root without playing this key.",
    "short_label": "ROOT F",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_layer.c",
      "lines": "473-474",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_layer.c#L473-L474"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "669-685",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L669-L685"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "1059-1067",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L1059-L1067"
     }
    ]
   },
   {
    "mode": "tempo",
    "gesture": "press_while_holding:button_seq",
    "action": "Has no action and plays no note while SEQ is held.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_layer.c",
      "lines": "459-474",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_layer.c#L459-L474"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "669-685",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L669-L685"
     }
    ]
   },
   {
    "mode": "settings",
    "gesture": "press",
    "action": "Plays the focused part through its current key mapping while the menu stays open.",
    "short_label": "PLAY NOTE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1328-1355",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1328-L1355"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "471-475",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L471-L475"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "669-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L669-L707"
     }
    ]
   },
   {
    "mode": "settings",
    "gesture": "release",
    "action": "Releases the note started by this key on its original part.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "699-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L699-L707"
     }
    ]
   },
   {
    "mode": "calibration",
    "gesture": "press",
    "action": "Cancels calibration and restores the previous button and encoder assignments.",
    "short_label": "CANCEL SETUP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1588-1592",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1588-L1592"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1671-1675",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1671-L1675"
     }
    ]
   },
   {
    "mode": "screen_off",
    "gesture": "press",
    "action": "Wakes the picture without playing a note and waits for all buttons and keys to be released.",
    "short_label": "WAKE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "223-243",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L223-L243"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "674-678",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L674-L678"
     }
    ]
   }
  ],
  "key_fs5": [
   {
    "mode": "floor",
    "gesture": "press",
    "action": "Plays F#5 with the focused part's sound without scale snapping and feeds that pitch into the voice's fading phrase memory.",
    "short_label": "F#5",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "1135-1144",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L1135-L1144"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "99-135",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L99-L135"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "674-695",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L674-L695"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1201-1203",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1201-L1203"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "456-465",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L456-L465"
     }
    ]
   },
   {
    "mode": "floor",
    "gesture": "release",
    "action": "Releases F#5 on the part that received its press, with that sound's release tail.",
    "short_label": "RELEASE F#5",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "699-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L699-L707"
     }
    ]
   },
   {
    "mode": "haze",
    "gesture": "press",
    "action": "Plays F#5 with the focused part's sound without scale snapping and feeds that pitch into the voice's fading phrase memory.",
    "short_label": "F#5",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "1135-1144",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L1135-L1144"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "99-135",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L99-L135"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "674-695",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L674-L695"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1201-1203",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1201-L1203"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "456-465",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L456-L465"
     }
    ]
   },
   {
    "mode": "haze",
    "gesture": "release",
    "action": "Releases F#5 on the part that received its press, with that sound's release tail.",
    "short_label": "RELEASE F#5",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "699-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L699-L707"
     }
    ]
   },
   {
    "mode": "voice",
    "gesture": "press",
    "action": "Plays F#5 with the focused part's sound without scale snapping and feeds that pitch into the voice's fading phrase memory.",
    "short_label": "F#5",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "1135-1144",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L1135-L1144"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "99-135",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L99-L135"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "674-695",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L674-L695"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1201-1203",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1201-L1203"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "456-465",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L456-L465"
     }
    ]
   },
   {
    "mode": "voice",
    "gesture": "release",
    "action": "Releases F#5 on the part that received its press, with that sound's release tail.",
    "short_label": "RELEASE F#5",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "699-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L699-L707"
     }
    ]
   },
   {
    "mode": "pulse",
    "gesture": "press",
    "action": "Has no action in the single-page pulse grid.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "505-515",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L505-L515"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "687-690",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L687-L690"
     }
    ]
   },
   {
    "mode": "key",
    "gesture": "press_while_holding:button_arp",
    "action": "Chooses F# as the shared root without playing this key.",
    "short_label": "ROOT F#",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_layer.c",
      "lines": "473-474",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_layer.c#L473-L474"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "669-685",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L669-L685"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "1059-1067",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L1059-L1067"
     }
    ]
   },
   {
    "mode": "tempo",
    "gesture": "press_while_holding:button_seq",
    "action": "Has no action and plays no note while SEQ is held.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_layer.c",
      "lines": "459-474",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_layer.c#L459-L474"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "669-685",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L669-L685"
     }
    ]
   },
   {
    "mode": "settings",
    "gesture": "press",
    "action": "Plays the focused part through its current key mapping while the menu stays open.",
    "short_label": "PLAY NOTE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1328-1355",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1328-L1355"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "471-475",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L471-L475"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "669-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L669-L707"
     }
    ]
   },
   {
    "mode": "settings",
    "gesture": "release",
    "action": "Releases the note started by this key on its original part.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "699-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L699-L707"
     }
    ]
   },
   {
    "mode": "calibration",
    "gesture": "press",
    "action": "Cancels calibration and restores the previous button and encoder assignments.",
    "short_label": "CANCEL SETUP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1588-1592",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1588-L1592"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1671-1675",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1671-L1675"
     }
    ]
   },
   {
    "mode": "screen_off",
    "gesture": "press",
    "action": "Wakes the picture without playing a note and waits for all buttons and keys to be released.",
    "short_label": "WAKE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "223-243",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L223-L243"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "674-678",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L674-L678"
     }
    ]
   }
  ],
  "key_g5": [
   {
    "mode": "floor",
    "gesture": "press",
    "action": "Plays G5 with the focused part's sound without scale snapping and feeds that pitch into the voice's fading phrase memory.",
    "short_label": "G5",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "1135-1144",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L1135-L1144"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "99-135",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L99-L135"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "674-695",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L674-L695"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1201-1203",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1201-L1203"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "456-465",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L456-L465"
     }
    ]
   },
   {
    "mode": "floor",
    "gesture": "release",
    "action": "Releases G5 on the part that received its press, with that sound's release tail.",
    "short_label": "RELEASE G5",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "699-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L699-L707"
     }
    ]
   },
   {
    "mode": "haze",
    "gesture": "press",
    "action": "Plays G5 with the focused part's sound without scale snapping and feeds that pitch into the voice's fading phrase memory.",
    "short_label": "G5",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "1135-1144",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L1135-L1144"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "99-135",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L99-L135"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "674-695",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L674-L695"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1201-1203",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1201-L1203"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "456-465",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L456-L465"
     }
    ]
   },
   {
    "mode": "haze",
    "gesture": "release",
    "action": "Releases G5 on the part that received its press, with that sound's release tail.",
    "short_label": "RELEASE G5",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "699-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L699-L707"
     }
    ]
   },
   {
    "mode": "voice",
    "gesture": "press",
    "action": "Plays G5 with the focused part's sound without scale snapping and feeds that pitch into the voice's fading phrase memory.",
    "short_label": "G5",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "1135-1144",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L1135-L1144"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "99-135",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L99-L135"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "674-695",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L674-L695"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1201-1203",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1201-L1203"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "456-465",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L456-L465"
     }
    ]
   },
   {
    "mode": "voice",
    "gesture": "release",
    "action": "Releases G5 on the part that received its press, with that sound's release tail.",
    "short_label": "RELEASE G5",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "699-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L699-L707"
     }
    ]
   },
   {
    "mode": "pulse",
    "gesture": "press",
    "action": "Toggles the hand-set kick at step 16 without saving it; an existing hit is removed on the next input pass on the home panel.",
    "short_label": "STEP 16",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "502-536",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L502-L536"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "553-560",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L553-L560"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "570-581",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L570-L581"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1512-1514",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1512-L1514"
     }
    ]
   },
   {
    "mode": "pulse",
    "gesture": "press_while_holding:key_cs5",
    "action": "Toggles the accent at step 16 while ACC (C#5) is held, without saving it.",
    "short_label": "ACCENT 16",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "60-70",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L60-L70"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "502-536",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L502-L536"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "570-581",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L570-L581"
     }
    ]
   },
   {
    "mode": "key",
    "gesture": "press_while_holding:button_arp",
    "action": "Chooses G as the shared root without playing this key.",
    "short_label": "ROOT G",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_layer.c",
      "lines": "473-474",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_layer.c#L473-L474"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "669-685",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L669-L685"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "1059-1067",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L1059-L1067"
     }
    ]
   },
   {
    "mode": "tempo",
    "gesture": "press_while_holding:button_seq",
    "action": "Has no action and plays no note while SEQ is held.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_layer.c",
      "lines": "459-474",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_layer.c#L459-L474"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "669-685",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L669-L685"
     }
    ]
   },
   {
    "mode": "settings",
    "gesture": "press",
    "action": "Plays the focused part through its current key mapping while the menu stays open.",
    "short_label": "PLAY NOTE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1328-1355",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1328-L1355"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "471-475",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L471-L475"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "669-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L669-L707"
     }
    ]
   },
   {
    "mode": "settings",
    "gesture": "release",
    "action": "Releases the note started by this key on its original part.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "699-707",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L699-L707"
     }
    ]
   },
   {
    "mode": "calibration",
    "gesture": "press",
    "action": "Cancels calibration and restores the previous button and encoder assignments.",
    "short_label": "CANCEL SETUP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1588-1592",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1588-L1592"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1671-1675",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1671-L1675"
     }
    ]
   },
   {
    "mode": "screen_off",
    "gesture": "press",
    "action": "Wakes the picture without playing a note and waits for all buttons and keys to be released.",
    "short_label": "WAKE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "223-243",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L223-L243"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "674-678",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L674-L678"
     }
    ]
   }
  ],
  "screen": [
   {
    "mode": "pulse",
    "gesture": "shows",
    "action": "Shows the waveform, key, BPM, four volume bars and focused part beside its three macros, with a kick grid in the PULSE view.",
    "short_label": "PULSE VIEW",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_maku.c",
      "lines": "50-71",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_maku.c#L50-L71"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_maku.c",
      "lines": "149-234",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_maku.c#L149-L234"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_maku.c",
      "lines": "240-276",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_maku.c#L240-L276"
     }
    ]
   },
   {
    "mode": "floor",
    "gesture": "shows",
    "action": "Shows the waveform, key, BPM, four volume bars and focused part beside its three macros, with a kick grid in the PULSE view.",
    "short_label": "FLOOR VIEW",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_maku.c",
      "lines": "50-71",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_maku.c#L50-L71"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_maku.c",
      "lines": "149-234",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_maku.c#L149-L234"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_maku.c",
      "lines": "240-276",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_maku.c#L240-L276"
     }
    ]
   },
   {
    "mode": "haze",
    "gesture": "shows",
    "action": "Shows the waveform, key, BPM, four volume bars and focused part beside its three macros, with a kick grid in the PULSE view.",
    "short_label": "HAZE VIEW",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_maku.c",
      "lines": "50-71",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_maku.c#L50-L71"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_maku.c",
      "lines": "149-234",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_maku.c#L149-L234"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_maku.c",
      "lines": "240-276",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_maku.c#L240-L276"
     }
    ]
   },
   {
    "mode": "voice",
    "gesture": "shows",
    "action": "Shows the waveform, key, BPM, four volume bars and focused part beside its three macros, with a kick grid in the PULSE view.",
    "short_label": "VOICE VIEW",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_maku.c",
      "lines": "50-71",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_maku.c#L50-L71"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_maku.c",
      "lines": "149-234",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_maku.c#L149-L234"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_maku.c",
      "lines": "240-276",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_maku.c#L240-L276"
     }
    ]
   },
   {
    "mode": "sink",
    "gesture": "shows",
    "action": "Shows SINK with RISE BEATS, HOLD BEATS and FADE BEATS beside the waveform and mix.",
    "short_label": "SINK VIEW",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_maku.c",
      "lines": "74-85",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_maku.c#L74-L85"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_maku.c",
      "lines": "129-140",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_maku.c#L129-L140"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_maku.c",
      "lines": "240-272",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_maku.c#L240-L272"
     }
    ]
   },
   {
    "mode": "cascade",
    "gesture": "shows",
    "action": "Shows CASCADE with RISE BEATS, HOLD BEATS and FADE BEATS beside the waveform and mix.",
    "short_label": "CASCADE VIEW",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_maku.c",
      "lines": "74-85",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_maku.c#L74-L85"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_maku.c",
      "lines": "129-140",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_maku.c#L129-L140"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_maku.c",
      "lines": "240-272",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_maku.c#L240-L272"
     }
    ]
   },
   {
    "mode": "swell",
    "gesture": "shows",
    "action": "Shows SWELL with RISE BEATS, HOLD BEATS and FADE BEATS beside the waveform and mix.",
    "short_label": "SWELL VIEW",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_maku.c",
      "lines": "74-85",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_maku.c#L74-L85"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_maku.c",
      "lines": "129-140",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_maku.c#L129-L140"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_maku.c",
      "lines": "240-272",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_maku.c#L240-L272"
     }
    ]
   },
   {
    "mode": "wobble",
    "gesture": "shows",
    "action": "Shows WOBBLE with RISE BEATS, HOLD BEATS and FADE BEATS beside the waveform and mix.",
    "short_label": "WOBBLE VIEW",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_maku.c",
      "lines": "74-85",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_maku.c#L74-L85"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_maku.c",
      "lines": "129-140",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_maku.c#L129-L140"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_maku.c",
      "lines": "240-272",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_maku.c#L240-L272"
     }
    ]
   },
   {
    "mode": "lift",
    "gesture": "shows",
    "action": "Shows LIFT with RISE BEATS, HOLD BEATS and FADE BEATS beside the waveform and mix.",
    "short_label": "LIFT VIEW",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_maku.c",
      "lines": "74-85",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_maku.c#L74-L85"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_maku.c",
      "lines": "129-140",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_maku.c#L129-L140"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_maku.c",
      "lines": "240-272",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_maku.c#L240-L272"
     }
    ]
   },
   {
    "mode": "scramble",
    "gesture": "shows",
    "action": "Shows SCRAMBLE with RISE BEATS, HOLD BEATS and FADE BEATS beside the waveform and mix.",
    "short_label": "SCRAMBLE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_maku.c",
      "lines": "74-85",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_maku.c#L74-L85"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_maku.c",
      "lines": "129-140",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_maku.c#L129-L140"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_maku.c",
      "lines": "240-272",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_maku.c#L240-L272"
     }
    ]
   },
   {
    "mode": "key",
    "gesture": "shows",
    "action": "Shows ROOT, SCALE and REG beside the waveform and mix.",
    "short_label": "KEY VIEW",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_maku.c",
      "lines": "74-85",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_maku.c#L74-L85"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_maku.c",
      "lines": "129-140",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_maku.c#L129-L140"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_maku.c",
      "lines": "240-272",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_maku.c#L240-L272"
     }
    ]
   },
   {
    "mode": "tempo",
    "gesture": "shows",
    "action": "Shows BPM, SWING and DUCK beside the waveform and mix.",
    "short_label": "TEMPO VIEW",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_maku.c",
      "lines": "74-85",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_maku.c#L74-L85"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_maku.c",
      "lines": "129-140",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_maku.c#L129-L140"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_maku.c",
      "lines": "240-272",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_maku.c#L240-L272"
     }
    ]
   },
   {
    "mode": "drift",
    "gesture": "shows",
    "action": "Shows RATE, RANGE and REACH beside the waveform and mix.",
    "short_label": "DRIFT VIEW",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_maku.c",
      "lines": "74-85",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_maku.c#L74-L85"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_maku.c",
      "lines": "129-140",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_maku.c#L129-L140"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_maku.c",
      "lines": "240-272",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_maku.c#L240-L272"
     }
    ]
   },
   {
    "mode": "world",
    "gesture": "shows",
    "action": "Briefly names the three voices and any background bed after a new world, and shows messages such as LIKED or BATTERY LOW in the focus area.",
    "short_label": "WORLD NOTICE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_maku.c",
      "lines": "143-208",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_maku.c#L143-L208"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1055-1072",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1055-L1072"
     }
    ]
   },
   {
    "mode": "settings_display",
    "gesture": "shows",
    "action": "Shows COLOR, STYLE, LARGE, ANIM, LEDS and SCREEN OFF with the current row highlighted and its value beside it.",
    "short_label": "DISPLAY",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/menu_items.c",
      "lines": "9-33",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L9-L33"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_menu.c",
      "lines": "284-327",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L284-L327"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_menu.c",
      "lines": "383-399",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L383-L399"
     }
    ]
   },
   {
    "mode": "settings_control",
    "gesture": "shows",
    "action": "Shows HOLD, KNOB ACCEL, FX LATCH, BPM LOCK and SCALE LEDS with the current row highlighted and its value beside it.",
    "short_label": "CONTROL",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/menu_items.c",
      "lines": "9-33",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L9-L33"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_menu.c",
      "lines": "284-327",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L284-L327"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_menu.c",
      "lines": "383-399",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L383-L399"
     }
    ]
   },
   {
    "mode": "settings_audio",
    "gesture": "shows",
    "action": "Shows SPEAKER EQ, USB LEVEL, CLICK, CLICK LEVEL and COUNT-IN with the current row highlighted and its value beside it.",
    "short_label": "AUDIO",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/menu_items.c",
      "lines": "9-33",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L9-L33"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_menu.c",
      "lines": "284-327",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L284-L327"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_menu.c",
      "lines": "383-399",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L383-L399"
     }
    ]
   },
   {
    "mode": "settings_system",
    "gesture": "shows",
    "action": "Shows USB SERIAL, RESTORE LAST, CALIBRATION and ABOUT with the current row highlighted and its value beside it.",
    "short_label": "SYSTEM",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/menu_items.c",
      "lines": "9-33",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L9-L33"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_menu.c",
      "lines": "284-327",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L284-L327"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_menu.c",
      "lines": "383-399",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L383-L399"
     }
    ]
   },
   {
    "mode": "about",
    "gesture": "shows",
    "action": "Shows MAKU information, version, build date, a QR code and a scrollable set of credits and licensing notices.",
    "short_label": "ABOUT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_menu.c",
      "lines": "108-140",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L108-L140"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_menu.c",
      "lines": "363-380",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_menu.c#L363-L380"
     }
    ]
   },
   {
    "mode": "calibration",
    "gesture": "shows",
    "action": "Asks for each named button, then each encoder turned right, and returns after all are learned or cancellation.",
    "short_label": "CALIBRATE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1593-1675",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1593-L1675"
     }
    ]
   },
   {
    "mode": "screen_off",
    "gesture": "shows",
    "action": "Shows no picture while sound, MIDI, USB and the lights continue.",
    "short_label": "ASLEEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "172-185",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L172-L185"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "246-284",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L246-L284"
     }
    ]
   },
   {
    "mode": "update",
    "gesture": "shows",
    "action": "Shows the remaining time before entering the bootloader and the release-to-cancel hint.",
    "short_label": "UPDATE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_draw.c",
      "lines": "1085-1105",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_draw.c#L1085-L1105"
     }
    ]
   },
   {
    "mode": "boot",
    "gesture": "shows",
    "action": "Shows the MAKU splash before the playing view.",
    "short_label": "STARTING",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/main.c",
      "lines": "156-157",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/main.c#L156-L157"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/main.c",
      "lines": "197-203",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/main.c#L197-L203"
     }
    ]
   },
   {
    "mode": "world",
    "gesture": "shows",
    "action": "Shows LIKED with the count after a stored like, LIKED, NOT SAVED on a failed write, or the corresponding clear result after a long REC hold.",
    "short_label": "LIKE STATUS",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku_fav.c",
      "lines": "345-374",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku_fav.c#L345-L374"
     }
    ]
   },
   {
    "mode": "world",
    "gesture": "shows",
    "action": "Below 70 BPM on the internal clock the pulse density display fades as breathing takes over, reaching its full range at 50 BPM.",
    "short_label": "BREATHING",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_maku.c",
      "lines": "53-61",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_maku.c#L53-L61"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "949-965",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L949-L965"
     }
    ]
   },
   {
    "mode": "installing",
    "gesture": "shows",
    "action": "Shows UPDATE with package, checking, loader, confirmation and restart stages, or a failure code when the transfer fails.",
    "short_label": "UPDATING",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ota_hw.c",
      "lines": "24-47",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ota_hw.c#L24-L47"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ota.c",
      "lines": "339-379",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ota.c#L339-L379"
     }
    ]
   },
   {
    "mode": "crash",
    "gesture": "shows",
    "action": "Shows MAKU CRASH and diagnostic numbers, then restarts after about four seconds.",
    "short_label": "CRASH",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/main.c",
      "lines": "74-95",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/main.c#L74-L95"
     }
    ]
   },
   {
    "mode": "update",
    "gesture": "shows",
    "action": "After the completed five-second hold shows UBOOT and hands control to the chip bootloader.",
    "short_label": "BOOTLOADER",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/main.c",
      "lines": "237-245",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/main.c#L237-L245"
     }
    ]
   },
   {
    "mode": "world",
    "gesture": "shows",
    "action": "Shows NOTHING TO LIKE without adding or writing a like when the current world cannot be captured.",
    "short_label": "NO LIKE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku_fav.c",
      "lines": "345-354",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku_fav.c#L345-L354"
     }
    ]
   }
  ],
  "switch_power": [
   {
    "mode": "any",
    "gesture": "power_on_holding:button_oct_down+button_oct_up",
    "action": "Starts calibration before music begins and saves changed settings or assignments on return without a question, including after cancellation if settings differ.",
    "short_label": "CALIBRATE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/main.c",
      "lines": "189-192",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/main.c#L189-L192"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1616-1675",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1616-L1675"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/project.c",
      "lines": "1081-1105",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/project.c#L1081-L1105"
     }
    ]
   },
   {
    "mode": "boot",
    "gesture": "press",
    "action": "Starts a fresh random world with DRIFT off and no session restore, even when RESTORE LAST is ON.",
    "short_label": "NEW START",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/main.c",
      "lines": "99-124",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/main.c#L99-L124"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/main.c",
      "lines": "193-196",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/main.c#L193-L196"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "1203-1224",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L1203-L1224"
     }
    ]
   },
   {
    "mode": "world",
    "gesture": "release",
    "action": "Ends the world and loses menu edits, menu calibration, the mix, played phrase, hand-set kicks and verb times without saving them.",
    "short_label": "POWER OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/main.c",
      "lines": "193-205",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/main.c#L193-L205"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku_fav.c",
      "lines": "84-114",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku_fav.c#L84-L114"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku.c",
      "lines": "898-907",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L898-L907"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/main.c",
      "lines": "189-196",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/main.c#L189-L196"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/project.c",
      "lines": "1074-1105",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/project.c#L1074-L1105"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "394-401",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L394-L401"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "1438-1444",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1438-L1444"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "1090-1096",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L1090-L1096"
     }
    ]
   }
  ],
  "knob_master": [
   {
    "mode": "screen_off",
    "gesture": "turn",
    "action": "Still controls the sound level while leaving the display asleep.",
    "short_label": "MASTER",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui.c",
      "lines": "172-185",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L172-L185"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/master.c",
      "lines": "8-14",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/master.c#L8-L14"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "turn",
    "action": "Sets speaker and headphone level and, with USB LEVEL at MASTER, the level sent to the computer.",
    "short_label": "MASTER",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/master.c",
      "lines": "8-14",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/master.c#L8-L14"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/fx.c",
      "lines": "108-121",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/fx.c#L108-L121"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/audio.c",
      "lines": "89-93",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/audio.c#L89-L93"
     }
    ]
   }
  ],
  "jack_midi_in": [
   {
    "mode": "world",
    "gesture": "press",
    "action": "Receives MIDI notes and controllers, with CC20 on any channel setting pulse density.",
    "short_label": "MIDI IN",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/midi_control.c",
      "lines": "252-260",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/midi_control.c#L252-L260"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/seq.c",
      "lines": "1084-1098",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L1084-L1098"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/felucca.c",
      "lines": "13-29",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/felucca.c#L13-L29"
     }
    ]
   }
  ],
  "jack_usb": [
   {
    "mode": "world",
    "gesture": "press",
    "action": "Carries USB MIDI, firmware updates and stereo audio to the computer at 44.1 or 48 kHz, with the optional serial console controlled in settings.",
    "short_label": "USB AUDIO",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/usb.c",
      "lines": "3-24",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/usb.c#L3-L24"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/main.c",
      "lines": "248-269",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/main.c#L248-L269"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/menu_items.c",
      "lines": "81-97",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L81-L97"
     }
    ]
   }
  ],
  "jack_audio_out": [
   {
    "mode": "any",
    "gesture": "press",
    "action": "Carries the master mix with the selected speaker EQ and MASTER level.",
    "short_label": "AUDIO OUT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/master.c",
      "lines": "8-14",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/master.c#L8-L14"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/menu_items.c",
      "lines": "68-72",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L68-L72"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/audio.c",
      "lines": "89-93",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/audio.c#L89-L93"
     }
    ]
   }
  ]
 },
 "lights": {
  "button_fx": [
   {
    "mode": "world",
    "gesture": "lit",
    "action": "This verb is rising or in its hold stage, with active lamps dark instead under LEDS INV.",
    "short_label": "SINK ACTIVE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "312-315",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L312-L315"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "343-354",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L343-L354"
     }
    ]
   },
   {
    "mode": "world",
    "gesture": "breathing",
    "action": "This verb is fading back.",
    "short_label": "SINK FADE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "312-315",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L312-L315"
     }
    ]
   },
   {
    "mode": "world",
    "gesture": "dim",
    "action": "Idle lamps follow LEDS: AUTO uses DIM LO on battery or a charger and DIM HI with an active USB host; OFF removes idle glow and INV reverses active lamps.",
    "short_label": "IDLE GLOW",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "282-286",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L282-L286"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "339-365",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L339-L365"
     }
    ]
   }
  ],
  "button_sel": [
   {
    "mode": "world",
    "gesture": "lit",
    "action": "This verb is rising or in its hold stage, with active lamps dark instead under LEDS INV.",
    "short_label": "ACTIVE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "312-315",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L312-L315"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "343-354",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L343-L354"
     }
    ]
   },
   {
    "mode": "world",
    "gesture": "breathing",
    "action": "This verb is fading back.",
    "short_label": "CASCADE FADE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "312-315",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L312-L315"
     }
    ]
   },
   {
    "mode": "world",
    "gesture": "dim",
    "action": "Idle lamps follow LEDS: AUTO uses DIM LO on battery or a charger and DIM HI with an active USB host; OFF removes idle glow and INV reverses active lamps.",
    "short_label": "IDLE GLOW",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "282-286",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L282-L286"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "339-365",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L339-L365"
     }
    ]
   }
  ],
  "button_env": [
   {
    "mode": "world",
    "gesture": "lit",
    "action": "This verb is rising or in its hold stage, with active lamps dark instead under LEDS INV.",
    "short_label": "SWELL ACTIVE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "312-315",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L312-L315"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "343-354",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L343-L354"
     }
    ]
   },
   {
    "mode": "world",
    "gesture": "breathing",
    "action": "This verb is fading back.",
    "short_label": "SWELL FADE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "312-315",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L312-L315"
     }
    ]
   },
   {
    "mode": "world",
    "gesture": "dim",
    "action": "Idle lamps follow LEDS: AUTO uses DIM LO on battery or a charger and DIM HI with an active USB host; OFF removes idle glow and INV reverses active lamps.",
    "short_label": "IDLE GLOW",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "282-286",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L282-L286"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "339-365",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L339-L365"
     }
    ]
   }
  ],
  "button_lfo": [
   {
    "mode": "world",
    "gesture": "lit",
    "action": "This verb is rising or in its hold stage, with active lamps dark instead under LEDS INV.",
    "short_label": "ACTIVE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "312-315",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L312-L315"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "343-354",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L343-L354"
     }
    ]
   },
   {
    "mode": "world",
    "gesture": "breathing",
    "action": "This verb is fading back.",
    "short_label": "WOBBLE FADE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "312-315",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L312-L315"
     }
    ]
   },
   {
    "mode": "world",
    "gesture": "dim",
    "action": "Idle lamps follow LEDS: AUTO uses DIM LO on battery or a charger and DIM HI with an active USB host; OFF removes idle glow and INV reverses active lamps.",
    "short_label": "IDLE GLOW",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "282-286",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L282-L286"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "339-365",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L339-L365"
     }
    ]
   }
  ],
  "button_edit": [
   {
    "mode": "world",
    "gesture": "lit",
    "action": "This verb is rising or in its hold stage, with active lamps dark instead under LEDS INV.",
    "short_label": "LIFT ACTIVE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "312-315",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L312-L315"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "343-354",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L343-L354"
     }
    ]
   },
   {
    "mode": "world",
    "gesture": "breathing",
    "action": "This verb is fading back.",
    "short_label": "LIFT FADE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "312-315",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L312-L315"
     }
    ]
   },
   {
    "mode": "world",
    "gesture": "dim",
    "action": "Idle lamps follow LEDS: AUTO uses DIM LO on battery or a charger and DIM HI with an active USB host; OFF removes idle glow and INV reverses active lamps.",
    "short_label": "IDLE GLOW",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "282-286",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L282-L286"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "339-365",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L339-L365"
     }
    ]
   }
  ],
  "button_glo": [
   {
    "mode": "world",
    "gesture": "lit",
    "action": "This verb is rising or in its hold stage, with active lamps dark instead under LEDS INV.",
    "short_label": "ACTIVE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "312-315",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L312-L315"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "343-354",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L343-L354"
     }
    ]
   },
   {
    "mode": "world",
    "gesture": "breathing",
    "action": "This verb is fading back.",
    "short_label": "FADING",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "312-315",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L312-L315"
     }
    ]
   },
   {
    "mode": "world",
    "gesture": "dim",
    "action": "Idle lamps follow LEDS: AUTO uses DIM LO on battery or a charger and DIM HI with an active USB host; OFF removes idle glow and INV reverses active lamps.",
    "short_label": "IDLE GLOW",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "282-286",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L282-L286"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "339-365",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L339-L365"
     }
    ]
   }
  ],
  "button_home": [
   {
    "mode": "world",
    "gesture": "lit",
    "action": "The home state is selected, with the active lamp dark under LEDS INV.",
    "short_label": "HOME",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "306-307",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L306-L307"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "343-345",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L343-L345"
     }
    ]
   },
   {
    "mode": "world",
    "gesture": "dim",
    "action": "Idle lamps follow LEDS: AUTO uses DIM LO on battery or a charger and DIM HI with an active USB host; OFF removes idle glow and INV reverses active lamps.",
    "short_label": "IDLE GLOW",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "282-286",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L282-L286"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "339-365",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L339-L365"
     }
    ]
   }
  ],
  "button_arp": [
   {
    "mode": "key",
    "gesture": "breathing",
    "action": "This held shortcut view is open.",
    "short_label": "CONTROLS",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "316-317",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L316-L317"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_layer.c",
      "lines": "98-107",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_layer.c#L98-L107"
     }
    ]
   },
   {
    "mode": "world",
    "gesture": "dim",
    "action": "Idle lamps follow LEDS: AUTO uses DIM LO on battery or a charger and DIM HI with an active USB host; OFF removes idle glow and INV reverses active lamps.",
    "short_label": "IDLE GLOW",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "282-286",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L282-L286"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "339-365",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L339-L365"
     }
    ]
   }
  ],
  "button_seq": [
   {
    "mode": "tempo",
    "gesture": "breathing",
    "action": "This held shortcut view is open.",
    "short_label": "CONTROLS",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "316-317",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L316-L317"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_layer.c",
      "lines": "98-107",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_layer.c#L98-L107"
     }
    ]
   },
   {
    "mode": "world",
    "gesture": "dim",
    "action": "Idle lamps follow LEDS: AUTO uses DIM LO on battery or a charger and DIM HI with an active USB host; OFF removes idle glow and INV reverses active lamps.",
    "short_label": "IDLE GLOW",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "282-286",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L282-L286"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "339-365",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L339-L365"
     }
    ]
   }
  ],
  "button_rec": [
   {
    "mode": "world",
    "gesture": "lit",
    "action": "A like message is still showing, including LIKED, NOT SAVED, with the active lamp dark under LEDS INV.",
    "short_label": "LIKED",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "318",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L318"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku_fav.c",
      "lines": "51-52",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku_fav.c#L51-L52"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/maku_fav.c",
      "lines": "345-374",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku_fav.c#L345-L374"
     }
    ]
   },
   {
    "mode": "world",
    "gesture": "dim",
    "action": "Idle lamps follow LEDS: AUTO uses DIM LO on battery or a charger and DIM HI with an active USB host; OFF removes idle glow and INV reverses active lamps.",
    "short_label": "IDLE GLOW",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "282-286",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L282-L286"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "339-365",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L339-L365"
     }
    ]
   }
  ],
  "button_play_stop": [
   {
    "mode": "world",
    "gesture": "lit",
    "action": "The green lamp means DRIFT is switched on.",
    "short_label": "DRIFT ON",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "341-357",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L341-L357"
     }
    ],
    "light": "green"
   },
   {
    "mode": "world",
    "gesture": "off",
    "action": "The orange lamp is dark while DRIFT is on.",
    "short_label": "DRIFT DARK",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "341-357",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L341-L357"
     }
    ],
    "light": "orange"
   },
   {
    "mode": "world",
    "gesture": "dim",
    "action": "Idle lamps follow LEDS: AUTO uses DIM LO on battery or a charger and DIM HI with an active USB host; OFF removes idle glow and INV reverses active lamps.",
    "short_label": "IDLE GLOW",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "282-286",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L282-L286"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "339-365",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L339-L365"
     }
    ]
   }
  ],
  "button_save": [
   {
    "mode": "world",
    "gesture": "dim",
    "action": "Idle lamps follow LEDS: AUTO uses DIM LO on battery or a charger and DIM HI with an active USB host; OFF removes idle glow and INV reverses active lamps.",
    "short_label": "IDLE GLOW",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "282-286",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L282-L286"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "339-365",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L339-L365"
     }
    ]
   }
  ],
  "button_oct_down": [
   {
    "mode": "world",
    "gesture": "dim",
    "action": "Idle lamps follow LEDS: AUTO uses DIM LO on battery or a charger and DIM HI with an active USB host; OFF removes idle glow and INV reverses active lamps.",
    "short_label": "IDLE GLOW",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "282-286",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L282-L286"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "339-365",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L339-L365"
     }
    ]
   },
   {
    "mode": "world",
    "gesture": "breathing",
    "action": "A change around the circle of fifths is available.",
    "short_label": "CHANGE KEY",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "63-64",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L63-L64"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "319-323",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L319-L323"
     }
    ]
   },
   {
    "mode": "key",
    "gesture": "lit",
    "action": "OCT- can restore the values captured when this shortcut view opened.",
    "short_label": "RESTORE VIEW",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "54-55",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L54-L55"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "319-323",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L319-L323"
     }
    ]
   },
   {
    "mode": "tempo",
    "gesture": "lit",
    "action": "OCT- can restore the values captured when this shortcut view opened.",
    "short_label": "RESTORE VIEW",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "54-55",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L54-L55"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "319-323",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L319-L323"
     }
    ]
   },
   {
    "mode": "settings",
    "gesture": "breathing",
    "action": "Breathes when that direction can change the selected value, with OCT+ alone breathing on CALIBRATION or ABOUT.",
    "short_label": "CAN CHANGE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "44-60",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L44-L60"
     }
    ]
   },
   {
    "mode": "about",
    "gesture": "lit",
    "action": "Stays lit to show the way back to the settings tabs.",
    "short_label": "BACK",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "56-60",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L56-L60"
     }
    ]
   }
  ],
  "button_oct_up": [
   {
    "mode": "world",
    "gesture": "dim",
    "action": "Idle lamps follow LEDS: AUTO uses DIM LO on battery or a charger and DIM HI with an active USB host; OFF removes idle glow and INV reverses active lamps.",
    "short_label": "IDLE GLOW",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "282-286",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L282-L286"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "339-365",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L339-L365"
     }
    ]
   },
   {
    "mode": "world",
    "gesture": "breathing",
    "action": "A change around the circle of fifths is available.",
    "short_label": "CHANGE KEY",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "63-64",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L63-L64"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "319-323",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L319-L323"
     }
    ]
   },
   {
    "mode": "settings",
    "gesture": "breathing",
    "action": "Breathes when that direction can change the selected value, with OCT+ alone breathing on CALIBRATION or ABOUT.",
    "short_label": "CAN CHANGE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "44-60",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L44-L60"
     }
    ]
   }
  ],
  "key_lights": [
   {
    "mode": "floor",
    "gesture": "lit",
    "action": "Marks keys held or notes the focused part is sounding, including MIDI notes that fit the keyboard; LEDS INV reverses active notes.",
    "short_label": "NOTES",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "135-175",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L135-L175"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "249-255",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L249-L255"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "343-354",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L343-L354"
     }
    ]
   },
   {
    "mode": "floor",
    "gesture": "dim",
    "action": "With SCALE LEDS enabled shows the focused scale dimly and its roots brighter, while notes held or sounding take priority.",
    "short_label": "SCALE GUIDE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "219-243",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L219-L243"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "327-350",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L327-L350"
     }
    ]
   },
   {
    "mode": "haze",
    "gesture": "lit",
    "action": "Marks keys held or notes the focused part is sounding, including MIDI notes that fit the keyboard; LEDS INV reverses active notes.",
    "short_label": "NOTES",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "135-175",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L135-L175"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "249-255",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L249-L255"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "343-354",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L343-L354"
     }
    ]
   },
   {
    "mode": "haze",
    "gesture": "dim",
    "action": "With SCALE LEDS enabled shows the focused scale dimly and its roots brighter, while notes held or sounding take priority.",
    "short_label": "SCALE GUIDE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "219-243",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L219-L243"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "327-350",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L327-L350"
     }
    ]
   },
   {
    "mode": "voice",
    "gesture": "lit",
    "action": "Marks keys held or notes the focused part is sounding, including MIDI notes that fit the keyboard; LEDS INV reverses active notes.",
    "short_label": "NOTES",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "135-175",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L135-L175"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "249-255",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L249-L255"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "343-354",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L343-L354"
     }
    ]
   },
   {
    "mode": "voice",
    "gesture": "dim",
    "action": "With SCALE LEDS enabled shows the focused scale dimly and its roots brighter, while notes held or sounding take priority.",
    "short_label": "SCALE GUIDE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "219-243",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L219-L243"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "327-350",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L327-L350"
     }
    ]
   },
   {
    "mode": "pulse",
    "gesture": "lit",
    "action": "White lamps show hand-set kicks, or accents with ACC held, and invert the current step; ACC lights while held, while the noise pads are not shown as selected lanes.",
    "short_label": "PULSE STEPS",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "71-87",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L71-L87"
     }
    ]
   },
   {
    "mode": "pulse",
    "gesture": "dim",
    "action": "Usable grid keys glow in DIM modes and empty steps 1, 5, 9 and 13 have a brighter beat guide; generated ghost kicks are drawn on screen rather than in the key lamps.",
    "short_label": "BEAT GUIDE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "95-118",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L95-L118"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_input.c",
      "lines": "324-355",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L324-L355"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_maku.c",
      "lines": "64-69",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_maku.c#L64-L69"
     }
    ]
   },
   {
    "mode": "key",
    "gesture": "lit",
    "action": "Marks every key with the chosen root pitch name.",
    "short_label": "ROOT NOTES",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_layer.c",
      "lines": "625-638",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_layer.c#L625-L638"
     }
    ]
   },
   {
    "mode": "key",
    "gesture": "breathing",
    "action": "Marks other keys in the chosen scale as available roots.",
    "short_label": "SCALE NOTES",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_layer.c",
      "lines": "625-638",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_layer.c#L625-L638"
     },
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_layer.c",
      "lines": "650-656",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_layer.c#L650-L656"
     }
    ]
   },
   {
    "mode": "tempo",
    "gesture": "lit",
    "action": "The first four black-key lamps show parts that are unmuted.",
    "short_label": "PARTS ON",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_layer.c",
      "lines": "620-638",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_layer.c#L620-L638"
     }
    ]
   },
   {
    "mode": "tempo",
    "gesture": "breathing",
    "action": "C4 offers unmute-all and F4 offers tap tempo when the clock is internal.",
    "short_label": "MIX ACTIONS",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "okumurari2/maku",
      "ref": "maku-v1.0",
      "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
      "path": "firmware/src/ui_layer.c",
      "lines": "632-634",
      "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_layer.c#L632-L634"
     }
    ]
   }
  ]
 },
 "groups": {
  "key_lights": [
   "led_f3",
   "led_fs3",
   "led_g3",
   "led_gs3",
   "led_a3",
   "led_as3",
   "led_b3",
   "led_c4",
   "led_cs4",
   "led_d4",
   "led_ds4",
   "led_e4",
   "led_f4",
   "led_fs4",
   "led_g4",
   "led_gs4",
   "led_a4",
   "led_as4",
   "led_b4",
   "led_c5",
   "led_cs5",
   "led_d5",
   "led_ds5",
   "led_e5",
   "led_f5",
   "led_fs5",
   "led_g5"
  ]
 },
 "switching_note": {
  "kept_on_unit": "Up to 16 successfully stored likes survive power-off while their storage remains intact. MAKU reads previously stored or compatible imported device settings at startup, but menu changes and calibration started from the menu are never saved in ordinary use. Only calibration entered at power-on can store learned assignments. From the flash atlas: each start, before display/audio: Probe four bytes at 0xE0000 and eight at 0xE4F00. If ANY differs from 0xFF, erase all five staging sectors. No header, ownership or loader-magic test; unrelated foreign data at either probe qualifies. If either read fails, return without cleanup (expected JEDEC id matched and either staging probe is nonblank). M-UPGRADE update request while MAKU runs: After validating the incoming package loader shape and identity, erase all five staging sectors, write its body from +32 and commit its header. Host success commits a 112-byte update parameter record at 0xE4F00 and resets into the loader. Failure also erases all five sectors through ota_unstage, even if package rejection occurred before staging began (an update command reaches ota_session with supported flash; failure cleanup is unconditional once ota_session is entered). install through MAKU/Felucca open loader: The open loader validates incoming package and chip key, then compares and replaces changed app sectors only. The package generator emits flash.bin of 0x93000 bytes. It does not format MAKU object regions on successful install. Installing through a closed native/official loader is outside this source audit (package passes whole-file CRC and per-sector checks). open loader after successful programming: Scan eligible sector tails after successful programming, skip 0x97000-0xDFFFF, and erase only sectors satisfying the update-record check. Normally written owner records are not at risk from this cleanup; it is detail-only (After an install, erase only a 4 KiB sector whose last 256 bytes hold a valid update record (marker 0x5441 at +6 and a matching nonzero CRC16 over bytes 2..79): in practice the family staging-record sector 0xE4000 and, on a first install from stock, stock record sector 0xE8000. Saved music does not hold that record. This loader skips 0x97000-0xDFFFF). ordinary boot with no compatible MAKU data: There is no unconditional initial like/settings/project/sample/preset formatting. Boot can erase nonblank OTA staging, tidy an older own like header, and conditionally create FM6 companion patches from a legacy bank. Settings are written before playback only if owner invokes power-on calibration; ordinary menu/layer requests wait until transport stops (all active flash access requires JEDEC 0x856014). What MAKU writes over the previous firmware's data is in overwrites_previous; what the next firmware writes over MAKU's is in when_you_leave.",
  "lost": "Power-off loses menu edits and menu calibration as well as the running mix, played phrase, hand-set kicks and verb times. A new world replaces the setup and switches DRIFT off, while verb times stay until power-off. A seventeenth like drops the oldest, and holding REC past two seconds clears all likes without a question or undo. From the flash atlas: Other firmwares reading MAKU's data: Felucca [Salt] takes over MAKU's settings and calibration, converting them (These firmwares save settings and favourites in the same space. An edit here can change the other firmware’s choices); Felucca [Salt] reads and uses MAKU's inherited user sample 1; inherited user sample 2; inherited user sample 3 (Slice positions you set in SLICE stay hidden. This firmware has no storage for slice positions); WaveLoop FM-1 reads and uses MAKU's settings and calibration; inherited FM6 patches for user presets; inherited user sample 1; inherited user sample 2 (These firmwares save settings and favourites in the same space. An edit here can change the other firmware’s choices; Changing a sound or its format can make its separate patch unavailable); WaveLoop FM-1 lists MAKU's inherited user preset bank 1; inherited user preset bank 2, but plays them differently (Only sounds this firmware can read will play. Saving into a slot it cannot read can replace it without an overwrite question. MAKU’s insert controls become timing and modulation controls in Felucca. Earlier firmware ignores them. The insert sound is not kept); Felucca reads and uses MAKU's settings and calibration; inherited FM6 patches for user presets; inherited user sample 1; inherited user sample 2; inherited user sample 3 (These firmwares save settings and favourites in the same space. An edit here can change the other firmware’s choices; Changing a sound or its format can make its separate patch unavailable; Only data in this sample slot is read. Other saved work is separate); Felucca takes over MAKU's inherited project A; inherited project B; inherited project C; inherited project D, converting them (Playback uses this firmware’s instruments and control meanings. Saved music may sound different even if it opens. MAKU’s insert controls become timing and modulation controls here, so the insert sound changes); Felucca lists MAKU's inherited user preset bank 1; inherited user preset bank 2, but plays them differently (Only sounds this firmware can read will play. Saving into a slot it cannot read can replace it without an overwrite question. MAKU’s insert controls become timing and modulation controls in Felucca. Earlier firmware ignores them. The insert sound is not kept); Rainbow Mode takes over MAKU's settings and calibration, converting them (These firmwares save settings and favourites in the same space. An edit here can change the other firmware’s choices); Rainbow Mode lists MAKU's inherited user preset bank 1; inherited user preset bank 2, but plays them differently (Only sounds this firmware can read will play. Saving into a slot it cannot read can replace it without an overwrite question. MAKU’s insert controls become timing and modulation controls in Felucca. Earlier firmware ignores them. The insert sound is not kept); Rainbow Mode reads and uses MAKU's inherited FM6 patches for user presets; inherited user sample 1; inherited user sample 2; inherited user sample 3 (Changing a sound or its format can make its separate patch unavailable; Only data in this sample slot is read. Other saved work is separate); SLOOP reads and uses MAKU's inherited user sample 1; inherited user sample 2; inherited user sample 3 (Audio loads only if it fits this slot. Sending to or erasing this slot replaces it); SLOOP DX7 Banks reads and uses MAKU's inherited user sample 1; inherited user sample 2; inherited user sample 3 (Audio loads only if it fits this slot. Sending to or erasing this slot replaces it. Extra slice markers are ignored. Held loops play as ordinary loops); SLOOP Floyd FM reads and uses MAKU's inherited user sample 1; inherited user sample 2; inherited user sample 3 (Audio loads only if it fits this slot. Sending to or erasing this slot replaces it. Extra slice markers are ignored. Held loops play as ordinary loops); FM1 Quest reads and uses MAKU's inherited user sample 1 (USR1 plays only if its audio and zones fit Quest’s 64 KiB slot. Sending into or erasing USR1 replaces it, including holding REC on a readable USR1 in IMPORTER. Sending into or erasing USR2 can damage the end of the old USR1. Extra slice markers are not used here); JIANT lists MAKU's settings and calibration; inherited FM6 patches for user presets, but plays them differently (JIANT changes saved sounds when it loads them, so they stop using their own FM6 patches. They use a factory patch or the initial voice instead); JIANT takes over MAKU's inherited project A; inherited project B; inherited project C; inherited project D; inherited user preset bank 1; inherited user preset bank 2, converting them (JIANT no longer has SAMPLE, GRAIN, SLICE or PHYS. Those sounds use its initial ANALOG sound, except old drum and percussion sounds, which become DRUM sounds. Imported names and patterns do not mean the original sample audio or sound is kept); ChoralRoot takes over MAKU's settings and calibration, converting them (After ChoralRoot saves these settings, MAKU cannot read the newer saved copy. It uses default preferences and panel calibration when you return); ChoralRoot lists MAKU's inherited user preset bank 1; inherited user preset bank 2, but plays them differently (Imported sounds may sound different, even if their names are kept. Confirming Flash Data erases the older banks they came from); GHOULBOX lists MAKU's settings and calibration; inherited user preset bank 1; inherited user preset bank 2, but plays them differently; GHOULBOX takes over MAKU's inherited project A; inherited project B; inherited project C; inherited project D, converting them; GHOULBOX reads and uses MAKU's inherited FM6 patches for user presets; inherited user sample 1; inherited user sample 2; inherited user sample 3; fm1-chord takes over MAKU's settings and calibration; inherited user preset bank 1; inherited user preset bank 2, converting them (Some sound engine numbers and controls mean different things, so a listed sound may play differently. The separate FM6 patches for those sounds are not recovered); fm1-chord reads and uses MAKU's inherited user sample 1; inherited user sample 2; inherited user sample 3 (Saved loop choices use ordinary looping. The ends of loops held by a gate signal can sound different. Only matching saved SLICE markers are restored); Jangada reads and uses MAKU's inherited user sample 1; inherited user sample 2; inherited user sample 3; Skiff takes over MAKU's inherited project A; inherited project B; inherited project C; inherited project D, converting them (This changes how the project is stored and plays. This firmware change has not been tested on an FM-1); Skiff lists MAKU's inherited user preset bank 1; inherited user preset bank 2, but plays them differently (The same saved sound format does not guarantee the same sound or pattern playback); Skiff reads and uses MAKU's inherited FM6 patches for user presets; inherited user sample 1; inherited user sample 2; inherited user sample 3 (A separate saved FM6 patch works only while its matching FM6 user sound is still stored; Skiff uses its own sound engines, so saved loops or slices can play differently); Hortator lists MAKU's inherited user sample 1; inherited user sample 2; inherited user sample 3, but plays them differently (Hortator uses its own one-shot sound engines, so saved loops and slices play differently); ORBIT takes over MAKU's inherited user preset bank 1; inherited user preset bank 2, converting them (Only older version-1 sounds can change to this format; engine numbers and sound controls may mean different things and change how they play); ORBIT reads and uses MAKU's inherited user sample 1; inherited user sample 2; inherited user sample 3 (Slice marks set by hand are not loaded. Loop modes follow this firmware's playback rules); PIGEON reads and uses MAKU's settings and calibration; inherited user sample 1; inherited user sample 2; inherited user sample 3 (Some saved preferences mean different things in PIGEON. For choices PIGEON cannot use, it uses settings it supports; Sample audio can be read. Loops and slices may play differently; we have not tested whether they sound the same); PIGEON takes over MAKU's inherited project A; inherited project B; inherited project C; inherited project D, converting them (Engines and sound controls mean different things. In PIGEON, sampler tracks replace the synth performance setup); winampFM Synth reads and uses MAKU's inherited user sample 1; inherited user sample 2; inherited user sample 3 (Slice marks set by hand are not loaded. Loop modes follow this firmware's playback rules); FM1 Move reads and uses MAKU's inherited user sample 1; inherited user sample 2; inherited user sample 3 (Slice marks set by hand are not loaded. Loop modes follow this firmware's playback rules); X0X lists MAKU's inherited user sample 1; inherited user sample 2; inherited user sample 3, but plays them differently (Each zone plays as a separate repeating break loop (up to 16 per sample). Key ranges, root notes, loop points and slice markers are not used); Jangada converts only older version 1 sounds in this group. Newer sound versions look empty, and saving anywhere in the group drops them from the rewritten group.; Skiff imports some settings and calibration, but can change and save the previous firmware’s preferences without asking. What MAKU reads of other firmwares' data: MAKU reads and uses Felucca's settings, button calibration, favourites, MIDI LEARN map; user presets 1-16; user presets 17-32; FM6 patches of the FM6 user presets; user sample slot USR1; user sample slot USR2; user sample slot USR3 (MAKU leaves these sample bytes in place, but its controls use built-in material; these uploaded samples are not available to play here); MAKU reads and uses SLOOP's user sounds U01-U16; user sounds U17-U32; user sample slot USR1; user sample slot USR2; user sample slot USR3 (MAKU leaves these sample bytes in place, but its controls use built-in material; these uploaded samples are not available to play here); MAKU reads and uses X0X's break loops slot 1; break loops slot 2; break loops slot 3 (MAKU leaves these sample bytes in place, but its controls use built-in material; these uploaded samples are not available to play here); MAKU reads and uses JIANT's settings, calibration, favourites, MENU options; user sounds U01-U16; user sounds U17-U32; FM6 patches for the FM6 user sounds; MAKU reads and uses GHOULBOX's settings and panel calibration; user sounds 1–16; user sounds 17–32; FM6 patches for user sounds; user sample slot USR1; user sample slot USR2; user sample slot USR3 (MAKU leaves these sample bytes in place, but its controls use built-in material; these uploaded samples are not available to play here); MAKU takes over Hortator's settings and panel calibration, converting them; MAKU reads and uses Hortator's user samples USR1; user samples USR2; user samples USR3 (MAKU leaves these sample bytes in place, but its controls use built-in material; these uploaded samples are not available to play here); MAKU reads and uses Skiff's settings, calibration and favourites; user sound bank 1; user sound bank 2; user sounds’ own FM6 patches; user sample USR1; user sample USR2; user sample USR3 (MAKU leaves these sample bytes in place, but its controls use built-in material; these uploaded samples are not available to play here); MAKU reads and uses Rainbow Mode's Felucca preferences, calibration and favourites; Rainbow WRITE song, greeting name, hat, volume limit and look-alikes; Project A: four tracks and their sounds, notes, automation, song chain and name; Project B: four tracks and their sounds, notes, automation, song chain and name; Project C: four tracks and their sounds, notes, automation, song chain and name; Project D: four tracks and their sounds, notes, automation, song chain and name; user sounds U01–U16, names and sixteen-step patterns without automation; user sounds U17–U32, names and sixteen-step patterns without automation; FM6 patches used by the thirty-two user sounds; User sample USR1 and any slice positions you set in SLICE; User sample USR2 and any slice positions you set in SLICE; User sample USR3 and any slice positions you set in SLICE (MAKU leaves these sample bytes in place, but its controls use built-in material; these uploaded samples are not available to play here); MAKU takes over Rainbow Mode's your old FM6 bank (B1–B27), converting them; MAKU takes over Felucca [Salt]'s project 1; project 2; project 3; project 4, converting them; MAKU reads and uses Felucca [Salt]'s user sounds U01-U16; user sounds U17-U32; user sample USR1; user sample USR2; user sample USR3 (MAKU leaves these sample bytes in place, but its controls use built-in material; these uploaded samples are not available to play here); MAKU reads and uses WaveLoop FM-1's settings, calibration and favourites; user sounds 1–16; user sounds 17–32; FM6 patches and controls for each drum in user sounds; user sample USR1; user sample USR2 (MAKU leaves these sample bytes in place, but its controls use built-in material; these uploaded samples are not available to play here); MAKU takes over WaveLoop FM-1's song 1; song 2; song 3; last session saved for the next start, converting them; MAKU lists sloopDX's user presets 1–16; user presets 17–32, but plays them differently; MAKU reads and uses SLOOP DX7 Banks's user sounds 1–16; user sounds 17–32; user sample USR1; user sample USR2; user sample USR3 (MAKU leaves these sample bytes in place, but its controls use built-in material; these uploaded samples are not available to play here); MAKU reads and uses SLOOP Floyd FM's user sounds U01–U16; user sounds U17–U32; user sample slot USR1; user sample slot USR2; user sample slot USR3 (MAKU leaves these sample bytes in place, but its controls use built-in material; these uploaded samples are not available to play here); MAKU reads and uses FM1 Quest's user sounds U01–U16; user sounds U17–U32; sample USR1 (MAKU leaves these sample bytes in place, but its controls use built-in material; these uploaded samples are not available to play here); MAKU takes over fm1-chord's chord preset P1: full synth project; chord preset P2: full synth project; chord preset P3: full synth project; chord preset P4: full synth project; FM6 bank B1-B27, converting them; MAKU reads and uses fm1-chord's user sounds 1-16; user sounds 17-32; uploaded sample USR1 and optional SLICE markers; uploaded sample USR2 and optional SLICE markers; uploaded sample USR3 and optional SLICE markers (MAKU leaves these sample bytes in place, but its controls use built-in material; these uploaded samples are not available to play here); MAKU reads and uses Jangada's user samples USR1; user samples USR2; user samples USR3 (MAKU leaves these sample bytes in place, but its controls use built-in material; these uploaded samples are not available to play here); MAKU reads and uses ORBIT's sample slot USR1; sample slot USR2; sample slot USR3 (MAKU leaves these sample bytes in place, but its controls use built-in material; these uploaded samples are not available to play here); MAKU reads and uses PIGEON's preferences, MIDI LEARN and panel calibration; older user preset bank 1; older user preset bank 2; older FM6 patches for user presets; user sample USR1 in the older format; user sample USR2 in the older format; user sample USR3 in the older format (MAKU leaves these sample bytes in place, but its controls use built-in material; these uploaded samples are not available to play here); MAKU takes over PIGEON's older FM6 patch bank PIGEON no longer uses, converting them; MAKU reads and uses winampFM Synth's user sounds 1-16; user sounds 17-32; sample USR1; sample USR2; sample USR3 (MAKU leaves these sample bytes in place, but its controls use built-in material; these uploaded samples are not available to play here); MAKU reads and uses FM1 Move's user sounds U01–U16; user sounds U17–U32; sample slot USR1; sample slot USR2; sample slot USR3 (MAKU leaves these sample bytes in place, but its controls use built-in material; these uploaded samples are not available to play here). Everything else of another firmware's looks empty or foreign to the reader.",
  "back_up_first": "This release has no likes export or restore and no working Felucca web-editor backup connection. Its developer console can read raw flash, but there is no matching restore command; treat that as an expert recovery capture, not a supported round-trip backup. Record any sound you need through USB audio or the audio output before leaving it.",
  "writes_and_timing": "REC immediately tries to store likes or their cleared set without a question. An older MAKU likes copy can be erased at startup or the next new world; another REC before then can need a short audio dip. Menu close and shortcut hints only queue settings requests that never commit during ordinary MAKU playback. Power-on calibration can write before playback, even after cancellation if the complete settings differ.",
  "going_back_a_version": "No older MAKU tree was supplied to verify downgrade compatibility. This release skips likes whose sounds or values it cannot read, and an older build may discard newer choices. Capture important sound and use the original firmware to back up its saved work before changing firmware.",
  "source": [
   {
    "kind": "source",
    "repo": "okumurari2/maku",
    "ref": "maku-v1.0",
    "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
    "path": "firmware/src/maku_fav.c",
    "lines": "84-126",
    "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku_fav.c#L84-L126"
   },
   {
    "kind": "source",
    "repo": "okumurari2/maku",
    "ref": "maku-v1.0",
    "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
    "path": "firmware/src/maku_fav.c",
    "lines": "309-374",
    "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku_fav.c#L309-L374"
   },
   {
    "kind": "source",
    "repo": "okumurari2/maku",
    "ref": "maku-v1.0",
    "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
    "path": "firmware/src/project.c",
    "lines": "1074-1105",
    "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/project.c#L1074-L1105"
   },
   {
    "kind": "source",
    "repo": "okumurari2/maku",
    "ref": "maku-v1.0",
    "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
    "path": "firmware/src/main.c",
    "lines": "149-196",
    "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/main.c#L149-L196"
   },
   {
    "kind": "source",
    "repo": "okumurari2/maku",
    "ref": "maku-v1.0",
    "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
    "path": "firmware/src/ui_layer.c",
    "lines": "217-224",
    "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_layer.c#L217-L224"
   },
   {
    "kind": "source",
    "repo": "okumurari2/maku",
    "ref": "maku-v1.0",
    "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
    "path": "firmware/src/console.c",
    "lines": "137-166",
    "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/console.c#L137-L166"
   },
   {
    "kind": "source",
    "repo": "okumurari2/maku",
    "ref": "maku-v1.0",
    "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
    "path": "firmware/src/console.c",
    "lines": "344-372",
    "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/console.c#L344-L372"
   },
   {
    "kind": "source",
    "repo": "okumurari2/maku",
    "ref": "maku-v1.0",
    "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
    "path": "firmware/src/felucca.c",
    "lines": "89-105",
    "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/felucca.c#L89-L105"
   },
   {
    "kind": "source",
    "repo": "okumurari2/maku",
    "ref": "maku-v1.0",
    "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
    "path": "firmware/src/ota.c",
    "lines": "382-396",
    "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ota.c#L382-L396"
   },
   {
    "kind": "source",
    "repo": "okumurari2/maku",
    "ref": "maku-v1.0",
    "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
    "path": "firmware/src/project.c",
    "lines": "955-989",
    "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/project.c#L955-L989"
   },
   {
    "kind": "source",
    "repo": "okumurari2/maku",
    "ref": "maku-v1.0",
    "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
    "path": "firmware/src/up_fm6.c",
    "lines": "172-186",
    "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/up_fm6.c#L172-L186"
   },
   {
    "kind": "source",
    "repo": "okumurari2/maku",
    "ref": "maku-v1.0",
    "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
    "path": "firmware/src/main.c",
    "lines": "189-196",
    "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/main.c#L189-L196"
   },
   {
    "kind": "source",
    "repo": "okumurari2/maku",
    "ref": "maku-v1.0",
    "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
    "path": "firmware/src/ui.c",
    "lines": "394-401",
    "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L394-L401"
   },
   {
    "kind": "source",
    "repo": "okumurari2/maku",
    "ref": "maku-v1.0",
    "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
    "path": "firmware/src/ui_input.c",
    "lines": "1438-1444",
    "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1438-L1444"
   },
   {
    "kind": "source",
    "repo": "okumurari2/maku",
    "ref": "maku-v1.0",
    "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
    "path": "firmware/src/seq.c",
    "lines": "1090-1096",
    "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L1090-L1096"
   },
   {
    "kind": "source",
    "repo": "okumurari2/maku",
    "ref": "maku-v1.0",
    "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
    "path": "firmware/src/storage.c",
    "lines": "62-72",
    "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/storage.c#L62-L72"
   },
   {
    "kind": "source",
    "repo": "okumurari2/maku",
    "ref": "maku-v1.0",
    "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
    "path": "firmware/src/storage.c",
    "lines": "164-206",
    "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/storage.c#L164-L206"
   },
   {
    "kind": "source",
    "repo": "okumurari2/maku",
    "ref": "maku-v1.0",
    "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
    "path": "firmware/src/up_fm6.c",
    "lines": "136-145",
    "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/up_fm6.c#L136-L145"
   },
   {
    "kind": "source",
    "repo": "okumurari2/maku",
    "ref": "maku-v1.0",
    "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
    "path": "firmware/src/settings_persist.c",
    "lines": "21-75",
    "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/settings_persist.c#L21-L75"
   },
   {
    "kind": "source",
    "repo": "okumurari2/maku",
    "ref": "maku-v1.0",
    "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
    "path": "firmware/src/ui.c",
    "lines": "59-73",
    "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L59-L73"
   },
   {
    "kind": "source",
    "repo": "okumurari2/maku",
    "ref": "maku-v1.0",
    "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
    "path": "firmware/src/seq.c",
    "lines": "1111-1118",
    "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L1111-L1118"
   },
   {
    "kind": "source",
    "repo": "okumurari2/maku",
    "ref": "maku-v1.0",
    "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
    "path": "firmware/src/click.c",
    "lines": "3-15",
    "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/click.c#L3-L15"
   },
   {
    "kind": "source",
    "repo": "okumurari2/maku",
    "ref": "maku-v1.0",
    "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
    "path": "firmware/loader/ldr_core.c",
    "lines": "108-165",
    "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/loader/ldr_core.c#L108-L165"
   },
   {
    "kind": "source",
    "repo": "hugelton/Felucca",
    "ref": "v1.6.1",
    "commit": "a53ecf428c29c780108fd70a31b71a32a6b5c313",
    "path": "firmware/src/storage.c",
    "lines": "65-71",
    "url": "https://github.com/hugelton/Felucca/blob/a53ecf428c29c780108fd70a31b71a32a6b5c313/firmware/src/storage.c#L65-L71"
   },
   {
    "kind": "source",
    "repo": "hugelton/Felucca",
    "ref": "v1.6.1",
    "commit": "a53ecf428c29c780108fd70a31b71a32a6b5c313",
    "path": "firmware/src/project.c",
    "lines": "1352-1375",
    "url": "https://github.com/hugelton/Felucca/blob/a53ecf428c29c780108fd70a31b71a32a6b5c313/firmware/src/project.c#L1352-L1375"
   },
   {
    "kind": "source",
    "repo": "hugelton/Felucca",
    "ref": "v1.6.1",
    "commit": "a53ecf428c29c780108fd70a31b71a32a6b5c313",
    "path": "firmware/src/main.c",
    "lines": "307-309",
    "url": "https://github.com/hugelton/Felucca/blob/a53ecf428c29c780108fd70a31b71a32a6b5c313/firmware/src/main.c#L307-L309"
   }
  ],
  "switching_table_status": "See the switching advice in this section. Back up with the firmware that made the work BEFORE installing or first starting MAKU; do not wait for a save prompt.",
  "install_overwrites": "Installing MAKU through the open installer can replace M-VAVE Open’s sixteen USER projects, device preferences and its sample header before the first start, without asking, leaving the whole sample bank unreadable. The same install can also leave PIGEON’s whole sample bank unreadable if that bank reaches the program area. See the switching advice in this section for the affected saved work.",
  "startup_overwrites": "At every start MAKU checks its update area and, if either checked location contains data, erases that area without a question. See the switching advice in this section for the affected saved work. Back up in the firmware that created the work before the first MAKU start.",
  "first_rec_overwrites": "See the switching advice in this section for the affected saved work. The first REC save or clear can replace one saved copy of other firmwares’ work, and later REC writes can replace the other copy; MAKU does not autosave the running world.",
  "calibration_overwrites": "Power-on calibration can write without a question, even after cancellation if the settings differ. See the switching advice in this section for the affected saved work. Calibration started in MAKU's menu is temporary and does not make this flash write.",
  "conditional_startup_overwrites": "If an older FM6 bank survives but no usable newer companion does, MAKU can convert it at startup without a question. See the switching advice in this section for the affected saved work. With no stored newer companion that passes storage checks, conversion writes opposite the newest old-bank copy and keeps that source. If a stored newer companion passes those checks but its contents are unusable, the conversion can instead overwrite the old bank.",
  "editor_and_returning": "MAKU has no working editor send, import or restore path, and its running world is not autosaved. See the switching advice in this section for the affected saved work. Do not treat a firmware update as a backup.",
  "imported_settings": "MAKU reads compatible saved settings from Felucca, JIANT, GHOULBOX and Skiff, including the click preference. If CLICK was ON, the metronome runs with MAKU's continuous playback; turn AUDIO > CLICK OFF to silence it for this session, because menu edits are not stored.",
  "consequence_grade": "inferred from the source-defined MAKU writes and the checked foreign storage layouts; not tested on a unit",
  "layout_basis": [
   "flash-atlas/atlas.json: conventions, objects, install_and_startup_writes, reads_foreign",
   "refresh/work/fm106.storage.json",
   "refresh/work/hortator.storage.json",
   "refresh/work/obervave.storage.json",
   "refresh/work/polly.storage.json",
   "refresh/work/skiff.storage.json"
  ],
  "overwrites_previous": [
   {
    "from": "stock",
    "name": "Stock V15",
    "flags": "?",
    "weakest_grade": "reported",
    "at_risk": [],
    "possibly_at_risk": [
     "stock settings (and possibly patterns)"
    ],
    "carried_over": [],
    "kept_unseen": [],
    "notes": [],
    "owner_text": "Possibly at risk (layout reported or inferred): stock settings (and possibly patterns).",
    "source": "flash-atlas derived/matrix.json (generated by apply_to_maps.py; do not edit by hand)"
   },
   {
    "from": "baudgirl",
    "name": "Baud Girl FM-1+VA",
    "flags": "?",
    "weakest_grade": "inferred",
    "at_risk": [],
    "possibly_at_risk": [
     "Baud Girl presets (128)",
     "Baud Girl patterns (16, with locks)"
    ],
    "carried_over": [],
    "kept_unseen": [],
    "notes": [],
    "owner_text": "Possibly at risk (layout reported or inferred): Baud Girl presets (128); Baud Girl patterns (16, with locks).",
    "source": "flash-atlas derived/matrix.json (generated by apply_to_maps.py; do not edit by hand)"
   },
   {
    "from": "felucca",
    "name": "Felucca",
    "flags": "SK",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "the autosave (the music as you left it)",
      "effect": "lost",
      "ways": [
       {
        "way": "when you hold REC for about two seconds to clear every like (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you tap REC to like the current world (without asking)",
        "effect": "lost"
       }
      ]
     }
    ],
    "possibly_at_risk": [],
    "carried_over": [
     "FM6 patches of the FM6 user presets",
     "settings, button calibration, favourites, MIDI LEARN map"
    ],
    "kept_unseen": [],
    "notes": [],
    "owner_text": "At risk when you act: the autosave (the music as you left it). Carried over: FM6 patches of the FM6 user presets; settings, button calibration, favourites, MIDI LEARN map.",
    "source": "flash-atlas derived/matrix.json (generated by apply_to_maps.py; do not edit by hand)"
   },
   {
    "from": "sloop",
    "name": "SLOOP",
    "flags": "CS",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "the music in progress (autosave)",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically, only if a valid older FM6 bank is still stored and no valid set of FM6 patches for your sounds is stored",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "FM6 patch bank B1-B27",
      "effect": "lost",
      "ways": [
       {
        "way": "when you hold REC for about two seconds to clear every like (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you tap REC to like the current world (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "settings, calibration, song order, SYN1-4 kits, MIDI LEARN, theme and favourites",
      "effect": "lost",
      "ways": [
       {
        "way": "when you hold OCT- and OCT+ while powering on (without asking)",
        "effect": "lost"
       }
      ]
     }
    ],
    "possibly_at_risk": [],
    "carried_over": [],
    "kept_unseen": [],
    "notes": [],
    "owner_text": "At risk by itself, under a condition: the music in progress (autosave). At risk when you act: FM6 patch bank B1-B27; settings, calibration, song order, SYN1-4 kits, MIDI LEARN, theme and favourites.",
    "source": "flash-atlas derived/matrix.json (generated by apply_to_maps.py; do not edit by hand)"
   },
   {
    "from": "x0x",
    "name": "X0X",
    "flags": "S",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "the whole X0X project (settings, sound, all 32 patterns, song, knob motion)",
      "effect": "lost",
      "ways": [
       {
        "way": "when you hold OCT- and OCT+ while powering on (without asking)",
        "effect": "lost"
       }
      ]
     }
    ],
    "possibly_at_risk": [],
    "carried_over": [],
    "kept_unseen": [],
    "notes": [],
    "owner_text": "At risk when you act: the whole X0X project (settings, sound, all 32 patterns, song, knob motion).",
    "source": "flash-atlas derived/matrix.json (generated by apply_to_maps.py; do not edit by hand)"
   },
   {
    "from": "jiant",
    "name": "JIANT",
    "flags": "SK",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "music in progress (RESTORE LAST)",
      "effect": "lost",
      "ways": [
       {
        "way": "when you hold REC for about two seconds to clear every like (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you tap REC to like the current world (without asking)",
        "effect": "lost"
       }
      ]
     }
    ],
    "possibly_at_risk": [],
    "carried_over": [
     "FM6 patches for the FM6 user sounds",
     "settings, calibration, favourites, MENU options"
    ],
    "kept_unseen": [],
    "notes": [],
    "owner_text": "At risk when you act: music in progress (RESTORE LAST). Carried over: FM6 patches for the FM6 user sounds; settings, calibration, favourites, MENU options.",
    "source": "flash-atlas derived/matrix.json (generated by apply_to_maps.py; do not edit by hand)"
   },
   {
    "from": "melodee",
    "name": "Melodee",
    "flags": "CS",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "shared user presets U109-U126",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically, only if a valid older FM6 bank is still stored and no valid set of FM6 patches for your sounds is stored",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "shared user presets U037-U054",
      "effect": "lost",
      "ways": [
       {
        "way": "when you hold REC for about two seconds to clear every like (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you tap REC to like the current world (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "settings, factory favourites, calibration, saved template",
      "effect": "lost",
      "ways": [
       {
        "way": "when you hold OCT- and OCT+ while powering on (without asking)",
        "effect": "lost"
       }
      ]
     }
    ],
    "possibly_at_risk": [],
    "carried_over": [],
    "kept_unseen": [],
    "notes": [],
    "owner_text": "At risk by itself, under a condition: shared user presets U109-U126. At risk when you act: shared user presets U037-U054; settings, factory favourites, calibration, saved template.",
    "source": "flash-atlas derived/matrix.json (generated by apply_to_maps.py; do not edit by hand)"
   },
   {
    "from": "fomni",
    "name": "FoMni",
    "flags": "S",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "FoMni setup (pages, chord buttons, lights)",
      "effect": "lost",
      "ways": [
       {
        "way": "when you hold OCT- and OCT+ while powering on (without asking)",
        "effect": "lost"
       }
      ]
     }
    ],
    "possibly_at_risk": [],
    "carried_over": [],
    "kept_unseen": [],
    "notes": [],
    "owner_text": "At risk when you act: FoMni setup (pages, chord buttons, lights).",
    "source": "flash-atlas derived/matrix.json (generated by apply_to_maps.py; do not edit by hand)"
   },
   {
    "from": "amb",
    "name": "AMB-1",
    "flags": "S",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "AMB-1 pieces and setup",
      "effect": "lost",
      "ways": [
       {
        "way": "when you hold OCT- and OCT+ while powering on (without asking)",
        "effect": "lost"
       }
      ]
     }
    ],
    "possibly_at_risk": [],
    "carried_over": [],
    "kept_unseen": [],
    "notes": [],
    "owner_text": "At risk when you act: AMB-1 pieces and setup.",
    "source": "flash-atlas derived/matrix.json (generated by apply_to_maps.py; do not edit by hand)"
   },
   {
    "from": "choralroot",
    "name": "ChoralRoot",
    "flags": "CS",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "32 imported DX7 voices",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically, only if a valid older FM6 bank is still stored and no valid set of FM6 patches for your sounds is stored",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "options, playing setup and panel calibration",
      "effect": "lost",
      "ways": [
       {
        "way": "when you hold OCT- and OCT+ while powering on (without asking)",
        "effect": "lost"
       }
      ]
     }
    ],
    "possibly_at_risk": [],
    "carried_over": [],
    "kept_unseen": [],
    "notes": [],
    "owner_text": "At risk by itself, under a condition: 32 imported DX7 voices. At risk when you act: options, playing setup and panel calibration.",
    "source": "flash-atlas derived/matrix.json (generated by apply_to_maps.py; do not edit by hand)"
   },
   {
    "from": "ghoulbox",
    "name": "GHOULBOX",
    "flags": "SK",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "music in progress (RESTORE LAST)",
      "effect": "lost",
      "ways": [
       {
        "way": "when you hold REC for about two seconds to clear every like (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you tap REC to like the current world (without asking)",
        "effect": "lost"
       }
      ]
     }
    ],
    "possibly_at_risk": [],
    "carried_over": [
     "FM6 patches for user sounds",
     "settings and panel calibration"
    ],
    "kept_unseen": [],
    "notes": [],
    "owner_text": "At risk when you act: music in progress (RESTORE LAST). Carried over: FM6 patches for user sounds; settings and panel calibration.",
    "source": "flash-atlas derived/matrix.json (generated by apply_to_maps.py; do not edit by hand)"
   },
   {
    "from": "mvaveopen",
    "name": "M-VAVE FM-1 Open",
    "flags": "CS",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "Open shared sample audio",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically, only if a valid older FM6 bank is still stored and no valid set of FM6 patches for your sounds is stored",
        "effect": "lost"
       },
       {
        "way": "automatically, only if anything is stored where it checks for update data",
        "effect": "lost"
       },
       {
        "way": "when you hold OCT- and OCT+ while powering on (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you hold REC for about two seconds to clear every like (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you install MAKU",
        "effect": "lost"
       },
       {
        "way": "when you start a firmware update from the installer",
        "effect": "lost"
       },
       {
        "way": "when you tap REC to like the current world (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "Open USER project 1",
      "effect": "lost",
      "ways": [
       {
        "way": "when you install MAKU",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "Open USER project 2",
      "effect": "lost",
      "ways": [
       {
        "way": "when you install MAKU",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "Open USER project 3",
      "effect": "lost",
      "ways": [
       {
        "way": "when you install MAKU",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "Open USER project 4",
      "effect": "lost",
      "ways": [
       {
        "way": "when you install MAKU",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "Open USER project 5",
      "effect": "lost",
      "ways": [
       {
        "way": "when you install MAKU",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "Open USER project 6",
      "effect": "lost",
      "ways": [
       {
        "way": "when you install MAKU",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "Open USER project 7",
      "effect": "lost",
      "ways": [
       {
        "way": "when you install MAKU",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "Open USER project 8",
      "effect": "lost",
      "ways": [
       {
        "way": "when you install MAKU",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "Open USER project 9",
      "effect": "lost",
      "ways": [
       {
        "way": "when you install MAKU",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "Open USER project 10",
      "effect": "lost",
      "ways": [
       {
        "way": "when you install MAKU",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "Open USER project 11",
      "effect": "lost",
      "ways": [
       {
        "way": "when you install MAKU",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "Open USER project 12",
      "effect": "lost",
      "ways": [
       {
        "way": "when you install MAKU",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "Open USER project 13",
      "effect": "lost",
      "ways": [
       {
        "way": "when you install MAKU",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "Open USER project 14",
      "effect": "lost",
      "ways": [
       {
        "way": "when you install MAKU",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "Open USER project 15",
      "effect": "lost",
      "ways": [
       {
        "way": "when you install MAKU",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "Open USER project 16",
      "effect": "lost",
      "ways": [
       {
        "way": "when you install MAKU",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "Open device preferences",
      "effect": "lost",
      "ways": [
       {
        "way": "when you install MAKU",
        "effect": "lost"
       }
      ]
     }
    ],
    "possibly_at_risk": [],
    "carried_over": [],
    "kept_unseen": [],
    "notes": [],
    "owner_text": "At risk by itself, under a condition: Open shared sample audio. At risk when you act: Open USER project 1; Open USER project 2; Open USER project 3; Open USER project 4; Open USER project 5; Open USER project 6; Open USER project 7; Open USER project 8; Open USER project 9; Open USER project 10; Open USER project 11; Open USER project 12; Open USER project 13; Open USER project 14; Open USER project 15; Open USER project 16; Open device preferences.",
    "source": "flash-atlas derived/matrix.json (generated by apply_to_maps.py; do not edit by hand)"
   },
   {
    "from": "fm106",
    "name": "FM-106",
    "flags": "S",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "octave, last selected preset and MIDI preferences",
      "effect": "lost",
      "ways": [
       {
        "way": "when you hold OCT- and OCT+ while powering on (without asking)",
        "effect": "lost"
       }
      ]
     }
    ],
    "possibly_at_risk": [],
    "carried_over": [],
    "kept_unseen": [],
    "notes": [],
    "owner_text": "At risk when you act: octave, last selected preset and MIDI preferences.",
    "source": "flash-atlas derived/matrix.json (generated by apply_to_maps.py; do not edit by hand)"
   },
   {
    "from": "hortator",
    "name": "Hortator",
    "flags": "S",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "settings and panel calibration",
      "effect": "lost",
      "ways": [
       {
        "way": "when you hold OCT- and OCT+ while powering on (without asking)",
        "effect": "lost"
       }
      ]
     }
    ],
    "possibly_at_risk": [],
    "carried_over": [],
    "kept_unseen": [],
    "notes": [],
    "owner_text": "At risk when you act: settings and panel calibration.",
    "source": "flash-atlas derived/matrix.json (generated by apply_to_maps.py; do not edit by hand)"
   },
   {
    "from": "obervave",
    "name": "OberVave",
    "flags": "S",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "saved programs and global settings",
      "effect": "lost",
      "ways": [
       {
        "way": "when you hold OCT- and OCT+ while powering on (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "pattern 1",
      "effect": "its B-track sound can change if it uses a saved program; its pattern notes remain",
      "ways": [
       {
        "way": "when you hold OCT- and OCT+ while powering on (without asking) [uses its saved B-track program]",
        "effect": "its B-track sound can change if it uses a saved program; its pattern notes remain"
       }
      ]
     },
     {
      "object": "pattern 2",
      "effect": "its B-track sound can change if it uses a saved program; its pattern notes remain",
      "ways": [
       {
        "way": "when you hold OCT- and OCT+ while powering on (without asking) [uses its saved B-track program]",
        "effect": "its B-track sound can change if it uses a saved program; its pattern notes remain"
       }
      ]
     },
     {
      "object": "pattern 3",
      "effect": "its B-track sound can change if it uses a saved program; its pattern notes remain",
      "ways": [
       {
        "way": "when you hold OCT- and OCT+ while powering on (without asking) [uses its saved B-track program]",
        "effect": "its B-track sound can change if it uses a saved program; its pattern notes remain"
       }
      ]
     },
     {
      "object": "pattern 4",
      "effect": "its B-track sound can change if it uses a saved program; its pattern notes remain",
      "ways": [
       {
        "way": "when you hold OCT- and OCT+ while powering on (without asking) [uses its saved B-track program]",
        "effect": "its B-track sound can change if it uses a saved program; its pattern notes remain"
       }
      ]
     },
     {
      "object": "pattern 5",
      "effect": "its B-track sound can change if it uses a saved program; its pattern notes remain",
      "ways": [
       {
        "way": "when you hold OCT- and OCT+ while powering on (without asking) [uses its saved B-track program]",
        "effect": "its B-track sound can change if it uses a saved program; its pattern notes remain"
       }
      ]
     },
     {
      "object": "pattern 6",
      "effect": "its B-track sound can change if it uses a saved program; its pattern notes remain",
      "ways": [
       {
        "way": "when you hold OCT- and OCT+ while powering on (without asking) [uses its saved B-track program]",
        "effect": "its B-track sound can change if it uses a saved program; its pattern notes remain"
       }
      ]
     },
     {
      "object": "pattern 7",
      "effect": "its B-track sound can change if it uses a saved program; its pattern notes remain",
      "ways": [
       {
        "way": "when you hold OCT- and OCT+ while powering on (without asking) [uses its saved B-track program]",
        "effect": "its B-track sound can change if it uses a saved program; its pattern notes remain"
       }
      ]
     },
     {
      "object": "pattern 8",
      "effect": "its B-track sound can change if it uses a saved program; its pattern notes remain",
      "ways": [
       {
        "way": "when you hold OCT- and OCT+ while powering on (without asking) [uses its saved B-track program]",
        "effect": "its B-track sound can change if it uses a saved program; its pattern notes remain"
       }
      ]
     }
    ],
    "possibly_at_risk": [],
    "carried_over": [],
    "kept_unseen": [],
    "notes": [],
    "owner_text": "At risk when you act: saved programs and global settings; pattern 1 (its B-track sound can change if it uses a saved program; its pattern notes remain); pattern 2 (its B-track sound can change if it uses a saved program; its pattern notes remain); pattern 3 (its B-track sound can change if it uses a saved program; its pattern notes remain); pattern 4 (its B-track sound can change if it uses a saved program; its pattern notes remain); pattern 5 (its B-track sound can change if it uses a saved program; its pattern notes remain); pattern 6 (its B-track sound can change if it uses a saved program; its pattern notes remain); pattern 7 (its B-track sound can change if it uses a saved program; its pattern notes remain); pattern 8 (its B-track sound can change if it uses a saved program; its pattern notes remain).",
    "source": "flash-atlas derived/matrix.json (generated by apply_to_maps.py; do not edit by hand)"
   },
   {
    "from": "polly",
    "name": "Polly",
    "flags": "CS",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "Polly shared memory 4",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically, only if a valid older FM6 bank is still stored and no valid set of FM6 patches for your sounds is stored",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "Optional QY70 style bank",
      "effect": "damaged (part written over)",
      "ways": [
       {
        "way": "when you hold REC for about two seconds to clear every like (without asking)",
        "effect": "damaged (part written over)"
       },
       {
        "way": "when you tap REC to like the current world (without asking)",
        "effect": "damaged (part written over)"
       }
      ]
     },
     {
      "object": "Polly setup and channel sounds",
      "effect": "lost",
      "ways": [
       {
        "way": "when you hold OCT- and OCT+ while powering on (without asking)",
        "effect": "lost"
       }
      ]
     }
    ],
    "possibly_at_risk": [],
    "carried_over": [],
    "kept_unseen": [],
    "notes": [],
    "owner_text": "At risk by itself, under a condition: Polly shared memory 4. At risk when you act: Optional QY70 style bank (damaged (part written over)); Polly setup and channel sounds.",
    "source": "flash-atlas derived/matrix.json (generated by apply_to_maps.py; do not edit by hand)"
   },
   {
    "from": "skiff",
    "name": "Skiff",
    "flags": "SK",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "last session",
      "effect": "lost",
      "ways": [
       {
        "way": "when you hold REC for about two seconds to clear every like (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you tap REC to like the current world (without asking)",
        "effect": "lost"
       }
      ]
     }
    ],
    "possibly_at_risk": [],
    "carried_over": [
     "user sounds’ own FM6 patches",
     "settings, calibration and favourites"
    ],
    "kept_unseen": [],
    "notes": [],
    "owner_text": "At risk when you act: last session. Carried over: user sounds’ own FM6 patches; settings, calibration and favourites.",
    "source": "flash-atlas derived/matrix.json (generated by apply_to_maps.py; do not edit by hand)"
   },
   {
    "from": "sloopdx",
    "name": "sloopDX",
    "flags": "CS",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "working loop",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically, only if a valid older FM6 bank is still stored and no valid set of FM6 patches for your sounds is stored",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "settings, calibration, song order, MIDI, theme and favourites",
      "effect": "lost",
      "ways": [
       {
        "way": "when you hold OCT- and OCT+ while powering on (without asking)",
        "effect": "lost"
       }
      ]
     }
    ],
    "possibly_at_risk": [],
    "carried_over": [],
    "kept_unseen": [],
    "notes": [],
    "owner_text": "At risk by itself, under a condition: working loop. At risk when you act: settings, calibration, song order, MIDI, theme and favourites.",
    "source": "flash-atlas derived/matrix.json (generated by apply_to_maps.py; do not edit by hand)"
   },
   {
    "from": "rainbow",
    "name": "Rainbow Mode",
    "flags": "CSK",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "your old FM6 bank (B1–B27)",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically, only if a valid older FM6 bank is still stored and no valid set of FM6 patches for your sounds is stored",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "the last session in the full version of Felucca",
      "effect": "lost",
      "ways": [
       {
        "way": "when you hold REC for about two seconds to clear every like (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you tap REC to like the current world (without asking)",
        "effect": "lost"
       }
      ]
     }
    ],
    "possibly_at_risk": [],
    "carried_over": [
     "the FM6 patches used by the thirty-two user sounds",
     "Felucca preferences, calibration and favourites; Rainbow WRITE song, greeting name, hat, volume limit and look-alikes"
    ],
    "kept_unseen": [],
    "notes": [],
    "owner_text": "At risk by itself, under a condition: your old FM6 bank (B1–B27). At risk when you act: the last session in the full version of Felucca. Carried over: the FM6 patches used by the thirty-two user sounds; Felucca preferences, calibration and favourites; Rainbow WRITE song, greeting name, hat, volume limit and look-alikes.",
    "source": "flash-atlas derived/matrix.json (generated by apply_to_maps.py; do not edit by hand)"
   },
   {
    "from": "duell",
    "name": "DUELL beta",
    "flags": "CS",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "saved patches",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically, only if a valid older FM6 bank is still stored and no valid set of FM6 patches for your sounds is stored",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "last working music",
      "effect": "lost",
      "ways": [
       {
        "way": "when you hold REC for about two seconds to clear every like (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you tap REC to like the current world (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "settings and panel setup",
      "effect": "lost",
      "ways": [
       {
        "way": "when you hold OCT- and OCT+ while powering on (without asking)",
        "effect": "lost"
       }
      ]
     }
    ],
    "possibly_at_risk": [],
    "carried_over": [],
    "kept_unseen": [],
    "notes": [],
    "owner_text": "At risk by itself, under a condition: saved patches. At risk when you act: last working music; settings and panel setup.",
    "source": "flash-atlas derived/matrix.json (generated by apply_to_maps.py; do not edit by hand)"
   },
   {
    "from": "fimba",
    "name": "FiMba-1 beta",
    "flags": "S",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "FiMba-1 beta sound and playing setup",
      "effect": "lost",
      "ways": [
       {
        "way": "when you hold OCT- and OCT+ while powering on (without asking)",
        "effect": "lost"
       }
      ]
     }
    ],
    "possibly_at_risk": [],
    "carried_over": [],
    "kept_unseen": [],
    "notes": [],
    "owner_text": "At risk when you act: FiMba-1 beta sound and playing setup.",
    "source": "flash-atlas derived/matrix.json (generated by apply_to_maps.py; do not edit by hand)"
   },
   {
    "from": "fart",
    "name": "Fart Machine One",
    "flags": "-",
    "weakest_grade": null,
    "at_risk": [],
    "possibly_at_risk": [],
    "carried_over": [],
    "kept_unseen": [],
    "notes": [],
    "owner_text": "Nothing shared.",
    "source": "flash-atlas derived/matrix.json (generated by apply_to_maps.py; do not edit by hand)"
   },
   {
    "from": "chord",
    "name": "fm1-chord",
    "flags": "CS",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "FM6 bank B1-B27",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically, only if a valid older FM6 bank is still stored and no valid set of FM6 patches for your sounds is stored",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "settings, panel calibration, four chord preset setups and the current chord setup",
      "effect": "lost",
      "ways": [
       {
        "way": "when you hold OCT- and OCT+ while powering on (without asking)",
        "effect": "lost"
       }
      ]
     }
    ],
    "possibly_at_risk": [],
    "carried_over": [],
    "kept_unseen": [],
    "notes": [],
    "owner_text": "At risk by itself, under a condition: FM6 bank B1-B27. At risk when you act: settings, panel calibration, four chord preset setups and the current chord setup.",
    "source": "flash-atlas derived/matrix.json (generated by apply_to_maps.py; do not edit by hand)"
   },
   {
    "from": "sloopbanks",
    "name": "SLOOP DX7 Banks",
    "flags": "CS",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "working loop",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically, only if a valid older FM6 bank is still stored and no valid set of FM6 patches for your sounds is stored",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "FM6 patches B1–B27",
      "effect": "lost",
      "ways": [
       {
        "way": "when you hold REC for about two seconds to clear every like (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you tap REC to like the current world (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "settings, calibration, song order, synthesized drum kits and DX-bank setup",
      "effect": "lost",
      "ways": [
       {
        "way": "when you hold OCT- and OCT+ while powering on (without asking)",
        "effect": "lost"
       }
      ]
     }
    ],
    "possibly_at_risk": [],
    "carried_over": [],
    "kept_unseen": [],
    "notes": [
     "After MAKU replaces DX7 Banks’ saved settings, returning to DX7 Banks erases DX banks 1–8 at its first start without asking, including your own banks 5–8. Back up your DX banks before switching."
    ],
    "owner_text": "At risk by itself, under a condition: working loop. At risk when you act: FM6 patches B1–B27; settings, calibration, song order, synthesized drum kits and DX-bank setup. After MAKU replaces DX7 Banks’ saved settings, returning to DX7 Banks erases DX banks 1–8 at its first start without asking, including your own banks 5–8. Back up your DX banks before switching.",
    "source": "flash-atlas derived/matrix.json (generated by apply_to_maps.py; do not edit by hand)"
   },
   {
    "from": "fumi",
    "name": "FuMi-1",
    "flags": "S",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "FuMi-1 sound and playing setup",
      "effect": "lost",
      "ways": [
       {
        "way": "when you hold OCT- and OCT+ while powering on (without asking)",
        "effect": "lost"
       }
      ]
     }
    ],
    "possibly_at_risk": [],
    "carried_over": [],
    "kept_unseen": [],
    "notes": [],
    "owner_text": "At risk when you act: FuMi-1 sound and playing setup.",
    "source": "flash-atlas derived/matrix.json (generated by apply_to_maps.py; do not edit by hand)"
   },
   {
    "from": "jangada",
    "name": "Jangada",
    "flags": "CS",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "working music (autosave)",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically, only if a valid older FM6 bank is still stored and no valid set of FM6 patches for your sounds is stored",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "FM6 voices B1-B16",
      "effect": "lost",
      "ways": [
       {
        "way": "when you hold REC for about two seconds to clear every like (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you tap REC to like the current world (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "preferences, calibration and MIDI LEARN map",
      "effect": "lost",
      "ways": [
       {
        "way": "when you hold OCT- and OCT+ while powering on (without asking)",
        "effect": "lost"
       }
      ]
     }
    ],
    "possibly_at_risk": [],
    "carried_over": [],
    "kept_unseen": [],
    "notes": [],
    "owner_text": "At risk by itself, under a condition: working music (autosave). At risk when you act: FM6 voices B1-B16; preferences, calibration and MIDI LEARN map.",
    "source": "flash-atlas derived/matrix.json (generated by apply_to_maps.py; do not edit by hand)"
   },
   {
    "from": "waveloop",
    "name": "WaveLoop FM-1",
    "flags": "K",
    "weakest_grade": "read-in-source",
    "at_risk": [],
    "possibly_at_risk": [],
    "carried_over": [
     "FM6 patches and controls for each drum in user sounds",
     "settings, calibration and favourites"
    ],
    "kept_unseen": [],
    "notes": [],
    "owner_text": "Carried over: FM6 patches and controls for each drum in user sounds; settings, calibration and favourites.",
    "source": "flash-atlas derived/matrix.json (generated by apply_to_maps.py; do not edit by hand)"
   },
   {
    "from": "orbit",
    "name": "ORBIT",
    "flags": "CS",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "working music kept by autosave",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically, only if a valid older FM6 bank is still stored and no valid set of FM6 patches for your sounds is stored",
        "effect": "lost"
       },
       {
        "way": "when you hold OCT- and OCT+ while powering on (without asking) [uses its separate samples or sound setup]",
        "effect": "sounds can change or stop playing when separate samples, FM6 patches or SYN kits are replaced; saved notes and sound settings remain"
       },
       {
        "way": "when you hold REC for about two seconds to clear every like (without asking) [uses its separate samples or sound setup]",
        "effect": "sounds can change or stop playing when separate samples, FM6 patches or SYN kits are replaced; saved notes and sound settings remain"
       },
       {
        "way": "when you tap REC to like the current world (without asking) [uses its separate samples or sound setup]",
        "effect": "sounds can change or stop playing when separate samples, FM6 patches or SYN kits are replaced; saved notes and sound settings remain"
       }
      ]
     },
     {
      "object": "FM6 bank B1-B27",
      "effect": "lost",
      "ways": [
       {
        "way": "when you hold REC for about two seconds to clear every like (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you tap REC to like the current world (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "settings, calibration, song order, SYN1-SYN4 kits and MIDI preferences",
      "effect": "lost",
      "ways": [
       {
        "way": "when you hold OCT- and OCT+ while powering on (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "saved section A",
      "effect": "sounds can change or stop playing when separate samples, FM6 patches or SYN kits are replaced; saved notes and sound settings remain",
      "ways": [
       {
        "way": "when you hold OCT- and OCT+ while powering on (without asking) [uses its separate samples or sound setup]",
        "effect": "sounds can change or stop playing when separate samples, FM6 patches or SYN kits are replaced; saved notes and sound settings remain"
       },
       {
        "way": "when you hold REC for about two seconds to clear every like (without asking) [uses its separate samples or sound setup]",
        "effect": "sounds can change or stop playing when separate samples, FM6 patches or SYN kits are replaced; saved notes and sound settings remain"
       },
       {
        "way": "when you tap REC to like the current world (without asking) [uses its separate samples or sound setup]",
        "effect": "sounds can change or stop playing when separate samples, FM6 patches or SYN kits are replaced; saved notes and sound settings remain"
       }
      ]
     },
     {
      "object": "saved section B",
      "effect": "sounds can change or stop playing when separate samples, FM6 patches or SYN kits are replaced; saved notes and sound settings remain",
      "ways": [
       {
        "way": "when you hold OCT- and OCT+ while powering on (without asking) [uses its separate samples or sound setup]",
        "effect": "sounds can change or stop playing when separate samples, FM6 patches or SYN kits are replaced; saved notes and sound settings remain"
       },
       {
        "way": "when you hold REC for about two seconds to clear every like (without asking) [uses its separate samples or sound setup]",
        "effect": "sounds can change or stop playing when separate samples, FM6 patches or SYN kits are replaced; saved notes and sound settings remain"
       },
       {
        "way": "when you tap REC to like the current world (without asking) [uses its separate samples or sound setup]",
        "effect": "sounds can change or stop playing when separate samples, FM6 patches or SYN kits are replaced; saved notes and sound settings remain"
       }
      ]
     },
     {
      "object": "saved section C",
      "effect": "sounds can change or stop playing when separate samples, FM6 patches or SYN kits are replaced; saved notes and sound settings remain",
      "ways": [
       {
        "way": "when you hold OCT- and OCT+ while powering on (without asking) [uses its separate samples or sound setup]",
        "effect": "sounds can change or stop playing when separate samples, FM6 patches or SYN kits are replaced; saved notes and sound settings remain"
       },
       {
        "way": "when you hold REC for about two seconds to clear every like (without asking) [uses its separate samples or sound setup]",
        "effect": "sounds can change or stop playing when separate samples, FM6 patches or SYN kits are replaced; saved notes and sound settings remain"
       },
       {
        "way": "when you tap REC to like the current world (without asking) [uses its separate samples or sound setup]",
        "effect": "sounds can change or stop playing when separate samples, FM6 patches or SYN kits are replaced; saved notes and sound settings remain"
       }
      ]
     },
     {
      "object": "saved section D",
      "effect": "sounds can change or stop playing when separate samples, FM6 patches or SYN kits are replaced; saved notes and sound settings remain",
      "ways": [
       {
        "way": "when you hold OCT- and OCT+ while powering on (without asking) [uses its separate samples or sound setup]",
        "effect": "sounds can change or stop playing when separate samples, FM6 patches or SYN kits are replaced; saved notes and sound settings remain"
       },
       {
        "way": "when you hold REC for about two seconds to clear every like (without asking) [uses its separate samples or sound setup]",
        "effect": "sounds can change or stop playing when separate samples, FM6 patches or SYN kits are replaced; saved notes and sound settings remain"
       },
       {
        "way": "when you tap REC to like the current world (without asking) [uses its separate samples or sound setup]",
        "effect": "sounds can change or stop playing when separate samples, FM6 patches or SYN kits are replaced; saved notes and sound settings remain"
       }
      ]
     },
     {
      "object": "USER sounds U01-U16",
      "effect": "sounds can change or stop playing when separate samples, FM6 patches or SYN kits are replaced; saved notes and sound settings remain",
      "ways": [
       {
        "way": "when you hold REC for about two seconds to clear every like (without asking) [uses its separate samples or sound setup]",
        "effect": "sounds can change or stop playing when separate samples, FM6 patches or SYN kits are replaced; saved notes and sound settings remain"
       },
       {
        "way": "when you tap REC to like the current world (without asking) [uses its separate samples or sound setup]",
        "effect": "sounds can change or stop playing when separate samples, FM6 patches or SYN kits are replaced; saved notes and sound settings remain"
       }
      ]
     },
     {
      "object": "USER sounds U17-U32",
      "effect": "sounds can change or stop playing when separate samples, FM6 patches or SYN kits are replaced; saved notes and sound settings remain",
      "ways": [
       {
        "way": "when you hold REC for about two seconds to clear every like (without asking) [uses its separate samples or sound setup]",
        "effect": "sounds can change or stop playing when separate samples, FM6 patches or SYN kits are replaced; saved notes and sound settings remain"
       },
       {
        "way": "when you tap REC to like the current world (without asking) [uses its separate samples or sound setup]",
        "effect": "sounds can change or stop playing when separate samples, FM6 patches or SYN kits are replaced; saved notes and sound settings remain"
       }
      ]
     }
    ],
    "possibly_at_risk": [],
    "carried_over": [],
    "kept_unseen": [],
    "notes": [],
    "owner_text": "At risk by itself, under a condition: working music kept by autosave. At risk when you act: FM6 bank B1-B27; settings, calibration, song order, SYN1-SYN4 kits and MIDI preferences; saved section A (sounds can change or stop playing when separate samples, FM6 patches or SYN kits are replaced; saved notes and sound settings remain); saved section B (sounds can change or stop playing when separate samples, FM6 patches or SYN kits are replaced; saved notes and sound settings remain); saved section C (sounds can change or stop playing when separate samples, FM6 patches or SYN kits are replaced; saved notes and sound settings remain); saved section D (sounds can change or stop playing when separate samples, FM6 patches or SYN kits are replaced; saved notes and sound settings remain); USER sounds U01-U16 (sounds can change or stop playing when separate samples, FM6 patches or SYN kits are replaced; saved notes and sound settings remain); USER sounds U17-U32 (sounds can change or stop playing when separate samples, FM6 patches or SYN kits are replaced; saved notes and sound settings remain).",
    "source": "flash-atlas derived/matrix.json (generated by apply_to_maps.py; do not edit by hand)"
   },
   {
    "from": "floyd",
    "name": "SLOOP Floyd FM",
    "flags": "CS",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "the working loop kept by autosave",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically, only if a valid older FM6 bank is still stored and no valid set of FM6 patches for your sounds is stored",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "settings, panel calibration and song order",
      "effect": "lost",
      "ways": [
       {
        "way": "when you hold OCT- and OCT+ while powering on (without asking)",
        "effect": "lost"
       }
      ]
     }
    ],
    "possibly_at_risk": [],
    "carried_over": [],
    "kept_unseen": [],
    "notes": [],
    "owner_text": "At risk by itself, under a condition: the working loop kept by autosave. At risk when you act: settings, panel calibration and song order.",
    "source": "flash-atlas derived/matrix.json (generated by apply_to_maps.py; do not edit by hand)"
   },
   {
    "from": "winampfm",
    "name": "winampFM Synth",
    "flags": "CS",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "working music kept by autosave",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically, only if a valid older FM6 bank is still stored and no valid set of FM6 patches for your sounds is stored",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "FM6 bank B1-B27",
      "effect": "lost",
      "ways": [
       {
        "way": "when you hold REC for about two seconds to clear every like (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you tap REC to like the current world (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "settings, panel calibration, song order, SYN kits and MIDI",
      "effect": "lost",
      "ways": [
       {
        "way": "when you hold OCT- and OCT+ while powering on (without asking)",
        "effect": "lost"
       }
      ]
     }
    ],
    "possibly_at_risk": [],
    "carried_over": [],
    "kept_unseen": [],
    "notes": [],
    "owner_text": "At risk by itself, under a condition: working music kept by autosave. At risk when you act: FM6 bank B1-B27; settings, panel calibration, song order, SYN kits and MIDI.",
    "source": "flash-atlas derived/matrix.json (generated by apply_to_maps.py; do not edit by hand)"
   },
   {
    "from": "bubba",
    "name": "Bubba Machine (beta)",
    "flags": "C",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "sixteen six-track patterns",
      "effect": "some or all lost",
      "ways": [
       {
        "way": "automatically, only if a valid older FM6 bank is still stored and no valid set of FM6 patches for your sounds is stored",
        "effect": "some or all lost"
       }
      ]
     },
     {
      "object": "song order and four scenes",
      "effect": "some or all lost",
      "ways": [
       {
        "way": "automatically, only if a valid older FM6 bank is still stored and no valid set of FM6 patches for your sounds is stored",
        "effect": "some or all lost"
       }
      ]
     }
    ],
    "possibly_at_risk": [],
    "carried_over": [],
    "kept_unseen": [],
    "notes": [],
    "owner_text": "At risk by itself, under a condition: sixteen six-track patterns (some or all lost); song order and four scenes (some or all lost).",
    "source": "flash-atlas derived/matrix.json (generated by apply_to_maps.py; do not edit by hand)"
   },
   {
    "from": "salt",
    "name": "Felucca [Salt]",
    "flags": "S",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "screen preferences, calibration and favourites",
      "effect": "lost",
      "ways": [
       {
        "way": "when you hold OCT- and OCT+ while powering on (without asking)",
        "effect": "lost"
       }
      ]
     }
    ],
    "possibly_at_risk": [],
    "carried_over": [],
    "kept_unseen": [],
    "notes": [],
    "owner_text": "At risk when you act: screen preferences, calibration and favourites.",
    "source": "flash-atlas derived/matrix.json (generated by apply_to_maps.py; do not edit by hand)"
   },
   {
    "from": "pigeon",
    "name": "PIGEON",
    "flags": "CSK",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "the older FM6 patch bank PIGEON no longer uses",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically, only if a valid older FM6 bank is still stored and no valid set of FM6 patches for your sounds is stored",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "shared song and drum sample bank",
      "effect": "lost",
      "ways": [
       {
        "way": "when you install MAKU",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "last working session",
      "effect": "lost",
      "ways": [
       {
        "way": "when you hold REC for about two seconds to clear every like (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you tap REC to like the current world (without asking)",
        "effect": "lost"
       }
      ]
     }
    ],
    "possibly_at_risk": [],
    "carried_over": [
     "older FM6 patches for user presets",
     "preferences, MIDI LEARN and panel calibration"
    ],
    "kept_unseen": [],
    "notes": [],
    "owner_text": "At risk by itself, under a condition: the older FM6 patch bank PIGEON no longer uses. At risk when you act: shared song and drum sample bank; last working session. Carried over: older FM6 patches for user presets; preferences, MIDI LEARN and panel calibration.",
    "source": "flash-atlas derived/matrix.json (generated by apply_to_maps.py; do not edit by hand)"
   },
   {
    "from": "fm1move",
    "name": "FM1 Move",
    "flags": "S",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "FM6 bank B1–B27",
      "effect": "lost",
      "ways": [
       {
        "way": "when you hold REC for about two seconds to clear every like (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you tap REC to like the current world (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "settings, calibration, SYN kits and stored MIDI mappings",
      "effect": "lost",
      "ways": [
       {
        "way": "when you hold OCT- and OCT+ while powering on (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "project 1",
      "effect": "sounds can change or stop playing when separate samples, FM6 patches or SYN kits are replaced; saved notes and sound settings remain",
      "ways": [
       {
        "way": "when you hold OCT- and OCT+ while powering on (without asking) [uses its separate samples or sound setup]",
        "effect": "sounds can change or stop playing when separate samples, FM6 patches or SYN kits are replaced; saved notes and sound settings remain"
       },
       {
        "way": "when you hold REC for about two seconds to clear every like (without asking) [uses its separate samples or sound setup]",
        "effect": "sounds can change or stop playing when separate samples, FM6 patches or SYN kits are replaced; saved notes and sound settings remain"
       },
       {
        "way": "when you tap REC to like the current world (without asking) [uses its separate samples or sound setup]",
        "effect": "sounds can change or stop playing when separate samples, FM6 patches or SYN kits are replaced; saved notes and sound settings remain"
       }
      ]
     },
     {
      "object": "project 2",
      "effect": "sounds can change or stop playing when separate samples, FM6 patches or SYN kits are replaced; saved notes and sound settings remain",
      "ways": [
       {
        "way": "when you hold OCT- and OCT+ while powering on (without asking) [uses its separate samples or sound setup]",
        "effect": "sounds can change or stop playing when separate samples, FM6 patches or SYN kits are replaced; saved notes and sound settings remain"
       },
       {
        "way": "when you hold REC for about two seconds to clear every like (without asking) [uses its separate samples or sound setup]",
        "effect": "sounds can change or stop playing when separate samples, FM6 patches or SYN kits are replaced; saved notes and sound settings remain"
       },
       {
        "way": "when you tap REC to like the current world (without asking) [uses its separate samples or sound setup]",
        "effect": "sounds can change or stop playing when separate samples, FM6 patches or SYN kits are replaced; saved notes and sound settings remain"
       }
      ]
     },
     {
      "object": "the working project kept by autosave",
      "effect": "sounds can change or stop playing when separate samples, FM6 patches or SYN kits are replaced; saved notes and sound settings remain",
      "ways": [
       {
        "way": "when you hold OCT- and OCT+ while powering on (without asking) [uses its separate samples or sound setup]",
        "effect": "sounds can change or stop playing when separate samples, FM6 patches or SYN kits are replaced; saved notes and sound settings remain"
       },
       {
        "way": "when you hold REC for about two seconds to clear every like (without asking) [uses its separate samples or sound setup]",
        "effect": "sounds can change or stop playing when separate samples, FM6 patches or SYN kits are replaced; saved notes and sound settings remain"
       },
       {
        "way": "when you tap REC to like the current world (without asking) [uses its separate samples or sound setup]",
        "effect": "sounds can change or stop playing when separate samples, FM6 patches or SYN kits are replaced; saved notes and sound settings remain"
       }
      ]
     }
    ],
    "possibly_at_risk": [],
    "carried_over": [],
    "kept_unseen": [],
    "notes": [],
    "owner_text": "At risk when you act: FM6 bank B1–B27; settings, calibration, SYN kits and stored MIDI mappings; project 1 (sounds can change or stop playing when separate samples, FM6 patches or SYN kits are replaced; saved notes and sound settings remain); project 2 (sounds can change or stop playing when separate samples, FM6 patches or SYN kits are replaced; saved notes and sound settings remain); the working project kept by autosave (sounds can change or stop playing when separate samples, FM6 patches or SYN kits are replaced; saved notes and sound settings remain).",
    "source": "flash-atlas derived/matrix.json (generated by apply_to_maps.py; do not edit by hand)"
   },
   {
    "from": "fm1quest",
    "name": "FM1 Quest",
    "flags": "CS",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "working music (autosave)",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically, only if a valid older FM6 bank is still stored and no valid set of FM6 patches for your sounds is stored",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "settings, panel mapping, song order and Quest preferences/progress",
      "effect": "lost",
      "ways": [
       {
        "way": "when you hold OCT- and OCT+ while powering on (without asking)",
        "effect": "lost"
       }
      ]
     }
    ],
    "possibly_at_risk": [],
    "carried_over": [],
    "kept_unseen": [],
    "notes": [],
    "owner_text": "At risk by itself, under a condition: working music (autosave). At risk when you act: settings, panel mapping, song order and Quest preferences/progress.",
    "source": "flash-atlas derived/matrix.json (generated by apply_to_maps.py; do not edit by hand)"
   },
   {
    "from": "grooveos",
    "name": "Groove OS",
    "flags": "?",
    "weakest_grade": null,
    "at_risk": [],
    "possibly_at_risk": [
     "Groove project slot 1",
     "Groove project slot 2",
     "Groove project slot 3",
     "Groove resume autosave",
     "Groove sound bank A",
     "Groove sound bank B",
     "Groove sound bank C",
     "Groove sound bank D",
     "Groove custom drum sounds and kits",
     "Groove device preferences",
     "Groove crash reports"
    ],
    "carried_over": [],
    "kept_unseen": [],
    "notes": [
     "Groove OS does not publish where it saves work or a format this firmware can read. Projects, sounds, samples and settings may be lost when you switch. Export Groove OS projects and user sounds first; we do not know if they will survive."
    ],
    "owner_text": "Possibly at risk (layout reported or inferred): Groove project slot 1; Groove project slot 2; Groove project slot 3; Groove resume autosave; Groove sound bank A; Groove sound bank B; Groove sound bank C; Groove sound bank D; Groove custom drum sounds and kits; Groove device preferences; Groove crash reports. Groove OS does not publish where it saves work or a format this firmware can read. Projects, sounds, samples and settings may be lost when you switch. Export Groove OS projects and user sounds first; we do not know if they will survive.",
    "source": "flash-atlas derived/matrix.json (generated by apply_to_maps.py; do not edit by hand)"
   }
  ],
  "when_you_leave": [
   {
    "to": "stock",
    "name": "Stock V15",
    "flags": "?",
    "weakest_grade": "reported",
    "at_risk": [],
    "possibly_at_risk": [
     "inherited project A",
     "inherited project B",
     "inherited project C",
     "inherited project D",
     "inherited FM6 patches for user presets",
     "inherited user sample 1",
     "inherited user sample 2",
     "inherited user sample 3",
     "inherited user preset bank 1",
     "inherited user preset bank 2",
     "up to sixteen liked worlds"
    ],
    "carried_over": [],
    "kept_unseen": [],
    "notes": [],
    "owner_text": "Possibly at risk (layout reported or inferred): inherited project A; inherited project B; inherited project C; inherited project D; inherited FM6 patches for user presets; inherited user sample 1; inherited user sample 2; inherited user sample 3; inherited user preset bank 1; inherited user preset bank 2; up to sixteen liked worlds.",
    "source": "flash-atlas derived/matrix.json (generated by apply_to_maps.py; do not edit by hand)"
   },
   {
    "to": "baudgirl",
    "name": "Baud Girl FM-1+VA",
    "flags": "?",
    "weakest_grade": "inferred",
    "at_risk": [],
    "possibly_at_risk": [
     "inherited project A",
     "inherited project B",
     "inherited project C",
     "inherited project D",
     "inherited FM6 patches for user presets",
     "inherited user sample 1",
     "inherited user sample 2",
     "inherited user sample 3",
     "inherited user preset bank 1",
     "inherited user preset bank 2",
     "up to sixteen liked worlds"
    ],
    "carried_over": [],
    "kept_unseen": [],
    "notes": [],
    "owner_text": "Possibly at risk (layout reported or inferred): inherited project A; inherited project B; inherited project C; inherited project D; inherited FM6 patches for user presets; inherited user sample 1; inherited user sample 2; inherited user sample 3; inherited user preset bank 1; inherited user preset bank 2; up to sixteen liked worlds.",
    "source": "flash-atlas derived/matrix.json (generated by apply_to_maps.py; do not edit by hand)"
   },
   {
    "to": "felucca",
    "name": "Felucca",
    "flags": "ACSK",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "up to sixteen liked worlds",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use (its RESTORE LAST is on by default)",
        "effect": "lost"
       },
       {
        "way": "when you send an FM6 voice bank with computer commands (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "settings and calibration",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use",
        "effect": "kept: Felucca can read it"
       },
       {
        "way": "automatically, only if beta 2ND CORE is on and a sound calculation fails or takes too long",
        "effect": "kept: Felucca can read it"
       },
       {
        "way": "when you change settings from the editor (without asking)",
        "effect": "kept: Felucca can read it"
       },
       {
        "way": "when you erase a user preset (asks first: press again to confirm)",
        "effect": "kept: Felucca can read it"
       },
       {
        "way": "when you learn MIDI CC assignments (without asking)",
        "effect": "kept: Felucca can read it"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you run hardware calibration (without asking)",
        "effect": "kept: Felucca can read it"
       }
      ]
     },
     {
      "object": "inherited FM6 patches for user presets",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically, only if a compatible older FM6 bank remains and there is no valid current bank of FM6 patches for your sounds",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save an FM6 user sound (does not ask if that slot is empty; writes the whole bank)",
        "effect": "partly lost (only that patch)"
       },
       {
        "way": "when you send an FM6 user sound from the editor (does not ask if that slot is empty; writes the whole bank)",
        "effect": "partly lost (only that patch)"
       },
       {
        "way": "when you store the current FM6 sound from the editor (does not ask if that slot is empty; writes the whole bank)",
        "effect": "partly lost (only that patch)"
       }
      ]
     },
     {
      "object": "inherited project A",
      "effect": "lost",
      "ways": [
       {
        "way": "when you erase a slot (asks first: press again to confirm)",
        "effect": "lost"
       },
       {
        "way": "when you rename a slot (without asking)",
        "effect": "changed to the new format: Saving this project here uses this firmware’s format. The previous firmware may no longer read it. Save a separate backup before changing its format. Playback uses this firmware’s instruments and control meanings. Saved music may sound different even if it opens. MAKU’s insert controls become timing and modulation controls here, so the insert sound changes"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save a project (asks first)",
        "effect": "changed to the new format: Saving this project here uses this firmware’s format. The previous firmware may no longer read it. Save a separate backup before changing its format. Playback uses this firmware’s instruments and control meanings. Saved music may sound different even if it opens. MAKU’s insert controls become timing and modulation controls here, so the insert sound changes"
       },
       {
        "way": "when you save a project from the editor (the computer asks first)",
        "effect": "changed to the new format: Saving this project here uses this firmware’s format. The previous firmware may no longer read it. Save a separate backup before changing its format. Playback uses this firmware’s instruments and control meanings. Saved music may sound different even if it opens. MAKU’s insert controls become timing and modulation controls here, so the insert sound changes"
       }
      ]
     },
     {
      "object": "inherited project B",
      "effect": "lost",
      "ways": [
       {
        "way": "when you erase a slot (asks first: press again to confirm)",
        "effect": "lost"
       },
       {
        "way": "when you rename a slot (without asking)",
        "effect": "changed to the new format: Saving this project here uses this firmware’s format. The previous firmware may no longer read it. Save a separate backup before changing its format. Playback uses this firmware’s instruments and control meanings. Saved music may sound different even if it opens. MAKU’s insert controls become timing and modulation controls here, so the insert sound changes"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save a project (asks first)",
        "effect": "changed to the new format: Saving this project here uses this firmware’s format. The previous firmware may no longer read it. Save a separate backup before changing its format. Playback uses this firmware’s instruments and control meanings. Saved music may sound different even if it opens. MAKU’s insert controls become timing and modulation controls here, so the insert sound changes"
       },
       {
        "way": "when you save a project from the editor (the computer asks first)",
        "effect": "changed to the new format: Saving this project here uses this firmware’s format. The previous firmware may no longer read it. Save a separate backup before changing its format. Playback uses this firmware’s instruments and control meanings. Saved music may sound different even if it opens. MAKU’s insert controls become timing and modulation controls here, so the insert sound changes"
       }
      ]
     },
     {
      "object": "inherited project C",
      "effect": "lost",
      "ways": [
       {
        "way": "when you erase a slot (asks first: press again to confirm)",
        "effect": "lost"
       },
       {
        "way": "when you rename a slot (without asking)",
        "effect": "changed to the new format: Saving this project here uses this firmware’s format. The previous firmware may no longer read it. Save a separate backup before changing its format. Playback uses this firmware’s instruments and control meanings. Saved music may sound different even if it opens. MAKU’s insert controls become timing and modulation controls here, so the insert sound changes"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save a project (asks first)",
        "effect": "changed to the new format: Saving this project here uses this firmware’s format. The previous firmware may no longer read it. Save a separate backup before changing its format. Playback uses this firmware’s instruments and control meanings. Saved music may sound different even if it opens. MAKU’s insert controls become timing and modulation controls here, so the insert sound changes"
       },
       {
        "way": "when you save a project from the editor (the computer asks first)",
        "effect": "changed to the new format: Saving this project here uses this firmware’s format. The previous firmware may no longer read it. Save a separate backup before changing its format. Playback uses this firmware’s instruments and control meanings. Saved music may sound different even if it opens. MAKU’s insert controls become timing and modulation controls here, so the insert sound changes"
       }
      ]
     },
     {
      "object": "inherited project D",
      "effect": "lost",
      "ways": [
       {
        "way": "when you erase a slot (asks first: press again to confirm)",
        "effect": "lost"
       },
       {
        "way": "when you rename a slot (without asking)",
        "effect": "changed to the new format: Saving this project here uses this firmware’s format. The previous firmware may no longer read it. Save a separate backup before changing its format. Playback uses this firmware’s instruments and control meanings. Saved music may sound different even if it opens. MAKU’s insert controls become timing and modulation controls here, so the insert sound changes"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save a project (asks first)",
        "effect": "changed to the new format: Saving this project here uses this firmware’s format. The previous firmware may no longer read it. Save a separate backup before changing its format. Playback uses this firmware’s instruments and control meanings. Saved music may sound different even if it opens. MAKU’s insert controls become timing and modulation controls here, so the insert sound changes"
       },
       {
        "way": "when you save a project from the editor (the computer asks first)",
        "effect": "changed to the new format: Saving this project here uses this firmware’s format. The previous firmware may no longer read it. Save a separate backup before changing its format. Playback uses this firmware’s instruments and control meanings. Saved music may sound different even if it opens. MAKU’s insert controls become timing and modulation controls here, so the insert sound changes"
       }
      ]
     },
     {
      "object": "inherited user sample 1",
      "effect": "lost",
      "ways": [
       {
        "way": "when you change slice positions in SLICE (without asking)",
        "effect": "damaged (part written over)"
       },
       {
        "way": "when you erase a sample from the editor (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you send a sample to the FM-1 from the editor (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you send or erase a sample with the computer tool (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited user sample 2",
      "effect": "lost",
      "ways": [
       {
        "way": "when you change slice positions in SLICE (without asking)",
        "effect": "damaged (part written over)"
       },
       {
        "way": "when you erase a sample from the editor (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you send a sample to the FM-1 from the editor (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you send or erase a sample with the computer tool (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited user sample 3",
      "effect": "lost",
      "ways": [
       {
        "way": "when you change slice positions in SLICE (without asking)",
        "effect": "damaged (part written over)"
       },
       {
        "way": "when you erase a sample from the editor (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you send a sample to the FM-1 from the editor (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you send or erase a sample with the computer tool (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited user preset bank 1",
      "effect": "lost",
      "ways": [
       {
        "way": "when you erase a slot (asks for that slot only: press again to confirm; writes the whole bank)",
        "effect": "partly lost (only that slot)"
       },
       {
        "way": "when you erase a user sound from the editor (the computer asks first for that slot only; writes the whole bank)",
        "effect": "partly lost (only that slot)"
       },
       {
        "way": "when you rename a slot (without asking; writes the whole bank)",
        "effect": "partly lost (only that slot)"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save a user preset (does not ask if that slot is empty; writes the whole bank)",
        "effect": "partly lost (only that slot)"
       },
       {
        "way": "when you send a user sound from the editor (does not ask if that slot is empty; writes the whole bank)",
        "effect": "partly lost (only that slot)"
       },
       {
        "way": "when you store the current sound from the editor (does not ask if that slot is empty; writes the whole bank)",
        "effect": "partly lost (only that slot)"
       }
      ]
     },
     {
      "object": "inherited user preset bank 2",
      "effect": "lost",
      "ways": [
       {
        "way": "when you erase a slot (asks for that slot only: press again to confirm; writes the whole bank)",
        "effect": "partly lost (only that slot)"
       },
       {
        "way": "when you erase a user sound from the editor (the computer asks first for that slot only; writes the whole bank)",
        "effect": "partly lost (only that slot)"
       },
       {
        "way": "when you rename a slot (without asking; writes the whole bank)",
        "effect": "partly lost (only that slot)"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save a user preset (does not ask if that slot is empty; writes the whole bank)",
        "effect": "partly lost (only that slot)"
       },
       {
        "way": "when you send a user sound from the editor (does not ask if that slot is empty; writes the whole bank)",
        "effect": "partly lost (only that slot)"
       },
       {
        "way": "when you store the current sound from the editor (does not ask if that slot is empty; writes the whole bank)",
        "effect": "partly lost (only that slot)"
       }
      ]
     }
    ],
    "possibly_at_risk": [],
    "carried_over": [],
    "kept_unseen": [],
    "notes": [
     "Felucca keeps the saved RESTORE LAST choice. OFF stops automatic saving. ON allows it after edits and a wait with playback stopped, no held keys or buttons and no sound.",
     "Settings kept through MAKU can keep 2ND CORE ON from an earlier Felucca session. If a sound calculation fails or takes too long, Felucca may save settings.",
     "Felucca reads inherited FM6 patches for user presets until you write over the saved data. Changing a sound or its format can make its separate patch unavailable.",
     "Felucca reads inherited user sample 1 until you write over the saved data. Only data in this sample slot is read. Other saved work is separate.",
     "Felucca reads inherited user sample 2 until you write over the saved data. Only data in this sample slot is read. Other saved work is separate.",
     "Felucca reads inherited user sample 3 until you write over the saved data. Only data in this sample slot is read. Other saved work is separate.",
     "Felucca reads inherited user preset bank 1 until you write over the saved data. Only sounds this firmware can read will play. Saving into a slot it cannot read can replace it without an overwrite question. MAKU’s insert controls become timing and modulation controls in Felucca. Earlier firmware ignores them. The insert sound is not kept.",
     "Felucca reads inherited user preset bank 2 until you write over the saved data. Only sounds this firmware can read will play. Saving into a slot it cannot read can replace it without an overwrite question. MAKU’s insert controls become timing and modulation controls in Felucca. Earlier firmware ignores them. The insert sound is not kept.",
     "Felucca reads settings and calibration until you write over the saved data. These firmwares save settings and favourites in the same space. An edit here can change the other firmware’s choices."
    ],
    "owner_text": "At risk by itself: up to sixteen liked worlds; settings and calibration. At risk by itself, under a condition: inherited FM6 patches for user presets. At risk when you act: inherited project A; inherited project B; inherited project C; inherited project D; inherited user sample 1; inherited user sample 2; inherited user sample 3; inherited user preset bank 1; inherited user preset bank 2. Felucca keeps the saved RESTORE LAST choice. OFF stops automatic saving. ON allows it after edits and a wait with playback stopped, no held keys or buttons and no sound. Settings kept through MAKU can keep 2ND CORE ON from an earlier Felucca session. If a sound calculation fails or takes too long, Felucca may save settings. Felucca reads inherited FM6 patches for user presets until you write over the saved data. Changing a sound or its format can make its separate patch unavailable. Felucca reads inherited user sample 1 until you write over the saved data. Only data in this sample slot is read. Other saved work is separate. Felucca reads inherited user sample 2 until you write over the saved data. Only data in this sample slot is read. Other saved work is separate. Felucca reads inherited user sample 3 until you write over the saved data. Only data in this sample slot is read. Other saved work is separate. Felucca reads inherited user preset bank 1 until you write over the saved data. Only sounds this firmware can read will play. Saving into a slot it cannot read can replace it without an overwrite question. MAKU’s insert controls become timing and modulation controls in Felucca. Earlier firmware ignores them. The insert sound is not kept. Felucca reads inherited user preset bank 2 until you write over the saved data. Only sounds this firmware can read will play. Saving into a slot it cannot read can replace it without an overwrite question. MAKU’s insert controls become timing and modulation controls in Felucca. Earlier firmware ignores them. The insert sound is not kept. Felucca reads settings and calibration until you write over the saved data. These firmwares save settings and favourites in the same space. An edit here can change the other firmware’s choices.",
    "source": "flash-atlas derived/matrix.json (generated by apply_to_maps.py; do not edit by hand)"
   },
   {
    "to": "sloop",
    "name": "SLOOP",
    "flags": "ACSK",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "inherited FM6 patches for user presets",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start",
        "effect": "lost"
       },
       {
        "way": "when you load a song file from the editor (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you load a song from the editor LIVE playlist (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you start an update or enter UPDATE MODE",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "settings and calibration",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use",
        "effect": "lost"
       },
       {
        "way": "automatically, only if SLOOP can still read older SLOOP settings with default MIDI controls and older working music whose drum MIDI channel differs from those settings (MAKU’s own settings cannot trigger this update)",
        "effect": "lost"
       },
       {
        "way": "when you calibrate the controls (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you load a song file from the editor (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you load a song from the editor LIVE playlist (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you press REC on the SONG screen to save a section (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save drum kits from the web editor (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save the song order (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you send or remove a theme from the web editor (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you send the song from the web editor (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited project A",
      "effect": "lost",
      "ways": [
       {
        "way": "when you hold SAVE and press white key 5–8 to save a section (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you load a song file from the editor (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you load a song from the editor LIVE playlist (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you press REC on the SONG screen to save a section (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save a project (asks first or waits for you to turn again)",
        "effect": "lost"
       },
       {
        "way": "when you save a project from the editor (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you save a section from the web editor LIVE page (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited project B",
      "effect": "lost",
      "ways": [
       {
        "way": "when you hold SAVE and press white key 5–8 to save a section (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you load a song file from the editor (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you load a song from the editor LIVE playlist (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you press REC on the SONG screen to save a section (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save a project (asks first or waits for you to turn again)",
        "effect": "lost"
       },
       {
        "way": "when you save a project from the editor (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you save a section from the web editor LIVE page (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited project C",
      "effect": "lost",
      "ways": [
       {
        "way": "when you hold SAVE and press white key 5–8 to save a section (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you load a song file from the editor (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you load a song from the editor LIVE playlist (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you press REC on the SONG screen to save a section (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save a project (asks first or waits for you to turn again)",
        "effect": "lost"
       },
       {
        "way": "when you save a project from the editor (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you save a section from the web editor LIVE page (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited project D",
      "effect": "lost",
      "ways": [
       {
        "way": "when you hold SAVE and press white key 5–8 to save a section (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you load a song file from the editor (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you load a song from the editor LIVE playlist (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you press REC on the SONG screen to save a section (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save a project (asks first or waits for you to turn again)",
        "effect": "lost"
       },
       {
        "way": "when you save a project from the editor (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you save a section from the web editor LIVE page (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "up to sixteen liked worlds",
      "effect": "lost",
      "ways": [
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save selected DX7 voices from the editor (the computer asks first about the slots it fills; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you send an FM6 bank patch from the editor (without asking; writes the whole bank)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited user sample 1",
      "effect": "lost",
      "ways": [
       {
        "way": "when you erase a sample from the editor (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you send a sample from the editor (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you send or erase a sample with the computer tool (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited user sample 2",
      "effect": "lost",
      "ways": [
       {
        "way": "when you erase a sample from the editor (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you send a sample from the editor (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you send or erase a sample with the computer tool (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited user sample 3",
      "effect": "lost",
      "ways": [
       {
        "way": "when you erase a sample from the editor (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you send a sample from the editor (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you send or erase a sample with the computer tool (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited user preset bank 1",
      "effect": "lost",
      "ways": [
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save a user sound (asks or waits for you to turn again for that slot only; writes the whole bank)",
        "effect": "partly lost (the slot you save into)"
       },
       {
        "way": "when you save selected DX7 voices from the editor (the computer asks first about the slots it fills; writes the whole bank)",
        "effect": "some or all lost"
       },
       {
        "way": "when you save the current sound from the editor (without asking; writes the whole bank)",
        "effect": "partly lost (the slot you save into)"
       },
       {
        "way": "when you send a user sound from the editor (without asking; writes the whole bank)",
        "effect": "partly lost (the slot you save into)"
       }
      ]
     },
     {
      "object": "inherited user preset bank 2",
      "effect": "lost",
      "ways": [
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save a user sound (asks or waits for you to turn again for that slot only; writes the whole bank)",
        "effect": "partly lost (the slot you save into)"
       },
       {
        "way": "when you save selected DX7 voices from the editor (the computer asks first about the slots it fills; writes the whole bank)",
        "effect": "some or all lost"
       },
       {
        "way": "when you save the current sound from the editor (without asking; writes the whole bank)",
        "effect": "partly lost (the slot you save into)"
       },
       {
        "way": "when you send a user sound from the editor (without asking; writes the whole bank)",
        "effect": "partly lost (the slot you save into)"
       }
      ]
     }
    ],
    "possibly_at_risk": [],
    "carried_over": [],
    "kept_unseen": [],
    "notes": [
     "SLOOP reads inherited user sample 1 until you write over the saved data. Audio loads only if it fits this slot. Sending to or erasing this slot replaces it.",
     "SLOOP reads inherited user sample 2 until you write over the saved data. Audio loads only if it fits this slot. Sending to or erasing this slot replaces it.",
     "SLOOP reads inherited user sample 3 until you write over the saved data. Audio loads only if it fits this slot. Sending to or erasing this slot replaces it.",
     "SLOOP keeps stored but does not show inherited user preset bank 1 until you write over the saved data. Your sounds stay saved but cannot be shown or played. Saving into their slots removes them; saving elsewhere keeps them. Saving on the FM-1 needs another turn of the same control, with no warning that the slot holds a hidden sound.",
     "SLOOP keeps stored but does not show inherited user preset bank 2 until you write over the saved data. Your sounds stay saved but cannot be shown or played. Saving into their slots removes them; saving elsewhere keeps them. Saving on the FM-1 needs another turn of the same control, with no warning that the slot holds a hidden sound."
    ],
    "owner_text": "At risk by itself: inherited FM6 patches for user presets; settings and calibration. At risk when you act: inherited project A; inherited project B; inherited project C; inherited project D; up to sixteen liked worlds; inherited user sample 1; inherited user sample 2; inherited user sample 3; inherited user preset bank 1; inherited user preset bank 2. SLOOP reads inherited user sample 1 until you write over the saved data. Audio loads only if it fits this slot. Sending to or erasing this slot replaces it. SLOOP reads inherited user sample 2 until you write over the saved data. Audio loads only if it fits this slot. Sending to or erasing this slot replaces it. SLOOP reads inherited user sample 3 until you write over the saved data. Audio loads only if it fits this slot. Sending to or erasing this slot replaces it. SLOOP keeps stored but does not show inherited user preset bank 1 until you write over the saved data. Your sounds stay saved but cannot be shown or played. Saving into their slots removes them; saving elsewhere keeps them. Saving on the FM-1 needs another turn of the same control, with no warning that the slot holds a hidden sound. SLOOP keeps stored but does not show inherited user preset bank 2 until you write over the saved data. Your sounds stay saved but cannot be shown or played. Saving into their slots removes them; saving elsewhere keeps them. Saving on the FM-1 needs another turn of the same control, with no warning that the slot holds a hidden sound.",
    "source": "flash-atlas derived/matrix.json (generated by apply_to_maps.py; do not edit by hand)"
   },
   {
    "to": "x0x",
    "name": "X0X",
    "flags": "ACSK",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "inherited project A",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use",
        "effect": "lost"
       },
       {
        "way": "when you back up unsaved project changes over USB (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you press SAVE (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you reset to factory settings (asks first: press the button to confirm)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the computer",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup over USB with the computer question skipped (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited project B",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use",
        "effect": "lost"
       },
       {
        "way": "when you back up unsaved project changes over USB (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you press SAVE (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you reset to factory settings (asks first: press the button to confirm)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the computer",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup over USB with the computer question skipped (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited project C",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use",
        "effect": "lost"
       },
       {
        "way": "when you back up unsaved project changes over USB (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you press SAVE (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you reset to factory settings (asks first: press the button to confirm)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the computer",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup over USB with the computer question skipped (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited project D",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use",
        "effect": "lost"
       },
       {
        "way": "when you back up unsaved project changes over USB (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you press SAVE (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you reset to factory settings (asks first: press the button to confirm)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the computer",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup over USB with the computer question skipped (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited user preset bank 2",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use",
        "effect": "lost"
       },
       {
        "way": "when you back up unsaved project changes over USB (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you press SAVE (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you reset to factory settings (asks first: press the button to confirm)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the computer",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup over USB with the computer question skipped (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "settings and calibration",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use",
        "effect": "lost"
       },
       {
        "way": "automatically, only if X0X crashed while 2ND CORE was on and then restarted without being switched off",
        "effect": "lost"
       },
       {
        "way": "when you back up unsaved project changes over USB (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you press SAVE (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you reset to factory settings (asks first: press the button to confirm)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the computer",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup over USB with the computer question skipped (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited user preset bank 1",
      "effect": "lost",
      "ways": [
       {
        "way": "when you run hardware calibration (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited user sample 1",
      "effect": "lost",
      "ways": [
       {
        "way": "when you upload samples or break loops (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited user sample 2",
      "effect": "lost",
      "ways": [
       {
        "way": "when you upload samples or break loops (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited user sample 3",
      "effect": "lost",
      "ways": [
       {
        "way": "when you upload samples or break loops (without asking)",
        "effect": "lost"
       }
      ]
     }
    ],
    "possibly_at_risk": [],
    "carried_over": [],
    "kept_unseen": [],
    "notes": [
     "After you confirm a restore on the computer, X0X starts erasing before asking again on the FM-1. Saying no keeps X0X’s current project but does not bring back erased data from your previous firmware, even if the computer says nothing changed.",
     "X0X reads inherited user sample 1 until you write over the saved data. Each zone plays as a separate repeating break loop (up to 16 per sample). Key ranges, root notes, loop points and slice markers are not used.",
     "X0X reads inherited user sample 2 until you write over the saved data. Each zone plays as a separate repeating break loop (up to 16 per sample). Key ranges, root notes, loop points and slice markers are not used.",
     "X0X reads inherited user sample 3 until you write over the saved data. Each zone plays as a separate repeating break loop (up to 16 per sample). Key ranges, root notes, loop points and slice markers are not used."
    ],
    "owner_text": "At risk by itself: inherited project A; inherited project B; inherited project C; inherited project D; inherited user preset bank 2; settings and calibration. At risk when you act: inherited user preset bank 1; inherited user sample 1; inherited user sample 2; inherited user sample 3. After you confirm a restore on the computer, X0X starts erasing before asking again on the FM-1. Saying no keeps X0X’s current project but does not bring back erased data from your previous firmware, even if the computer says nothing changed. X0X reads inherited user sample 1 until you write over the saved data. Each zone plays as a separate repeating break loop (up to 16 per sample). Key ranges, root notes, loop points and slice markers are not used. X0X reads inherited user sample 2 until you write over the saved data. Each zone plays as a separate repeating break loop (up to 16 per sample). Key ranges, root notes, loop points and slice markers are not used. X0X reads inherited user sample 3 until you write over the saved data. Each zone plays as a separate repeating break loop (up to 16 per sample). Key ranges, root notes, loop points and slice markers are not used.",
    "source": "flash-atlas derived/matrix.json (generated by apply_to_maps.py; do not edit by hand)"
   },
   {
    "to": "jiant",
    "name": "JIANT",
    "flags": "ACS",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "inherited user sample 3",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use",
        "effect": "damaged (part written over)"
       },
       {
        "way": "when you make a song with several sections using GEN (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save a project (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save a project from the web editor (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you select a song using MIDI PROGRAM CHANGE (without asking)",
        "effect": "damaged (part written over)"
       },
       {
        "way": "when you store a section (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you switch song or project (without asking)",
        "effect": "damaged (part written over)"
       }
      ]
     },
     {
      "object": "settings and calibration",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use",
        "effect": "changed to the new format: A later settings save stores the changed shared choices. If you return to your previous firmware, its preferences can change even though calibration and many settings are kept"
       },
       {
        "way": "automatically, only if the shared preferences it reads still need JIANT’s first-start update",
        "effect": "changed to the new format: A later settings save stores the changed shared choices. If you return to your previous firmware, its preferences can change even though calibration and many settings are kept"
       },
       {
        "way": "when you calibrate the controls (without asking)",
        "effect": "changed to the new format: A later settings save stores the changed shared choices. If you return to your previous firmware, its preferences can change even though calibration and many settings are kept"
       },
       {
        "way": "when you change settings from the web editor (without asking)",
        "effect": "changed to the new format: A later settings save stores the changed shared choices. If you return to your previous firmware, its preferences can change even though calibration and many settings are kept"
       },
       {
        "way": "when you mark a favourite with a star (without asking)",
        "effect": "changed to the new format: A later settings save stores the changed shared choices. If you return to your previous firmware, its preferences can change even though calibration and many settings are kept"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited FM6 patches for user presets",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically, only if no readable bank of FM6 patches for your sounds survives and the older 27-voice FM6 bank is present",
        "effect": "changed to the new format: Saving, erasing or renaming anything in the sound bank saves the changed sounds. They still cannot use their own FM6 patches when you return to your previous firmware. JIANT changes saved sounds when it loads them, so they stop using their own FM6 patches. They use a factory patch or the initial voice instead"
       },
       {
        "way": "when you erase a slot (asks for that slot only: press again to confirm; writes the whole bank) [uses its associated sound bank]",
        "effect": "changed to the new format: Saving, erasing or renaming anything in the sound bank saves the changed sounds. They still cannot use their own FM6 patches when you return to your previous firmware. JIANT changes saved sounds when it loads them, so they stop using their own FM6 patches. They use a factory patch or the initial voice instead"
       },
       {
        "way": "when you erase a user sound from the web editor (the computer asks first for that slot only; writes the whole bank) [uses its associated sound bank]",
        "effect": "changed to the new format: Saving, erasing or renaming anything in the sound bank saves the changed sounds. They still cannot use their own FM6 patches when you return to your previous firmware. JIANT changes saved sounds when it loads them, so they stop using their own FM6 patches. They use a factory patch or the initial voice instead"
       },
       {
        "way": "when you rename a slot (without asking; writes the whole bank) [uses its associated sound bank]",
        "effect": "changed to the new format: Saving, erasing or renaming anything in the sound bank saves the changed sounds. They still cannot use their own FM6 patches when you return to your previous firmware. JIANT changes saved sounds when it loads them, so they stop using their own FM6 patches. They use a factory patch or the initial voice instead"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save a user preset (does not ask if that slot is empty; writes the whole bank) [uses its associated sound bank]",
        "effect": "changed to the new format: Saving, erasing or renaming anything in the sound bank saves the changed sounds. They still cannot use their own FM6 patches when you return to your previous firmware. JIANT changes saved sounds when it loads them, so they stop using their own FM6 patches. They use a factory patch or the initial voice instead"
       },
       {
        "way": "when you save an FM6 user sound (does not ask if that slot is empty; writes the whole bank)",
        "effect": "changed to the new format: Saving, erasing or renaming anything in the sound bank saves the changed sounds. They still cannot use their own FM6 patches when you return to your previous firmware. JIANT changes saved sounds when it loads them, so they stop using their own FM6 patches. They use a factory patch or the initial voice instead"
       },
       {
        "way": "when you send a user sound from the web editor (does not ask if that slot is empty; writes the whole bank) [uses its associated sound bank]",
        "effect": "changed to the new format: Saving, erasing or renaming anything in the sound bank saves the changed sounds. They still cannot use their own FM6 patches when you return to your previous firmware. JIANT changes saved sounds when it loads them, so they stop using their own FM6 patches. They use a factory patch or the initial voice instead"
       },
       {
        "way": "when you send an FM6 user sound from the web editor (does not ask if that slot is empty; writes the whole bank)",
        "effect": "changed to the new format: Saving, erasing or renaming anything in the sound bank saves the changed sounds. They still cannot use their own FM6 patches when you return to your previous firmware. JIANT changes saved sounds when it loads them, so they stop using their own FM6 patches. They use a factory patch or the initial voice instead"
       },
       {
        "way": "when you store the current FM6 sound from the web editor (does not ask if that slot is empty; writes the whole bank)",
        "effect": "changed to the new format: Saving, erasing or renaming anything in the sound bank saves the changed sounds. They still cannot use their own FM6 patches when you return to your previous firmware. JIANT changes saved sounds when it loads them, so they stop using their own FM6 patches. They use a factory patch or the initial voice instead"
       },
       {
        "way": "when you store the current sound from the web editor (does not ask if that slot is empty; writes the whole bank) [uses its associated sound bank]",
        "effect": "changed to the new format: Saving, erasing or renaming anything in the sound bank saves the changed sounds. They still cannot use their own FM6 patches when you return to your previous firmware. JIANT changes saved sounds when it loads them, so they stop using their own FM6 patches. They use a factory patch or the initial voice instead"
       }
      ]
     },
     {
      "object": "up to sixteen liked worlds",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically, only if the shared choices it reads, or your later choice, turn JIANT’s RESTORE LAST on",
        "effect": "lost"
       },
       {
        "way": "when you send an FM6 voice bank from the web editor (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited project A",
      "effect": "lost",
      "ways": [
       {
        "way": "when you make a song with several sections using GEN (without asking)",
        "effect": "changed to the new format: The next project save stores the new format. Your previous firmware may then show the project as empty. It does not try an older saved copy just because it cannot read the newest project’s format. JIANT no longer has SAMPLE, GRAIN, SLICE or PHYS. Those sounds use its initial ANALOG sound, except old drum and percussion sounds, which become DRUM sounds. Imported names and patterns do not mean the original sample audio or sound is kept"
       },
       {
        "way": "when you rename a slot (without asking)",
        "effect": "changed to the new format: The next project save stores the new format. Your previous firmware may then show the project as empty. It does not try an older saved copy just because it cannot read the newest project’s format. JIANT no longer has SAMPLE, GRAIN, SLICE or PHYS. Those sounds use its initial ANALOG sound, except old drum and percussion sounds, which become DRUM sounds. Imported names and patterns do not mean the original sample audio or sound is kept"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save a project (asks first)",
        "effect": "changed to the new format: The next project save stores the new format. Your previous firmware may then show the project as empty. It does not try an older saved copy just because it cannot read the newest project’s format. JIANT no longer has SAMPLE, GRAIN, SLICE or PHYS. Those sounds use its initial ANALOG sound, except old drum and percussion sounds, which become DRUM sounds. Imported names and patterns do not mean the original sample audio or sound is kept"
       },
       {
        "way": "when you save a project from the web editor (the computer asks first)",
        "effect": "changed to the new format: The next project save stores the new format. Your previous firmware may then show the project as empty. It does not try an older saved copy just because it cannot read the newest project’s format. JIANT no longer has SAMPLE, GRAIN, SLICE or PHYS. Those sounds use its initial ANALOG sound, except old drum and percussion sounds, which become DRUM sounds. Imported names and patterns do not mean the original sample audio or sound is kept"
       },
       {
        "way": "when you store a section (without asking)",
        "effect": "changed to the new format: The next project save stores the new format. Your previous firmware may then show the project as empty. It does not try an older saved copy just because it cannot read the newest project’s format. JIANT no longer has SAMPLE, GRAIN, SLICE or PHYS. Those sounds use its initial ANALOG sound, except old drum and percussion sounds, which become DRUM sounds. Imported names and patterns do not mean the original sample audio or sound is kept"
       }
      ]
     },
     {
      "object": "inherited project B",
      "effect": "lost",
      "ways": [
       {
        "way": "when you make a song with several sections using GEN (without asking)",
        "effect": "changed to the new format: The next project save stores the new format. Your previous firmware may then show the project as empty. It does not try an older saved copy just because it cannot read the newest project’s format. JIANT no longer has SAMPLE, GRAIN, SLICE or PHYS. Those sounds use its initial ANALOG sound, except old drum and percussion sounds, which become DRUM sounds. Imported names and patterns do not mean the original sample audio or sound is kept"
       },
       {
        "way": "when you rename a slot (without asking)",
        "effect": "changed to the new format: The next project save stores the new format. Your previous firmware may then show the project as empty. It does not try an older saved copy just because it cannot read the newest project’s format. JIANT no longer has SAMPLE, GRAIN, SLICE or PHYS. Those sounds use its initial ANALOG sound, except old drum and percussion sounds, which become DRUM sounds. Imported names and patterns do not mean the original sample audio or sound is kept"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save a project (asks first)",
        "effect": "changed to the new format: The next project save stores the new format. Your previous firmware may then show the project as empty. It does not try an older saved copy just because it cannot read the newest project’s format. JIANT no longer has SAMPLE, GRAIN, SLICE or PHYS. Those sounds use its initial ANALOG sound, except old drum and percussion sounds, which become DRUM sounds. Imported names and patterns do not mean the original sample audio or sound is kept"
       },
       {
        "way": "when you save a project from the web editor (the computer asks first)",
        "effect": "changed to the new format: The next project save stores the new format. Your previous firmware may then show the project as empty. It does not try an older saved copy just because it cannot read the newest project’s format. JIANT no longer has SAMPLE, GRAIN, SLICE or PHYS. Those sounds use its initial ANALOG sound, except old drum and percussion sounds, which become DRUM sounds. Imported names and patterns do not mean the original sample audio or sound is kept"
       },
       {
        "way": "when you store a section (without asking)",
        "effect": "changed to the new format: The next project save stores the new format. Your previous firmware may then show the project as empty. It does not try an older saved copy just because it cannot read the newest project’s format. JIANT no longer has SAMPLE, GRAIN, SLICE or PHYS. Those sounds use its initial ANALOG sound, except old drum and percussion sounds, which become DRUM sounds. Imported names and patterns do not mean the original sample audio or sound is kept"
       }
      ]
     },
     {
      "object": "inherited project C",
      "effect": "lost",
      "ways": [
       {
        "way": "when you make a song with several sections using GEN (without asking)",
        "effect": "changed to the new format: The next project save stores the new format. Your previous firmware may then show the project as empty. It does not try an older saved copy just because it cannot read the newest project’s format. JIANT no longer has SAMPLE, GRAIN, SLICE or PHYS. Those sounds use its initial ANALOG sound, except old drum and percussion sounds, which become DRUM sounds. Imported names and patterns do not mean the original sample audio or sound is kept"
       },
       {
        "way": "when you rename a slot (without asking)",
        "effect": "changed to the new format: The next project save stores the new format. Your previous firmware may then show the project as empty. It does not try an older saved copy just because it cannot read the newest project’s format. JIANT no longer has SAMPLE, GRAIN, SLICE or PHYS. Those sounds use its initial ANALOG sound, except old drum and percussion sounds, which become DRUM sounds. Imported names and patterns do not mean the original sample audio or sound is kept"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save a project (asks first)",
        "effect": "changed to the new format: The next project save stores the new format. Your previous firmware may then show the project as empty. It does not try an older saved copy just because it cannot read the newest project’s format. JIANT no longer has SAMPLE, GRAIN, SLICE or PHYS. Those sounds use its initial ANALOG sound, except old drum and percussion sounds, which become DRUM sounds. Imported names and patterns do not mean the original sample audio or sound is kept"
       },
       {
        "way": "when you save a project from the web editor (the computer asks first)",
        "effect": "changed to the new format: The next project save stores the new format. Your previous firmware may then show the project as empty. It does not try an older saved copy just because it cannot read the newest project’s format. JIANT no longer has SAMPLE, GRAIN, SLICE or PHYS. Those sounds use its initial ANALOG sound, except old drum and percussion sounds, which become DRUM sounds. Imported names and patterns do not mean the original sample audio or sound is kept"
       },
       {
        "way": "when you store a section (without asking)",
        "effect": "changed to the new format: The next project save stores the new format. Your previous firmware may then show the project as empty. It does not try an older saved copy just because it cannot read the newest project’s format. JIANT no longer has SAMPLE, GRAIN, SLICE or PHYS. Those sounds use its initial ANALOG sound, except old drum and percussion sounds, which become DRUM sounds. Imported names and patterns do not mean the original sample audio or sound is kept"
       }
      ]
     },
     {
      "object": "inherited project D",
      "effect": "lost",
      "ways": [
       {
        "way": "when you make a song with several sections using GEN (without asking)",
        "effect": "changed to the new format: The next project save stores the new format. Your previous firmware may then show the project as empty. It does not try an older saved copy just because it cannot read the newest project’s format. JIANT no longer has SAMPLE, GRAIN, SLICE or PHYS. Those sounds use its initial ANALOG sound, except old drum and percussion sounds, which become DRUM sounds. Imported names and patterns do not mean the original sample audio or sound is kept"
       },
       {
        "way": "when you rename a slot (without asking)",
        "effect": "changed to the new format: The next project save stores the new format. Your previous firmware may then show the project as empty. It does not try an older saved copy just because it cannot read the newest project’s format. JIANT no longer has SAMPLE, GRAIN, SLICE or PHYS. Those sounds use its initial ANALOG sound, except old drum and percussion sounds, which become DRUM sounds. Imported names and patterns do not mean the original sample audio or sound is kept"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save a project (asks first)",
        "effect": "changed to the new format: The next project save stores the new format. Your previous firmware may then show the project as empty. It does not try an older saved copy just because it cannot read the newest project’s format. JIANT no longer has SAMPLE, GRAIN, SLICE or PHYS. Those sounds use its initial ANALOG sound, except old drum and percussion sounds, which become DRUM sounds. Imported names and patterns do not mean the original sample audio or sound is kept"
       },
       {
        "way": "when you save a project from the web editor (the computer asks first)",
        "effect": "changed to the new format: The next project save stores the new format. Your previous firmware may then show the project as empty. It does not try an older saved copy just because it cannot read the newest project’s format. JIANT no longer has SAMPLE, GRAIN, SLICE or PHYS. Those sounds use its initial ANALOG sound, except old drum and percussion sounds, which become DRUM sounds. Imported names and patterns do not mean the original sample audio or sound is kept"
       },
       {
        "way": "when you store a section (without asking)",
        "effect": "changed to the new format: The next project save stores the new format. Your previous firmware may then show the project as empty. It does not try an older saved copy just because it cannot read the newest project’s format. JIANT no longer has SAMPLE, GRAIN, SLICE or PHYS. Those sounds use its initial ANALOG sound, except old drum and percussion sounds, which become DRUM sounds. Imported names and patterns do not mean the original sample audio or sound is kept"
       }
      ]
     },
     {
      "object": "inherited user sample 1",
      "effect": "lost",
      "ways": [
       {
        "way": "when you make a song with several sections using GEN (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save a project (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save a project from the web editor (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you store a section (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited user sample 2",
      "effect": "lost",
      "ways": [
       {
        "way": "when you make a song with several sections using GEN (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save a project (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save a project from the web editor (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you store a section (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited user preset bank 1",
      "effect": "lost",
      "ways": [
       {
        "way": "when you erase a slot (asks for that slot only: press again to confirm; writes the whole bank)",
        "effect": "changed to the new format: Saving any preset in the bank also saves sounds changed to the new format when loaded. Those sounds can change when you return to your previous firmware. JIANT no longer has SAMPLE, GRAIN, SLICE or PHYS. Those sounds use its initial ANALOG sound, except old drum and percussion sounds, which become DRUM sounds. Imported names and patterns do not mean the original sample audio or sound is kept"
       },
       {
        "way": "when you erase a user sound from the web editor (the computer asks first for that slot only; writes the whole bank)",
        "effect": "changed to the new format: Saving any preset in the bank also saves sounds changed to the new format when loaded. Those sounds can change when you return to your previous firmware. JIANT no longer has SAMPLE, GRAIN, SLICE or PHYS. Those sounds use its initial ANALOG sound, except old drum and percussion sounds, which become DRUM sounds. Imported names and patterns do not mean the original sample audio or sound is kept"
       },
       {
        "way": "when you rename a slot (without asking; writes the whole bank)",
        "effect": "changed to the new format: Saving any preset in the bank also saves sounds changed to the new format when loaded. Those sounds can change when you return to your previous firmware. JIANT no longer has SAMPLE, GRAIN, SLICE or PHYS. Those sounds use its initial ANALOG sound, except old drum and percussion sounds, which become DRUM sounds. Imported names and patterns do not mean the original sample audio or sound is kept"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save a user preset (does not ask if that slot is empty; writes the whole bank)",
        "effect": "changed to the new format: Saving any preset in the bank also saves sounds changed to the new format when loaded. Those sounds can change when you return to your previous firmware. JIANT no longer has SAMPLE, GRAIN, SLICE or PHYS. Those sounds use its initial ANALOG sound, except old drum and percussion sounds, which become DRUM sounds. Imported names and patterns do not mean the original sample audio or sound is kept"
       },
       {
        "way": "when you send a user sound from the web editor (does not ask if that slot is empty; writes the whole bank)",
        "effect": "changed to the new format: Saving any preset in the bank also saves sounds changed to the new format when loaded. Those sounds can change when you return to your previous firmware. JIANT no longer has SAMPLE, GRAIN, SLICE or PHYS. Those sounds use its initial ANALOG sound, except old drum and percussion sounds, which become DRUM sounds. Imported names and patterns do not mean the original sample audio or sound is kept"
       },
       {
        "way": "when you store the current sound from the web editor (does not ask if that slot is empty; writes the whole bank)",
        "effect": "changed to the new format: Saving any preset in the bank also saves sounds changed to the new format when loaded. Those sounds can change when you return to your previous firmware. JIANT no longer has SAMPLE, GRAIN, SLICE or PHYS. Those sounds use its initial ANALOG sound, except old drum and percussion sounds, which become DRUM sounds. Imported names and patterns do not mean the original sample audio or sound is kept"
       }
      ]
     },
     {
      "object": "inherited user preset bank 2",
      "effect": "lost",
      "ways": [
       {
        "way": "when you erase a slot (asks for that slot only: press again to confirm; writes the whole bank)",
        "effect": "changed to the new format: Saving any preset in the bank also saves sounds changed to the new format when loaded. Those sounds can change when you return to your previous firmware. JIANT no longer has SAMPLE, GRAIN, SLICE or PHYS. Those sounds use its initial ANALOG sound, except old drum and percussion sounds, which become DRUM sounds. Imported names and patterns do not mean the original sample audio or sound is kept"
       },
       {
        "way": "when you erase a user sound from the web editor (the computer asks first for that slot only; writes the whole bank)",
        "effect": "changed to the new format: Saving any preset in the bank also saves sounds changed to the new format when loaded. Those sounds can change when you return to your previous firmware. JIANT no longer has SAMPLE, GRAIN, SLICE or PHYS. Those sounds use its initial ANALOG sound, except old drum and percussion sounds, which become DRUM sounds. Imported names and patterns do not mean the original sample audio or sound is kept"
       },
       {
        "way": "when you rename a slot (without asking; writes the whole bank)",
        "effect": "changed to the new format: Saving any preset in the bank also saves sounds changed to the new format when loaded. Those sounds can change when you return to your previous firmware. JIANT no longer has SAMPLE, GRAIN, SLICE or PHYS. Those sounds use its initial ANALOG sound, except old drum and percussion sounds, which become DRUM sounds. Imported names and patterns do not mean the original sample audio or sound is kept"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save a user preset (does not ask if that slot is empty; writes the whole bank)",
        "effect": "changed to the new format: Saving any preset in the bank also saves sounds changed to the new format when loaded. Those sounds can change when you return to your previous firmware. JIANT no longer has SAMPLE, GRAIN, SLICE or PHYS. Those sounds use its initial ANALOG sound, except old drum and percussion sounds, which become DRUM sounds. Imported names and patterns do not mean the original sample audio or sound is kept"
       },
       {
        "way": "when you send a user sound from the web editor (does not ask if that slot is empty; writes the whole bank)",
        "effect": "changed to the new format: Saving any preset in the bank also saves sounds changed to the new format when loaded. Those sounds can change when you return to your previous firmware. JIANT no longer has SAMPLE, GRAIN, SLICE or PHYS. Those sounds use its initial ANALOG sound, except old drum and percussion sounds, which become DRUM sounds. Imported names and patterns do not mean the original sample audio or sound is kept"
       },
       {
        "way": "when you store the current sound from the web editor (does not ask if that slot is empty; writes the whole bank)",
        "effect": "changed to the new format: Saving any preset in the bank also saves sounds changed to the new format when loaded. Those sounds can change when you return to your previous firmware. JIANT no longer has SAMPLE, GRAIN, SLICE or PHYS. Those sounds use its initial ANALOG sound, except old drum and percussion sounds, which become DRUM sounds. Imported names and patterns do not mean the original sample audio or sound is kept"
       }
      ]
     }
    ],
    "possibly_at_risk": [],
    "carried_over": [],
    "kept_unseen": [],
    "notes": [
     "If RESTORE LAST was OFF before switching, it becomes ON in JIANT. If it was ON, including the previous firmware’s default, it becomes OFF in JIANT."
    ],
    "owner_text": "At risk by itself: inherited user sample 3; settings and calibration. At risk by itself, under a condition: inherited FM6 patches for user presets; up to sixteen liked worlds. At risk when you act: inherited project A; inherited project B; inherited project C; inherited project D; inherited user sample 1; inherited user sample 2; inherited user preset bank 1; inherited user preset bank 2. If RESTORE LAST was OFF before switching, it becomes ON in JIANT. If it was ON, including the previous firmware’s default, it becomes OFF in JIANT.",
    "source": "flash-atlas derived/matrix.json (generated by apply_to_maps.py; do not edit by hand)"
   },
   {
    "to": "melodee",
    "name": "Melodee",
    "flags": "ACS",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "inherited user preset bank 1",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start",
        "effect": "lost"
       },
       {
        "way": "automatically, only if erasing all user presets was confirmed earlier but stopped before it finished",
        "effect": "lost"
       },
       {
        "way": "when you confirm erasing all user presets to recover from a problem (asks first: press the button to confirm)",
        "effect": "lost"
       },
       {
        "way": "when you import SysEx sound data into slots (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save a user preset (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you send a user sound from the web editor (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you store the current sound from the web editor (without asking; writes the whole bank)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited user preset bank 2",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start",
        "effect": "lost"
       },
       {
        "way": "automatically, only if erasing all user presets was confirmed earlier but stopped before it finished",
        "effect": "lost"
       },
       {
        "way": "when you confirm erasing all user presets to recover from a problem (asks first: press the button to confirm)",
        "effect": "lost"
       },
       {
        "way": "when you import SysEx sound data into slots (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save a user preset (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you send a user sound from the web editor (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you store the current sound from the web editor (without asking; writes the whole bank)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "settings and calibration",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start",
        "effect": "lost"
       },
       {
        "way": "automatically during use",
        "effect": "lost"
       },
       {
        "way": "when you calibrate the controls (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you change a setting on the panel or in the menu (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you change settings from the web editor (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you mark a favourite with a star (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save a template (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited project A",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically, only if a matching saved preset bank needs repair or a change of format, or changing older Prophet sounds to the new format needs extra storage space",
        "effect": "lost"
       },
       {
        "way": "automatically, only if erasing all user presets was confirmed earlier but stopped before it finished",
        "effect": "lost"
       },
       {
        "way": "when you confirm erasing all user presets to recover from a problem (asks first: press the button to confirm)",
        "effect": "lost"
       },
       {
        "way": "when you import SysEx sound data into slots (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save a user preset (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you send a user sound from the web editor (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you store the current sound from the web editor (without asking; writes the whole bank)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited project B",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically, only if a matching saved preset bank needs repair or a change of format, or changing older Prophet sounds to the new format needs extra storage space",
        "effect": "lost"
       },
       {
        "way": "automatically, only if erasing all user presets was confirmed earlier but stopped before it finished",
        "effect": "lost"
       },
       {
        "way": "when you confirm erasing all user presets to recover from a problem (asks first: press the button to confirm)",
        "effect": "lost"
       },
       {
        "way": "when you import SysEx sound data into slots (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save a user preset (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you send a user sound from the web editor (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you store the current sound from the web editor (without asking; writes the whole bank)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited project C",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically, only if a matching saved preset bank needs repair or a change of format, or changing older Prophet sounds to the new format needs extra storage space",
        "effect": "lost"
       },
       {
        "way": "automatically, only if erasing all user presets was confirmed earlier but stopped before it finished",
        "effect": "lost"
       },
       {
        "way": "when you confirm erasing all user presets to recover from a problem (asks first: press the button to confirm)",
        "effect": "lost"
       },
       {
        "way": "when you import SysEx sound data into slots (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save a user preset (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you send a user sound from the web editor (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you store the current sound from the web editor (without asking; writes the whole bank)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited project D",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically, only if a matching saved preset bank needs repair or a change of format, or changing older Prophet sounds to the new format needs extra storage space",
        "effect": "lost"
       },
       {
        "way": "automatically, only if erasing all user presets was confirmed earlier but stopped before it finished",
        "effect": "lost"
       },
       {
        "way": "when you confirm erasing all user presets to recover from a problem (asks first: press the button to confirm)",
        "effect": "lost"
       },
       {
        "way": "when you import SysEx sound data into slots (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save a user preset (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you send a user sound from the web editor (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you store the current sound from the web editor (without asking; writes the whole bank)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited FM6 patches for user presets",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically, only if a matching saved preset bank needs repair or a change of format, or changing older Prophet sounds to the new format needs extra storage space",
        "effect": "lost"
       },
       {
        "way": "automatically, only if erasing all user presets was confirmed earlier but stopped before it finished",
        "effect": "lost"
       },
       {
        "way": "when you confirm erasing all user presets to recover from a problem (asks first: press the button to confirm)",
        "effect": "lost"
       },
       {
        "way": "when you import SysEx sound data into slots (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save a user preset (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you send a user sound from the web editor (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you store the current sound from the web editor (without asking; writes the whole bank)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited user sample 3",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically, only if a matching saved preset bank needs repair or a change of format, or changing older Prophet sounds to the new format needs extra storage space",
        "effect": "lost"
       },
       {
        "way": "automatically, only if erasing all user presets was confirmed earlier but stopped before it finished",
        "effect": "lost"
       },
       {
        "way": "when you confirm erasing all user presets to recover from a problem (asks first: press the button to confirm)",
        "effect": "lost"
       },
       {
        "way": "when you import SysEx sound data into slots (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save a user preset (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you send a user sound from the web editor (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you store the current sound from the web editor (without asking; writes the whole bank)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "up to sixteen liked worlds",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically, only if a matching saved preset bank needs repair or a change of format, or changing older Prophet sounds to the new format needs extra storage space",
        "effect": "lost"
       },
       {
        "way": "automatically, only if erasing all user presets was confirmed earlier but stopped before it finished",
        "effect": "lost"
       },
       {
        "way": "when you confirm erasing all user presets to recover from a problem (asks first: press the button to confirm)",
        "effect": "lost"
       },
       {
        "way": "when you import SysEx sound data into slots (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save a user preset (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you send a user sound from the web editor (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you store the current sound from the web editor (without asking; writes the whole bank)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited user sample 1",
      "effect": "lost",
      "ways": [
       {
        "way": "when you quick-save a project (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save a project (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save a project from the web editor (the computer asks first)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited user sample 2",
      "effect": "lost",
      "ways": [
       {
        "way": "when you quick-save a project (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save a project (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save a project from the web editor (the computer asks first)",
        "effect": "lost"
       }
      ]
     }
    ],
    "possibly_at_risk": [],
    "carried_over": [],
    "kept_unseen": [],
    "notes": [],
    "owner_text": "At risk by itself: inherited user preset bank 1; inherited user preset bank 2; settings and calibration. At risk by itself, under a condition: inherited project A; inherited project B; inherited project C; inherited project D; inherited FM6 patches for user presets; inherited user sample 3; up to sixteen liked worlds. At risk when you act: inherited user sample 1; inherited user sample 2.",
    "source": "flash-atlas derived/matrix.json (generated by apply_to_maps.py; do not edit by hand)"
   },
   {
    "to": "fomni",
    "name": "FoMni",
    "flags": "AS",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "settings and calibration",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use",
        "effect": "lost"
       },
       {
        "way": "when you press SAVE (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited user preset bank 1",
      "effect": "lost",
      "ways": [
       {
        "way": "when you run hardware calibration (without asking)",
        "effect": "lost"
       }
      ]
     }
    ],
    "possibly_at_risk": [],
    "carried_over": [],
    "kept_unseen": [],
    "notes": [],
    "owner_text": "At risk by itself: settings and calibration. At risk when you act: inherited user preset bank 1.",
    "source": "flash-atlas derived/matrix.json (generated by apply_to_maps.py; do not edit by hand)"
   },
   {
    "to": "amb",
    "name": "AMB-1",
    "flags": "AS",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "settings and calibration",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use",
        "effect": "lost"
       },
       {
        "way": "when you press SAVE (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited user preset bank 1",
      "effect": "lost",
      "ways": [
       {
        "way": "when you run hardware calibration (without asking)",
        "effect": "lost"
       }
      ]
     }
    ],
    "possibly_at_risk": [],
    "carried_over": [],
    "kept_unseen": [],
    "notes": [],
    "owner_text": "At risk by itself: settings and calibration. At risk when you act: inherited user preset bank 1.",
    "source": "flash-atlas derived/matrix.json (generated by apply_to_maps.py; do not edit by hand)"
   },
   {
    "to": "choralroot",
    "name": "ChoralRoot",
    "flags": "ACSK",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "inherited user sample 2",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start",
        "effect": "lost"
       },
       {
        "way": "automatically during use",
        "effect": "damaged (part written over)"
       },
       {
        "way": "automatically, only if an older ChoralRoot favourites save is still stored and the space for its next save still contains data",
        "effect": "damaged (part written over)"
       },
       {
        "way": "automatically, only if an older ChoralRoot session save is still stored and the space for its next save still contains data",
        "effect": "lost"
       },
       {
        "way": "automatically, only if an older ChoralRoot sound collection is still saved and the space for its next save still contains data",
        "effect": "damaged (part written over)"
       },
       {
        "way": "automatically, only if the space for its next save still needs clearing after a save or a failed start-up cleanup",
        "effect": "lost"
       },
       {
        "way": "automatically, only if there is no saved sound collection and at least one supported older user sound can be read",
        "effect": "damaged (part written over)"
       },
       {
        "way": "when you choose Import 0.21 sounds from the device manager (the computer asks first)",
        "effect": "damaged (part written over)"
       },
       {
        "way": "when you choose Overwrite or Save as new and press OCT+ or SAVE (without asking; writes the whole bank)",
        "effect": "damaged (part written over)"
       },
       {
        "way": "when you choose Place all from the device manager (the computer asks first)",
        "effect": "damaged (part written over)"
       },
       {
        "way": "when you choose Undo from the device manager (without asking)",
        "effect": "damaged (part written over)"
       },
       {
        "way": "when you choose a voice from a DX7 or CZ bank on the installer page and import it (without asking; writes the whole bank)",
        "effect": "damaged (part written over)"
       },
       {
        "way": "when you confirm Flash Data erase with OCT+ twice (asks first: press again to confirm)",
        "effect": "lost"
       },
       {
        "way": "when you confirm Reset Settings with OCT+ twice (asks first: press again to confirm)",
        "effect": "lost"
       },
       {
        "way": "when you confirm deletion or reset with OCT+ (asks for that slot only: press the button to confirm; writes the whole bank)",
        "effect": "damaged (part written over)"
       },
       {
        "way": "when you delete a sound from the installer page (the computer asks first for that slot only; writes the whole bank)",
        "effect": "damaged (part written over)"
       },
       {
        "way": "when you delete a sound with the computer question skipped (without asking; writes the whole bank)",
        "effect": "damaged (part written over)"
       },
       {
        "way": "when you delete a sound with the computer tool (the computer asks first for that slot only; writes the whole bank)",
        "effect": "damaged (part written over)"
       },
       {
        "way": "when you delete all user sounds or reset sounds to factory defaults from the device manager (the computer asks first)",
        "effect": "damaged (part written over)"
       },
       {
        "way": "when you delete selected sounds from the device manager (the computer asks first)",
        "effect": "damaged (part written over)"
       },
       {
        "way": "when you hold OCT- and OCT+ while powering on (without asking)",
        "effect": "damaged (part written over)"
       },
       {
        "way": "when you hold SAVE for a global save (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you import a Digitone sound from the installer page (the computer asks first for that slot only; writes the whole bank)",
        "effect": "damaged (part written over)"
       },
       {
        "way": "when you import a sound file or one DX7 or CZ voice from the installer page (without asking; writes the whole bank)",
        "effect": "damaged (part written over)"
       },
       {
        "way": "when you import a sound or a DX7 or CZ voice with the computer question skipped (without asking; writes the whole bank)",
        "effect": "damaged (part written over)"
       },
       {
        "way": "when you import a sound or a DX7 or CZ voice with the computer tool (without asking; writes the whole bank)",
        "effect": "damaged (part written over)"
       },
       {
        "way": "when you keep calibration or enter update mode by holding OCT- + OCT+ + HOME for 5 s (without asking)",
        "effect": "damaged (part written over)"
       },
       {
        "way": "when you move or swap sounds from the device manager (without asking)",
        "effect": "damaged (part written over)"
       },
       {
        "way": "when you place a sound as new or back in its saved factory position from the device manager (without asking; writes the whole bank)",
        "effect": "damaged (part written over)"
       },
       {
        "way": "when you place several selected sounds from the device manager (without asking)",
        "effect": "damaged (part written over)"
       },
       {
        "way": "when you rename a sound from the device manager and enter its new name (the computer asks first for that slot only; writes the whole bank)",
        "effect": "damaged (part written over)"
       },
       {
        "way": "when you rename a sound from the installer page and enter its new name (the computer asks first for that slot only; writes the whole bank)",
        "effect": "damaged (part written over)"
       },
       {
        "way": "when you rename a sound with the computer tool (without asking; writes the whole bank)",
        "effect": "damaged (part written over)"
       },
       {
        "way": "when you replace a selected user sound from the device manager (the computer asks first for that slot only; writes the whole bank)",
        "effect": "damaged (part written over)"
       },
       {
        "way": "when you replace factory sounds from the device manager (the computer asks first)",
        "effect": "damaged (part written over)"
       },
       {
        "way": "when you restore a backup from the installer page, device manager or computer tool (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup with the computer question skipped (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you restore factory order from the device manager (the computer asks first)",
        "effect": "damaged (part written over)"
       },
       {
        "way": "when you restore factory presets from the device manager (the computer asks first)",
        "effect": "damaged (part written over)"
       },
       {
        "way": "when you restore favourite marks from the computer (the computer asks first)",
        "effect": "damaged (part written over)"
       },
       {
        "way": "when you restore favourite marks with the computer question skipped (without asking)",
        "effect": "damaged (part written over)"
       }
      ]
     },
     {
      "object": "inherited user sample 3",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use",
        "effect": "lost"
       },
       {
        "way": "when you choose Undo from the device manager (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you confirm Flash Data erase with OCT+ twice (asks first: press again to confirm)",
        "effect": "lost"
       },
       {
        "way": "when you hold SAVE after recording, editing or clearing this loop (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you place a loop from the device manager (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you press REC in Advance mode when the current loop is not empty (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the installer page, device manager or computer tool (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup with the computer question skipped (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you swap loop slots from the device manager (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "settings and calibration",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use",
        "effect": "changed to the new format: After ChoralRoot saves these settings, MAKU cannot read the newer saved copy. It uses default preferences and panel calibration when you return"
       },
       {
        "way": "automatically, only if a processor failure blocked Dual Core while its saved setting was On",
        "effect": "changed to the new format: After ChoralRoot saves these settings, MAKU cannot read the newer saved copy. It uses default preferences and panel calibration when you return"
       },
       {
        "way": "when you confirm Flash Data erase with OCT+ twice (asks first: press again to confirm)",
        "effect": "lost"
       },
       {
        "way": "when you confirm Reset Settings with OCT+ twice (asks first: press again to confirm)",
        "effect": "changed to the new format: After ChoralRoot saves these settings, MAKU cannot read the newer saved copy. It uses default preferences and panel calibration when you return"
       },
       {
        "way": "when you hold OCT- and OCT+ while powering on (without asking)",
        "effect": "changed to the new format: After ChoralRoot saves these settings, MAKU cannot read the newer saved copy. It uses default preferences and panel calibration when you return"
       },
       {
        "way": "when you hold SAVE for a global save (without asking)",
        "effect": "changed to the new format: After ChoralRoot saves these settings, MAKU cannot read the newer saved copy. It uses default preferences and panel calibration when you return"
       },
       {
        "way": "when you keep calibration or enter update mode by holding OCT- + OCT+ + HOME for 5 s (without asking)",
        "effect": "changed to the new format: After ChoralRoot saves these settings, MAKU cannot read the newer saved copy. It uses default preferences and panel calibration when you return"
       },
       {
        "way": "when you restore a backup from the installer page, device manager or computer tool (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup with the computer question skipped (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited project A",
      "effect": "lost",
      "ways": [
       {
        "way": "when you confirm Flash Data erase with OCT+ twice (asks first: press again to confirm)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited project B",
      "effect": "lost",
      "ways": [
       {
        "way": "when you confirm Flash Data erase with OCT+ twice (asks first: press again to confirm)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited project C",
      "effect": "lost",
      "ways": [
       {
        "way": "when you confirm Flash Data erase with OCT+ twice (asks first: press again to confirm)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited project D",
      "effect": "lost",
      "ways": [
       {
        "way": "when you confirm Flash Data erase with OCT+ twice (asks first: press again to confirm)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited FM6 patches for user presets",
      "effect": "lost",
      "ways": [
       {
        "way": "when you confirm Flash Data erase with OCT+ twice (asks first: press again to confirm)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the installer page, device manager or computer tool (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup with the computer question skipped (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you send a DX7 bank (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited user sample 1",
      "effect": "lost",
      "ways": [
       {
        "way": "when you confirm Flash Data erase with OCT+ twice (asks first: press again to confirm)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the installer page, device manager or computer tool (the computer asks once before restoring the whole backup)",
        "effect": "damaged (part written over)"
       },
       {
        "way": "when you restore a backup with the computer question skipped (without asking)",
        "effect": "damaged (part written over)"
       }
      ]
     },
     {
      "object": "inherited user preset bank 1",
      "effect": "lost",
      "ways": [
       {
        "way": "when you confirm Flash Data erase with OCT+ twice (asks first: press again to confirm)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited user preset bank 2",
      "effect": "lost",
      "ways": [
       {
        "way": "when you confirm Flash Data erase with OCT+ twice (asks first: press again to confirm)",
        "effect": "lost"
       }
      ]
     }
    ],
    "possibly_at_risk": [],
    "carried_over": [],
    "kept_unseen": [],
    "notes": [
     "ChoralRoot reads inherited user preset bank 1 until you write over the saved data. Imported sounds may sound different, even if their names are kept. Confirming Flash Data erases the older banks they came from.",
     "ChoralRoot reads inherited user preset bank 2 until you write over the saved data. Imported sounds may sound different, even if their names are kept. Confirming Flash Data erases the older banks they came from."
    ],
    "owner_text": "At risk by itself: inherited user sample 2; inherited user sample 3; settings and calibration. At risk when you act: inherited project A; inherited project B; inherited project C; inherited project D; inherited FM6 patches for user presets; inherited user sample 1; inherited user preset bank 1; inherited user preset bank 2. ChoralRoot reads inherited user preset bank 1 until you write over the saved data. Imported sounds may sound different, even if their names are kept. Confirming Flash Data erases the older banks they came from. ChoralRoot reads inherited user preset bank 2 until you write over the saved data. Imported sounds may sound different, even if their names are kept. Confirming Flash Data erases the older banks they came from.",
    "source": "flash-atlas derived/matrix.json (generated by apply_to_maps.py; do not edit by hand)"
   },
   {
    "to": "ghoulbox",
    "name": "GHOULBOX",
    "flags": "ACSK",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "up to sixteen liked worlds",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use (its RESTORE LAST is on by default)",
        "effect": "lost"
       },
       {
        "way": "when you send an FM6 voice bank with computer commands (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "settings and calibration",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use",
        "effect": "changed to the new format: A later settings save stores the changed shared choices. If you return to your previous firmware, its preferences can change even though calibration and many settings are kept"
       },
       {
        "way": "when you calibrate the controls (without asking)",
        "effect": "changed to the new format: A later settings save stores the changed shared choices. If you return to your previous firmware, its preferences can change even though calibration and many settings are kept"
       },
       {
        "way": "when you change settings from the web editor (without asking)",
        "effect": "changed to the new format: A later settings save stores the changed shared choices. If you return to your previous firmware, its preferences can change even though calibration and many settings are kept"
       },
       {
        "way": "when you erase a user preset (asks for that slot only: press again to confirm; writes the whole bank)",
        "effect": "changed to the new format: A later settings save stores the changed shared choices. If you return to your previous firmware, its preferences can change even though calibration and many settings are kept"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited FM6 patches for user presets",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically, only if no readable bank of FM6 patches for your sounds is left and the older 27-voice FM6 bank is still stored",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save an FM6 user preset (does not ask if that slot is empty; writes the whole bank)",
        "effect": "partly lost (only that patch)"
       },
       {
        "way": "when you send a user sound from the web editor (does not ask if that slot is empty; writes the whole bank)",
        "effect": "partly lost (only that patch)"
       },
       {
        "way": "when you store the current sound from the web editor (does not ask if that slot is empty; writes the whole bank)",
        "effect": "partly lost (only that patch)"
       }
      ]
     },
     {
      "object": "inherited project A",
      "effect": "lost",
      "ways": [
       {
        "way": "when you rename a project (without asking)",
        "effect": "changed to the new format: The next project save stores the new format. Your previous firmware may then show the project as empty. It does not try an older saved copy just because it cannot read the newest project’s format"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save a project (asks first)",
        "effect": "changed to the new format: The next project save stores the new format. Your previous firmware may then show the project as empty. It does not try an older saved copy just because it cannot read the newest project’s format"
       },
       {
        "way": "when you save a project from the web editor (the computer asks first)",
        "effect": "changed to the new format: The next project save stores the new format. Your previous firmware may then show the project as empty. It does not try an older saved copy just because it cannot read the newest project’s format"
       }
      ]
     },
     {
      "object": "inherited project B",
      "effect": "lost",
      "ways": [
       {
        "way": "when you rename a project (without asking)",
        "effect": "changed to the new format: The next project save stores the new format. Your previous firmware may then show the project as empty. It does not try an older saved copy just because it cannot read the newest project’s format"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save a project (asks first)",
        "effect": "changed to the new format: The next project save stores the new format. Your previous firmware may then show the project as empty. It does not try an older saved copy just because it cannot read the newest project’s format"
       },
       {
        "way": "when you save a project from the web editor (the computer asks first)",
        "effect": "changed to the new format: The next project save stores the new format. Your previous firmware may then show the project as empty. It does not try an older saved copy just because it cannot read the newest project’s format"
       }
      ]
     },
     {
      "object": "inherited project C",
      "effect": "lost",
      "ways": [
       {
        "way": "when you rename a project (without asking)",
        "effect": "changed to the new format: The next project save stores the new format. Your previous firmware may then show the project as empty. It does not try an older saved copy just because it cannot read the newest project’s format"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save a project (asks first)",
        "effect": "changed to the new format: The next project save stores the new format. Your previous firmware may then show the project as empty. It does not try an older saved copy just because it cannot read the newest project’s format"
       },
       {
        "way": "when you save a project from the web editor (the computer asks first)",
        "effect": "changed to the new format: The next project save stores the new format. Your previous firmware may then show the project as empty. It does not try an older saved copy just because it cannot read the newest project’s format"
       }
      ]
     },
     {
      "object": "inherited project D",
      "effect": "lost",
      "ways": [
       {
        "way": "when you rename a project (without asking)",
        "effect": "changed to the new format: The next project save stores the new format. Your previous firmware may then show the project as empty. It does not try an older saved copy just because it cannot read the newest project’s format"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save a project (asks first)",
        "effect": "changed to the new format: The next project save stores the new format. Your previous firmware may then show the project as empty. It does not try an older saved copy just because it cannot read the newest project’s format"
       },
       {
        "way": "when you save a project from the web editor (the computer asks first)",
        "effect": "changed to the new format: The next project save stores the new format. Your previous firmware may then show the project as empty. It does not try an older saved copy just because it cannot read the newest project’s format"
       }
      ]
     },
     {
      "object": "inherited user preset bank 1",
      "effect": "lost",
      "ways": [
       {
        "way": "when you erase a user preset (asks for that slot only: press again to confirm; writes the whole bank)",
        "effect": "changed to the new format: Saving any preset in the bank also saves sounds changed to the new format when loaded. Those sounds can change when you return to your previous firmware"
       },
       {
        "way": "when you erase a user sound from the web editor (the computer asks first for that slot only; writes the whole bank)",
        "effect": "changed to the new format: Saving any preset in the bank also saves sounds changed to the new format when loaded. Those sounds can change when you return to your previous firmware"
       },
       {
        "way": "when you rename a user preset (without asking; writes the whole bank)",
        "effect": "changed to the new format: Saving any preset in the bank also saves sounds changed to the new format when loaded. Those sounds can change when you return to your previous firmware"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save a user preset (does not ask if that slot is empty; writes the whole bank)",
        "effect": "changed to the new format: Saving any preset in the bank also saves sounds changed to the new format when loaded. Those sounds can change when you return to your previous firmware"
       },
       {
        "way": "when you send a user sound from the web editor (does not ask if that slot is empty; writes the whole bank)",
        "effect": "changed to the new format: Saving any preset in the bank also saves sounds changed to the new format when loaded. Those sounds can change when you return to your previous firmware"
       },
       {
        "way": "when you store the current sound from the web editor (does not ask if that slot is empty; writes the whole bank)",
        "effect": "changed to the new format: Saving any preset in the bank also saves sounds changed to the new format when loaded. Those sounds can change when you return to your previous firmware"
       }
      ]
     },
     {
      "object": "inherited user preset bank 2",
      "effect": "lost",
      "ways": [
       {
        "way": "when you erase a user preset (asks for that slot only: press again to confirm; writes the whole bank)",
        "effect": "changed to the new format: Saving any preset in the bank also saves sounds changed to the new format when loaded. Those sounds can change when you return to your previous firmware"
       },
       {
        "way": "when you erase a user sound from the web editor (the computer asks first for that slot only; writes the whole bank)",
        "effect": "changed to the new format: Saving any preset in the bank also saves sounds changed to the new format when loaded. Those sounds can change when you return to your previous firmware"
       },
       {
        "way": "when you rename a user preset (without asking; writes the whole bank)",
        "effect": "changed to the new format: Saving any preset in the bank also saves sounds changed to the new format when loaded. Those sounds can change when you return to your previous firmware"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save a user preset (does not ask if that slot is empty; writes the whole bank)",
        "effect": "changed to the new format: Saving any preset in the bank also saves sounds changed to the new format when loaded. Those sounds can change when you return to your previous firmware"
       },
       {
        "way": "when you send a user sound from the web editor (does not ask if that slot is empty; writes the whole bank)",
        "effect": "changed to the new format: Saving any preset in the bank also saves sounds changed to the new format when loaded. Those sounds can change when you return to your previous firmware"
       },
       {
        "way": "when you store the current sound from the web editor (does not ask if that slot is empty; writes the whole bank)",
        "effect": "changed to the new format: Saving any preset in the bank also saves sounds changed to the new format when loaded. Those sounds can change when you return to your previous firmware"
       }
      ]
     },
     {
      "object": "inherited user sample 1",
      "effect": "lost",
      "ways": [
       {
        "way": "when you erase a sample from the web editor (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you leave SLICES after editing slice positions set by hand (without asking)",
        "effect": "damaged (part written over)"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you upload a sample from the web editor (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you upload or erase a sample with the computer tool (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited user sample 2",
      "effect": "lost",
      "ways": [
       {
        "way": "when you erase a sample from the web editor (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you leave SLICES after editing slice positions set by hand (without asking)",
        "effect": "damaged (part written over)"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you upload a sample from the web editor (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you upload or erase a sample with the computer tool (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited user sample 3",
      "effect": "lost",
      "ways": [
       {
        "way": "when you erase a sample from the web editor (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you leave SLICES after editing slice positions set by hand (without asking)",
        "effect": "damaged (part written over)"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you upload a sample from the web editor (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you upload or erase a sample with the computer tool (without asking)",
        "effect": "lost"
       }
      ]
     }
    ],
    "possibly_at_risk": [],
    "carried_over": [],
    "kept_unseen": [],
    "notes": [
     "RESTORE LAST starts ON with the previous firmware’s fresh settings. Shared choices it reads can leave it OFF. A saved LOW click level skips the final change to ON. If CLICK was OFF or REC, an earlier change turns RESTORE LAST OFF. With CLICK ON, the previous RESTORE LAST choice stays.",
     "GHOULBOX reads inherited FM6 patches for user presets until you write over the saved data.",
     "GHOULBOX reads inherited user sample 1 until you write over the saved data.",
     "GHOULBOX reads inherited user sample 2 until you write over the saved data.",
     "GHOULBOX reads inherited user sample 3 until you write over the saved data."
    ],
    "owner_text": "At risk by itself: up to sixteen liked worlds; settings and calibration. At risk by itself, under a condition: inherited FM6 patches for user presets. At risk when you act: inherited project A; inherited project B; inherited project C; inherited project D; inherited user preset bank 1; inherited user preset bank 2; inherited user sample 1; inherited user sample 2; inherited user sample 3. RESTORE LAST starts ON with the previous firmware’s fresh settings. Shared choices it reads can leave it OFF. A saved LOW click level skips the final change to ON. If CLICK was OFF or REC, an earlier change turns RESTORE LAST OFF. With CLICK ON, the previous RESTORE LAST choice stays. GHOULBOX reads inherited FM6 patches for user presets until you write over the saved data. GHOULBOX reads inherited user sample 1 until you write over the saved data. GHOULBOX reads inherited user sample 2 until you write over the saved data. GHOULBOX reads inherited user sample 3 until you write over the saved data.",
    "source": "flash-atlas derived/matrix.json (generated by apply_to_maps.py; do not edit by hand)"
   },
   {
    "to": "mvaveopen",
    "name": "M-VAVE FM-1 Open",
    "flags": "AS",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "inherited project A",
      "effect": "lost",
      "ways": [
       {
        "way": "by itself right after the Workbench installs Open",
        "effect": "lost"
       },
       {
        "way": "when you send a complete sample-bank upload through MIDI (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you write the sample bank to the device (the computer asks first)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited project B",
      "effect": "lost",
      "ways": [
       {
        "way": "by itself right after the Workbench installs Open",
        "effect": "lost"
       },
       {
        "way": "when you send a complete sample-bank upload through MIDI (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you write the sample bank to the device (the computer asks first)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited project C",
      "effect": "lost",
      "ways": [
       {
        "way": "by itself right after the Workbench installs Open",
        "effect": "lost"
       },
       {
        "way": "when you send a complete sample-bank upload through MIDI (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you write the sample bank to the device (the computer asks first)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited project D",
      "effect": "lost",
      "ways": [
       {
        "way": "by itself right after the Workbench installs Open",
        "effect": "lost"
       },
       {
        "way": "when you send a complete sample-bank upload through MIDI (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you write the sample bank to the device (the computer asks first)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited FM6 patches for user presets",
      "effect": "lost",
      "ways": [
       {
        "way": "by itself right after the Workbench installs Open",
        "effect": "lost"
       },
       {
        "way": "when you send a complete sample-bank upload through MIDI (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you write the sample bank to the device (the computer asks first)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited user sample 1",
      "effect": "lost",
      "ways": [
       {
        "way": "when you send a complete sample-bank upload through MIDI (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you write the sample bank to the device (the computer asks first)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited user sample 2",
      "effect": "lost",
      "ways": [
       {
        "way": "when you send a complete sample-bank upload through MIDI (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you write the sample bank to the device (the computer asks first)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited user sample 3",
      "effect": "lost",
      "ways": [
       {
        "way": "when you send a complete sample-bank upload through MIDI (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you write the sample bank to the device (the computer asks first)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited user preset bank 1",
      "effect": "lost",
      "ways": [
       {
        "way": "when you send a complete sample-bank upload through MIDI (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you write the sample bank to the device (the computer asks first)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited user preset bank 2",
      "effect": "lost",
      "ways": [
       {
        "way": "when you send a complete sample-bank upload through MIDI (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you write the sample bank to the device (the computer asks first)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "up to sixteen liked worlds",
      "effect": "lost",
      "ways": [
       {
        "way": "when you send a complete sample-bank upload through MIDI (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you write the sample bank to the device (the computer asks first)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "settings and calibration",
      "effect": "lost",
      "ways": [
       {
        "way": "when you send a complete sample-bank upload through MIDI (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you write the sample bank to the device (the computer asks first)",
        "effect": "lost"
       }
      ]
     }
    ],
    "possibly_at_risk": [],
    "carried_over": [],
    "kept_unseen": [],
    "notes": [
     "Workbench adds Open's built-in samples right after installing it, without asking about samples. This replaces only the items marked 'by itself right after the Workbench installs Open', before you can save anything. This follows Open V12's source code; the downloaded Workbench has not been checked against it."
    ],
    "owner_text": "At risk by itself: inherited project A; inherited project B; inherited project C; inherited project D; inherited FM6 patches for user presets. At risk when you act: inherited user sample 1; inherited user sample 2; inherited user sample 3; inherited user preset bank 1; inherited user preset bank 2; up to sixteen liked worlds; settings and calibration. Workbench adds Open's built-in samples right after installing it, without asking about samples. This replaces only the items marked 'by itself right after the Workbench installs Open', before you can save anything. This follows Open V12's source code; the downloaded Workbench has not been checked against it.",
    "source": "flash-atlas derived/matrix.json (generated by apply_to_maps.py; do not edit by hand)"
   },
   {
    "to": "fm106",
    "name": "FM-106",
    "flags": "AS",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "settings and calibration",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use",
        "effect": "lost"
       },
       {
        "way": "when you confirm deletion of the active user slot (asks first: press again to confirm)",
        "effect": "lost"
       },
       {
        "way": "when you press SAVE in the save screen (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you release a short SAVE (without asking)",
        "effect": "lost"
       }
      ]
     }
    ],
    "possibly_at_risk": [],
    "carried_over": [],
    "kept_unseen": [],
    "notes": [
     "FM-106 Beta4 does not save edited user sounds, even when it says the save worked. Export them before turning off the FM-1 or changing firmware again."
    ],
    "owner_text": "At risk by itself: settings and calibration. FM-106 Beta4 does not save edited user sounds, even when it says the save worked. Export them before turning off the FM-1 or changing firmware again.",
    "source": "flash-atlas derived/matrix.json (generated by apply_to_maps.py; do not edit by hand)"
   },
   {
    "to": "hortator",
    "name": "Hortator",
    "flags": "ASK",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "settings and calibration",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use",
        "effect": "lost"
       },
       {
        "way": "when you calibrate the panel (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you remember or forget a Bluetooth device (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited project A",
      "effect": "lost",
      "ways": [
       {
        "way": "when you save a project (asks first or waits for you to turn again)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited project B",
      "effect": "lost",
      "ways": [
       {
        "way": "when you save a project (asks first or waits for you to turn again)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited project C",
      "effect": "lost",
      "ways": [
       {
        "way": "when you save a project (asks first or waits for you to turn again)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited project D",
      "effect": "lost",
      "ways": [
       {
        "way": "when you save a project (asks first or waits for you to turn again)",
        "effect": "lost"
       }
      ]
     }
    ],
    "possibly_at_risk": [],
    "carried_over": [
     "inherited user sample 1 (Hortator uses its own one-shot sound engines, so saved loops and slices play differently)",
     "inherited user sample 2 (Hortator uses its own one-shot sound engines, so saved loops and slices play differently)",
     "inherited user sample 3 (Hortator uses its own one-shot sound engines, so saved loops and slices play differently)"
    ],
    "kept_unseen": [],
    "notes": [],
    "owner_text": "At risk by itself: settings and calibration. At risk when you act: inherited project A; inherited project B; inherited project C; inherited project D. Carried over: inherited user sample 1 (Hortator uses its own one-shot sound engines, so saved loops and slices play differently); inherited user sample 2 (Hortator uses its own one-shot sound engines, so saved loops and slices play differently); inherited user sample 3 (Hortator uses its own one-shot sound engines, so saved loops and slices play differently).",
    "source": "flash-atlas derived/matrix.json (generated by apply_to_maps.py; do not edit by hand)"
   },
   {
    "to": "obervave",
    "name": "OberVave",
    "flags": "AS",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "settings and calibration",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use",
        "effect": "lost"
       },
       {
        "way": "when you tap SAVE twice outside the sequencer (asks for that slot only: press again to confirm; writes the whole bank)",
        "effect": "lost"
       }
      ]
     }
    ],
    "possibly_at_risk": [],
    "carried_over": [],
    "kept_unseen": [],
    "notes": [],
    "owner_text": "At risk by itself: settings and calibration.",
    "source": "flash-atlas derived/matrix.json (generated by apply_to_maps.py; do not edit by hand)"
   },
   {
    "to": "polly",
    "name": "Polly",
    "flags": "AS",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "inherited project A",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use",
        "effect": "lost"
       },
       {
        "way": "when you choose COPY SONG (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you confirm FACTORY RESET (asks first: press again to confirm)",
        "effect": "lost"
       },
       {
        "way": "when you confirm NEW SONG or FREE (asks first: press again to confirm)",
        "effect": "lost"
       },
       {
        "way": "when you press SAVE (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the computer",
        "effect": "lost"
       },
       {
        "way": "when you send a backup for USB restore with computer questions skipped (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you start a USB backup while playback is stopped, or enter a test session (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited project B",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use",
        "effect": "lost"
       },
       {
        "way": "when you choose COPY SONG (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you confirm FACTORY RESET (asks first: press again to confirm)",
        "effect": "lost"
       },
       {
        "way": "when you confirm NEW SONG or FREE (asks first: press again to confirm)",
        "effect": "lost"
       },
       {
        "way": "when you copy a Band groove with SAVE and a white key (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you press SAVE (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the computer",
        "effect": "lost"
       },
       {
        "way": "when you send a backup for USB restore with computer questions skipped (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you start a USB backup while playback is stopped, or enter a test session (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited project C",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use",
        "effect": "lost"
       },
       {
        "way": "when you choose COPY SONG (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you confirm FACTORY RESET (asks first: press again to confirm)",
        "effect": "lost"
       },
       {
        "way": "when you confirm NEW SONG or FREE (asks first: press again to confirm)",
        "effect": "lost"
       },
       {
        "way": "when you copy a Band groove with SAVE and a white key (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you press SAVE (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the computer",
        "effect": "lost"
       },
       {
        "way": "when you send a backup for USB restore with computer questions skipped (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you start a USB backup while playback is stopped, or enter a test session (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited project D",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use",
        "effect": "lost"
       },
       {
        "way": "when you choose COPY SONG (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you confirm FACTORY RESET (asks first: press again to confirm)",
        "effect": "lost"
       },
       {
        "way": "when you confirm NEW SONG or FREE (asks first: press again to confirm)",
        "effect": "lost"
       },
       {
        "way": "when you copy a Band groove with SAVE and a white key (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you press SAVE (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the computer",
        "effect": "lost"
       },
       {
        "way": "when you send a backup for USB restore with computer questions skipped (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you start a USB backup while playback is stopped, or enter a test session (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited FM6 patches for user presets",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use",
        "effect": "lost"
       },
       {
        "way": "when you choose COPY SONG (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you confirm FACTORY RESET (asks first: press again to confirm)",
        "effect": "lost"
       },
       {
        "way": "when you confirm NEW SONG or FREE (asks first: press again to confirm)",
        "effect": "lost"
       },
       {
        "way": "when you copy a Band groove with SAVE and a white key (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you press SAVE (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the computer",
        "effect": "lost"
       },
       {
        "way": "when you send a backup for USB restore with computer questions skipped (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you start a USB backup while playback is stopped, or enter a test session (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited user sample 1",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use",
        "effect": "lost"
       },
       {
        "way": "when you choose COPY SONG (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you confirm FACTORY RESET (asks first: press again to confirm)",
        "effect": "lost"
       },
       {
        "way": "when you confirm NEW SONG or FREE (asks first: press again to confirm)",
        "effect": "lost"
       },
       {
        "way": "when you copy a Band groove with SAVE and a white key (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you press SAVE (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the computer",
        "effect": "lost"
       },
       {
        "way": "when you send a backup for USB restore with computer questions skipped (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you start a USB backup while playback is stopped, or enter a test session (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited user sample 2",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use",
        "effect": "lost"
       },
       {
        "way": "when you choose COPY SONG (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you confirm FACTORY RESET (asks first: press again to confirm)",
        "effect": "lost"
       },
       {
        "way": "when you confirm NEW SONG or FREE (asks first: press again to confirm)",
        "effect": "lost"
       },
       {
        "way": "when you copy a Band groove with SAVE and a white key (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you install a QY70 style bank from the computer (the computer asks first)",
        "effect": "damaged (part written over)"
       },
       {
        "way": "when you press SAVE (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the computer",
        "effect": "lost"
       },
       {
        "way": "when you send a QY70 style bank directly with a computer tool (without asking)",
        "effect": "damaged (part written over)"
       },
       {
        "way": "when you send a backup for USB restore with computer questions skipped (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you start a USB backup while playback is stopped, or enter a test session (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "settings and calibration",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use",
        "effect": "lost"
       },
       {
        "way": "when you confirm FACTORY RESET (asks first: press again to confirm)",
        "effect": "lost"
       },
       {
        "way": "when you confirm NEW SONG or FREE (asks first: press again to confirm)",
        "effect": "lost"
       },
       {
        "way": "when you press SAVE (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the computer",
        "effect": "lost"
       },
       {
        "way": "when you send a backup for USB restore with computer questions skipped (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you start a USB backup while playback is stopped, or enter a test session (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited user sample 3",
      "effect": "lost",
      "ways": [
       {
        "way": "when you install a QY70 style bank from the computer (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you send a QY70 style bank directly with a computer tool (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited user preset bank 1",
      "effect": "lost",
      "ways": [
       {
        "way": "when you complete power-on hardware calibration (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited user preset bank 2",
      "effect": "lost",
      "ways": [
       {
        "way": "when you install a QY70 style bank from the computer (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you send a QY70 style bank directly with a computer tool (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "up to sixteen liked worlds",
      "effect": "lost",
      "ways": [
       {
        "way": "when you install a QY70 style bank from the computer (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you send a QY70 style bank directly with a computer tool (without asking)",
        "effect": "lost"
       }
      ]
     }
    ],
    "possibly_at_risk": [],
    "carried_over": [],
    "kept_unseen": [],
    "notes": [
     "After you agree to restore on the computer, Polly starts erasing before the FM-1 asks. Saying no on the FM-1 keeps Polly’s current project, but cannot bring back erased data from your previous firmware, even if the computer says nothing changed."
    ],
    "owner_text": "At risk by itself: inherited project A; inherited project B; inherited project C; inherited project D; inherited FM6 patches for user presets; inherited user sample 1; inherited user sample 2; settings and calibration. At risk when you act: inherited user sample 3; inherited user preset bank 1; inherited user preset bank 2; up to sixteen liked worlds. After you agree to restore on the computer, Polly starts erasing before the FM-1 asks. Saying no on the FM-1 keeps Polly’s current project, but cannot bring back erased data from your previous firmware, even if the computer says nothing changed.",
    "source": "flash-atlas derived/matrix.json (generated by apply_to_maps.py; do not edit by hand)"
   },
   {
    "to": "skiff",
    "name": "Skiff",
    "flags": "ACSK",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "up to sixteen liked worlds",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use (its RESTORE LAST is on by default)",
        "effect": "lost"
       },
       {
        "way": "automatically, only if Skiff starts without recovering from a crash, freeze or failed start, can read an older project that needs a new format and there is room to save its patterns",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "settings and calibration",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use",
        "effect": "changed automatically: Skiff can use or clear some shared preferences and save without asking. Its settings updates can replace both saved copies. Keeping calibration does not mean all saved settings survive"
       },
       {
        "way": "automatically, only if Skiff has not yet made its one-time settings changes",
        "effect": "changed automatically: Skiff can use or clear some shared preferences and save without asking. Its settings updates can replace both saved copies. Keeping calibration does not mean all saved settings survive"
       },
       {
        "way": "automatically, only if Skiff starts without recovering from a crash, freeze or failed start and has not already cleared the old scene storage",
        "effect": "changed automatically: Skiff can use or clear some shared preferences and save without asking. Its settings updates can replace both saved copies. Keeping calibration does not mean all saved settings survive"
       },
       {
        "way": "when you calibrate the panel or change editor preferences (without asking)",
        "effect": "changed automatically: Skiff can use or clear some shared preferences and save without asking. Its settings updates can replace both saved copies. Keeping calibration does not mean all saved settings survive"
       },
       {
        "way": "when you confirm RESET SETTINGS (asks first: press again to confirm)",
        "effect": "changed automatically: Skiff can use or clear some shared preferences and save without asking. Its settings updates can replace both saved copies. Keeping calibration does not mean all saved settings survive"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited user sample 1",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use",
        "effect": "damaged (part written over)"
       },
       {
        "way": "when you confirm a sample upload in the web editor (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you confirm erasing a sample slot (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you upload or erase a sample with the computer tool (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited user sample 2",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use",
        "effect": "damaged (part written over)"
       },
       {
        "way": "when you confirm a sample upload in the web editor (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you confirm erasing a sample slot (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you upload or erase a sample with the computer tool (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited user sample 3",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use",
        "effect": "damaged (part written over)"
       },
       {
        "way": "when you confirm a sample upload in the web editor (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you confirm erasing a sample slot (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you upload or erase a sample with the computer tool (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited project A",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically, only if Skiff starts without recovering from a crash, freeze or failed start, can read an older project that needs a new format and there is room to save its patterns",
        "effect": "changed to the new format: Once Skiff writes the converted project, returning to the previous firmware cannot load that new project copy; its surviving older copy is not a backup guarantee. This changes how the project is stored and plays. This firmware change has not been tested on an FM-1"
       },
       {
        "way": "when you choose RENAME in the web editor (without asking)",
        "effect": "changed to the new format: Once Skiff writes the converted project, returning to the previous firmware cannot load that new project copy; its surviving older copy is not a backup guarantee. This changes how the project is stored and plays. This firmware change has not been tested on an FM-1"
       },
       {
        "way": "when you choose SAVE AS in the web editor (the computer asks first)",
        "effect": "changed to the new format: Once Skiff writes the converted project, returning to the previous firmware cannot load that new project copy; its surviving older copy is not a backup guarantee. This changes how the project is stored and plays. This firmware change has not been tested on an FM-1"
       },
       {
        "way": "when you rename a saved project (without asking)",
        "effect": "changed to the new format: Once Skiff writes the converted project, returning to the previous firmware cannot load that new project copy; its surviving older copy is not a backup guarantee. This changes how the project is stored and plays. This firmware change has not been tested on an FM-1"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save a project (asks first)",
        "effect": "changed to the new format: Once Skiff writes the converted project, returning to the previous firmware cannot load that new project copy; its surviving older copy is not a backup guarantee. This changes how the project is stored and plays. This firmware change has not been tested on an FM-1"
       },
       {
        "way": "when you save a project with the web editor’s older save command (the computer asks first)",
        "effect": "changed to the new format: Once Skiff writes the converted project, returning to the previous firmware cannot load that new project copy; its surviving older copy is not a backup guarantee. This changes how the project is stored and plays. This firmware change has not been tested on an FM-1"
       }
      ]
     },
     {
      "object": "inherited project B",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically, only if Skiff starts without recovering from a crash, freeze or failed start, can read an older project that needs a new format and there is room to save its patterns",
        "effect": "changed to the new format: Once Skiff writes the converted project, returning to the previous firmware cannot load that new project copy; its surviving older copy is not a backup guarantee. This changes how the project is stored and plays. This firmware change has not been tested on an FM-1"
       },
       {
        "way": "when you choose RENAME in the web editor (without asking)",
        "effect": "changed to the new format: Once Skiff writes the converted project, returning to the previous firmware cannot load that new project copy; its surviving older copy is not a backup guarantee. This changes how the project is stored and plays. This firmware change has not been tested on an FM-1"
       },
       {
        "way": "when you choose SAVE AS in the web editor (the computer asks first)",
        "effect": "changed to the new format: Once Skiff writes the converted project, returning to the previous firmware cannot load that new project copy; its surviving older copy is not a backup guarantee. This changes how the project is stored and plays. This firmware change has not been tested on an FM-1"
       },
       {
        "way": "when you rename a saved project (without asking)",
        "effect": "changed to the new format: Once Skiff writes the converted project, returning to the previous firmware cannot load that new project copy; its surviving older copy is not a backup guarantee. This changes how the project is stored and plays. This firmware change has not been tested on an FM-1"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save a project (asks first)",
        "effect": "changed to the new format: Once Skiff writes the converted project, returning to the previous firmware cannot load that new project copy; its surviving older copy is not a backup guarantee. This changes how the project is stored and plays. This firmware change has not been tested on an FM-1"
       },
       {
        "way": "when you save a project with the web editor’s older save command (the computer asks first)",
        "effect": "changed to the new format: Once Skiff writes the converted project, returning to the previous firmware cannot load that new project copy; its surviving older copy is not a backup guarantee. This changes how the project is stored and plays. This firmware change has not been tested on an FM-1"
       }
      ]
     },
     {
      "object": "inherited project C",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically, only if Skiff starts without recovering from a crash, freeze or failed start, can read an older project that needs a new format and there is room to save its patterns",
        "effect": "changed to the new format: Once Skiff writes the converted project, returning to the previous firmware cannot load that new project copy; its surviving older copy is not a backup guarantee. This changes how the project is stored and plays. This firmware change has not been tested on an FM-1"
       },
       {
        "way": "when you choose RENAME in the web editor (without asking)",
        "effect": "changed to the new format: Once Skiff writes the converted project, returning to the previous firmware cannot load that new project copy; its surviving older copy is not a backup guarantee. This changes how the project is stored and plays. This firmware change has not been tested on an FM-1"
       },
       {
        "way": "when you choose SAVE AS in the web editor (the computer asks first)",
        "effect": "changed to the new format: Once Skiff writes the converted project, returning to the previous firmware cannot load that new project copy; its surviving older copy is not a backup guarantee. This changes how the project is stored and plays. This firmware change has not been tested on an FM-1"
       },
       {
        "way": "when you rename a saved project (without asking)",
        "effect": "changed to the new format: Once Skiff writes the converted project, returning to the previous firmware cannot load that new project copy; its surviving older copy is not a backup guarantee. This changes how the project is stored and plays. This firmware change has not been tested on an FM-1"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save a project (asks first)",
        "effect": "changed to the new format: Once Skiff writes the converted project, returning to the previous firmware cannot load that new project copy; its surviving older copy is not a backup guarantee. This changes how the project is stored and plays. This firmware change has not been tested on an FM-1"
       },
       {
        "way": "when you save a project with the web editor’s older save command (the computer asks first)",
        "effect": "changed to the new format: Once Skiff writes the converted project, returning to the previous firmware cannot load that new project copy; its surviving older copy is not a backup guarantee. This changes how the project is stored and plays. This firmware change has not been tested on an FM-1"
       }
      ]
     },
     {
      "object": "inherited project D",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically, only if Skiff starts without recovering from a crash, freeze or failed start, can read an older project that needs a new format and there is room to save its patterns",
        "effect": "changed to the new format: Once Skiff writes the converted project, returning to the previous firmware cannot load that new project copy; its surviving older copy is not a backup guarantee. This changes how the project is stored and plays. This firmware change has not been tested on an FM-1"
       },
       {
        "way": "when you choose RENAME in the web editor (without asking)",
        "effect": "changed to the new format: Once Skiff writes the converted project, returning to the previous firmware cannot load that new project copy; its surviving older copy is not a backup guarantee. This changes how the project is stored and plays. This firmware change has not been tested on an FM-1"
       },
       {
        "way": "when you choose SAVE AS in the web editor (the computer asks first)",
        "effect": "changed to the new format: Once Skiff writes the converted project, returning to the previous firmware cannot load that new project copy; its surviving older copy is not a backup guarantee. This changes how the project is stored and plays. This firmware change has not been tested on an FM-1"
       },
       {
        "way": "when you rename a saved project (without asking)",
        "effect": "changed to the new format: Once Skiff writes the converted project, returning to the previous firmware cannot load that new project copy; its surviving older copy is not a backup guarantee. This changes how the project is stored and plays. This firmware change has not been tested on an FM-1"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save a project (asks first)",
        "effect": "changed to the new format: Once Skiff writes the converted project, returning to the previous firmware cannot load that new project copy; its surviving older copy is not a backup guarantee. This changes how the project is stored and plays. This firmware change has not been tested on an FM-1"
       },
       {
        "way": "when you save a project with the web editor’s older save command (the computer asks first)",
        "effect": "changed to the new format: Once Skiff writes the converted project, returning to the previous firmware cannot load that new project copy; its surviving older copy is not a backup guarantee. This changes how the project is stored and plays. This firmware change has not been tested on an FM-1"
       }
      ]
     },
     {
      "object": "inherited FM6 patches for user presets",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically, only if a valid older FM6 patch bank is still stored and no current set of FM6 patches can be loaded",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save an FM6 user sound (does not ask if that slot is empty; writes the whole bank)",
        "effect": "partly lost (only that patch)"
       },
       {
        "way": "when you send an FM6 patch directly with a MIDI tool (without asking; writes the whole bank)",
        "effect": "partly lost (only that patch)"
       },
       {
        "way": "when you send an FM6 sound from the editor (does not ask if that slot is empty; writes the whole bank)",
        "effect": "partly lost (only that patch)"
       },
       {
        "way": "when you store an FM6 sound from the editor (does not ask if that slot is empty; writes the whole bank)",
        "effect": "partly lost (only that patch)"
       }
      ]
     },
     {
      "object": "inherited user preset bank 1",
      "effect": "lost",
      "ways": [
       {
        "way": "when you erase a sound from the web editor (the computer asks first for that slot only; writes the whole bank)",
        "effect": "changed to the new format: Saving, importing, erasing or renaming any sound writes the whole bank with Skiff’s changed sounds. Your previous firmware may play changed sounds or show sounds it cannot read as empty. New Skiff sounds use a newer saved format than firmwares that accept only version 1–3. The same saved sound format does not guarantee the same sound or pattern playback"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save, import, erase or rename a user sound (does not ask if that slot is empty; writes the whole bank)",
        "effect": "changed to the new format: Saving, importing, erasing or renaming any sound writes the whole bank with Skiff’s changed sounds. Your previous firmware may play changed sounds or show sounds it cannot read as empty. New Skiff sounds use a newer saved format than firmwares that accept only version 1–3. The same saved sound format does not guarantee the same sound or pattern playback"
       },
       {
        "way": "when you send a user sound from the editor (does not ask if that slot is empty; writes the whole bank)",
        "effect": "changed to the new format: Saving, importing, erasing or renaming any sound writes the whole bank with Skiff’s changed sounds. Your previous firmware may play changed sounds or show sounds it cannot read as empty. New Skiff sounds use a newer saved format than firmwares that accept only version 1–3. The same saved sound format does not guarantee the same sound or pattern playback"
       },
       {
        "way": "when you store the current sound from the editor (does not ask if that slot is empty; writes the whole bank)",
        "effect": "changed to the new format: Saving, importing, erasing or renaming any sound writes the whole bank with Skiff’s changed sounds. Your previous firmware may play changed sounds or show sounds it cannot read as empty. New Skiff sounds use a newer saved format than firmwares that accept only version 1–3. The same saved sound format does not guarantee the same sound or pattern playback"
       }
      ]
     },
     {
      "object": "inherited user preset bank 2",
      "effect": "lost",
      "ways": [
       {
        "way": "when you erase a sound from the web editor (the computer asks first for that slot only; writes the whole bank)",
        "effect": "changed to the new format: Saving, importing, erasing or renaming any sound writes the whole bank with Skiff’s changed sounds. Your previous firmware may play changed sounds or show sounds it cannot read as empty. New Skiff sounds use a newer saved format than firmwares that accept only version 1–3. The same saved sound format does not guarantee the same sound or pattern playback"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save, import, erase or rename a user sound (does not ask if that slot is empty; writes the whole bank)",
        "effect": "changed to the new format: Saving, importing, erasing or renaming any sound writes the whole bank with Skiff’s changed sounds. Your previous firmware may play changed sounds or show sounds it cannot read as empty. New Skiff sounds use a newer saved format than firmwares that accept only version 1–3. The same saved sound format does not guarantee the same sound or pattern playback"
       },
       {
        "way": "when you send a user sound from the editor (does not ask if that slot is empty; writes the whole bank)",
        "effect": "changed to the new format: Saving, importing, erasing or renaming any sound writes the whole bank with Skiff’s changed sounds. Your previous firmware may play changed sounds or show sounds it cannot read as empty. New Skiff sounds use a newer saved format than firmwares that accept only version 1–3. The same saved sound format does not guarantee the same sound or pattern playback"
       },
       {
        "way": "when you store the current sound from the editor (does not ask if that slot is empty; writes the whole bank)",
        "effect": "changed to the new format: Saving, importing, erasing or renaming any sound writes the whole bank with Skiff’s changed sounds. Your previous firmware may play changed sounds or show sounds it cannot read as empty. New Skiff sounds use a newer saved format than firmwares that accept only version 1–3. The same saved sound format does not guarantee the same sound or pattern playback"
       }
      ]
     }
    ],
    "possibly_at_risk": [],
    "carried_over": [],
    "kept_unseen": [],
    "notes": [
     "Skiff keeps the saved RESTORE LAST choice: ON allows autosave; OFF disables it.",
     "Skiff reads inherited FM6 patches for user presets until you write over the saved data. A separate saved FM6 patch works only while its matching FM6 user sound is still stored.",
     "Skiff reads inherited user sample 1 until you write over the saved data. Skiff uses its own sound engines, so saved loops or slices can play differently.",
     "Skiff reads inherited user sample 2 until you write over the saved data. Skiff uses its own sound engines, so saved loops or slices can play differently.",
     "Skiff reads inherited user sample 3 until you write over the saved data. Skiff uses its own sound engines, so saved loops or slices can play differently."
    ],
    "owner_text": "At risk by itself: up to sixteen liked worlds; settings and calibration; inherited user sample 1; inherited user sample 2; inherited user sample 3. At risk by itself, under a condition: inherited project A; inherited project B; inherited project C; inherited project D; inherited FM6 patches for user presets. At risk when you act: inherited user preset bank 1; inherited user preset bank 2. Skiff keeps the saved RESTORE LAST choice: ON allows autosave; OFF disables it. Skiff reads inherited FM6 patches for user presets until you write over the saved data. A separate saved FM6 patch works only while its matching FM6 user sound is still stored. Skiff reads inherited user sample 1 until you write over the saved data. Skiff uses its own sound engines, so saved loops or slices can play differently. Skiff reads inherited user sample 2 until you write over the saved data. Skiff uses its own sound engines, so saved loops or slices can play differently. Skiff reads inherited user sample 3 until you write over the saved data. Skiff uses its own sound engines, so saved loops or slices can play differently.",
    "source": "flash-atlas derived/matrix.json (generated by apply_to_maps.py; do not edit by hand)"
   },
   {
    "to": "sloopdx",
    "name": "sloopDX",
    "flags": "ACSK",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "inherited FM6 patches for user presets",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start",
        "effect": "lost"
       },
       {
        "way": "automatically during use",
        "effect": "lost"
       },
       {
        "way": "automatically, only when the working loop has unsaved changes, no song is playing, and you start an update or enter UPDATE MODE",
        "effect": "lost"
       },
       {
        "way": "when you choose FACTORY RESET in ABOUT and confirm (asks first: press again to confirm)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited user sample 2",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use",
        "effect": "damaged (part written over)"
       },
       {
        "way": "automatically, only when you leave a bank with unsaved voice changes and a bank is active",
        "effect": "lost"
       },
       {
        "way": "when you choose FACTORY RESET in ABOUT and confirm (asks first: press again to confirm)",
        "effect": "lost"
       },
       {
        "way": "when you erase the selected bank from the web editor (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save MY KIT by tapping SAVE twice from KIT or LANE (asks first: press again to confirm)",
        "effect": "damaged (part written over)"
       },
       {
        "way": "when you save the active bank by tapping EDIT twice on Store (asks first: press again to confirm)",
        "effect": "lost"
       },
       {
        "way": "when you save the active bank from the DX7 list (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save the active bank from the web editor (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you send MY KIT from the web editor (without asking)",
        "effect": "damaged (part written over)"
       },
       {
        "way": "when you send a DX7 bank from the web editor (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you send or erase a DX7 bank with a computer tool (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "settings and calibration",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use",
        "effect": "lost"
       },
       {
        "way": "automatically, only when the saved input setting selects one MIDI channel rather than NOTES or CLOCK",
        "effect": "lost"
       },
       {
        "way": "when you calibrate the controls at power-on (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you choose FACTORY RESET in ABOUT and confirm (asks first: press again to confirm)",
        "effect": "lost"
       },
       {
        "way": "when you press REC on the SONG screen to save a section and the song order (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save the song order (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you send settings, MIDI controls or a theme with computer commands (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited user sample 1",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically, only when you leave a bank with unsaved voice changes and a bank is active",
        "effect": "lost"
       },
       {
        "way": "when you choose FACTORY RESET in ABOUT and confirm (asks first: press again to confirm)",
        "effect": "lost"
       },
       {
        "way": "when you erase the selected bank from the web editor (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save the active bank by tapping EDIT twice on Store (asks first: press again to confirm)",
        "effect": "lost"
       },
       {
        "way": "when you save the active bank from the DX7 list (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save the active bank from the web editor (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you send a DX7 bank from the web editor (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you send or erase a DX7 bank with a computer tool (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited project A",
      "effect": "lost",
      "ways": [
       {
        "way": "when you choose FACTORY RESET in ABOUT and confirm (asks first: press again to confirm)",
        "effect": "lost"
       },
       {
        "way": "when you press REC on the SONG screen to save a section and the song order (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save a project from the editor (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you save a section and confirm it on the SECTION page (asks first or waits for you to turn again)",
        "effect": "lost"
       },
       {
        "way": "when you save a section with SAVE and white keys 5–8 (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you send or clear a section with computer commands (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited project B",
      "effect": "lost",
      "ways": [
       {
        "way": "when you choose FACTORY RESET in ABOUT and confirm (asks first: press again to confirm)",
        "effect": "lost"
       },
       {
        "way": "when you press REC on the SONG screen to save a section and the song order (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save a project from the editor (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you save a section and confirm it on the SECTION page (asks first or waits for you to turn again)",
        "effect": "lost"
       },
       {
        "way": "when you save a section with SAVE and white keys 5–8 (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you send or clear a section with computer commands (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited project C",
      "effect": "lost",
      "ways": [
       {
        "way": "when you choose FACTORY RESET in ABOUT and confirm (asks first: press again to confirm)",
        "effect": "lost"
       },
       {
        "way": "when you press REC on the SONG screen to save a section and the song order (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save a project from the editor (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you save a section and confirm it on the SECTION page (asks first or waits for you to turn again)",
        "effect": "lost"
       },
       {
        "way": "when you save a section with SAVE and white keys 5–8 (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you send or clear a section with computer commands (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited project D",
      "effect": "lost",
      "ways": [
       {
        "way": "when you choose FACTORY RESET in ABOUT and confirm (asks first: press again to confirm)",
        "effect": "lost"
       },
       {
        "way": "when you press REC on the SONG screen to save a section and the song order (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save a project from the editor (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you save a section and confirm it on the SECTION page (asks first or waits for you to turn again)",
        "effect": "lost"
       },
       {
        "way": "when you save a section with SAVE and white keys 5–8 (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you send or clear a section with computer commands (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited user preset bank 1",
      "effect": "lost",
      "ways": [
       {
        "way": "when you choose FACTORY RESET in ABOUT and confirm (asks first: press again to confirm)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save or erase a user sound (asks or waits for you to turn again for that slot only; writes the whole bank)",
        "effect": "partly lost (only that slot)"
       },
       {
        "way": "when you save the current sound from the editor (without asking; writes the whole bank)",
        "effect": "partly lost (the slot you save into)"
       },
       {
        "way": "when you send a user sound from the editor (without asking; writes the whole bank)",
        "effect": "partly lost (the slot you save into)"
       }
      ]
     },
     {
      "object": "inherited user preset bank 2",
      "effect": "lost",
      "ways": [
       {
        "way": "when you choose FACTORY RESET in ABOUT and confirm (asks first: press again to confirm)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save or erase a user sound (asks or waits for you to turn again for that slot only; writes the whole bank)",
        "effect": "partly lost (only that slot)"
       },
       {
        "way": "when you save the current sound from the editor (without asking; writes the whole bank)",
        "effect": "partly lost (the slot you save into)"
       },
       {
        "way": "when you send a user sound from the editor (without asking; writes the whole bank)",
        "effect": "partly lost (the slot you save into)"
       }
      ]
     }
    ],
    "possibly_at_risk": [],
    "carried_over": [],
    "kept_unseen": [],
    "notes": [
     "sloopDX keeps stored but does not show inherited user preset bank 1 until you write over the saved data. Your sounds stay saved but cannot be shown or played. Saving into their slots removes them; saving elsewhere keeps them. Saving on the FM-1 needs another turn of the same control, with no warning that the slot holds a hidden sound.",
     "sloopDX keeps stored but does not show inherited user preset bank 2 until you write over the saved data. Your sounds stay saved but cannot be shown or played. Saving into their slots removes them; saving elsewhere keeps them. Saving on the FM-1 needs another turn of the same control, with no warning that the slot holds a hidden sound."
    ],
    "owner_text": "At risk by itself: inherited FM6 patches for user presets; inherited user sample 2; settings and calibration. At risk by itself, under a condition: inherited user sample 1. At risk when you act: inherited project A; inherited project B; inherited project C; inherited project D; inherited user preset bank 1; inherited user preset bank 2. sloopDX keeps stored but does not show inherited user preset bank 1 until you write over the saved data. Your sounds stay saved but cannot be shown or played. Saving into their slots removes them; saving elsewhere keeps them. Saving on the FM-1 needs another turn of the same control, with no warning that the slot holds a hidden sound. sloopDX keeps stored but does not show inherited user preset bank 2 until you write over the saved data. Your sounds stay saved but cannot be shown or played. Saving into their slots removes them; saving elsewhere keeps them. Saving on the FM-1 needs another turn of the same control, with no warning that the slot holds a hidden sound.",
    "source": "flash-atlas derived/matrix.json (generated by apply_to_maps.py; do not edit by hand)"
   },
   {
    "to": "rainbow",
    "name": "Rainbow Mode",
    "flags": "ACSK",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "settings and calibration",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use",
        "effect": "changed to the new format: Rainbow keeps its WRITE song, greeting, hat and volume with settings and favourites. Loading or later saving those settings can change them, so not all of them survive a return to Rainbow. These firmwares save settings and favourites in the same space. An edit here can change the other firmware’s choices"
       },
       {
        "way": "automatically, only if a greeting name was entered in the installer",
        "effect": "changed to the new format: Rainbow keeps its WRITE song, greeting, hat and volume with settings and favourites. Loading or later saving those settings can change them, so not all of them survive a return to Rainbow. These firmwares save settings and favourites in the same space. An edit here can change the other firmware’s choices"
       },
       {
        "way": "when you change Rainbow preferences or save its greeting name (without asking)",
        "effect": "changed to the new format: Rainbow keeps its WRITE song, greeting, hat and volume with settings and favourites. Loading or later saving those settings can change them, so not all of them survive a return to Rainbow. These firmwares save settings and favourites in the same space. An edit here can change the other firmware’s choices"
       },
       {
        "way": "when you erase a user preset (asks first: press again to confirm)",
        "effect": "changed to the new format: Rainbow keeps its WRITE song, greeting, hat and volume with settings and favourites. Loading or later saving those settings can change them, so not all of them survive a return to Rainbow. These firmwares save settings and favourites in the same space. An edit here can change the other firmware’s choices"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you run hardware calibration (without asking)",
        "effect": "changed to the new format: Rainbow keeps its WRITE song, greeting, hat and volume with settings and favourites. Loading or later saving those settings can change them, so not all of them survive a return to Rainbow. These firmwares save settings and favourites in the same space. An edit here can change the other firmware’s choices"
       },
       {
        "way": "when you send settings or a name from the editor (without asking)",
        "effect": "changed to the new format: Rainbow keeps its WRITE song, greeting, hat and volume with settings and favourites. Loading or later saving those settings can change them, so not all of them survive a return to Rainbow. These firmwares save settings and favourites in the same space. An edit here can change the other firmware’s choices"
       }
      ]
     },
     {
      "object": "up to sixteen liked worlds",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically, only if you open the full version of Felucca by holding HOME + SAVE for 3 seconds and its RESTORE LAST is on (the default)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited FM6 patches for user presets",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically, only if a compatible older FM6 bank remains and there is no current bank of FM6 patches for your sounds",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save an FM6 user sound (does not ask if that slot is empty; writes the whole bank)",
        "effect": "partly lost (only that patch)"
       },
       {
        "way": "when you send an FM6 user sound from the editor (does not ask if that slot is empty; writes the whole bank)",
        "effect": "partly lost (only that patch)"
       },
       {
        "way": "when you store the current FM6 sound from the editor (does not ask if that slot is empty; writes the whole bank)",
        "effect": "partly lost (only that patch)"
       }
      ]
     },
     {
      "object": "inherited project A",
      "effect": "lost",
      "ways": [
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save a project (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save a project from the editor (the computer asks first)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited project B",
      "effect": "lost",
      "ways": [
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save a project (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save a project from the editor (the computer asks first)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited project C",
      "effect": "lost",
      "ways": [
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save a project (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save a project from the editor (the computer asks first)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited project D",
      "effect": "lost",
      "ways": [
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save a project (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save a project from the editor (the computer asks first)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited user sample 1",
      "effect": "lost",
      "ways": [
       {
        "way": "when you edit sample slice markers (without asking)",
        "effect": "damaged (part written over)"
       },
       {
        "way": "when you erase a sample from the editor (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you send a sample to the FM-1 from the editor (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you upload or erase a sample with the computer tool (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited user sample 2",
      "effect": "lost",
      "ways": [
       {
        "way": "when you edit sample slice markers (without asking)",
        "effect": "damaged (part written over)"
       },
       {
        "way": "when you erase a sample from the editor (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you send a sample to the FM-1 from the editor (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you upload or erase a sample with the computer tool (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited user sample 3",
      "effect": "lost",
      "ways": [
       {
        "way": "when you edit sample slice markers (without asking)",
        "effect": "damaged (part written over)"
       },
       {
        "way": "when you erase a sample from the editor (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you send a sample to the FM-1 from the editor (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you upload or erase a sample with the computer tool (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited user preset bank 1",
      "effect": "lost",
      "ways": [
       {
        "way": "when you erase a user preset (asks for that slot only: press again to confirm; writes the whole bank)",
        "effect": "partly lost (only that slot)"
       },
       {
        "way": "when you erase a user sound from the editor (the computer asks first for that slot only; writes the whole bank)",
        "effect": "partly lost (only that slot)"
       },
       {
        "way": "when you rename a user preset (without asking; writes the whole bank)",
        "effect": "partly lost (only that slot)"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save a user preset (does not ask if that slot is empty; writes the whole bank)",
        "effect": "partly lost (only that slot)"
       },
       {
        "way": "when you send a user sound from the editor (does not ask if that slot is empty; writes the whole bank)",
        "effect": "partly lost (only that slot)"
       },
       {
        "way": "when you store the current sound from the editor (does not ask if that slot is empty; writes the whole bank)",
        "effect": "partly lost (only that slot)"
       }
      ]
     },
     {
      "object": "inherited user preset bank 2",
      "effect": "lost",
      "ways": [
       {
        "way": "when you erase a user preset (asks for that slot only: press again to confirm; writes the whole bank)",
        "effect": "partly lost (only that slot)"
       },
       {
        "way": "when you erase a user sound from the editor (the computer asks first for that slot only; writes the whole bank)",
        "effect": "partly lost (only that slot)"
       },
       {
        "way": "when you rename a user preset (without asking; writes the whole bank)",
        "effect": "partly lost (only that slot)"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save a user preset (does not ask if that slot is empty; writes the whole bank)",
        "effect": "partly lost (only that slot)"
       },
       {
        "way": "when you send a user sound from the editor (does not ask if that slot is empty; writes the whole bank)",
        "effect": "partly lost (only that slot)"
       },
       {
        "way": "when you store the current sound from the editor (does not ask if that slot is empty; writes the whole bank)",
        "effect": "partly lost (only that slot)"
       }
      ]
     }
    ],
    "possibly_at_risk": [],
    "carried_over": [],
    "kept_unseen": [],
    "notes": [
     "These shared settings leave RESTORE LAST on by default. A saved OFF choice stops automatic saving.",
     "Rainbow Mode reads inherited FM6 patches for user presets until you write over the saved data. Changing a sound or its format can make its separate patch unavailable.",
     "Rainbow Mode reads inherited user sample 1 until you write over the saved data. Only data in this sample slot is read. Other saved work is separate.",
     "Rainbow Mode reads inherited user sample 2 until you write over the saved data. Only data in this sample slot is read. Other saved work is separate.",
     "Rainbow Mode reads inherited user sample 3 until you write over the saved data. Only data in this sample slot is read. Other saved work is separate.",
     "Rainbow Mode reads inherited user preset bank 1 until you write over the saved data. Only sounds this firmware can read will play. Saving into a slot it cannot read can replace it without an overwrite question. MAKU’s insert controls become timing and modulation controls in Felucca. Earlier firmware ignores them. The insert sound is not kept.",
     "Rainbow Mode reads inherited user preset bank 2 until you write over the saved data. Only sounds this firmware can read will play. Saving into a slot it cannot read can replace it without an overwrite question. MAKU’s insert controls become timing and modulation controls in Felucca. Earlier firmware ignores them. The insert sound is not kept."
    ],
    "owner_text": "At risk by itself: settings and calibration. At risk by itself, under a condition: up to sixteen liked worlds; inherited FM6 patches for user presets. At risk when you act: inherited project A; inherited project B; inherited project C; inherited project D; inherited user sample 1; inherited user sample 2; inherited user sample 3; inherited user preset bank 1; inherited user preset bank 2. These shared settings leave RESTORE LAST on by default. A saved OFF choice stops automatic saving. Rainbow Mode reads inherited FM6 patches for user presets until you write over the saved data. Changing a sound or its format can make its separate patch unavailable. Rainbow Mode reads inherited user sample 1 until you write over the saved data. Only data in this sample slot is read. Other saved work is separate. Rainbow Mode reads inherited user sample 2 until you write over the saved data. Only data in this sample slot is read. Other saved work is separate. Rainbow Mode reads inherited user sample 3 until you write over the saved data. Only data in this sample slot is read. Other saved work is separate. Rainbow Mode reads inherited user preset bank 1 until you write over the saved data. Only sounds this firmware can read will play. Saving into a slot it cannot read can replace it without an overwrite question. MAKU’s insert controls become timing and modulation controls in Felucca. Earlier firmware ignores them. The insert sound is not kept. Rainbow Mode reads inherited user preset bank 2 until you write over the saved data. Only sounds this firmware can read will play. Saving into a slot it cannot read can replace it without an overwrite question. MAKU’s insert controls become timing and modulation controls in Felucca. Earlier firmware ignores them. The insert sound is not kept.",
    "source": "flash-atlas derived/matrix.json (generated by apply_to_maps.py; do not edit by hand)"
   },
   {
    "to": "duell",
    "name": "DUELL beta",
    "flags": "ACS",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "up to sixteen liked worlds",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use (its RESTORE LAST is on by default)",
        "effect": "lost"
       },
       {
        "way": "automatically, only if loading M01 at first start changes the music and RESTORE LAST is on",
        "effect": "lost"
       },
       {
        "way": "when you erase all saved data (asks first: press again to confirm)",
        "effect": "lost"
       },
       {
        "way": "when you install DUELL with Erase saved data enabled (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you send an FM6 voice bank directly with a MIDI tool (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you send the erase-all command directly with a MIDI tool (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "settings and calibration",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start",
        "effect": "lost"
       },
       {
        "way": "automatically during use",
        "effect": "lost"
       },
       {
        "way": "when you calibrate the panel (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you change MIDI LEARN (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you change USB serial settings from the editor (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you change preferences from the editor (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you erase all saved data (asks first: press again to confirm)",
        "effect": "lost"
       },
       {
        "way": "when you install DUELL with Erase saved data enabled (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you send backup restore commands directly with a MIDI tool (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you send the erase-all command directly with a MIDI tool (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited project A",
      "effect": "lost",
      "ways": [
       {
        "way": "when you erase all saved data (asks first: press again to confirm)",
        "effect": "lost"
       },
       {
        "way": "when you install DUELL with Erase saved data enabled (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save a multi (asks for that slot only: press the button to confirm; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you save a multi directly with a MIDI tool (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you save a multi from the editor (the computer asks first for that slot only; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you send backup restore commands directly with a MIDI tool (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you send the erase-all command directly with a MIDI tool (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited project B",
      "effect": "lost",
      "ways": [
       {
        "way": "when you erase all saved data (asks first: press again to confirm)",
        "effect": "lost"
       },
       {
        "way": "when you install DUELL with Erase saved data enabled (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save a multi (asks for that slot only: press the button to confirm; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you save a multi directly with a MIDI tool (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you save a multi from the editor (the computer asks first for that slot only; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you send backup restore commands directly with a MIDI tool (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you send the erase-all command directly with a MIDI tool (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited project C",
      "effect": "lost",
      "ways": [
       {
        "way": "when you erase all saved data (asks first: press again to confirm)",
        "effect": "lost"
       },
       {
        "way": "when you install DUELL with Erase saved data enabled (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save a multi (asks for that slot only: press the button to confirm; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you save a multi directly with a MIDI tool (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you save a multi from the editor (the computer asks first for that slot only; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you send backup restore commands directly with a MIDI tool (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you send the erase-all command directly with a MIDI tool (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited project D",
      "effect": "lost",
      "ways": [
       {
        "way": "when you erase all saved data (asks first: press again to confirm)",
        "effect": "lost"
       },
       {
        "way": "when you install DUELL with Erase saved data enabled (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save a multi (asks for that slot only: press the button to confirm; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you save a multi directly with a MIDI tool (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you save a multi from the editor (the computer asks first for that slot only; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you send backup restore commands directly with a MIDI tool (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you send the erase-all command directly with a MIDI tool (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited FM6 patches for user presets",
      "effect": "lost",
      "ways": [
       {
        "way": "when you erase all saved data (asks first: press again to confirm)",
        "effect": "lost"
       },
       {
        "way": "when you install DUELL with Erase saved data enabled (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you rename a patch from the editor (the computer asks first for that slot only; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save a patch on the panel (asks for that slot only: press the button to confirm; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you save or import a patch from the editor (the computer asks first for that slot only; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you send a patch directly with a MIDI tool (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you send backup restore commands directly with a MIDI tool (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you send the erase-all command directly with a MIDI tool (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited user sample 1",
      "effect": "lost",
      "ways": [
       {
        "way": "when you erase a user wavetable directly with a MIDI tool (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you erase all saved data (asks first: press again to confirm)",
        "effect": "lost"
       },
       {
        "way": "when you install DUELL with Erase saved data enabled (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you rename a patch from the editor (the computer asks first for that slot only; writes the whole bank)",
        "effect": "damaged (part written over)"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save a patch on the panel (asks for that slot only: press the button to confirm; writes the whole bank)",
        "effect": "damaged (part written over)"
       },
       {
        "way": "when you save or import a patch from the editor (the computer asks first for that slot only; writes the whole bank)",
        "effect": "damaged (part written over)"
       },
       {
        "way": "when you send a patch directly with a MIDI tool (without asking; writes the whole bank)",
        "effect": "damaged (part written over)"
       },
       {
        "way": "when you send a user wavetable directly with a MIDI tool (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you send backup restore commands directly with a MIDI tool (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you send the erase-all command directly with a MIDI tool (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you upload a user wavetable from the editor (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited user sample 2",
      "effect": "lost",
      "ways": [
       {
        "way": "when you erase all saved data (asks first: press again to confirm)",
        "effect": "lost"
       },
       {
        "way": "when you install DUELL with Erase saved data enabled (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you rename a patch from the editor (the computer asks first for that slot only; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save a patch on the panel (asks for that slot only: press the button to confirm; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you save or import a patch from the editor (the computer asks first for that slot only; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you send a patch directly with a MIDI tool (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you send backup restore commands directly with a MIDI tool (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you send the erase-all command directly with a MIDI tool (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited user sample 3",
      "effect": "lost",
      "ways": [
       {
        "way": "when you erase all saved data (asks first: press again to confirm)",
        "effect": "lost"
       },
       {
        "way": "when you install DUELL with Erase saved data enabled (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you rename a patch from the editor (the computer asks first for that slot only; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save a multi (without asking; writes the whole bank)",
        "effect": "damaged (part written over)"
       },
       {
        "way": "when you save a multi directly with a MIDI tool (without asking; writes the whole bank)",
        "effect": "damaged (part written over)"
       },
       {
        "way": "when you save a multi from the editor (the computer asks first for that slot only; writes the whole bank)",
        "effect": "damaged (part written over)"
       },
       {
        "way": "when you save a patch on the panel (asks for that slot only: press the button to confirm; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you save or erase a pattern (asks for that slot only: press the button to confirm; writes the whole bank)",
        "effect": "damaged (part written over)"
       },
       {
        "way": "when you save or import a patch from the editor (the computer asks first for that slot only; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you send a patch directly with a MIDI tool (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you send backup restore commands directly with a MIDI tool (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you send the erase-all command directly with a MIDI tool (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited user preset bank 1",
      "effect": "lost",
      "ways": [
       {
        "way": "when you erase all saved data (asks first: press again to confirm)",
        "effect": "lost"
       },
       {
        "way": "when you install DUELL with Erase saved data enabled (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you rename a patch from the editor (the computer asks first for that slot only; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save a patch on the panel (asks for that slot only: press the button to confirm; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you save or import a patch from the editor (the computer asks first for that slot only; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you send a patch directly with a MIDI tool (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you send backup restore commands directly with a MIDI tool (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you send the erase-all command directly with a MIDI tool (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited user preset bank 2",
      "effect": "lost",
      "ways": [
       {
        "way": "when you erase all saved data (asks first: press again to confirm)",
        "effect": "lost"
       },
       {
        "way": "when you install DUELL with Erase saved data enabled (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you rename a patch from the editor (the computer asks first for that slot only; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save a patch on the panel (asks for that slot only: press the button to confirm; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you save or import a patch from the editor (the computer asks first for that slot only; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you send a patch directly with a MIDI tool (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you send backup restore commands directly with a MIDI tool (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you send the erase-all command directly with a MIDI tool (without asking)",
        "effect": "lost"
       }
      ]
     }
    ],
    "possibly_at_risk": [],
    "carried_over": [],
    "kept_unseen": [],
    "notes": [
     "The installer starts with its erase option selected for this firmware change. Clear it before installing to avoid this extra erase."
    ],
    "owner_text": "At risk by itself: up to sixteen liked worlds; settings and calibration. At risk when you act: inherited project A; inherited project B; inherited project C; inherited project D; inherited FM6 patches for user presets; inherited user sample 1; inherited user sample 2; inherited user sample 3; inherited user preset bank 1; inherited user preset bank 2. The installer starts with its erase option selected for this firmware change. Clear it before installing to avoid this extra erase.",
    "source": "flash-atlas derived/matrix.json (generated by apply_to_maps.py; do not edit by hand)"
   },
   {
    "to": "fimba",
    "name": "FiMba-1 beta",
    "flags": "AS",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "settings and calibration",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use",
        "effect": "lost"
       },
       {
        "way": "when you press SAVE briefly (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited user preset bank 1",
      "effect": "lost",
      "ways": [
       {
        "way": "when you complete hardware calibration (without asking)",
        "effect": "lost"
       }
      ]
     }
    ],
    "possibly_at_risk": [],
    "carried_over": [],
    "kept_unseen": [],
    "notes": [],
    "owner_text": "At risk by itself: settings and calibration. At risk when you act: inherited user preset bank 1.",
    "source": "flash-atlas derived/matrix.json (generated by apply_to_maps.py; do not edit by hand)"
   },
   {
    "to": "fart",
    "name": "Fart Machine One",
    "flags": "S",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "inherited user preset bank 1",
      "effect": "lost",
      "ways": [
       {
        "way": "when you complete hardware calibration (without asking)",
        "effect": "lost"
       }
      ]
     }
    ],
    "possibly_at_risk": [],
    "carried_over": [],
    "kept_unseen": [],
    "notes": [
     "Fart Machine One does not import or save a music setup or loop. SAVE does nothing. Its recorded loop, tempo and effect choices last only while it stays on. Calibration is separate."
    ],
    "owner_text": "At risk when you act: inherited user preset bank 1. Fart Machine One does not import or save a music setup or loop. SAVE does nothing. Its recorded loop, tempo and effect choices last only while it stays on. Calibration is separate.",
    "source": "flash-atlas derived/matrix.json (generated by apply_to_maps.py; do not edit by hand)"
   },
   {
    "to": "chord",
    "name": "fm1-chord",
    "flags": "ASK",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "settings and calibration",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start",
        "effect": "changed to the new format: Once fm1-chord saves its settings, MAKU cannot read the newer saved copy when you return. Shared preferences and panel calibration may use defaults"
       },
       {
        "way": "automatically during use",
        "effect": "changed to the new format: Once fm1-chord saves its settings, MAKU cannot read the newer saved copy when you return. Shared preferences and panel calibration may use defaults"
       },
       {
        "way": "when you calibrate the controls (without asking)",
        "effect": "changed to the new format: Once fm1-chord saves its settings, MAKU cannot read the newer saved copy when you return. Shared preferences and panel calibration may use defaults"
       },
       {
        "way": "when you change favourites or their filter (without asking)",
        "effect": "changed to the new format: Once fm1-chord saves its settings, MAKU cannot read the newer saved copy when you return. Shared preferences and panel calibration may use defaults"
       },
       {
        "way": "when you erase a user preset (asks first: press again to confirm)",
        "effect": "changed to the new format: Once fm1-chord saves its settings, MAKU cannot read the newer saved copy when you return. Shared preferences and panel calibration may use defaults"
       },
       {
        "way": "when you perform factory reset (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save a chord preset (without asking)",
        "effect": "changed to the new format: Once fm1-chord saves its settings, MAKU cannot read the newer saved copy when you return. Shared preferences and panel calibration may use defaults"
       },
       {
        "way": "when you send preferences from the web editor (without asking)",
        "effect": "changed to the new format: Once fm1-chord saves its settings, MAKU cannot read the newer saved copy when you return. Shared preferences and panel calibration may use defaults"
       }
      ]
     },
     {
      "object": "inherited project A",
      "effect": "lost",
      "ways": [
       {
        "way": "when you perform factory reset (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save a chord preset (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save a project (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save a project directly with a MIDI tool (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save a project from the web editor (the computer asks first)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited project B",
      "effect": "lost",
      "ways": [
       {
        "way": "when you perform factory reset (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save a chord preset (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save a project (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save a project directly with a MIDI tool (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save a project from the web editor (the computer asks first)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited project C",
      "effect": "lost",
      "ways": [
       {
        "way": "when you perform factory reset (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save a chord preset (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save a project (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save a project directly with a MIDI tool (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save a project from the web editor (the computer asks first)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited project D",
      "effect": "lost",
      "ways": [
       {
        "way": "when you perform factory reset (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save a chord preset (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save a project (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save a project directly with a MIDI tool (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save a project from the web editor (the computer asks first)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited FM6 patches for user presets",
      "effect": "lost",
      "ways": [
       {
        "way": "when you perform factory reset (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you send an FM6 bank patch from the web editor (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you send or erase an FM6 bank patch directly with a MIDI tool (without asking; writes the whole bank)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited user preset bank 1",
      "effect": "lost",
      "ways": [
       {
        "way": "when you erase a user sound (asks for that slot only: press again to confirm; writes the whole bank)",
        "effect": "changed to the new format: Saving, erasing or renaming anything in this sound bank saves all its sounds, including any changed to the new format. They can sound different when you return to your older firmware. Some sound engine numbers and controls mean different things, so a listed sound may play differently. The separate FM6 patches for those sounds are not recovered"
       },
       {
        "way": "when you erase a user sound from the web editor (the computer asks first for that slot only; writes the whole bank)",
        "effect": "changed to the new format: Saving, erasing or renaming anything in this sound bank saves all its sounds, including any changed to the new format. They can sound different when you return to your older firmware. Some sound engine numbers and controls mean different things, so a listed sound may play differently. The separate FM6 patches for those sounds are not recovered"
       },
       {
        "way": "when you perform factory reset (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you rename a user sound (without asking; writes the whole bank)",
        "effect": "changed to the new format: Saving, erasing or renaming anything in this sound bank saves all its sounds, including any changed to the new format. They can sound different when you return to your older firmware. Some sound engine numbers and controls mean different things, so a listed sound may play differently. The separate FM6 patches for those sounds are not recovered"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save a user sound (does not ask if that slot is empty; writes the whole bank)",
        "effect": "changed to the new format: Saving, erasing or renaming anything in this sound bank saves all its sounds, including any changed to the new format. They can sound different when you return to your older firmware. Some sound engine numbers and controls mean different things, so a listed sound may play differently. The separate FM6 patches for those sounds are not recovered"
       },
       {
        "way": "when you send a user sound from the web editor (does not ask if that slot is empty; writes the whole bank)",
        "effect": "changed to the new format: Saving, erasing or renaming anything in this sound bank saves all its sounds, including any changed to the new format. They can sound different when you return to your older firmware. Some sound engine numbers and controls mean different things, so a listed sound may play differently. The separate FM6 patches for those sounds are not recovered"
       },
       {
        "way": "when you send, store or erase a user sound directly with a MIDI tool (without asking; writes the whole bank)",
        "effect": "changed to the new format: Saving, erasing or renaming anything in this sound bank saves all its sounds, including any changed to the new format. They can sound different when you return to your older firmware. Some sound engine numbers and controls mean different things, so a listed sound may play differently. The separate FM6 patches for those sounds are not recovered"
       },
       {
        "way": "when you store the current sound from the web editor (does not ask if that slot is empty; writes the whole bank)",
        "effect": "changed to the new format: Saving, erasing or renaming anything in this sound bank saves all its sounds, including any changed to the new format. They can sound different when you return to your older firmware. Some sound engine numbers and controls mean different things, so a listed sound may play differently. The separate FM6 patches for those sounds are not recovered"
       }
      ]
     },
     {
      "object": "inherited user preset bank 2",
      "effect": "lost",
      "ways": [
       {
        "way": "when you erase a user sound (asks for that slot only: press again to confirm; writes the whole bank)",
        "effect": "changed to the new format: Saving, erasing or renaming anything in this sound bank saves all its sounds, including any changed to the new format. They can sound different when you return to your older firmware. Some sound engine numbers and controls mean different things, so a listed sound may play differently. The separate FM6 patches for those sounds are not recovered"
       },
       {
        "way": "when you erase a user sound from the web editor (the computer asks first for that slot only; writes the whole bank)",
        "effect": "changed to the new format: Saving, erasing or renaming anything in this sound bank saves all its sounds, including any changed to the new format. They can sound different when you return to your older firmware. Some sound engine numbers and controls mean different things, so a listed sound may play differently. The separate FM6 patches for those sounds are not recovered"
       },
       {
        "way": "when you perform factory reset (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you rename a user sound (without asking; writes the whole bank)",
        "effect": "changed to the new format: Saving, erasing or renaming anything in this sound bank saves all its sounds, including any changed to the new format. They can sound different when you return to your older firmware. Some sound engine numbers and controls mean different things, so a listed sound may play differently. The separate FM6 patches for those sounds are not recovered"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save a user sound (does not ask if that slot is empty; writes the whole bank)",
        "effect": "changed to the new format: Saving, erasing or renaming anything in this sound bank saves all its sounds, including any changed to the new format. They can sound different when you return to your older firmware. Some sound engine numbers and controls mean different things, so a listed sound may play differently. The separate FM6 patches for those sounds are not recovered"
       },
       {
        "way": "when you send a user sound from the web editor (does not ask if that slot is empty; writes the whole bank)",
        "effect": "changed to the new format: Saving, erasing or renaming anything in this sound bank saves all its sounds, including any changed to the new format. They can sound different when you return to your older firmware. Some sound engine numbers and controls mean different things, so a listed sound may play differently. The separate FM6 patches for those sounds are not recovered"
       },
       {
        "way": "when you send, store or erase a user sound directly with a MIDI tool (without asking; writes the whole bank)",
        "effect": "changed to the new format: Saving, erasing or renaming anything in this sound bank saves all its sounds, including any changed to the new format. They can sound different when you return to your older firmware. Some sound engine numbers and controls mean different things, so a listed sound may play differently. The separate FM6 patches for those sounds are not recovered"
       },
       {
        "way": "when you store the current sound from the web editor (does not ask if that slot is empty; writes the whole bank)",
        "effect": "changed to the new format: Saving, erasing or renaming anything in this sound bank saves all its sounds, including any changed to the new format. They can sound different when you return to your older firmware. Some sound engine numbers and controls mean different things, so a listed sound may play differently. The separate FM6 patches for those sounds are not recovered"
       }
      ]
     },
     {
      "object": "inherited user sample 1",
      "effect": "lost",
      "ways": [
       {
        "way": "when you edit sample slice positions set by hand (without asking)",
        "effect": "damaged (part written over)"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you send or erase a sample directly with a MIDI tool (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you upload or clear a user sample (the computer asks first)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited user sample 2",
      "effect": "lost",
      "ways": [
       {
        "way": "when you edit sample slice positions set by hand (without asking)",
        "effect": "damaged (part written over)"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you send or erase a sample directly with a MIDI tool (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you upload or clear a user sample (the computer asks first)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited user sample 3",
      "effect": "lost",
      "ways": [
       {
        "way": "when you edit sample slice positions set by hand (without asking)",
        "effect": "damaged (part written over)"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you send or erase a sample directly with a MIDI tool (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you upload or clear a user sample (the computer asks first)",
        "effect": "lost"
       }
      ]
     }
    ],
    "possibly_at_risk": [],
    "carried_over": [],
    "kept_unseen": [],
    "notes": [
     "fm1-chord reads inherited user sample 1 until you write over the saved data. Saved loop choices use ordinary looping. The ends of loops held by a gate signal can sound different. Only matching saved SLICE markers are restored.",
     "fm1-chord reads inherited user sample 2 until you write over the saved data. Saved loop choices use ordinary looping. The ends of loops held by a gate signal can sound different. Only matching saved SLICE markers are restored.",
     "fm1-chord reads inherited user sample 3 until you write over the saved data. Saved loop choices use ordinary looping. The ends of loops held by a gate signal can sound different. Only matching saved SLICE markers are restored."
    ],
    "owner_text": "At risk by itself: settings and calibration. At risk when you act: inherited project A; inherited project B; inherited project C; inherited project D; inherited FM6 patches for user presets; inherited user preset bank 1; inherited user preset bank 2; inherited user sample 1; inherited user sample 2; inherited user sample 3. fm1-chord reads inherited user sample 1 until you write over the saved data. Saved loop choices use ordinary looping. The ends of loops held by a gate signal can sound different. Only matching saved SLICE markers are restored. fm1-chord reads inherited user sample 2 until you write over the saved data. Saved loop choices use ordinary looping. The ends of loops held by a gate signal can sound different. Only matching saved SLICE markers are restored. fm1-chord reads inherited user sample 3 until you write over the saved data. Saved loop choices use ordinary looping. The ends of loops held by a gate signal can sound different. Only matching saved SLICE markers are restored.",
    "source": "flash-atlas derived/matrix.json (generated by apply_to_maps.py; do not edit by hand)"
   },
   {
    "to": "sloopbanks",
    "name": "SLOOP DX7 Banks",
    "flags": "ACSK",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "inherited FM6 patches for user presets",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start",
        "effect": "lost"
       },
       {
        "way": "automatically, only when the working loop has unsaved changes, no song is playing, and you start an update, enter UPDATE MODE or restart with the computer tool",
        "effect": "lost"
       },
       {
        "way": "automatically, only when you have restored a working loop from a backup",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "settings and calibration",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start",
        "effect": "lost"
       },
       {
        "way": "automatically during use",
        "effect": "lost"
       },
       {
        "way": "when you calibrate the controls (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you press REC on the SONG screen to save a section and the song order (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save SYN drum kits from the web editor (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save the song order (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you send a song order from the web editor (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited project A",
      "effect": "lost",
      "ways": [
       {
        "way": "when you press REC on the SONG screen to save a section and the song order (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save a section on the SAVE PROJECT page (asks first or waits for you to turn again)",
        "effect": "lost"
       },
       {
        "way": "when you save the current music as a section with SAVE and a section key (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited project B",
      "effect": "lost",
      "ways": [
       {
        "way": "when you press REC on the SONG screen to save a section and the song order (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save a section on the SAVE PROJECT page (asks first or waits for you to turn again)",
        "effect": "lost"
       },
       {
        "way": "when you save the current music as a section with SAVE and a section key (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited project C",
      "effect": "lost",
      "ways": [
       {
        "way": "when you press REC on the SONG screen to save a section and the song order (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save a section on the SAVE PROJECT page (asks first or waits for you to turn again)",
        "effect": "lost"
       },
       {
        "way": "when you save the current music as a section with SAVE and a section key (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited project D",
      "effect": "lost",
      "ways": [
       {
        "way": "when you press REC on the SONG screen to save a section and the song order (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save a section on the SAVE PROJECT page (asks first or waits for you to turn again)",
        "effect": "lost"
       },
       {
        "way": "when you save the current music as a section with SAVE and a section key (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "up to sixteen liked worlds",
      "effect": "lost",
      "ways": [
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save selected DX7 voices from the editor (the computer asks first about the slots it fills; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you send an FM6 bank patch from the editor (without asking; writes the whole bank)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited user sample 1",
      "effect": "lost",
      "ways": [
       {
        "way": "when you erase a sample slot from the web editor (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you send a sample set from the web editor (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you upload or erase a sample with the computer tool (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited user sample 2",
      "effect": "lost",
      "ways": [
       {
        "way": "when you erase a sample slot from the web editor (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you send a sample set from the web editor (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you upload or erase a sample with the computer tool (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited user sample 3",
      "effect": "lost",
      "ways": [
       {
        "way": "when you erase a sample slot from the web editor (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you send a sample kit to USR3 and USR4 (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you send a sample set from the web editor (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you upload or erase a sample with the computer tool (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited user preset bank 1",
      "effect": "lost",
      "ways": [
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save or erase a USER sound on the FM-1 (asks or waits for you to turn again for that slot only; writes the whole bank)",
        "effect": "partly lost (only that slot)"
       },
       {
        "way": "when you save selected DX7 voices from the editor (the computer asks first about the slots it fills; writes the whole bank)",
        "effect": "some or all lost"
       },
       {
        "way": "when you save the current sound from the editor (without asking; writes the whole bank)",
        "effect": "partly lost (the slot you save into)"
       },
       {
        "way": "when you send a user sound from the editor (without asking; writes the whole bank)",
        "effect": "partly lost (the slot you save into)"
       }
      ]
     },
     {
      "object": "inherited user preset bank 2",
      "effect": "lost",
      "ways": [
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save or erase a USER sound on the FM-1 (asks or waits for you to turn again for that slot only; writes the whole bank)",
        "effect": "partly lost (only that slot)"
       },
       {
        "way": "when you save selected DX7 voices from the editor (the computer asks first about the slots it fills; writes the whole bank)",
        "effect": "some or all lost"
       },
       {
        "way": "when you save the current sound from the editor (without asking; writes the whole bank)",
        "effect": "partly lost (the slot you save into)"
       },
       {
        "way": "when you send a user sound from the editor (without asking; writes the whole bank)",
        "effect": "partly lost (the slot you save into)"
       }
      ]
     }
    ],
    "possibly_at_risk": [],
    "carried_over": [],
    "kept_unseen": [],
    "notes": [
     "SLOOP DX7 Banks reads inherited user sample 1 until you write over the saved data. Audio loads only if it fits this slot. Sending to or erasing this slot replaces it. Extra slice markers are ignored. Held loops play as ordinary loops.",
     "SLOOP DX7 Banks reads inherited user sample 2 until you write over the saved data. Audio loads only if it fits this slot. Sending to or erasing this slot replaces it. Extra slice markers are ignored. Held loops play as ordinary loops.",
     "SLOOP DX7 Banks reads inherited user sample 3 until you write over the saved data. Audio loads only if it fits this slot. Sending to or erasing this slot replaces it. Extra slice markers are ignored. Held loops play as ordinary loops.",
     "SLOOP DX7 Banks keeps stored but does not show inherited user preset bank 1 until you write over the saved data. Your sounds stay saved but cannot be shown or played. Saving into their slots removes them; saving elsewhere keeps them. Saving on the FM-1 needs another turn of the same control, with no warning that the slot holds a hidden sound.",
     "SLOOP DX7 Banks keeps stored but does not show inherited user preset bank 2 until you write over the saved data. Your sounds stay saved but cannot be shown or played. Saving into their slots removes them; saving elsewhere keeps them. Saving on the FM-1 needs another turn of the same control, with no warning that the slot holds a hidden sound."
    ],
    "owner_text": "At risk by itself: inherited FM6 patches for user presets; settings and calibration. At risk when you act: inherited project A; inherited project B; inherited project C; inherited project D; up to sixteen liked worlds; inherited user sample 1; inherited user sample 2; inherited user sample 3; inherited user preset bank 1; inherited user preset bank 2. SLOOP DX7 Banks reads inherited user sample 1 until you write over the saved data. Audio loads only if it fits this slot. Sending to or erasing this slot replaces it. Extra slice markers are ignored. Held loops play as ordinary loops. SLOOP DX7 Banks reads inherited user sample 2 until you write over the saved data. Audio loads only if it fits this slot. Sending to or erasing this slot replaces it. Extra slice markers are ignored. Held loops play as ordinary loops. SLOOP DX7 Banks reads inherited user sample 3 until you write over the saved data. Audio loads only if it fits this slot. Sending to or erasing this slot replaces it. Extra slice markers are ignored. Held loops play as ordinary loops. SLOOP DX7 Banks keeps stored but does not show inherited user preset bank 1 until you write over the saved data. Your sounds stay saved but cannot be shown or played. Saving into their slots removes them; saving elsewhere keeps them. Saving on the FM-1 needs another turn of the same control, with no warning that the slot holds a hidden sound. SLOOP DX7 Banks keeps stored but does not show inherited user preset bank 2 until you write over the saved data. Your sounds stay saved but cannot be shown or played. Saving into their slots removes them; saving elsewhere keeps them. Saving on the FM-1 needs another turn of the same control, with no warning that the slot holds a hidden sound.",
    "source": "flash-atlas derived/matrix.json (generated by apply_to_maps.py; do not edit by hand)"
   },
   {
    "to": "fumi",
    "name": "FuMi-1",
    "flags": "AS",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "settings and calibration",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use",
        "effect": "lost"
       },
       {
        "way": "when you press SAVE (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited user preset bank 1",
      "effect": "lost",
      "ways": [
       {
        "way": "when you complete hardware calibration (without asking)",
        "effect": "lost"
       }
      ]
     }
    ],
    "possibly_at_risk": [],
    "carried_over": [],
    "kept_unseen": [],
    "notes": [],
    "owner_text": "At risk by itself: settings and calibration. At risk when you act: inherited user preset bank 1.",
    "source": "flash-atlas derived/matrix.json (generated by apply_to_maps.py; do not edit by hand)"
   },
   {
    "to": "jangada",
    "name": "Jangada",
    "flags": "ASK",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "inherited FM6 patches for user presets",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "settings and calibration",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use",
        "effect": "lost"
       },
       {
        "way": "automatically during use (if the second core fails and playback stops, with AUTO selected by default)",
        "effect": "lost"
       },
       {
        "way": "when you enter power-on hardware calibration (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you learn or clear MIDI CC mappings (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup to Jangada with a computer tool, without the web editor (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you set screen colours from the USB console (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited project A",
      "effect": "lost",
      "ways": [
       {
        "way": "when you confirm SAVE for project 1 (asks first or waits for you to turn again)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup to Jangada with a computer tool, without the web editor (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save a project from the web editor (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you save a project in Jangada with a computer tool, without the web editor (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited project B",
      "effect": "lost",
      "ways": [
       {
        "way": "when you confirm SAVE for project 2 (asks first or waits for you to turn again)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup to Jangada with a computer tool, without the web editor (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save a project from the web editor (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you save a project in Jangada with a computer tool, without the web editor (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited project C",
      "effect": "lost",
      "ways": [
       {
        "way": "when you confirm SAVE for project 3 (asks first or waits for you to turn again)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup to Jangada with a computer tool, without the web editor (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save a project from the web editor (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you save a project in Jangada with a computer tool, without the web editor (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited project D",
      "effect": "lost",
      "ways": [
       {
        "way": "when you confirm SAVE for project 4 (asks first or waits for you to turn again)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup to Jangada with a computer tool, without the web editor (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save a project from the web editor (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you save a project in Jangada with a computer tool, without the web editor (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited user preset bank 1",
      "effect": "lost",
      "ways": [
       {
        "way": "when you erase a user sound from the editor (the computer asks first for that slot only; writes the whole bank)",
        "effect": "changed to the new format: Saving, renaming or erasing any sound in this group writes all sixteen sounds in Jangada’s format. MAKU cannot read that group when you return. Sounds Jangada could not import are lost. Only older version 1 sounds can be imported. Newer versions look empty and are lost when this group is saved again"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup to Jangada with a computer tool, without the web editor (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save or erase a user preset (asks or waits for you to turn again for that slot only; writes the whole bank)",
        "effect": "changed to the new format: Saving, renaming or erasing any sound in this group writes all sixteen sounds in Jangada’s format. MAKU cannot read that group when you return. Sounds Jangada could not import are lost. Only older version 1 sounds can be imported. Newer versions look empty and are lost when this group is saved again"
       },
       {
        "way": "when you send a user sound from the editor (does not ask if that slot is empty; writes the whole bank)",
        "effect": "changed to the new format: Saving, renaming or erasing any sound in this group writes all sixteen sounds in Jangada’s format. MAKU cannot read that group when you return. Sounds Jangada could not import are lost. Only older version 1 sounds can be imported. Newer versions look empty and are lost when this group is saved again"
       },
       {
        "way": "when you send user sounds to Jangada with a computer tool, without the web editor (without asking; writes the whole bank)",
        "effect": "changed to the new format: Saving, renaming or erasing any sound in this group writes all sixteen sounds in Jangada’s format. MAKU cannot read that group when you return. Sounds Jangada could not import are lost. Only older version 1 sounds can be imported. Newer versions look empty and are lost when this group is saved again"
       },
       {
        "way": "when you store a user sound from the editor (does not ask if that slot is empty; writes the whole bank)",
        "effect": "changed to the new format: Saving, renaming or erasing any sound in this group writes all sixteen sounds in Jangada’s format. MAKU cannot read that group when you return. Sounds Jangada could not import are lost. Only older version 1 sounds can be imported. Newer versions look empty and are lost when this group is saved again"
       }
      ]
     },
     {
      "object": "inherited user preset bank 2",
      "effect": "lost",
      "ways": [
       {
        "way": "when you erase a user sound from the editor (the computer asks first for that slot only; writes the whole bank)",
        "effect": "changed to the new format: Saving, renaming or erasing any sound in this group writes all sixteen sounds in Jangada’s format. MAKU cannot read that group when you return. Sounds Jangada could not import are lost. Only older version 1 sounds can be imported. Newer versions look empty and are lost when this group is saved again"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup to Jangada with a computer tool, without the web editor (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save or erase a user preset (asks or waits for you to turn again for that slot only; writes the whole bank)",
        "effect": "changed to the new format: Saving, renaming or erasing any sound in this group writes all sixteen sounds in Jangada’s format. MAKU cannot read that group when you return. Sounds Jangada could not import are lost. Only older version 1 sounds can be imported. Newer versions look empty and are lost when this group is saved again"
       },
       {
        "way": "when you send a user sound from the editor (does not ask if that slot is empty; writes the whole bank)",
        "effect": "changed to the new format: Saving, renaming or erasing any sound in this group writes all sixteen sounds in Jangada’s format. MAKU cannot read that group when you return. Sounds Jangada could not import are lost. Only older version 1 sounds can be imported. Newer versions look empty and are lost when this group is saved again"
       },
       {
        "way": "when you send user sounds to Jangada with a computer tool, without the web editor (without asking; writes the whole bank)",
        "effect": "changed to the new format: Saving, renaming or erasing any sound in this group writes all sixteen sounds in Jangada’s format. MAKU cannot read that group when you return. Sounds Jangada could not import are lost. Only older version 1 sounds can be imported. Newer versions look empty and are lost when this group is saved again"
       },
       {
        "way": "when you store a user sound from the editor (does not ask if that slot is empty; writes the whole bank)",
        "effect": "changed to the new format: Saving, renaming or erasing any sound in this group writes all sixteen sounds in Jangada’s format. MAKU cannot read that group when you return. Sounds Jangada could not import are lost. Only older version 1 sounds can be imported. Newer versions look empty and are lost when this group is saved again"
       }
      ]
     },
     {
      "object": "up to sixteen liked worlds",
      "effect": "lost",
      "ways": [
       {
        "way": "when you confirm a DX7 bank being sent to the FM-1 (asks first which bank to replace)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup to Jangada with a computer tool, without the web editor (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you send a DX7 bank directly with a MIDI tool (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you send or erase FM6 sounds in Jangada with a computer tool, without the web editor (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you store an FM6 sound from the editor (without asking; writes the whole bank)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited user sample 1",
      "effect": "lost",
      "ways": [
       {
        "way": "when you erase a sample from the editor (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you erase user samples or restore an empty sample slot in Jangada with a computer tool, without the web editor (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you send user samples to Jangada with a computer tool, without the web editor (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you send user samples to the FM-1 from the web editor (the computer asks first)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited user sample 2",
      "effect": "lost",
      "ways": [
       {
        "way": "when you erase a sample from the editor (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you erase user samples or restore an empty sample slot in Jangada with a computer tool, without the web editor (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you send user samples to Jangada with a computer tool, without the web editor (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you send user samples to the FM-1 from the web editor (the computer asks first)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited user sample 3",
      "effect": "lost",
      "ways": [
       {
        "way": "when you erase a sample from the editor (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you erase user samples or restore an empty sample slot in Jangada with a computer tool, without the web editor (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you send user samples to Jangada with a computer tool, without the web editor (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you send user samples to the FM-1 from the web editor (the computer asks first)",
        "effect": "lost"
       }
      ]
     }
    ],
    "possibly_at_risk": [],
    "carried_over": [],
    "kept_unseen": [],
    "notes": [
     "Jangada reads inherited user sample 1 until you write over the saved data.",
     "Jangada reads inherited user sample 2 until you write over the saved data.",
     "Jangada reads inherited user sample 3 until you write over the saved data."
    ],
    "owner_text": "At risk by itself: inherited FM6 patches for user presets; settings and calibration. At risk when you act: inherited project A; inherited project B; inherited project C; inherited project D; inherited user preset bank 1; inherited user preset bank 2; up to sixteen liked worlds; inherited user sample 1; inherited user sample 2; inherited user sample 3. Jangada reads inherited user sample 1 until you write over the saved data. Jangada reads inherited user sample 2 until you write over the saved data. Jangada reads inherited user sample 3 until you write over the saved data.",
    "source": "flash-atlas derived/matrix.json (generated by apply_to_maps.py; do not edit by hand)"
   },
   {
    "to": "waveloop",
    "name": "WaveLoop FM-1",
    "flags": "ACSK",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "inherited project A",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use, from its second start, after five seconds with playback stopped, no sound and no music changes",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save or rename this song from the panel while playback has stopped (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save this song or rename it from the editor (the computer asks first)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited project D",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at its first start, after five seconds with playback stopped, no sound and no music changes",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save or rename this song from the panel while playback has stopped (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save this song or rename it from the editor (the computer asks first)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "settings and calibration",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use",
        "effect": "kept: WaveLoop FM-1 can read it"
       },
       {
        "way": "when you calibrate the buttons and knob at power-on; cancelling also requests a settings save (without asking)",
        "effect": "kept: WaveLoop FM-1 can read it"
       },
       {
        "way": "when you change a favourite mark or the filter for favourites (without asking)",
        "effect": "kept: WaveLoop FM-1 can read it"
       },
       {
        "way": "when you erase a starred user sound, which also removes its favourite mark (asks first)",
        "effect": "kept: WaveLoop FM-1 can read it"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you run MENU calibration, then close MENU (without asking)",
        "effect": "kept: WaveLoop FM-1 can read it"
       },
       {
        "way": "when you send MENU settings, display preferences or favourite changes from the editor (without asking)",
        "effect": "kept: WaveLoop FM-1 can read it"
       }
      ]
     },
     {
      "object": "inherited project B",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically, only if this song is chosen for automatic saving after loading, saving or restoring a session, and project slot D is empty, holds a session saved automatically for the next start or holds data WaveLoop cannot read; playback must be stopped, with five seconds of silence and no music changes",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save or rename this song from the panel while playback has stopped (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save this song or rename it from the editor (the computer asks first)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited project C",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically, only if this song is chosen for automatic saving after loading, saving or restoring a session, and project slot D is empty, holds a session saved automatically for the next start or holds data WaveLoop cannot read; playback must be stopped, with five seconds of silence and no music changes",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save or rename this song from the panel while playback has stopped (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save this song or rename it from the editor (the computer asks first)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited user sample 3",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically, only if the song order or selection has unsaved changes and project slot D is empty, holds WaveLoop’s automatically saved session or holds data WaveLoop cannot read",
        "effect": "damaged (part written over)"
       },
       {
        "way": "automatically, only if this song is chosen for automatic saving after loading, saving or restoring a session, and project slot D is empty, holds a session saved automatically for the next start or holds data WaveLoop cannot read; playback must be stopped, with five seconds of silence and no music changes",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save or rename this song from the panel while playback has stopped (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save this song or rename it from the editor (the computer asks first)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited FM6 patches for user presets",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically, only if a compatible older FM6 bank remains and there is no current bank of FM6 patches for your sounds",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save an FM6 or DRUM user sound (does not ask if that slot is empty; writes the whole bank)",
        "effect": "partly lost (only that patch)"
       },
       {
        "way": "when you send an FM6 user sound from the editor (does not ask if that slot is empty; writes the whole bank)",
        "effect": "partly lost (only that patch)"
       },
       {
        "way": "when you store the current FM6 or DRUM sound from the editor (does not ask if that slot is empty; writes the whole bank)",
        "effect": "partly lost (only that patch)"
       }
      ]
     },
     {
      "object": "inherited user sample 1",
      "effect": "lost",
      "ways": [
       {
        "way": "when you edit sample slice markers (without asking)",
        "effect": "damaged (part written over)"
       },
       {
        "way": "when you erase a sample from the editor (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you send a sample to the FM-1 from the editor (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you upload or erase a sample with the computer tool (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited user sample 2",
      "effect": "lost",
      "ways": [
       {
        "way": "when you edit sample slice markers (without asking)",
        "effect": "damaged (part written over)"
       },
       {
        "way": "when you erase a sample from the editor (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you send a sample to the FM-1 from the editor (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you upload or erase a sample with the computer tool (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited user preset bank 1",
      "effect": "lost",
      "ways": [
       {
        "way": "when you erase a user sound (asks for that slot only: press again to confirm; writes the whole bank)",
        "effect": "partly lost (only that slot)"
       },
       {
        "way": "when you erase a user sound from the editor (the computer asks first for that slot only; writes the whole bank)",
        "effect": "partly lost (only that slot)"
       },
       {
        "way": "when you rename a user sound (without asking; writes the whole bank)",
        "effect": "partly lost (only that slot)"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save a user sound (does not ask if that slot is empty; writes the whole bank)",
        "effect": "partly lost (only that slot)"
       },
       {
        "way": "when you send a user sound from the editor (does not ask if that slot is empty; writes the whole bank)",
        "effect": "partly lost (only that slot)"
       },
       {
        "way": "when you store the current sound from the editor (does not ask if that slot is empty; writes the whole bank)",
        "effect": "partly lost (only that slot)"
       }
      ]
     },
     {
      "object": "inherited user preset bank 2",
      "effect": "lost",
      "ways": [
       {
        "way": "when you erase a user sound (asks for that slot only: press again to confirm; writes the whole bank)",
        "effect": "partly lost (only that slot)"
       },
       {
        "way": "when you erase a user sound from the editor (the computer asks first for that slot only; writes the whole bank)",
        "effect": "partly lost (only that slot)"
       },
       {
        "way": "when you rename a user sound (without asking; writes the whole bank)",
        "effect": "partly lost (only that slot)"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save a user sound (does not ask if that slot is empty; writes the whole bank)",
        "effect": "partly lost (only that slot)"
       },
       {
        "way": "when you send a user sound from the editor (does not ask if that slot is empty; writes the whole bank)",
        "effect": "partly lost (only that slot)"
       },
       {
        "way": "when you store the current sound from the editor (does not ask if that slot is empty; writes the whole bank)",
        "effect": "partly lost (only that slot)"
       }
      ]
     }
    ],
    "possibly_at_risk": [],
    "carried_over": [],
    "kept_unseen": [],
    "notes": [
     "WaveLoop FM-1 reads inherited FM6 patches for user presets until you write over the saved data. Changing a sound or its format can make its separate patch unavailable.",
     "WaveLoop FM-1 reads inherited user sample 1 until you write over the saved data.",
     "WaveLoop FM-1 reads inherited user sample 2 until you write over the saved data.",
     "WaveLoop FM-1 reads inherited user preset bank 1 until you write over the saved data. Only sounds this firmware can read will play. Saving into a slot it cannot read can replace it without an overwrite question. MAKU’s insert controls become timing and modulation controls in Felucca. Earlier firmware ignores them. The insert sound is not kept.",
     "WaveLoop FM-1 reads inherited user preset bank 2 until you write over the saved data. Only sounds this firmware can read will play. Saving into a slot it cannot read can replace it without an overwrite question. MAKU’s insert controls become timing and modulation controls in Felucca. Earlier firmware ignores them. The insert sound is not kept.",
     "WaveLoop FM-1 reads settings and calibration until you write over the saved data. These firmwares save settings and favourites in the same space. An edit here can change the other firmware’s choices."
    ],
    "owner_text": "At risk by itself: inherited project A; inherited project D; settings and calibration. At risk by itself, under a condition: inherited project B; inherited project C; inherited user sample 3; inherited FM6 patches for user presets. At risk when you act: inherited user sample 1; inherited user sample 2; inherited user preset bank 1; inherited user preset bank 2. WaveLoop FM-1 reads inherited FM6 patches for user presets until you write over the saved data. Changing a sound or its format can make its separate patch unavailable. WaveLoop FM-1 reads inherited user sample 1 until you write over the saved data. WaveLoop FM-1 reads inherited user sample 2 until you write over the saved data. WaveLoop FM-1 reads inherited user preset bank 1 until you write over the saved data. Only sounds this firmware can read will play. Saving into a slot it cannot read can replace it without an overwrite question. MAKU’s insert controls become timing and modulation controls in Felucca. Earlier firmware ignores them. The insert sound is not kept. WaveLoop FM-1 reads inherited user preset bank 2 until you write over the saved data. Only sounds this firmware can read will play. Saving into a slot it cannot read can replace it without an overwrite question. MAKU’s insert controls become timing and modulation controls in Felucca. Earlier firmware ignores them. The insert sound is not kept. WaveLoop FM-1 reads settings and calibration until you write over the saved data. These firmwares save settings and favourites in the same space. An edit here can change the other firmware’s choices.",
    "source": "flash-atlas derived/matrix.json (generated by apply_to_maps.py; do not edit by hand)"
   },
   {
    "to": "orbit",
    "name": "ORBIT",
    "flags": "ACSK",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "inherited FM6 patches for user presets",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start",
        "effect": "lost"
       },
       {
        "way": "automatically during use",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "settings and calibration",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use",
        "effect": "lost"
       },
       {
        "way": "automatically, only if it can resume music saved in a SLOOP format from before version 2.6 with a usable drum MIDI channel, and your saved settings include SYN drum kits but no MIDI controls or channels",
        "effect": "lost"
       },
       {
        "way": "automatically, only when song order has an unsaved change as an update or restart starts",
        "effect": "lost"
       },
       {
        "way": "when you hold both OCT buttons as you turn it on to calibrate the controls (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you press REC on the SONG screen to save a section and the song order (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you press SAVE on the SONG screen (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you send settings or MIDI control assignments with a computer tool or store SYN kits from the web editor (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited project A",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically, only when a section you stored during playback or before a restart is still waiting to be saved",
        "effect": "lost"
       },
       {
        "way": "when you choose SAVE > PROJECT > SAVE and repeat the action before the time runs out (asks first or waits for you to turn again)",
        "effect": "lost"
       },
       {
        "way": "when you hold SAVE and press white key 5–8 to save section A–D (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you press REC on the SONG screen to save a section and the song order (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save a project from the web editor (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you save, restore or clear a section with a MIDI tool (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited project B",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically, only when a section you stored during playback or before a restart is still waiting to be saved",
        "effect": "lost"
       },
       {
        "way": "when you choose SAVE > PROJECT > SAVE and repeat the action before the time runs out (asks first or waits for you to turn again)",
        "effect": "lost"
       },
       {
        "way": "when you hold SAVE and press white key 5–8 to save section A–D (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you press REC on the SONG screen to save a section and the song order (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save a project from the web editor (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you save, restore or clear a section with a MIDI tool (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited project C",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically, only when a section you stored during playback or before a restart is still waiting to be saved",
        "effect": "lost"
       },
       {
        "way": "when you choose SAVE > PROJECT > SAVE and repeat the action before the time runs out (asks first or waits for you to turn again)",
        "effect": "lost"
       },
       {
        "way": "when you hold SAVE and press white key 5–8 to save section A–D (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you press REC on the SONG screen to save a section and the song order (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save a project from the web editor (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you save, restore or clear a section with a MIDI tool (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited project D",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically, only when a section you stored during playback or before a restart is still waiting to be saved",
        "effect": "lost"
       },
       {
        "way": "when you choose SAVE > PROJECT > SAVE and repeat the action before the time runs out (asks first or waits for you to turn again)",
        "effect": "lost"
       },
       {
        "way": "when you hold SAVE and press white key 5–8 to save section A–D (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you press REC on the SONG screen to save a section and the song order (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save a project from the web editor (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you save, restore or clear a section with a MIDI tool (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited user preset bank 1",
      "effect": "lost",
      "ways": [
       {
        "way": "when you choose SAVE > USER > SAVE or ERASE and repeat the action (asks or waits for you to turn again for that slot only; writes the whole bank)",
        "effect": "changed to the new format: the next save, erase or rename in this sound bank saves the whole bank in the new format; newer-format sounds shown as empty are lost, and the previous firmware cannot read the bank. Only older version-1 sounds can change to this format; engine numbers and sound controls may mean different things and change how they play"
       },
       {
        "way": "when you erase a used USER sound from the web editor (the computer asks first for that slot only; writes the whole bank)",
        "effect": "changed to the new format: the next save, erase or rename in this sound bank saves the whole bank in the new format; newer-format sounds shown as empty are lost, and the previous firmware cannot read the bank. Only older version-1 sounds can change to this format; engine numbers and sound controls may mean different things and change how they play"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you send a user sound from the web editor (does not ask if that slot is empty; writes the whole bank)",
        "effect": "changed to the new format: the next save, erase or rename in this sound bank saves the whole bank in the new format; newer-format sounds shown as empty are lost, and the previous firmware cannot read the bank. Only older version-1 sounds can change to this format; engine numbers and sound controls may mean different things and change how they play"
       },
       {
        "way": "when you send, erase, rename or restore user sounds with a MIDI tool (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you store DX7 cartridge voices with optional USER sound links from the web editor (the computer asks first for that slot only; writes the whole bank)",
        "effect": "changed to the new format: the next save, erase or rename in this sound bank saves the whole bank in the new format; newer-format sounds shown as empty are lost, and the previous firmware cannot read the bank. Only older version-1 sounds can change to this format; engine numbers and sound controls may mean different things and change how they play"
       },
       {
        "way": "when you store a user sound from the web editor (does not ask if that slot is empty; writes the whole bank)",
        "effect": "changed to the new format: the next save, erase or rename in this sound bank saves the whole bank in the new format; newer-format sounds shown as empty are lost, and the previous firmware cannot read the bank. Only older version-1 sounds can change to this format; engine numbers and sound controls may mean different things and change how they play"
       }
      ]
     },
     {
      "object": "inherited user preset bank 2",
      "effect": "lost",
      "ways": [
       {
        "way": "when you choose SAVE > USER > SAVE or ERASE and repeat the action (asks or waits for you to turn again for that slot only; writes the whole bank)",
        "effect": "changed to the new format: the next save, erase or rename in this sound bank saves the whole bank in the new format; newer-format sounds shown as empty are lost, and the previous firmware cannot read the bank. Only older version-1 sounds can change to this format; engine numbers and sound controls may mean different things and change how they play"
       },
       {
        "way": "when you erase a used USER sound from the web editor (the computer asks first for that slot only; writes the whole bank)",
        "effect": "changed to the new format: the next save, erase or rename in this sound bank saves the whole bank in the new format; newer-format sounds shown as empty are lost, and the previous firmware cannot read the bank. Only older version-1 sounds can change to this format; engine numbers and sound controls may mean different things and change how they play"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you send a user sound from the web editor (does not ask if that slot is empty; writes the whole bank)",
        "effect": "changed to the new format: the next save, erase or rename in this sound bank saves the whole bank in the new format; newer-format sounds shown as empty are lost, and the previous firmware cannot read the bank. Only older version-1 sounds can change to this format; engine numbers and sound controls may mean different things and change how they play"
       },
       {
        "way": "when you send, erase, rename or restore user sounds with a MIDI tool (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you store DX7 cartridge voices with optional USER sound links from the web editor (the computer asks first for that slot only; writes the whole bank)",
        "effect": "changed to the new format: the next save, erase or rename in this sound bank saves the whole bank in the new format; newer-format sounds shown as empty are lost, and the previous firmware cannot read the bank. Only older version-1 sounds can change to this format; engine numbers and sound controls may mean different things and change how they play"
       },
       {
        "way": "when you store a user sound from the web editor (does not ask if that slot is empty; writes the whole bank)",
        "effect": "changed to the new format: the next save, erase or rename in this sound bank saves the whole bank in the new format; newer-format sounds shown as empty are lost, and the previous firmware cannot read the bank. Only older version-1 sounds can change to this format; engine numbers and sound controls may mean different things and change how they play"
       }
      ]
     },
     {
      "object": "up to sixteen liked worlds",
      "effect": "lost",
      "ways": [
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you send, erase or restore FM6 patches with a MIDI tool (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you store an FM6 patch from the web editor (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you store selected DX7 cartridge voices from the web editor (the computer asks first about the slots it fills; writes the whole bank)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited user sample 1",
      "effect": "lost",
      "ways": [
       {
        "way": "when you erase a sample from the web editor (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you erase a sample with a MIDI tool (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you send or restore a sample with a MIDI tool (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you upload a sample, CHOP selection or drum kit from the web editor (the computer asks first)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited user sample 2",
      "effect": "lost",
      "ways": [
       {
        "way": "when you erase a sample from the web editor (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you erase a sample with a MIDI tool (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you send or restore a sample with a MIDI tool (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you upload a sample, CHOP selection or drum kit from the web editor (the computer asks first)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited user sample 3",
      "effect": "lost",
      "ways": [
       {
        "way": "when you erase a sample from the web editor (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you erase a sample with a MIDI tool (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you send or restore a sample with a MIDI tool (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you upload a sample, CHOP selection or drum kit from the web editor (the computer asks first)",
        "effect": "lost"
       }
      ]
     }
    ],
    "possibly_at_risk": [],
    "carried_over": [],
    "kept_unseen": [],
    "notes": [
     "ORBIT reads inherited user sample 1 until you write over the saved data. Slice marks set by hand are not loaded. Loop modes follow this firmware's playback rules.",
     "ORBIT reads inherited user sample 2 until you write over the saved data. Slice marks set by hand are not loaded. Loop modes follow this firmware's playback rules.",
     "ORBIT reads inherited user sample 3 until you write over the saved data. Slice marks set by hand are not loaded. Loop modes follow this firmware's playback rules."
    ],
    "owner_text": "At risk by itself: inherited FM6 patches for user presets; settings and calibration. At risk by itself, under a condition: inherited project A; inherited project B; inherited project C; inherited project D. At risk when you act: inherited user preset bank 1; inherited user preset bank 2; up to sixteen liked worlds; inherited user sample 1; inherited user sample 2; inherited user sample 3. ORBIT reads inherited user sample 1 until you write over the saved data. Slice marks set by hand are not loaded. Loop modes follow this firmware's playback rules. ORBIT reads inherited user sample 2 until you write over the saved data. Slice marks set by hand are not loaded. Loop modes follow this firmware's playback rules. ORBIT reads inherited user sample 3 until you write over the saved data. Slice marks set by hand are not loaded. Loop modes follow this firmware's playback rules.",
    "source": "flash-atlas derived/matrix.json (generated by apply_to_maps.py; do not edit by hand)"
   },
   {
    "to": "floyd",
    "name": "SLOOP Floyd FM",
    "flags": "ASK",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "inherited FM6 patches for user presets",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start",
        "effect": "lost"
       },
       {
        "way": "automatically during use",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "settings and calibration",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use",
        "effect": "lost"
       },
       {
        "way": "when you calibrate the controls from HOME and close the menu (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you press REC on the SONG screen to save a section and the song order (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save the song order (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you start calibrating the controls at power-on (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited project A",
      "effect": "lost",
      "ways": [
       {
        "way": "when you press REC on the SONG screen to save a section and the song order (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save a project from the editor (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you save a section (asks first or waits for you to turn again)",
        "effect": "lost"
       },
       {
        "way": "when you save the current music as a section (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited project B",
      "effect": "lost",
      "ways": [
       {
        "way": "when you press REC on the SONG screen to save a section and the song order (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save a project from the editor (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you save a section (asks first or waits for you to turn again)",
        "effect": "lost"
       },
       {
        "way": "when you save the current music as a section (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited project C",
      "effect": "lost",
      "ways": [
       {
        "way": "when you press REC on the SONG screen to save a section and the song order (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save a project from the editor (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you save a section (asks first or waits for you to turn again)",
        "effect": "lost"
       },
       {
        "way": "when you save the current music as a section (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited project D",
      "effect": "lost",
      "ways": [
       {
        "way": "when you press REC on the SONG screen to save a section and the song order (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save a project from the editor (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you save a section (asks first or waits for you to turn again)",
        "effect": "lost"
       },
       {
        "way": "when you save the current music as a section (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited user sample 1",
      "effect": "lost",
      "ways": [
       {
        "way": "when you erase a sample from the editor (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you send a sample from the editor (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you upload or erase a sample with the computer tool (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited user sample 2",
      "effect": "lost",
      "ways": [
       {
        "way": "when you erase a sample from the editor (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you send a sample from the editor (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you upload or erase a sample with the computer tool (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited user sample 3",
      "effect": "lost",
      "ways": [
       {
        "way": "when you erase a sample from the editor (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you send a sample from the editor (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you upload or erase a sample with the computer tool (without asking)",
        "effect": "lost"
       }
      ]
     }
    ],
    "possibly_at_risk": [],
    "carried_over": [],
    "kept_unseen": [
     "inherited user preset bank 1 (Your sounds stay saved but cannot be shown or played. Saving into their slots removes them; saving elsewhere keeps them. Saving on the FM-1 needs another turn of the same control, with no warning that the slot holds a hidden sound)",
     "inherited user preset bank 2 (Your sounds stay saved but cannot be shown or played. Saving into their slots removes them; saving elsewhere keeps them. Saving on the FM-1 needs another turn of the same control, with no warning that the slot holds a hidden sound)"
    ],
    "notes": [
     "SLOOP Floyd FM reads inherited user sample 1 until you write over the saved data. Audio loads only if it fits this slot. Sending to or erasing this slot replaces it. Extra slice markers are ignored. Held loops play as ordinary loops.",
     "SLOOP Floyd FM reads inherited user sample 2 until you write over the saved data. Audio loads only if it fits this slot. Sending to or erasing this slot replaces it. Extra slice markers are ignored. Held loops play as ordinary loops.",
     "SLOOP Floyd FM reads inherited user sample 3 until you write over the saved data. Audio loads only if it fits this slot. Sending to or erasing this slot replaces it. Extra slice markers are ignored. Held loops play as ordinary loops."
    ],
    "owner_text": "At risk by itself: inherited FM6 patches for user presets; settings and calibration. At risk when you act: inherited project A; inherited project B; inherited project C; inherited project D; inherited user sample 1; inherited user sample 2; inherited user sample 3. Kept but not shown: inherited user preset bank 1 (Your sounds stay saved but cannot be shown or played. Saving into their slots removes them; saving elsewhere keeps them. Saving on the FM-1 needs another turn of the same control, with no warning that the slot holds a hidden sound); inherited user preset bank 2 (Your sounds stay saved but cannot be shown or played. Saving into their slots removes them; saving elsewhere keeps them. Saving on the FM-1 needs another turn of the same control, with no warning that the slot holds a hidden sound). SLOOP Floyd FM reads inherited user sample 1 until you write over the saved data. Audio loads only if it fits this slot. Sending to or erasing this slot replaces it. Extra slice markers are ignored. Held loops play as ordinary loops. SLOOP Floyd FM reads inherited user sample 2 until you write over the saved data. Audio loads only if it fits this slot. Sending to or erasing this slot replaces it. Extra slice markers are ignored. Held loops play as ordinary loops. SLOOP Floyd FM reads inherited user sample 3 until you write over the saved data. Audio loads only if it fits this slot. Sending to or erasing this slot replaces it. Extra slice markers are ignored. Held loops play as ordinary loops.",
    "source": "flash-atlas derived/matrix.json (generated by apply_to_maps.py; do not edit by hand)"
   },
   {
    "to": "winampfm",
    "name": "winampFM Synth",
    "flags": "ACSK",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "inherited FM6 patches for user presets",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start",
        "effect": "lost"
       },
       {
        "way": "when you enter update mode, start a firmware update or restart from the computer",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "settings and calibration",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use",
        "effect": "lost"
       },
       {
        "way": "automatically, only if it can resume music saved in a SLOOP format from before version 2.6 with a different usable drum MIDI channel, and your saved settings include SYN drum kits but no MIDI controls or channels",
        "effect": "lost"
       },
       {
        "way": "when you enter update mode, start a firmware update or restart from the computer",
        "effect": "lost"
       },
       {
        "way": "when you record the current music into the selected song section (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you restore preferences or store SYN drum kits directly with a MIDI tool (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save the song order (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited project A",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically, only when a section you stored is still waiting to be saved after a restart",
        "effect": "lost"
       },
       {
        "way": "when you enter update mode, start a firmware update or restart from the computer",
        "effect": "lost"
       },
       {
        "way": "when you record the current music into the selected song section (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you restore section A directly with a MIDI tool (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save a project directly with a MIDI tool (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save the selected project slot with the PROJECT GO knob (asks first or waits for you to turn again)",
        "effect": "lost"
       },
       {
        "way": "when you store section A (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited project B",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically, only when a section you stored is still waiting to be saved after a restart",
        "effect": "lost"
       },
       {
        "way": "when you enter update mode, start a firmware update or restart from the computer",
        "effect": "lost"
       },
       {
        "way": "when you record the current music into the selected song section (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you restore section B directly with a MIDI tool (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save a project directly with a MIDI tool (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save the selected project slot with the PROJECT GO knob (asks first or waits for you to turn again)",
        "effect": "lost"
       },
       {
        "way": "when you store section B (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited project C",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically, only when a section you stored is still waiting to be saved after a restart",
        "effect": "lost"
       },
       {
        "way": "when you enter update mode, start a firmware update or restart from the computer",
        "effect": "lost"
       },
       {
        "way": "when you record the current music into the selected song section (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you restore section C directly with a MIDI tool (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save a project directly with a MIDI tool (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save the selected project slot with the PROJECT GO knob (asks first or waits for you to turn again)",
        "effect": "lost"
       },
       {
        "way": "when you store section C (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited project D",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically, only when a section you stored is still waiting to be saved after a restart",
        "effect": "lost"
       },
       {
        "way": "when you enter update mode, start a firmware update or restart from the computer",
        "effect": "lost"
       },
       {
        "way": "when you record the current music into the selected song section (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you restore section D directly with a MIDI tool (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save a project directly with a MIDI tool (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save the selected project slot with the PROJECT GO knob (asks first or waits for you to turn again)",
        "effect": "lost"
       },
       {
        "way": "when you store section D (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "up to sixteen liked worlds",
      "effect": "lost",
      "ways": [
       {
        "way": "when you store, erase or restore FM6 patches directly with a MIDI tool (without asking; writes the whole bank)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited user sample 1",
      "effect": "lost",
      "ways": [
       {
        "way": "when you hold REC in IMPORTER to erase USR1 (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you upload or erase USR1 with a MIDI tool (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited user sample 2",
      "effect": "lost",
      "ways": [
       {
        "way": "when you hold REC in IMPORTER to erase USR2 (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you upload or erase USR2 with a MIDI tool (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited user sample 3",
      "effect": "lost",
      "ways": [
       {
        "way": "when you hold REC in IMPORTER to erase USR3 (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you upload or erase USR3 with a MIDI tool (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited user preset bank 1",
      "effect": "lost",
      "ways": [
       {
        "way": "when you restore a user-sound bank directly with a MIDI tool (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you save or erase a user sound with a USER GO knob (asks or waits for you to turn again for that slot only; writes the whole bank)",
        "effect": "partly lost (only that slot)"
       },
       {
        "way": "when you send, store or erase a user sound directly with a MIDI tool (without asking; writes the whole bank)",
        "effect": "partly lost (only that slot)"
       }
      ]
     },
     {
      "object": "inherited user preset bank 2",
      "effect": "lost",
      "ways": [
       {
        "way": "when you restore a user-sound bank directly with a MIDI tool (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you save or erase a user sound with a USER GO knob (asks or waits for you to turn again for that slot only; writes the whole bank)",
        "effect": "partly lost (only that slot)"
       },
       {
        "way": "when you send, store or erase a user sound directly with a MIDI tool (without asking; writes the whole bank)",
        "effect": "partly lost (only that slot)"
       }
      ]
     }
    ],
    "possibly_at_risk": [],
    "carried_over": [],
    "kept_unseen": [],
    "notes": [
     "winampFM Synth reads inherited user sample 1 until you write over the saved data. Slice marks set by hand are not loaded. Loop modes follow this firmware's playback rules.",
     "winampFM Synth reads inherited user sample 2 until you write over the saved data. Slice marks set by hand are not loaded. Loop modes follow this firmware's playback rules.",
     "winampFM Synth reads inherited user sample 3 until you write over the saved data. Slice marks set by hand are not loaded. Loop modes follow this firmware's playback rules.",
     "winampFM Synth keeps stored but does not show inherited user preset bank 1 until you write over the saved data. Newer sounds are kept but not shown. Only older version-1 sounds still in the bank can play.",
     "winampFM Synth keeps stored but does not show inherited user preset bank 2 until you write over the saved data. Newer sounds are kept but not shown. Only older version-1 sounds still in the bank can play."
    ],
    "owner_text": "At risk by itself: inherited FM6 patches for user presets; settings and calibration. At risk by itself, under a condition: inherited project A; inherited project B; inherited project C; inherited project D. At risk when you act: up to sixteen liked worlds; inherited user sample 1; inherited user sample 2; inherited user sample 3; inherited user preset bank 1; inherited user preset bank 2. winampFM Synth reads inherited user sample 1 until you write over the saved data. Slice marks set by hand are not loaded. Loop modes follow this firmware's playback rules. winampFM Synth reads inherited user sample 2 until you write over the saved data. Slice marks set by hand are not loaded. Loop modes follow this firmware's playback rules. winampFM Synth reads inherited user sample 3 until you write over the saved data. Slice marks set by hand are not loaded. Loop modes follow this firmware's playback rules. winampFM Synth keeps stored but does not show inherited user preset bank 1 until you write over the saved data. Newer sounds are kept but not shown. Only older version-1 sounds still in the bank can play. winampFM Synth keeps stored but does not show inherited user preset bank 2 until you write over the saved data. Newer sounds are kept but not shown. Only older version-1 sounds still in the bank can play.",
    "source": "flash-atlas derived/matrix.json (generated by apply_to_maps.py; do not edit by hand)"
   },
   {
    "to": "bubba",
    "name": "Bubba Machine (beta)",
    "flags": "ACS?",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "inherited project A",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start",
        "effect": "lost"
       },
       {
        "way": "automatically during use (its autosave is on by default)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when older Bubba settings or patterns cause it to reset the space holding your data (with older patterns, takes and sounds are kept)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when you select a different pattern while playback is stopped and the current pattern or one waiting to be saved needs saving",
        "effect": "lost"
       },
       {
        "way": "when you copy to another pattern (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save a pattern or Save As (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save song and scenes (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited project B",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start",
        "effect": "lost"
       },
       {
        "way": "automatically during use (its autosave is on by default)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when older Bubba settings or patterns cause it to reset the space holding your data (with older patterns, takes and sounds are kept)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when you select a different pattern while playback is stopped and the current pattern or one waiting to be saved needs saving",
        "effect": "lost"
       },
       {
        "way": "when you copy to another pattern (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save a pattern or Save As (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save song and scenes (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited project C",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use (its autosave is on by default)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when older Bubba settings or patterns cause it to reset the space holding your data (with older patterns, takes and sounds are kept)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when you select a different pattern while playback is stopped and the current pattern or one waiting to be saved needs saving",
        "effect": "lost"
       },
       {
        "way": "when you copy to another pattern (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save a pattern or Save As (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save song and scenes (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited project D",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use (its autosave is on by default)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when older Bubba settings or patterns cause it to reset the space holding your data (with older patterns, takes and sounds are kept)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when you select a different pattern while playback is stopped and the current pattern or one waiting to be saved needs saving",
        "effect": "lost"
       },
       {
        "way": "when you copy to another pattern (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save a pattern or Save As (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save song and scenes (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited FM6 patches for user presets",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use (its autosave is on by default)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when older Bubba settings or patterns cause it to reset the space holding your data (with older patterns, takes and sounds are kept)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when you select a different pattern while playback is stopped and the current pattern or one waiting to be saved needs saving",
        "effect": "lost"
       },
       {
        "way": "when you copy to another pattern (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save a pattern or Save As (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save song and scenes (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited user sample 1",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use (its autosave is on by default)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when older Bubba settings or patterns cause it to reset the space holding your data (with older patterns, takes and sounds are kept)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when you select a different pattern while playback is stopped and the current pattern or one waiting to be saved needs saving",
        "effect": "lost"
       },
       {
        "way": "when you copy to another pattern (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save a pattern or Save As (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save song and scenes (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited user sample 2",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start",
        "effect": "damaged (part written over)"
       },
       {
        "way": "automatically during use (its autosave is on by default)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when a new recording finishes and playback is stopped",
        "effect": "damaged (part written over)"
       },
       {
        "way": "automatically, only when older Bubba settings or patterns cause it to reset the space holding your data (with older patterns, takes and sounds are kept)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when you select a different pattern while playback is stopped and the current pattern or one waiting to be saved needs saving",
        "effect": "lost"
       },
       {
        "way": "when you copy to another pattern (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save a pattern or Save As (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save song and scenes (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you send a sound or DX7 bank from the control page or with the computer tool (without asking)",
        "effect": "damaged (part written over)"
       },
       {
        "way": "when you upload a take from the control page or with the computer tool (without asking)",
        "effect": "damaged (part written over)"
       }
      ]
     },
     {
      "object": "inherited user preset bank 1",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start",
        "effect": "lost"
       },
       {
        "way": "automatically during use (its autosave is on by default)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when older Bubba settings or patterns cause it to reset the space holding your data (with older patterns, takes and sounds are kept)",
        "effect": "lost"
       },
       {
        "way": "when you load or remove a screen language pack (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited user preset bank 2",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use (its autosave is on by default)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when older Bubba settings or patterns cause it to reset the space holding your data (with older patterns, takes and sounds are kept)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited user sample 3",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically, only when a new recording finishes and playback is stopped",
        "effect": "lost"
       },
       {
        "way": "automatically, only when older Bubba settings or patterns cause it to reset the space holding your data (with older patterns, takes and sounds are kept)",
        "effect": "lost"
       },
       {
        "way": "when you load or remove a screen language pack (without asking)",
        "effect": "damaged (part written over)"
       },
       {
        "way": "when you send a sound or DX7 bank from the control page or with the computer tool (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you upload a take from the control page or with the computer tool (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "up to sixteen liked worlds",
      "effect": "lost",
      "ways": [
       {
        "way": "at an unknown time (the chip maker's code that does this is not public)",
        "effect": "lost"
       }
      ]
     }
    ],
    "possibly_at_risk": [],
    "carried_over": [],
    "kept_unseen": [],
    "notes": [],
    "owner_text": "At risk by itself: inherited project A; inherited project B; inherited project C; inherited project D; inherited FM6 patches for user presets; inherited user sample 1; inherited user sample 2; inherited user preset bank 1; inherited user preset bank 2. At risk by itself, under a condition: inherited user sample 3. At risk when you act: up to sixteen liked worlds.",
    "source": "flash-atlas derived/matrix.json (generated by apply_to_maps.py; do not edit by hand)"
   },
   {
    "to": "salt",
    "name": "Felucca [Salt]",
    "flags": "ASK",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "settings and calibration",
      "effect": "changed to the new format: After a settings save here, the previous firmware cannot read the newer saved copy. Its settings and calibration may use defaults when you return. These firmwares save settings and favourites in the same space. An edit here can change the other firmware’s choices",
      "ways": [
       {
        "way": "automatically during use",
        "effect": "changed to the new format: After a settings save here, the previous firmware cannot read the newer saved copy. Its settings and calibration may use defaults when you return. These firmwares save settings and favourites in the same space. An edit here can change the other firmware’s choices"
       },
       {
        "way": "when you erase a user sound (asks first or waits for you to turn again)",
        "effect": "changed to the new format: After a settings save here, the previous firmware cannot read the newer saved copy. Its settings and calibration may use defaults when you return. These firmwares save settings and favourites in the same space. An edit here can change the other firmware’s choices"
       },
       {
        "way": "when you run hardware calibration (without asking)",
        "effect": "changed to the new format: After a settings save here, the previous firmware cannot read the newer saved copy. Its settings and calibration may use defaults when you return. These firmwares save settings and favourites in the same space. An edit here can change the other firmware’s choices"
       },
       {
        "way": "when you send display or favourite changes from the editor (without asking)",
        "effect": "changed to the new format: After a settings save here, the previous firmware cannot read the newer saved copy. Its settings and calibration may use defaults when you return. These firmwares save settings and favourites in the same space. An edit here can change the other firmware’s choices"
       }
      ]
     },
     {
      "object": "inherited project A",
      "effect": "lost",
      "ways": [
       {
        "way": "when you save a project (asks first or waits for you to turn again)",
        "effect": "lost"
       },
       {
        "way": "when you save a project from the editor (the computer asks first)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited project B",
      "effect": "lost",
      "ways": [
       {
        "way": "when you save a project (asks first or waits for you to turn again)",
        "effect": "lost"
       },
       {
        "way": "when you save a project from the editor (the computer asks first)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited project C",
      "effect": "lost",
      "ways": [
       {
        "way": "when you save a project (asks first or waits for you to turn again)",
        "effect": "lost"
       },
       {
        "way": "when you save a project from the editor (the computer asks first)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited project D",
      "effect": "lost",
      "ways": [
       {
        "way": "when you save a project (asks first or waits for you to turn again)",
        "effect": "lost"
       },
       {
        "way": "when you save a project from the editor (the computer asks first)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited user sample 1",
      "effect": "lost",
      "ways": [
       {
        "way": "when you erase a sample slot from the editor (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you send samples to the FM-1 from the editor (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you upload or erase a sample with the computer tool (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited user sample 2",
      "effect": "lost",
      "ways": [
       {
        "way": "when you erase a sample slot from the editor (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you send samples to the FM-1 from the editor (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you upload or erase a sample with the computer tool (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited user sample 3",
      "effect": "lost",
      "ways": [
       {
        "way": "when you erase a sample slot from the editor (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you send samples to the FM-1 from the editor (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you upload or erase a sample with the computer tool (without asking)",
        "effect": "lost"
       }
      ]
     }
    ],
    "possibly_at_risk": [],
    "carried_over": [],
    "kept_unseen": [
     "inherited user preset bank 1 (These sounds stay stored but cannot be shown or played. Saving replaces only the slot you save into. Back them up before using a slot that looks empty)",
     "inherited user preset bank 2 (These sounds stay stored but cannot be shown or played. Saving replaces only the slot you save into. Back them up before using a slot that looks empty)"
    ],
    "notes": [
     "Felucca [Salt] reads inherited user sample 1 until you write over the saved data. Slice positions you set in SLICE stay hidden. This firmware has no storage for slice positions.",
     "Felucca [Salt] reads inherited user sample 2 until you write over the saved data. Slice positions you set in SLICE stay hidden. This firmware has no storage for slice positions.",
     "Felucca [Salt] reads inherited user sample 3 until you write over the saved data. Slice positions you set in SLICE stay hidden. This firmware has no storage for slice positions."
    ],
    "owner_text": "At risk by itself: settings and calibration (changed to the new format: After a settings save here, the previous firmware cannot read the newer saved copy. Its settings and calibration may use defaults when you return. These firmwares save settings and favourites in the same space. An edit here can change the other firmware’s choices). At risk when you act: inherited project A; inherited project B; inherited project C; inherited project D; inherited user sample 1; inherited user sample 2; inherited user sample 3. Kept but not shown: inherited user preset bank 1 (These sounds stay stored but cannot be shown or played. Saving replaces only the slot you save into. Back them up before using a slot that looks empty); inherited user preset bank 2 (These sounds stay stored but cannot be shown or played. Saving replaces only the slot you save into. Back them up before using a slot that looks empty). Felucca [Salt] reads inherited user sample 1 until you write over the saved data. Slice positions you set in SLICE stay hidden. This firmware has no storage for slice positions. Felucca [Salt] reads inherited user sample 2 until you write over the saved data. Slice positions you set in SLICE stay hidden. This firmware has no storage for slice positions. Felucca [Salt] reads inherited user sample 3 until you write over the saved data. Slice positions you set in SLICE stay hidden. This firmware has no storage for slice positions.",
    "source": "flash-atlas derived/matrix.json (generated by apply_to_maps.py; do not edit by hand)"
   },
   {
    "to": "pigeon",
    "name": "PIGEON",
    "flags": "CSK",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "settings and calibration",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use",
        "effect": "kept: PIGEON can read it"
       },
       {
        "way": "automatically, only when playback stops after you learn or clear a MIDI mapping",
        "effect": "kept: PIGEON can read it"
       },
       {
        "way": "when you calibrate the panel (without asking)",
        "effect": "kept: PIGEON can read it"
       },
       {
        "way": "when you restore a PIGEON archive with the library tool (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you restore a PIGEON session in its editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the older editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you restore compatible backup data with another MIDI tool (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you send preferences from the web editor (without asking)",
        "effect": "kept: PIGEON can read it"
       }
      ]
     },
     {
      "object": "inherited user sample 1",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically, only when you edit the sampler and its matching sample leaves room to save those edits",
        "effect": "damaged (part written over)"
       },
       {
        "way": "when you erase a sample in USR1 in the older format directly with a MIDI tool (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you erase a sample in USR1 in the older format from the editor (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you erase the PIGEON bank with the bank tool (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the older editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you send a PIGEON bank from the editor (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you send a PIGEON bank with the bank tool (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you send a sample in USR1 in the older format directly with a MIDI tool (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you upload a sample in USR1 in the older format from the editor (the computer asks first)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "up to sixteen liked worlds",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically, only at its first start unless RESTORE LAST is off",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited project A",
      "effect": "lost",
      "ways": [
       {
        "way": "when you restore a PIGEON archive with the library tool (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you restore a PIGEON session in its editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the older editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you restore compatible backup data with another MIDI tool (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save a project directly with a MIDI tool (without asking)",
        "effect": "changed to the new format: the next save of this project uses PIGEON's newer project format and sampler setup; your previous firmware cannot load it if you switch back. Engines and sound controls mean different things. In PIGEON, sampler tracks replace the synth performance setup"
       },
       {
        "way": "when you save a project from the editor (the computer asks first)",
        "effect": "changed to the new format: the next save of this project uses PIGEON's newer project format and sampler setup; your previous firmware cannot load it if you switch back. Engines and sound controls mean different things. In PIGEON, sampler tracks replace the synth performance setup"
       },
       {
        "way": "when you save or paste the selected pattern (without asking)",
        "effect": "changed to the new format: the next save of this project uses PIGEON's newer project format and sampler setup; your previous firmware cannot load it if you switch back. Engines and sound controls mean different things. In PIGEON, sampler tracks replace the synth performance setup"
       }
      ]
     },
     {
      "object": "inherited project B",
      "effect": "lost",
      "ways": [
       {
        "way": "when you restore a PIGEON archive with the library tool (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you restore a PIGEON session in its editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the older editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you restore compatible backup data with another MIDI tool (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save a project directly with a MIDI tool (without asking)",
        "effect": "changed to the new format: the next save of this project uses PIGEON's newer project format and sampler setup; your previous firmware cannot load it if you switch back. Engines and sound controls mean different things. In PIGEON, sampler tracks replace the synth performance setup"
       },
       {
        "way": "when you save a project from the editor (the computer asks first)",
        "effect": "changed to the new format: the next save of this project uses PIGEON's newer project format and sampler setup; your previous firmware cannot load it if you switch back. Engines and sound controls mean different things. In PIGEON, sampler tracks replace the synth performance setup"
       },
       {
        "way": "when you save or paste the selected pattern (without asking)",
        "effect": "changed to the new format: the next save of this project uses PIGEON's newer project format and sampler setup; your previous firmware cannot load it if you switch back. Engines and sound controls mean different things. In PIGEON, sampler tracks replace the synth performance setup"
       }
      ]
     },
     {
      "object": "inherited project C",
      "effect": "lost",
      "ways": [
       {
        "way": "when you restore a PIGEON archive with the library tool (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you restore a PIGEON session in its editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the older editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you restore compatible backup data with another MIDI tool (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save a project directly with a MIDI tool (without asking)",
        "effect": "changed to the new format: the next save of this project uses PIGEON's newer project format and sampler setup; your previous firmware cannot load it if you switch back. Engines and sound controls mean different things. In PIGEON, sampler tracks replace the synth performance setup"
       },
       {
        "way": "when you save a project from the editor (the computer asks first)",
        "effect": "changed to the new format: the next save of this project uses PIGEON's newer project format and sampler setup; your previous firmware cannot load it if you switch back. Engines and sound controls mean different things. In PIGEON, sampler tracks replace the synth performance setup"
       },
       {
        "way": "when you save or paste the selected pattern (without asking)",
        "effect": "changed to the new format: the next save of this project uses PIGEON's newer project format and sampler setup; your previous firmware cannot load it if you switch back. Engines and sound controls mean different things. In PIGEON, sampler tracks replace the synth performance setup"
       }
      ]
     },
     {
      "object": "inherited project D",
      "effect": "lost",
      "ways": [
       {
        "way": "when you restore a PIGEON archive with the library tool (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you restore a PIGEON session in its editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the older editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you restore compatible backup data with another MIDI tool (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save a project directly with a MIDI tool (without asking)",
        "effect": "changed to the new format: the next save of this project uses PIGEON's newer project format and sampler setup; your previous firmware cannot load it if you switch back. Engines and sound controls mean different things. In PIGEON, sampler tracks replace the synth performance setup"
       },
       {
        "way": "when you save a project from the editor (the computer asks first)",
        "effect": "changed to the new format: the next save of this project uses PIGEON's newer project format and sampler setup; your previous firmware cannot load it if you switch back. Engines and sound controls mean different things. In PIGEON, sampler tracks replace the synth performance setup"
       },
       {
        "way": "when you save or paste the selected pattern (without asking)",
        "effect": "changed to the new format: the next save of this project uses PIGEON's newer project format and sampler setup; your previous firmware cannot load it if you switch back. Engines and sound controls mean different things. In PIGEON, sampler tracks replace the synth performance setup"
       }
      ]
     },
     {
      "object": "inherited FM6 patches for user presets",
      "effect": "lost",
      "ways": [
       {
        "way": "when you restore a PIGEON archive with the library tool (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you restore a PIGEON session in its editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the older editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you restore compatible backup data with another MIDI tool (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited user sample 2",
      "effect": "lost",
      "ways": [
       {
        "way": "when you erase a sample in USR2 in the older format directly with a MIDI tool (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you erase a sample in USR2 in the older format from the editor (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you erase the PIGEON bank with the bank tool (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you restore a PIGEON archive with the library tool (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you restore a PIGEON session in its editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the older editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you send a PIGEON bank from the editor (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you send a PIGEON bank with the bank tool (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you send a sample in USR2 in the older format directly with a MIDI tool (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you upload a PIGEON bank with the library tool (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you upload a sample in USR2 in the older format from the editor (the computer asks first)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited user sample 3",
      "effect": "lost",
      "ways": [
       {
        "way": "when you erase a sample in USR3 in the older format directly with a MIDI tool (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you erase a sample in USR3 in the older format from the editor (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you erase the PIGEON bank with the bank tool (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you restore a PIGEON archive with the library tool (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you restore a PIGEON session in its editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the older editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you send a PIGEON bank from the editor (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you send a PIGEON bank with the bank tool (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you send a sample in USR3 in the older format directly with a MIDI tool (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you upload a PIGEON bank with the library tool (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you upload a sample in USR3 in the older format from the editor (the computer asks first)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited user preset bank 1",
      "effect": "lost",
      "ways": [
       {
        "way": "when you restore a PIGEON archive with the library tool (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you restore a PIGEON session in its editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the older editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you restore compatible backup data with another MIDI tool (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited user preset bank 2",
      "effect": "lost",
      "ways": [
       {
        "way": "when you restore a PIGEON archive with the library tool (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you restore a PIGEON session in its editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the older editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you restore compatible backup data with another MIDI tool (without asking)",
        "effect": "lost"
       }
      ]
     }
    ],
    "possibly_at_risk": [],
    "carried_over": [],
    "kept_unseen": [],
    "notes": [
     "PIGEON keeps inherited FM6 patches for user presets in backups, but does not play them. Writing over that bank can lose those patches.",
     "PIGEON reads inherited user sample 1 until you write over the saved data. Sample audio can be read. Loops and slices may play differently; we have not tested whether they sound the same.",
     "PIGEON reads inherited user sample 2 until you write over the saved data. Sample audio can be read. Loops and slices may play differently; we have not tested whether they sound the same.",
     "PIGEON reads inherited user sample 3 until you write over the saved data. Sample audio can be read. Loops and slices may play differently; we have not tested whether they sound the same.",
     "PIGEON keeps stored but does not show inherited user preset bank 1 until you write over the saved data. These synth sounds are kept but not shown, for backups. PIGEON does not play them.",
     "PIGEON keeps stored but does not show inherited user preset bank 2 until you write over the saved data. These synth sounds are kept but not shown, for backups. PIGEON does not play them.",
     "PIGEON reads settings and calibration until you write over the saved data. Some saved preferences mean different things in PIGEON. For choices PIGEON cannot use, it uses settings it supports."
    ],
    "owner_text": "At risk by itself: settings and calibration. At risk by itself, under a condition: inherited user sample 1; up to sixteen liked worlds. At risk when you act: inherited project A; inherited project B; inherited project C; inherited project D; inherited FM6 patches for user presets; inherited user sample 2; inherited user sample 3; inherited user preset bank 1; inherited user preset bank 2. PIGEON keeps inherited FM6 patches for user presets in backups, but does not play them. Writing over that bank can lose those patches. PIGEON reads inherited user sample 1 until you write over the saved data. Sample audio can be read. Loops and slices may play differently; we have not tested whether they sound the same. PIGEON reads inherited user sample 2 until you write over the saved data. Sample audio can be read. Loops and slices may play differently; we have not tested whether they sound the same. PIGEON reads inherited user sample 3 until you write over the saved data. Sample audio can be read. Loops and slices may play differently; we have not tested whether they sound the same. PIGEON keeps stored but does not show inherited user preset bank 1 until you write over the saved data. These synth sounds are kept but not shown, for backups. PIGEON does not play them. PIGEON keeps stored but does not show inherited user preset bank 2 until you write over the saved data. These synth sounds are kept but not shown, for backups. PIGEON does not play them. PIGEON reads settings and calibration until you write over the saved data. Some saved preferences mean different things in PIGEON. For choices PIGEON cannot use, it uses settings it supports.",
    "source": "flash-atlas derived/matrix.json (generated by apply_to_maps.py; do not edit by hand)"
   },
   {
    "to": "fm1move",
    "name": "FM1 Move",
    "flags": "SK",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "up to sixteen liked worlds",
      "effect": "lost",
      "ways": [
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you send or clear an FM6 bank directly with a MIDI tool (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you store or erase an FM6 sound directly with a MIDI tool (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you store selected DX7 voices from the device page (the computer asks first about the slots it fills; writes the whole bank)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "settings and calibration",
      "effect": "lost",
      "ways": [
       {
        "way": "when you finish calibration or let it time out after holding both OCT buttons as you turn it on (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you send settings or MIDI control assignments with a computer tool or store SYN kits from the web editor (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited user sample 1",
      "effect": "lost",
      "ways": [
       {
        "way": "when you erase a sample directly with a MIDI tool (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you erase a sample from the device page (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you send a sample directly with a MIDI tool (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you upload a sample from the device page (the computer asks first)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited user sample 2",
      "effect": "lost",
      "ways": [
       {
        "way": "when you erase a sample directly with a MIDI tool (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you erase a sample from the device page (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you send a sample directly with a MIDI tool (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you upload a sample from the device page (the computer asks first)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited user sample 3",
      "effect": "lost",
      "ways": [
       {
        "way": "when you erase a sample directly with a MIDI tool (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you erase a sample from the device page (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you send a sample directly with a MIDI tool (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you upload a sample from the device page (the computer asks first)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited user preset bank 1",
      "effect": "lost",
      "ways": [
       {
        "way": "when you import a preset file from the device page (without asking; writes the whole bank)",
        "effect": "some or all lost"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you send or clear a user-sound bank directly with a MIDI tool (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you send, store, rename or erase a user sound directly with a MIDI tool (without asking; writes the whole bank)",
        "effect": "partly lost (only that slot)"
       },
       {
        "way": "when you store a user sound from the device page (without asking; writes the whole bank)",
        "effect": "partly lost (the slot you save into)"
       }
      ]
     },
     {
      "object": "inherited user preset bank 2",
      "effect": "lost",
      "ways": [
       {
        "way": "when you import a preset file from the device page (without asking; writes the whole bank)",
        "effect": "some or all lost"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you send or clear a user-sound bank directly with a MIDI tool (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you send, store, rename or erase a user sound directly with a MIDI tool (without asking; writes the whole bank)",
        "effect": "partly lost (only that slot)"
       },
       {
        "way": "when you store a user sound from the device page (without asking; writes the whole bank)",
        "effect": "partly lost (the slot you save into)"
       }
      ]
     }
    ],
    "possibly_at_risk": [],
    "carried_over": [],
    "kept_unseen": [],
    "notes": [
     "FM1 Move reads inherited user sample 1 until you write over the saved data. Slice marks set by hand are not loaded. Loop modes follow this firmware's playback rules.",
     "FM1 Move reads inherited user sample 2 until you write over the saved data. Slice marks set by hand are not loaded. Loop modes follow this firmware's playback rules.",
     "FM1 Move reads inherited user sample 3 until you write over the saved data. Slice marks set by hand are not loaded. Loop modes follow this firmware's playback rules.",
     "FM1 Move keeps stored but does not show inherited user preset bank 1 until you write over the saved data. Newer sounds are kept but not shown. Only older version-1 sounds still in the bank can play.",
     "FM1 Move keeps stored but does not show inherited user preset bank 2 until you write over the saved data. Newer sounds are kept but not shown. Only older version-1 sounds still in the bank can play."
    ],
    "owner_text": "At risk when you act: up to sixteen liked worlds; settings and calibration; inherited user sample 1; inherited user sample 2; inherited user sample 3; inherited user preset bank 1; inherited user preset bank 2. FM1 Move reads inherited user sample 1 until you write over the saved data. Slice marks set by hand are not loaded. Loop modes follow this firmware's playback rules. FM1 Move reads inherited user sample 2 until you write over the saved data. Slice marks set by hand are not loaded. Loop modes follow this firmware's playback rules. FM1 Move reads inherited user sample 3 until you write over the saved data. Slice marks set by hand are not loaded. Loop modes follow this firmware's playback rules. FM1 Move keeps stored but does not show inherited user preset bank 1 until you write over the saved data. Newer sounds are kept but not shown. Only older version-1 sounds still in the bank can play. FM1 Move keeps stored but does not show inherited user preset bank 2 until you write over the saved data. Newer sounds are kept but not shown. Only older version-1 sounds still in the bank can play.",
    "source": "flash-atlas derived/matrix.json (generated by apply_to_maps.py; do not edit by hand)"
   },
   {
    "to": "fm1quest",
    "name": "FM1 Quest",
    "flags": "ASK",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "inherited FM6 patches for user presets",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start",
        "effect": "lost"
       },
       {
        "way": "when you enter update mode or receive a firmware update",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "settings and calibration",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use",
        "effect": "lost"
       },
       {
        "way": "when you enter update mode with settings waiting to be saved",
        "effect": "lost"
       },
       {
        "way": "when you press SAVE on the SONG screen (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save section A from SONG (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save section B from SONG (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save section C from SONG (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save section D from SONG (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you send settings with computer commands (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited project A",
      "effect": "lost",
      "ways": [
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save a project from the editor (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you save project A (asks first or waits for you to turn again)",
        "effect": "lost"
       },
       {
        "way": "when you save section A from SONG (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save the current music as section A (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you send or clear a section with computer commands (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited project B",
      "effect": "lost",
      "ways": [
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save a project from the editor (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you save project B (asks first or waits for you to turn again)",
        "effect": "lost"
       },
       {
        "way": "when you save section B from SONG (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save the current music as section B (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you send or clear a section with computer commands (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited project C",
      "effect": "lost",
      "ways": [
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save a project from the editor (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you save project C (asks first or waits for you to turn again)",
        "effect": "lost"
       },
       {
        "way": "when you save section C from SONG (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save the current music as section C (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you send or clear a section with computer commands (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited project D",
      "effect": "lost",
      "ways": [
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save a project from the editor (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you save project D (asks first or waits for you to turn again)",
        "effect": "lost"
       },
       {
        "way": "when you save section D from SONG (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save the current music as section D (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you send or clear a section with computer commands (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited user sample 1",
      "effect": "lost",
      "ways": [
       {
        "way": "when you erase a sample from the editor (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you erase a sample with computer commands (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you erase sample USR1 by holding REC on it in IMPORTER (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you erase sample USR2 by holding REC on it in IMPORTER (without asking)",
        "effect": "damaged (part written over)"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you send a sample from the editor (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you send a sample with computer commands (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited user sample 2",
      "effect": "lost",
      "ways": [
       {
        "way": "when you erase a sample with computer commands (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you erase sample USR2 by holding REC on it in IMPORTER (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you erase sample USR3 by holding REC on it in IMPORTER (without asking)",
        "effect": "damaged (part written over)"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you send a sample from the editor (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you send a sample with computer commands (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited user sample 3",
      "effect": "lost",
      "ways": [
       {
        "way": "when you erase a sample with computer commands (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you erase sample USR3 by holding REC on it in IMPORTER (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you send a sample from the editor (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you send a sample with computer commands (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you send or erase training song H1 (without asking)",
        "effect": "damaged (part written over)"
       },
       {
        "way": "when you send or erase training song H2 (without asking)",
        "effect": "damaged (part written over)"
       },
       {
        "way": "when you send or erase training song H3 (without asking)",
        "effect": "damaged (part written over)"
       },
       {
        "way": "when you send or erase training song H4 (without asking)",
        "effect": "damaged (part written over)"
       },
       {
        "way": "when you send or erase training song H5 (without asking)",
        "effect": "damaged (part written over)"
       },
       {
        "way": "when you send or erase training song H6 (without asking)",
        "effect": "damaged (part written over)"
       },
       {
        "way": "when you send or erase training song P1 (without asking)",
        "effect": "damaged (part written over)"
       },
       {
        "way": "when you send or erase training song P2 (without asking)",
        "effect": "damaged (part written over)"
       },
       {
        "way": "when you send or erase training song P3 (without asking)",
        "effect": "damaged (part written over)"
       },
       {
        "way": "when you send or erase training song P4 (without asking)",
        "effect": "damaged (part written over)"
       },
       {
        "way": "when you send or erase training song P5 (without asking)",
        "effect": "damaged (part written over)"
       },
       {
        "way": "when you send or erase training song P6 (without asking)",
        "effect": "damaged (part written over)"
       }
      ]
     },
     {
      "object": "inherited user preset bank 1",
      "effect": "lost",
      "ways": [
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you restore a user-sound bank with computer commands (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you save or erase a USER sound (asks or waits for you to turn again for that slot only; writes the whole bank)",
        "effect": "partly lost (only that slot)"
       },
       {
        "way": "when you save the current sound from the editor (without asking; writes the whole bank)",
        "effect": "partly lost (the slot you save into)"
       },
       {
        "way": "when you send a user sound from the editor (without asking; writes the whole bank)",
        "effect": "partly lost (the slot you save into)"
       },
       {
        "way": "when you send, save or erase a user sound with computer commands (without asking; writes the whole bank)",
        "effect": "partly lost (only that slot)"
       }
      ]
     },
     {
      "object": "inherited user preset bank 2",
      "effect": "lost",
      "ways": [
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you restore a user-sound bank with computer commands (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you save or erase a USER sound (asks or waits for you to turn again for that slot only; writes the whole bank)",
        "effect": "partly lost (only that slot)"
       },
       {
        "way": "when you save the current sound from the editor (without asking; writes the whole bank)",
        "effect": "partly lost (the slot you save into)"
       },
       {
        "way": "when you send a user sound from the editor (without asking; writes the whole bank)",
        "effect": "partly lost (the slot you save into)"
       },
       {
        "way": "when you send, save or erase a user sound with computer commands (without asking; writes the whole bank)",
        "effect": "partly lost (only that slot)"
       }
      ]
     }
    ],
    "possibly_at_risk": [],
    "carried_over": [],
    "kept_unseen": [],
    "notes": [
     "Quest can play your saved USR1 until you write over it, if its audio and zones fit Quest’s smaller sample slot. Sending a sample to USR1 or erasing it loses the old sample. This includes holding REC on USR1 in IMPORTER when Quest can read it. Sending a sample to USR2 or erasing USR2 can damage the end of the old USR1. Back up USR1 first.",
     "FM1 Quest keeps stored but does not show inherited user preset bank 1 until you write over the saved data. Your sounds stay saved but cannot be shown or played. Saving into their slots removes them; saving elsewhere keeps them. Saving on the FM-1 needs another turn of the same control, with no warning that the slot holds a hidden sound.",
     "FM1 Quest keeps stored but does not show inherited user preset bank 2 until you write over the saved data. Your sounds stay saved but cannot be shown or played. Saving into their slots removes them; saving elsewhere keeps them. Saving on the FM-1 needs another turn of the same control, with no warning that the slot holds a hidden sound."
    ],
    "owner_text": "At risk by itself: inherited FM6 patches for user presets; settings and calibration. At risk when you act: inherited project A; inherited project B; inherited project C; inherited project D; inherited user sample 1; inherited user sample 2; inherited user sample 3; inherited user preset bank 1; inherited user preset bank 2. Quest can play your saved USR1 until you write over it, if its audio and zones fit Quest’s smaller sample slot. Sending a sample to USR1 or erasing it loses the old sample. This includes holding REC on USR1 in IMPORTER when Quest can read it. Sending a sample to USR2 or erasing USR2 can damage the end of the old USR1. Back up USR1 first. FM1 Quest keeps stored but does not show inherited user preset bank 1 until you write over the saved data. Your sounds stay saved but cannot be shown or played. Saving into their slots removes them; saving elsewhere keeps them. Saving on the FM-1 needs another turn of the same control, with no warning that the slot holds a hidden sound. FM1 Quest keeps stored but does not show inherited user preset bank 2 until you write over the saved data. Your sounds stay saved but cannot be shown or played. Saving into their slots removes them; saving elsewhere keeps them. Saving on the FM-1 needs another turn of the same control, with no warning that the slot holds a hidden sound.",
    "source": "flash-atlas derived/matrix.json (generated by apply_to_maps.py; do not edit by hand)"
   },
   {
    "to": "grooveos",
    "name": "Groove OS",
    "flags": "?",
    "weakest_grade": null,
    "at_risk": [],
    "possibly_at_risk": [
     "settings and calibration",
     "up to sixteen liked worlds",
     "inherited FM6 patches for user presets",
     "inherited project A",
     "inherited project B",
     "inherited project C",
     "inherited project D",
     "inherited user preset bank 1",
     "inherited user preset bank 2",
     "inherited user sample 1",
     "inherited user sample 2",
     "inherited user sample 3"
    ],
    "carried_over": [],
    "kept_unseen": [],
    "notes": [
     "The official route first puts V15 back, then installs Groove OS. Treat this firmware’s saved work as lost and back it up with its own tools before starting. Groove OS’s project saves, autosave, preferences, sample uploads and extra installed pages can also replace leftover work; nobody has published which parts of storage they use. A sound missing from PRESETS may still occupy storage, and do not count on Groove OS’s own backups to keep it."
    ],
    "owner_text": "Possibly at risk (layout reported or inferred): settings and calibration; up to sixteen liked worlds; inherited FM6 patches for user presets; inherited project A; inherited project B; inherited project C; inherited project D; inherited user preset bank 1; inherited user preset bank 2; inherited user sample 1; inherited user sample 2; inherited user sample 3. The official route first puts V15 back, then installs Groove OS. Treat this firmware’s saved work as lost and back it up with its own tools before starting. Groove OS’s project saves, autosave, preferences, sample uploads and extra installed pages can also replace leftover work; nobody has published which parts of storage they use. A sound missing from PRESETS may still occupy storage, and do not count on Groove OS’s own backups to keep it.",
    "source": "flash-atlas derived/matrix.json (generated by apply_to_maps.py; do not edit by hand)"
   }
  ]
 },
 "disagreements": [
  {
   "topic": "The earlier mode design",
   "docs_say": "The old design notes describe enabling MAKU in a menu, KNOB 1 as a density control and PLAY as transport.",
   "source_says": "That document marks itself historical; this release starts MAKU automatically, uses KNOB 1 for pulse volume and PLAY for DRIFT.",
   "docs_ref": {
    "kind": "doc",
    "repo": "okumurari2/maku",
    "ref": "maku-v1.0",
    "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
    "path": "docs/MAKU.md",
    "lines": "29-48",
    "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/docs/MAKU.md#L29-L48"
   },
   "source_ref": {
    "kind": "source",
    "repo": "okumurari2/maku",
    "ref": "maku-v1.0",
    "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
    "path": "firmware/src/ui_input.c",
    "lines": "1136-1164",
    "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1136-L1164"
   }
  },
  {
   "topic": "Breathing at slow tempos",
   "docs_say": "The README lists the breathing plan as unbuilt.",
   "source_says": "Internal tempo below 70 gradually introduces breathing, reaching its full range at 50; it reshapes the pulse and melodic level movement.",
   "docs_ref": {
    "kind": "doc",
    "repo": "okumurari2/maku",
    "ref": "maku-v1.0",
    "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
    "path": "README.md",
    "lines": "54-56",
    "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/README.md#L54-L56"
   },
   "source_ref": {
    "kind": "source",
    "repo": "okumurari2/maku",
    "ref": "maku-v1.0",
    "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
    "path": "firmware/src/maku.c",
    "lines": "949-994",
    "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L949-L994"
   }
  },
  {
   "topic": "OCT key changes and remembered notes",
   "docs_say": "The spec says pitches already in the phrase stay unchanged.",
   "source_says": "OCT± remaps remembered notes to the new key signature; a phrase run in progress is also mapped through that signature while sounding chords keep ringing.",
   "docs_ref": {
    "kind": "doc",
    "repo": "okumurari2/maku",
    "ref": "maku-v1.0",
    "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
    "path": "docs/SPEC.md",
    "lines": "87-90",
    "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/docs/SPEC.md#L87-L90"
   },
   "source_ref": {
    "kind": "source",
    "repo": "okumurari2/maku",
    "ref": "maku-v1.0",
    "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
    "path": "firmware/src/maku.c",
    "lines": "761-777",
    "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L761-L777"
   }
  },
  {
   "topic": "Density thresholds",
   "docs_say": "The spec describes four guaranteed kick beats at DENS 96 and ornaments above 96.",
   "source_says": "The displayed density is stretched before kick probability is calculated, so DENS 96 is not the four-beat threshold; four guaranteed beats start at displayed 106 outside breath and SCRAMBLE.",
   "docs_ref": {
    "kind": "doc",
    "repo": "okumurari2/maku",
    "ref": "maku-v1.0",
    "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
    "path": "docs/SPEC.md",
    "lines": "59-63",
    "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/docs/SPEC.md#L59-L63"
   },
   "source_ref": {
    "kind": "source",
    "repo": "okumurari2/maku",
    "ref": "maku-v1.0",
    "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
    "path": "firmware/src/maku.c",
    "lines": "291-329",
    "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L291-L329"
   }
  },
  {
   "topic": "Hand-set kicks always play",
   "docs_say": "The spec says hand-set kicks always sound.",
   "source_says": "Low-tempo breathing can replace the pattern with a first-step cue, SCRAMBLE can omit a hand-set hit, and SINK can silence the pulse.",
   "docs_ref": {
    "kind": "doc",
    "repo": "okumurari2/maku",
    "ref": "maku-v1.0",
    "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
    "path": "docs/SPEC.md",
    "lines": "56-63",
    "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/docs/SPEC.md#L56-L63"
   },
   "source_ref": {
    "kind": "source",
    "repo": "okumurari2/maku",
    "ref": "maku-v1.0",
    "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
    "path": "firmware/src/maku.c",
    "lines": "622-646",
    "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku.c#L622-L646"
   }
  },
  {
   "topic": "Kick-grid removal timing",
   "docs_say": "The inherited grid comments describe removing an existing hit when its key is released.",
   "source_says": "The home panel excludes held-step editing, so a pending removal is applied on the next input pass even while the key is held.",
   "docs_ref": {
    "kind": "doc",
    "repo": "okumurari2/maku",
    "ref": "maku-v1.0",
    "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
    "path": "firmware/src/ui_input.c",
    "lines": "521-527",
    "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L521-L527"
   },
   "source_ref": {
    "kind": "source",
    "repo": "okumurari2/maku",
    "ref": "maku-v1.0",
    "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
    "path": "firmware/src/ui_input.c",
    "lines": "553-581",
    "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L553-L581"
   }
  },
  {
   "topic": "Opening settings and credits",
   "docs_say": "LICENSING says holding HOME opens the route to ABOUT.",
   "source_says": "HOME alone makes a new world; keep OCT- down while holding HOME to open settings, then choose SYSTEM > ABOUT.",
   "docs_ref": {
    "kind": "doc",
    "repo": "okumurari2/maku",
    "ref": "maku-v1.0",
    "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
    "path": "LICENSING.md",
    "lines": "57-58",
    "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/LICENSING.md#L57-L58"
   },
   "source_ref": {
    "kind": "source",
    "repo": "okumurari2/maku",
    "ref": "maku-v1.0",
    "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
    "path": "firmware/src/ui_input.c",
    "lines": "1332-1345",
    "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1332-L1345"
   }
  },
  {
   "topic": "Settings scope",
   "docs_say": "The README presents settings as colour, screen timeout and calibration.",
   "source_says": "All twenty inherited rows remain visible, including restore, recording and effect-key options whose original flows are unavailable on the normal MAKU panel.",
   "docs_ref": {
    "kind": "doc",
    "repo": "okumurari2/maku",
    "ref": "maku-v1.0",
    "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
    "path": "README.md",
    "lines": "77-80",
    "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/README.md#L77-L80"
   },
   "source_ref": {
    "kind": "source",
    "repo": "okumurari2/maku",
    "ref": "maku-v1.0",
    "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
    "path": "firmware/src/menu_items.c",
    "lines": "9-33",
    "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L9-L33"
   }
  },
  {
   "topic": "MIDI clock follow",
   "docs_say": "README and the spec advertise MIDI clock following.",
   "source_says": "A normal start selects the internal clock and this panel has no clock-source selector; incoming clock and transport only reach the sequencer when the source matches an already selected external clock.",
   "docs_ref": {
    "kind": "doc",
    "repo": "okumurari2/maku",
    "ref": "maku-v1.0",
    "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
    "path": "README.md",
    "lines": "83",
    "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/README.md#L83"
   },
   "source_ref": {
    "kind": "source",
    "repo": "okumurari2/maku",
    "ref": "maku-v1.0",
    "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
    "path": "firmware/src/seq.c",
    "lines": "1084-1098",
    "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L1084-L1098"
   },
   "source_extra": [
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/main.c",
     "lines": "99-104",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/main.c#L99-L104"
    },
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/params.c",
     "lines": "129",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/params.c#L129"
    },
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/menu_items.c",
     "lines": "9-33",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/menu_items.c#L9-L33"
    },
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/ui_input.c",
     "lines": "1438-1444",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1438-L1444"
    }
   ]
  },
  {
   "topic": "How long REC stays lit",
   "docs_say": "The spec says REC stays lit until the next world.",
   "source_says": "REC is active only while a like message is showing, including LIKED, NOT SAVED; the lamp is not proof that the flash write succeeded.",
   "docs_ref": {
    "kind": "doc",
    "repo": "okumurari2/maku",
    "ref": "maku-v1.0",
    "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
    "path": "docs/SPEC.md",
    "lines": "92",
    "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/docs/SPEC.md#L92"
   },
   "source_ref": {
    "kind": "source",
    "repo": "okumurari2/maku",
    "ref": "maku-v1.0",
    "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
    "path": "firmware/src/maku_fav.c",
    "lines": "51-52",
    "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku_fav.c#L51-L52"
   }
  },
  {
   "topic": "Boot bias from likes",
   "docs_say": "The README introduction suggests new power-on worlds move towards saved taste.",
   "source_says": "Power-on calls the random-world generator directly; the likes-based draw is used when HOME creates another world.",
   "docs_ref": {
    "kind": "doc",
    "repo": "okumurari2/maku",
    "ref": "maku-v1.0",
    "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
    "path": "README.md",
    "lines": "7-13",
    "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/README.md#L7-L13"
   },
   "source_ref": {
    "kind": "source",
    "repo": "okumurari2/maku",
    "ref": "maku-v1.0",
    "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
    "path": "firmware/src/main.c",
    "lines": "193-196",
    "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/main.c#L193-L196"
   }
  },
  {
   "topic": "Only likes are saved",
   "docs_say": "The opening summary says only likes persist, while the README later treats menu settings as saved too.",
   "source_says": "In ordinary use menu edits and menu calibration are lost at power-off; power-on calibration can store settings before playback, and startup also has update cleanup and conditional sound-bank conversion.",
   "docs_ref": {
    "kind": "doc",
    "repo": "okumurari2/maku",
    "ref": "maku-v1.0",
    "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
    "path": "README.md",
    "lines": "79-80",
    "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/README.md#L79-L80"
   },
   "source_ref": {
    "kind": "source",
    "repo": "okumurari2/maku",
    "ref": "maku-v1.0",
    "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
    "path": "firmware/src/project.c",
    "lines": "1081-1105",
    "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/project.c#L1081-L1105"
   },
   "source_extra": [
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/main.c",
     "lines": "189-196",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/main.c#L189-L196"
    },
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/project.c",
     "lines": "1074-1105",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/project.c#L1074-L1105"
    },
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/ui.c",
     "lines": "394-401",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui.c#L394-L401"
    },
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/ui_input.c",
     "lines": "1438-1444",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ui_input.c#L1438-L1444"
    },
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/seq.c",
     "lines": "1090-1096",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/seq.c#L1090-L1096"
    },
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/ota.c",
     "lines": "384-396",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/ota.c#L384-L396"
    },
    {
     "kind": "source",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "firmware/src/up_fm6.c",
     "lines": "172-186",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/up_fm6.c#L172-L186"
    }
   ]
  },
  {
   "topic": "Likes after running Felucca",
   "docs_say": "The README and spec say MAKU likes should remain through Felucca updates.",
   "source_says": "Felucca v1.6.1 uses the same storage for its session autosave, so its automatic saves can replace MAKU likes without a question; installing an update alone does not guarantee they survive running it.",
   "docs_ref": {
    "kind": "doc",
    "repo": "okumurari2/maku",
    "ref": "maku-v1.0",
    "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
    "path": "README.md",
    "lines": "81-82",
    "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/README.md#L81-L82"
   },
   "docs_extra": [
    {
     "kind": "doc",
     "repo": "okumurari2/maku",
     "ref": "maku-v1.0",
     "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
     "path": "docs/SPEC.md",
     "lines": "122-126",
     "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/docs/SPEC.md#L122-L126"
    }
   ],
   "source_ref": {
    "kind": "source",
    "repo": "okumurari2/maku",
    "ref": "maku-v1.0",
    "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
    "path": "firmware/src/storage.c",
    "lines": "68-69",
    "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/storage.c#L68-L69"
   },
   "source_extra": [
    {
     "kind": "source",
     "repo": "hugelton/Felucca",
     "ref": "v1.6.1",
     "commit": "a53ecf428c29c780108fd70a31b71a32a6b5c313",
     "path": "firmware/src/storage.c",
     "lines": "65-71",
     "url": "https://github.com/hugelton/Felucca/blob/a53ecf428c29c780108fd70a31b71a32a6b5c313/firmware/src/storage.c#L65-L71"
    },
    {
     "kind": "source",
     "repo": "hugelton/Felucca",
     "ref": "v1.6.1",
     "commit": "a53ecf428c29c780108fd70a31b71a32a6b5c313",
     "path": "firmware/src/project.c",
     "lines": "1352-1375",
     "url": "https://github.com/hugelton/Felucca/blob/a53ecf428c29c780108fd70a31b71a32a6b5c313/firmware/src/project.c#L1352-L1375"
    },
    {
     "kind": "source",
     "repo": "hugelton/Felucca",
     "ref": "v1.6.1",
     "commit": "a53ecf428c29c780108fd70a31b71a32a6b5c313",
     "path": "firmware/src/main.c",
     "lines": "307-309",
     "url": "https://github.com/hugelton/Felucca/blob/a53ecf428c29c780108fd70a31b71a32a6b5c313/firmware/src/main.c#L307-L309"
    }
   ]
  }
 ],
 "not_mapped": [
  "No hardware measurements were made; all control entries were read in the pinned release source.",
  "The release attachment ATTRIBUTION.txt is not present in the supplied tree; its source samples attribution and the build step that copies it were read, alongside LICENSE, LICENSING.md and LICENSES/.",
  "Browser-emulator preview styles, rating tools and developer consoles are outside the physical panel map; they are not extra FM-1 pages.",
  "External clock-selection code remains in the inherited engine but no usable clock-source selector was found on this MAKU panel; no working MIDI-sync gesture is claimed.",
  "No older MAKU tree was supplied for checking rollback compatibility."
 ],
 "likes_scope": {
  "kept": "World seed; floor, haze and voice choices; root, scale and tempo; twelve macro values; the floor and haze insert choices and three settings each; their pitch movement choices; background texture and its level rounded to steps of four.",
  "left_out": "Part volumes and mutes, hand-set pulse steps and accents, notes played into the voice phrase, REG, SWING and DUCK controls, DRIFT state and controls, verb times and active effects.",
  "new_world_rule": "Each like adds 15 percentage points to the chance that holding HOME draws from likes, capped at 90 percent; newer likes have more weight and selected elements can change with an eight-percent chance each. Power-on itself still draws randomly.",
  "source": [
   {
    "kind": "source",
    "repo": "okumurari2/maku",
    "ref": "maku-v1.0",
    "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
    "path": "firmware/src/maku_fav.c",
    "lines": "21-42",
    "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku_fav.c#L21-L42"
   },
   {
    "kind": "source",
    "repo": "okumurari2/maku",
    "ref": "maku-v1.0",
    "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
    "path": "firmware/src/maku_fav.c",
    "lines": "84-126",
    "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku_fav.c#L84-L126"
   },
   {
    "kind": "source",
    "repo": "okumurari2/maku",
    "ref": "maku-v1.0",
    "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
    "path": "firmware/src/maku_fav.c",
    "lines": "178-259",
    "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/maku_fav.c#L178-L259"
   },
   {
    "kind": "source",
    "repo": "okumurari2/maku",
    "ref": "maku-v1.0",
    "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
    "path": "firmware/src/main.c",
    "lines": "193-196",
    "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/firmware/src/main.c#L193-L196"
   }
  ],
  "save_timing": "A repeated REC before a new world or restart can still need an erase inside a short audio dip; likes are not a supported backup file."
 },
 "licence_sources": [
  {
   "kind": "doc",
   "repo": "okumurari2/maku",
   "ref": "maku-v1.0",
   "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
   "path": "LICENSE",
   "lines": "1-14",
   "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/LICENSE#L1-L14"
  },
  {
   "kind": "doc",
   "repo": "okumurari2/maku",
   "ref": "maku-v1.0",
   "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
   "path": "LICENSING.md",
   "lines": "3-23",
   "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/LICENSING.md#L3-L23"
  },
  {
   "kind": "doc",
   "repo": "okumurari2/maku",
   "ref": "maku-v1.0",
   "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
   "path": "LICENSING.md",
   "lines": "43-55",
   "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/LICENSING.md#L43-L55"
  },
  {
   "kind": "doc",
   "repo": "okumurari2/maku",
   "ref": "maku-v1.0",
   "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
   "path": "assets/samples-cc0/ATTRIBUTION.txt",
   "lines": "1-18",
   "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/assets/samples-cc0/ATTRIBUTION.txt#L1-L18"
  },
  {
   "kind": "source",
   "repo": "okumurari2/maku",
   "ref": "maku-v1.0",
   "commit": "5671198f1989cbd4a0e674b2059e7f8316faf37d",
   "path": "tools/build.py",
   "lines": "359-381",
   "url": "https://github.com/okumurari2/maku/blob/5671198f1989cbd4a0e674b2059e7f8316faf37d/tools/build.py#L359-L381"
  }
 ],
 "refresh_check_fixes": [
  {
   "round": 1,
   "error": "1 settings never persist from menu",
   "fixed": "Made menu-edit loss categorical, distinguished power-on calibration, and corrected power-off and settings-disagreement text.",
   "at": "controls.button_home[2:5]; controls.switch_power[2]; modes[38]; switching_note; disagreements[11]; maku.md Change settings"
  },
  {
   "round": 1,
   "error": "2 menu entry changes key",
   "fixed": "Added the fifth-down side effect and absence of automatic reversal.",
   "at": "controls.button_home[7]; modes[14]; maku.md modes and Change settings"
  },
  {
   "round": 1,
   "error": "3 Felucca can overwrite likes",
   "fixed": "Added a sourced docs disagreement and named session-autosave risks when leaving MAKU.",
   "at": "disagreements[12]; switching_note.editor_and_returning; maku.md switching and disagreements"
  },
  {
   "round": 1,
   "error": "4 row navigation requires tab",
   "fixed": "Specified ALGORITHM tab selection before PRESETS for every value-row mode.",
   "at": "modes[19:37]; maku.md Change settings navigation table"
  },
  {
   "round": 1,
   "error": "5 SLICE excluded from release",
   "fixed": "Removed active SLM1-read claims, marked slice code excluded and updated sample readers and citations.",
   "at": "refresh/work/maku.storage.json: objects sample_usr1..3; dormant_write_paths[2]; reads_foreign sample rows"
  },
  {
   "round": 1,
   "error": "6 settings foreign-write trigger",
   "fixed": "Replaced eventual-stop wording with the actual power-on calibration writer in all fifteen reader rows and made queued menu paths explicitly noncommitting.",
   "at": "refresh/work/maku.storage.json: maku.settings; reads_foreign reader_object=maku.settings; format_notes"
  },
  {
   "round": 1,
   "error": "7 loader cannot match normal likes",
   "fixed": "Explained that a normally written like leaves its sector-tail probe erased; retained the conditional foreign-data cleanup.",
   "at": "refresh/work/maku.storage.json: install_and_startup_writes[3]"
  },
  {
   "round": 1,
   "error": "not counted: owner switching facts",
   "fixed": "Added named foreign-work risks and pre-first-start backup advice outside the unchanged empty generated block.",
   "at": "switching_note; maku.md Before you switch firmware; refresh/work/maku.storage.json owner_switching_fact"
  },
  {
   "round": 1,
   "error": "not counted: imported settings and empty like",
   "fixed": "Named compatible settings import and CLICK ON consequences, and appended NOTHING TO LIKE display entry.",
   "at": "switching_note.imported_settings; controls.screen[28]; maku.md"
  },
  {
   "round": 1,
   "error": "additional: FM6 migration targets B",
   "fixed": "Corrected the false newest-source-copy preservation promise after reading the actual >=0 target expression.",
   "at": "refresh/work/maku.storage.json: maku.fm6_user_patches; retired-bank and companion reads_foreign rows; switching_note.conditional_startup_overwrites"
  },
  {
   "round": 2,
   "error": "1 FM6 conversion copy selection",
   "fixed": "Corrected the round-1 target misread: no companion selects the copy opposite the newest old bank; distinguished rejected companion payloads, restored conditional foreign overwrite effects and named Polly shared memory 4.",
   "at": "switching_note.conditional_startup_overwrites; maku.md Older-bank conversion; maku.storage.json objects.maku.fm6_user_patches, all 26 FM6 reads_foreign rows, format_notes, owner_switching_fact"
  },
  {
   "round": 2,
   "error": "2 Melodee REC overwrite slots",
   "fixed": "Named shared user presets U037–U054 from the atlas short/holds fields; kept the canonical object id unchanged.",
   "at": "switching_note.first_rec_overwrites; maku.md First REC save or clear; maku.storage.json owner_switching_fact"
  },
  {
   "round": 2,
   "error": "3 AMB-1 calibration scope",
   "fixed": "Specified that the affected AMB-1 stored copy contains all eight pieces and setup.",
   "at": "switching_note.calibration_overwrites; maku.md Power-on calibration; maku.storage.json owner_switching_fact"
  },
  {
   "round": 2,
   "error": "4 HOME closes whole settings menu",
   "fixed": "Stated that HOME from About closes settings and returns to the playing panel, while retaining temporary-settings behavior.",
   "at": "controls.button_home[4]; maku.md About and credits HOME release row"
  },
  {
   "round": 2,
   "error": "5 isolated restore journal does not trigger cleanup",
   "fixed": "Removed the ordinary startup journal-loss warning and qualified both journal reader rows: independent nonblank probe remnants are required; normal-update coexistence is inferred to be unexpected.",
   "at": "switching_note.startup_overwrites; maku.md Every start; maku.storage.json update_staging reads_foreign journal rows and owner_switching_fact"
  },
  {
   "round": 2,
   "error": "6 stale sample-reader citations",
   "fixed": "Replaced excluded slice references in 67 rejected sample rows and normalized all 85 sample reader rows to the compiled scanner, build guard and active boot scan.",
   "at": "maku.storage.json reads_foreign reader_object=maku.sample_usr1..3 src"
  },
  {
   "round": 2,
   "error": "7 repeated switching-table notice",
   "fixed": "Compressed the opening to one not-in-table notice with backup-before-first-start advice and one atlas link; preserved the generated switching block.",
   "at": "switching_note.switching_table_status; maku.md Before you switch firmware; maku.storage.json owner_switching_fact"
  },
  {
   "round": "overlay-fix-r1",
   "at": "controls.key_ds4[6].short_label",
   "old": "TAMBOURINE",
   "new": "TAMB.",
   "why": "firmware/src/maku.c:296-335@5671198f1989cbd4a0e674b2059e7f8316faf37d"
  },
  {
   "round": "overlay-fix-r1",
   "at": "controls.button_seq[0].short_label",
   "old": "TEMPO SETUP",
   "new": "TEMPO",
   "why": "firmware/src/ui_layer.c:98-107@5671198f1989cbd4a0e674b2059e7f8316faf37d"
  },
  {
   "round": "overlay-fix-r2",
   "at": "controls.key_cs5[6].short_label",
   "old": "ACC",
   "new": "HOLD ACC",
   "why": "firmware/src/ui_input.c:519-531@5671198f1989cbd4a0e674b2059e7f8316faf37d"
  }
 ],
 "checker_disputes_refresh": []
}