{
 "firmware": "ORBIT",
 "slug": "orbit",
 "author": "dspaudio; based on SLOOP by isod89 and Felucca by Leo Kuroshita / Hügelton Instruments",
 "repo": "https://github.com/dspaudio/orbit",
 "licence": "GPL-3.0-only",
 "closed_source": false,
 "mapped_release": "v0.7.1",
 "mapped_commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
 "release_date": "2026-10-15",
 "date_mapped": "2026-10-17",
 "turns_it_into": "Three synth tracks and a drum track with step recording, event Tape, sections, macros and a computer editor.",
 "docs": [
  {
   "title": "ORBIT guide",
   "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/GUIDE.md",
   "path": "GUIDE.md",
   "read_at": "v0.7.1",
   "words": 4150
  },
  {
   "title": "MIDI controls",
   "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/docs/MIDI-CONTROL.md",
   "path": "docs/MIDI-CONTROL.md",
   "read_at": "v0.7.1"
  },
  {
   "title": "Release overview",
   "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/README.md",
   "path": "README.md",
   "read_at": "v0.7.1"
  }
 ],
 "install": {
  "official": "https://github.com/dspaudio/orbit/releases/tag/v0.7.1",
  "hub": "https://thefirmwarehub.com/",
  "browser": "https://dspaudio.github.io/orbit/"
 },
 "part_id_notes": "SEL is B_SCL, separate from the SELECT encoder; the 27 key ids run from physical F3 to G5 regardless of octave or scale, and lights use button part ids plus groups.key_lights; ORBIT drives the mapped PLAY button LED, not a separate green transport output.",
 "modes": [
  {
   "id": "synth_play",
   "name": "Synth keyboard",
   "how_to_get_there": "Select track 1, 2 or 3 with ALGORITHM.",
   "what_it_is": "The normal keyboard routing on pages without a held layer; STEP, GRID and recording add the jobs listed separately.",
   "evidence": "read-in-source",
   "source": [
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/seq.c",
     "lines": "1468-1591",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1468-L1591"
    }
   ]
  },
  {
   "id": "drum_play",
   "name": "Drum keyboard",
   "how_to_get_there": "Select track 4, outside GRID or a held layer.",
   "what_it_is": "The white keys are sixteen pads and each black key repeats the pad to its left.",
   "evidence": "read-in-source",
   "source": [
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/drums.c",
     "lines": "60-95",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/drums.c#L60-L95"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/seq.c",
     "lines": "1535-1547",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1535-L1547"
    }
   ]
  },
  {
   "id": "tape",
   "name": "Event Tape",
   "how_to_get_there": "Tap HOME from an editing page, SONG or DRUMS; HOME on Tape opens Visualizer.",
   "what_it_is": "Four event lanes and a temporary clipboard, rather than recorded audio.",
   "evidence": "read-in-source",
   "source": [
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/ui_input.c",
     "lines": "1071-1077",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L1071-L1077"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/orbit_ui.c",
     "lines": "53-121",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/orbit_ui.c#L53-L121"
    }
   ]
  },
  {
   "id": "visualizer",
   "name": "Visualizer",
   "how_to_get_there": "Tap HOME on Tape or Mixer; tap it again to return to Tape.",
   "what_it_is": "Twelve drawings of the mix; no Tape editing or page-knob edits.",
   "evidence": "read-in-source",
   "source": [
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/ui_input.c",
     "lines": "1071-1077",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L1071-L1077"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/ui_input.c",
     "lines": "1151-1156",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L1151-L1156"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/ui_vis.c",
     "lines": "1-32",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_vis.c#L1-L32"
    }
   ]
  },
  {
   "id": "record_ready",
   "name": "Recording armed",
   "how_to_get_there": "Press REC while stopped.",
   "what_it_is": "An empty project can record freely; otherwise use a tempo loop with note or count-in start.",
   "evidence": "read-in-source",
   "source": [
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/ui_studio.c",
     "lines": "122-140",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_studio.c#L122-L140"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/ui_input.c",
     "lines": "905-932",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L905-L932"
    }
   ]
  },
  {
   "id": "free_take",
   "name": "Free take",
   "how_to_get_there": "Arm FREE in an empty project and play the first note.",
   "what_it_is": "A temporary take closes with REC and is abandoned by PLAY; it accepts at most 192 note events and closes after 24 seconds.",
   "evidence": "read-in-source",
   "source": [
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/seq.c",
     "lines": "637-650",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L637-L650"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/seq.c",
     "lines": "862-961",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L862-L961"
    }
   ]
  },
  {
   "id": "count_in",
   "name": "Count-in",
   "how_to_get_there": "Arm TEMPO with START COUNT, then press PLAY.",
   "what_it_is": "Four clicks before the loop starts; played notes only sound during the count.",
   "evidence": "read-in-source",
   "source": [
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/seq.c",
     "lines": "2409-2449",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L2409-L2449"
    }
   ]
  },
  {
   "id": "clear_track",
   "name": "Track clear hold",
   "how_to_get_there": "Keep REC down for about two seconds outside SONG.",
   "what_it_is": "A ring appears after 0.7 seconds and completes 1.3 seconds later; releasing early cancels the clear.",
   "evidence": "read-in-source",
   "source": [
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/ui_input.c",
     "lines": "934-984",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L934-L984"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/ui_layers.c",
     "lines": "1070-1081",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L1070-L1081"
    }
   ]
  },
  {
   "id": "mixer_level",
   "name": "Mixer LEVEL",
   "how_to_get_there": "Tap GLO on Tape.",
   "what_it_is": "Four track levels, with one knob for each track.",
   "evidence": "read-in-source",
   "source": [
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/ui_input.c",
     "lines": "269-299",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L269-L299"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/params.c",
     "lines": "449-451",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L449-L451"
    }
   ]
  },
  {
   "id": "mixer_pan",
   "name": "Mixer PAN",
   "how_to_get_there": "From Mixer LEVEL turn SELECT right.",
   "what_it_is": "Four track pan controls.",
   "evidence": "read-in-source",
   "source": [
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/ui_input.c",
     "lines": "269-299",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L269-L299"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/params.c",
     "lines": "449-451",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L449-L451"
    }
   ]
  },
  {
   "id": "mixer_track",
   "name": "Mixer TRACK",
   "how_to_get_there": "From Mixer PAN turn SELECT right.",
   "what_it_is": "Global swing and selected-track level, length and pan.",
   "evidence": "read-in-source",
   "source": [
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/ui_input.c",
     "lines": "269-299",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L269-L299"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/params.c",
     "lines": "449-451",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L449-L451"
    }
   ]
  },
  {
   "id": "drum_grid",
   "name": "DRUMS GRID",
   "how_to_get_there": "On track 4, tap EDIT or SEQ on Tape or Mixer, then turn SELECT left.",
   "what_it_is": "Sixteen rows and sixteen step columns; white keys edit the selected lane and black keys select lanes.",
   "evidence": "read-in-source",
   "source": [
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/ui_input.c",
     "lines": "694-701",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L694-L701"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/ui_studio.c",
     "lines": "486-619",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_studio.c#L486-L619"
    }
   ]
  },
  {
   "id": "drum_kit",
   "name": "DRUMS KIT",
   "how_to_get_there": "From DRUMS turn SELECT right, or tap EDIT or SEQ to alternate GRID and KIT.",
   "what_it_is": "The keys play pads and the knobs set kit and mix.",
   "evidence": "read-in-source",
   "source": [
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/ui_studio.c",
     "lines": "538-619",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_studio.c#L538-L619"
    }
   ]
  },
  {
   "id": "step",
   "name": "STEP",
   "how_to_get_there": "On a synth track, tap SEQ to reopen its last page, then keep tapping SEQ until STEP appears.",
   "what_it_is": "Keyboard step entry and a cursor editor; pressing EDIT here clears one step and advances.",
   "evidence": "read-in-source",
   "source": [
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/ui_input.c",
     "lines": "620-663",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L620-L663"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/ui_input.c",
     "lines": "703-707",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L703-L707"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/params.c",
     "lines": "446-448",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L446-L448"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/ui.c",
     "lines": "307-322",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui.c#L307-L322"
    }
   ]
  },
  {
   "id": "song",
   "name": "SONG",
   "how_to_get_there": "Tap SAVE from Tape, Mixer or DRUMS, tap SEQ through to SONG, or use SAVE plus white key 16.",
   "what_it_is": "Edit section order and durations; stop before edits and flash actions.",
   "evidence": "read-in-source",
   "source": [
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/ui_input.c",
     "lines": "724-732",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L724-L732"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/ui_layers.c",
     "lines": "456-457",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L456-L457"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/ui_song.c",
     "lines": "87-154",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_song.c#L87-L154"
    }
   ]
  },
  {
   "id": "browse",
   "name": "PRESETS",
   "how_to_get_there": "From a sound-editing page tap SAVE, then use SELECT or tap SAVE again.",
   "what_it_is": "Factory and occupied USER sounds, or choose a new engine.",
   "evidence": "read-in-source",
   "source": [
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/params.c",
     "lines": "440-443",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L440-L443"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/ui_input.c",
     "lines": "419-427",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L419-L427"
    }
   ]
  },
  {
   "id": "user",
   "name": "USER",
   "how_to_get_there": "From a sound-editing page tap SAVE, then use SELECT or tap SAVE again.",
   "what_it_is": "Thirty-two stored synth sounds with their macro assignments.",
   "evidence": "read-in-source",
   "source": [
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/params.c",
     "lines": "440-443",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L440-L443"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/ui_input.c",
     "lines": "429-446",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L429-L446"
    }
   ]
  },
  {
   "id": "project",
   "name": "PROJECT",
   "how_to_get_there": "From a sound-editing page tap SAVE, then use SELECT or tap SAVE again.",
   "what_it_is": "Four saved complete sections, separate from the working autosave.",
   "evidence": "read-in-source",
   "source": [
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/params.c",
     "lines": "440-443",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L440-L443"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/ui_input.c",
     "lines": "448-459",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L448-L459"
    }
   ]
  },
  {
   "id": "tools",
   "name": "TOOLS",
   "how_to_get_there": "From a sound-editing page tap SAVE, then use SELECT or tap SAVE again.",
   "what_it_is": "Clear a track pattern, initialize its sound or start a new project.",
   "evidence": "read-in-source",
   "source": [
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/params.c",
     "lines": "440-443",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L440-L443"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/ui_input.c",
     "lines": "493-537",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L493-L537"
    }
   ]
  },
  {
   "id": "punch",
   "name": "Punch",
   "how_to_get_there": "Hold FX, or hold it and tap HOME to lock the layer.",
   "what_it_is": "Keys apply momentary mix effects.",
   "evidence": "read-in-source",
   "source": [
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/ui_layers.c",
     "lines": "23-44",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L23-L44"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/ui_input.c",
     "lines": "763-899",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L763-L899"
    }
   ]
  },
  {
   "id": "erase",
   "name": "Erase",
   "how_to_get_there": "Hold EDIT, or hold it and tap HOME to lock the layer.",
   "what_it_is": "Keys remove notes or drum lanes; on drums, a black key switches white keys between erasing and temporary live mutes.",
   "evidence": "read-in-source",
   "source": [
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/ui_layers.c",
     "lines": "23-44",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L23-L44"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/ui_input.c",
     "lines": "763-899",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L763-L899"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/seq.c",
     "lines": "1493-1500",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1493-L1500"
    }
   ]
  },
  {
   "id": "roll",
   "name": "Roll",
   "how_to_get_there": "Hold ARP, or hold it and tap HOME to lock the layer.",
   "what_it_is": "Hold keys to repeat notes or drum hits.",
   "evidence": "read-in-source",
   "source": [
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/ui_layers.c",
     "lines": "23-44",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L23-L44"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/ui_input.c",
     "lines": "763-899",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L763-L899"
    }
   ]
  },
  {
   "id": "steps",
   "name": "Steps",
   "how_to_get_there": "Hold SEQ, or hold it and tap HOME to lock the layer.",
   "what_it_is": "White keys address sixteen steps on the selected page.",
   "evidence": "read-in-source",
   "source": [
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/ui_layers.c",
     "lines": "23-44",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L23-L44"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/ui_input.c",
     "lines": "763-899",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L763-L899"
    }
   ]
  },
  {
   "id": "key_scale",
   "name": "Key and scale",
   "how_to_get_there": "Hold SEL, or hold it and tap HOME to lock the layer.",
   "what_it_is": "Keys choose the song root; knobs set chords, scale and keyboard mapping.",
   "evidence": "read-in-source",
   "source": [
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/ui_layers.c",
     "lines": "23-44",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L23-L44"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/ui_input.c",
     "lines": "763-899",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L763-L899"
    }
   ]
  },
  {
   "id": "mix_layer",
   "name": "Mix layer",
   "how_to_get_there": "Hold GLO, or hold it and tap HOME to lock the layer.",
   "what_it_is": "Mute, solo, fill, tap tempo and MIDI learn.",
   "evidence": "read-in-source",
   "source": [
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/ui_layers.c",
     "lines": "23-44",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L23-L44"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/ui_input.c",
     "lines": "763-899",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L763-L899"
    }
   ]
  },
  {
   "id": "sections",
   "name": "Sections",
   "how_to_get_there": "Hold SAVE, or hold it and tap HOME to lock the layer.",
   "what_it_is": "Recall or store A–D, record their order or make a live chain.",
   "evidence": "read-in-source",
   "source": [
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/ui_layers.c",
     "lines": "23-44",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L23-L44"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/ui_input.c",
     "lines": "763-899",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L763-L899"
    }
   ]
  },
  {
   "id": "menu_screen",
   "name": "Menu SCREEN",
   "how_to_get_there": "Hold HOME for more than 0.7 seconds; SELECT chooses SCREEN.",
   "what_it_is": "Palette and large value display.",
   "evidence": "read-in-source",
   "source": [
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/ui_menu.c",
     "lines": "9-19",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L9-L19"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/ui_menu.c",
     "lines": "240-278",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L240-L278"
    }
   ]
  },
  {
   "id": "menu_lights",
   "name": "Menu LIGHTS",
   "how_to_get_there": "Hold HOME for more than 0.7 seconds; SELECT chooses LIGHTS.",
   "what_it_is": "Button backlight, key landmarks and sounding-note lights.",
   "evidence": "read-in-source",
   "source": [
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/ui_menu.c",
     "lines": "9-19",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L9-L19"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/ui_menu.c",
     "lines": "240-278",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L240-L278"
    }
   ]
  },
  {
   "id": "menu_audio",
   "name": "Menu AUDIO",
   "how_to_get_there": "Hold HOME for more than 0.7 seconds; SELECT chooses AUDIO.",
   "what_it_is": "Speaker lowcut, USB recording level and USB serial.",
   "evidence": "read-in-source",
   "source": [
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/ui_menu.c",
     "lines": "9-19",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L9-L19"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/ui_menu.c",
     "lines": "240-278",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L240-L278"
    }
   ]
  },
  {
   "id": "menu_system",
   "name": "Menu SYSTEM",
   "how_to_get_there": "Hold HOME for more than 0.7 seconds; SELECT chooses SYSTEM.",
   "what_it_is": "Calibration, MIDI-learn clear, credits and demo load.",
   "evidence": "read-in-source",
   "source": [
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/ui_menu.c",
     "lines": "9-19",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L9-L19"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/ui_menu.c",
     "lines": "240-278",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L240-L278"
    }
   ]
  },
  {
   "id": "about",
   "name": "ABOUT",
   "how_to_get_there": "Menu SYSTEM: use PRESETS to highlight ABOUT and press OCT+.",
   "what_it_is": "Version and credits.",
   "evidence": "read-in-source",
   "source": [
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/ui_menu.c",
     "lines": "92-108",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L92-L108"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/ui_menu.c",
     "lines": "229-233",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L229-L233"
    }
   ]
  },
  {
   "id": "calibration",
   "name": "Hardware calibration",
   "how_to_get_there": "Power on holding OCT- and OCT+, or open it in menu SYSTEM.",
   "what_it_is": "Teach fourteen button labels and seven clockwise encoder turns; 30 seconds without input cancels the learning.",
   "evidence": "read-in-source",
   "source": [
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/main.c",
     "lines": "173-175",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/main.c#L173-L175"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/ui_input.c",
     "lines": "1182-1250",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L1182-L1250"
    }
   ]
  },
  {
   "id": "update",
   "name": "Update / recovery",
   "how_to_get_there": "Hold both OCT buttons while stopped for over five seconds, or use the browser installer.",
   "what_it_is": "Stops audio and flushes pending section, dirty song-settings and changed working-project saves before UBOOT entry.",
   "evidence": "read-in-source",
   "source": [
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/main.c",
     "lines": "202-229",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/main.c#L202-L229"
    }
   ]
  },
  {
   "id": "env",
   "name": "ENV",
   "how_to_get_there": "Tap ENV to open its page family; tap it again to advance, or turn SELECT to move between pages.",
   "what_it_is": "Track envelope controls; FM6 uses its patch envelopes instead, so these values do not shape FM6 amplitude. This page is editable only on synth tracks. LOFI STEP has staircase amplitude instead; the ordinary release controls its cutoff after key-up.",
   "evidence": "read-in-source",
   "source": [
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/params.c",
     "lines": "407",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L407"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/ui_input.c",
     "lines": "461-490",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/params.c",
     "lines": "75-82",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L75-L82"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/params.c",
     "lines": "216-228",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L216-L228"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/voice.c",
     "lines": "746-764",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/voice.c#L746-L764"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/eng_lofi.c",
     "lines": "79-114",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_lofi.c#L79-L114"
    }
   ]
  },
  {
   "id": "env_dest",
   "name": "ENV DEST",
   "how_to_get_there": "Tap ENV to open its page family; tap it again to advance, or turn SELECT to move between pages.",
   "what_it_is": "Filter and shape follow the track amplitude envelope; pitch uses a separate short envelope, which also affects FM6. This page is editable only on synth tracks.",
   "evidence": "read-in-source",
   "source": [
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/params.c",
     "lines": "408",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L408"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/ui_input.c",
     "lines": "461-490",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/params.c",
     "lines": "79-81",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L79-L81"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/params.c",
     "lines": "134-138",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L134-L138"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/eng_fm6.c",
     "lines": "13-24",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_fm6.c#L13-L24"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/voice.c",
     "lines": "781-799",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/voice.c#L781-L799"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/voice.c",
     "lines": "286-299",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/voice.c#L286-L299"
    }
   ]
  },
  {
   "id": "lfo",
   "name": "LFO SOURCE",
   "how_to_get_there": "Tap LFO to open its page family; tap it again to advance, or turn SELECT to move between pages.",
   "what_it_is": "The four knobs change these values on this page. This page is editable only on synth tracks.",
   "evidence": "read-in-source",
   "source": [
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/params.c",
     "lines": "410",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L410"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/ui_input.c",
     "lines": "461-490",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/params.c",
     "lines": "4-10",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L4-L10"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/params.c",
     "lines": "83-86",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L83-L86"
    }
   ]
  },
  {
   "id": "lfo2",
   "name": "LFO SYNC",
   "how_to_get_there": "Tap LFO to open its page family; tap it again to advance, or turn SELECT to move between pages.",
   "what_it_is": "The four knobs change these values on this page. This page is editable only on synth tracks.",
   "evidence": "read-in-source",
   "source": [
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/params.c",
     "lines": "411",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L411"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/ui_input.c",
     "lines": "461-490",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/params.c",
     "lines": "4-10",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L4-L10"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/params.c",
     "lines": "134-138",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L134-L138"
    }
   ]
  },
  {
   "id": "lfo_dest",
   "name": "LFO DEST",
   "how_to_get_there": "Tap LFO to open its page family; tap it again to advance, or turn SELECT to move between pages.",
   "what_it_is": "The four knobs change these values on this page. This page is editable only on synth tracks.",
   "evidence": "read-in-source",
   "source": [
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/params.c",
     "lines": "412",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L412"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/ui_input.c",
     "lines": "461-490",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/params.c",
     "lines": "87-90",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L87-L90"
    }
   ]
  },
  {
   "id": "fx",
   "name": "FX",
   "how_to_get_there": "Tap FX to open its page family; tap it again to advance, or turn SELECT to move between pages.",
   "what_it_is": "The four knobs change these values on this page. This page is editable only on synth tracks.",
   "evidence": "read-in-source",
   "source": [
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/params.c",
     "lines": "413",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L413"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/ui_input.c",
     "lines": "461-490",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/params.c",
     "lines": "107-110",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L107-L110"
    }
   ]
  },
  {
   "id": "filter",
   "name": "FILTER",
   "how_to_get_there": "Tap FX to open its page family; tap it again to advance, or turn SELECT to move between pages.",
   "what_it_is": "This track-filter page is unavailable on the drum track under the current page routing. This page is editable only on synth tracks.",
   "evidence": "read-in-source",
   "source": [
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/params.c",
     "lines": "414",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L414"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/ui_input.c",
     "lines": "461-490",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/params.c",
     "lines": "124",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L124"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/params.c",
     "lines": "280-287",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L280-L287"
    }
   ]
  },
  {
   "id": "slicer",
   "name": "SLICER",
   "how_to_get_there": "Tap FX to open its page family; tap it again to advance, or turn SELECT to move between pages.",
   "what_it_is": "The four knobs change these values on this page.",
   "evidence": "read-in-source",
   "source": [
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/params.c",
     "lines": "415",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L415"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/ui_input.c",
     "lines": "461-490",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/params.c",
     "lines": "59-60",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L59-L60"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/params.c",
     "lines": "119-122",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L119-L122"
    }
   ]
  },
  {
   "id": "insert",
   "name": "INSERT",
   "how_to_get_there": "Tap FX to open its page family; tap it again to advance, or turn SELECT to move between pages.",
   "what_it_is": "The four knobs change these values on this page.",
   "evidence": "read-in-source",
   "source": [
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/params.c",
     "lines": "416",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L416"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/ui_input.c",
     "lines": "461-490",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/params.c",
     "lines": "30-36",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L30-L36"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/params.c",
     "lines": "200-214",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L200-L214"
    }
   ]
  },
  {
   "id": "insert2",
   "name": "INSERT 2",
   "how_to_get_there": "Tap FX to open its page family; tap it again to advance, or turn SELECT to move between pages.",
   "what_it_is": "The four knobs change these values on this page.",
   "evidence": "read-in-source",
   "source": [
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/params.c",
     "lines": "417",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L417"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/ui_input.c",
     "lines": "461-490",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/params.c",
     "lines": "129-133",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L129-L133"
    }
   ]
  },
  {
   "id": "delay",
   "name": "DLY",
   "how_to_get_there": "Tap FX to open its page family; tap it again to advance, or turn SELECT to move between pages.",
   "what_it_is": "The four knobs change these values on this page.",
   "evidence": "read-in-source",
   "source": [
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/params.c",
     "lines": "418",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L418"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/ui_input.c",
     "lines": "461-490",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/params.c",
     "lines": "157-160",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L157-L160"
    }
   ]
  },
  {
   "id": "reverb_chorus",
   "name": "REV/CHO",
   "how_to_get_there": "Tap FX to open its page family; tap it again to advance, or turn SELECT to move between pages.",
   "what_it_is": "The four knobs change these values on this page.",
   "evidence": "read-in-source",
   "source": [
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/params.c",
     "lines": "419",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L419"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/ui_input.c",
     "lines": "461-490",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/params.c",
     "lines": "161-164",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L161-L164"
    }
   ]
  },
  {
   "id": "sel",
   "name": "SEL",
   "how_to_get_there": "Tap SEL to open its page family; tap it again to advance, or turn SELECT to move between pages.",
   "what_it_is": "The four knobs change these values on this page. This page is editable only on synth tracks.",
   "evidence": "read-in-source",
   "source": [
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/params.c",
     "lines": "420",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L420"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/ui_input.c",
     "lines": "461-490",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/params.c",
     "lines": "45-48",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L45-L48"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/params.c",
     "lines": "99-102",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L99-L102"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/params.c",
     "lines": "61",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L61"
    }
   ]
  },
  {
   "id": "sel2",
   "name": "SEL 2",
   "how_to_get_there": "Tap SEL to open its page family; tap it again to advance, or turn SELECT to move between pages.",
   "what_it_is": "The four knobs change these values on this page. This page is editable only on synth tracks.",
   "evidence": "read-in-source",
   "source": [
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/params.c",
     "lines": "421",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L421"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/ui_input.c",
     "lines": "461-490",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/params.c",
     "lines": "102",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L102"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/params.c",
     "lines": "125-126",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L125-L126"
    }
   ]
  },
  {
   "id": "voice",
   "name": "VOICE",
   "how_to_get_there": "Tap EDIT to open its page family; tap it again to advance, or turn SELECT to move between pages.",
   "what_it_is": "The four knobs change these values on this page. This page is editable only on synth tracks.",
   "evidence": "read-in-source",
   "source": [
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/params.c",
     "lines": "426",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L426"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/ui_input.c",
     "lines": "461-490",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/params.c",
     "lines": "49-52",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L49-L52"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/params.c",
     "lines": "111-114",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L111-L114"
    }
   ]
  },
  {
   "id": "voice2",
   "name": "VOICE 2",
   "how_to_get_there": "Tap EDIT to open its page family; tap it again to advance, or turn SELECT to move between pages.",
   "what_it_is": "The four knobs change these values on this page. This page is editable only on synth tracks.",
   "evidence": "read-in-source",
   "source": [
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/params.c",
     "lines": "427",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L427"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/ui_input.c",
     "lines": "461-490",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/params.c",
     "lines": "115-118",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L115-L118"
    }
   ]
  },
  {
   "id": "perform",
   "name": "PERFORM",
   "how_to_get_there": "Tap EDIT to open its page family; tap it again to advance, or turn SELECT to move between pages.",
   "what_it_is": "Each knob edits its assigned sound value; a recordable destination can also become a step lock during recording. This page is editable only on synth tracks.",
   "evidence": "read-in-source",
   "source": [
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/params.c",
     "lines": "428",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L428"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/ui_input.c",
     "lines": "461-490",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/params.c",
     "lines": "237-253",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L237-L253"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/ui_input.c",
     "lines": "387-390",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L387-L390"
    }
   ]
  },
  {
   "id": "macros",
   "name": "MACROS",
   "how_to_get_there": "Tap EDIT to open its page family; tap it again to advance, or turn SELECT to move between pages.",
   "what_it_is": "Assignments belong to the synth sound; destinations with fixed or unavailable values are excluded, and duplicate assignments are allowed. This page is editable only on synth tracks.",
   "evidence": "read-in-source",
   "source": [
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/params.c",
     "lines": "429",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L429"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/ui_input.c",
     "lines": "461-490",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/params.c",
     "lines": "237-253",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L237-L253"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/ui_input.c",
     "lines": "401-417",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L401-L417"
    }
   ]
  },
  {
   "id": "global",
   "name": "GLOBAL",
   "how_to_get_there": "Tap GLO to open its page family; tap it again to advance, or turn SELECT to move between pages.",
   "what_it_is": "The four knobs change these values on this page.",
   "evidence": "read-in-source",
   "source": [
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/params.c",
     "lines": "430",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L430"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/ui_input.c",
     "lines": "461-490",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/params.c",
     "lines": "153-156",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L153-L156"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/params.c",
     "lines": "54",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L54"
    }
   ]
  },
  {
   "id": "master",
   "name": "MASTER",
   "how_to_get_there": "Tap GLO to open its page family; tap it again to advance, or turn SELECT to move between pages.",
   "what_it_is": "The four knobs change these values on this page.",
   "evidence": "read-in-source",
   "source": [
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/params.c",
     "lines": "431",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L431"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/ui_input.c",
     "lines": "461-490",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/params.c",
     "lines": "180-183",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L180-L183"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/params.c",
     "lines": "280-287",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L280-L287"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/fx.c",
     "lines": "716-719",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/fx.c#L716-L719"
    }
   ]
  },
  {
   "id": "system",
   "name": "SYSTEM",
   "how_to_get_there": "Tap GLO to open its page family; tap it again to advance, or turn SELECT to move between pages.",
   "what_it_is": "The four knobs change these values on this page.",
   "evidence": "read-in-source",
   "source": [
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/params.c",
     "lines": "432",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L432"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/ui_input.c",
     "lines": "461-490",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/params.c",
     "lines": "38-40",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L38-L40"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/params.c",
     "lines": "165-168",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L165-L168"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/project.c",
     "lines": "1191-1224",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/project.c#L1191-L1224"
    }
   ]
  },
  {
   "id": "global_drums",
   "name": "DRUMS",
   "how_to_get_there": "Tap GLO to open its page family; tap it again to advance, or turn SELECT to move between pages.",
   "what_it_is": "The four knobs change these values on this page.",
   "evidence": "read-in-source",
   "source": [
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/params.c",
     "lines": "433",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L433"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/ui_input.c",
     "lines": "461-490",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/params.c",
     "lines": "177-179",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L177-L179"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/params.c",
     "lines": "185-189",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L185-L189"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/project.c",
     "lines": "1191-1224",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/project.c#L1191-L1224"
    }
   ]
  },
  {
   "id": "midi",
   "name": "MIDI",
   "how_to_get_there": "Tap GLO to open its page family; tap it again to advance, or turn SELECT to move between pages.",
   "what_it_is": "Each track has its own channel; a channel already in use is skipped in the turn direction, and OFF disables incoming and outgoing track notes.",
   "evidence": "read-in-source",
   "source": [
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/params.c",
     "lines": "434",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L434"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/ui_input.c",
     "lines": "461-490",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/params.c",
     "lines": "177-189",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L177-L189"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/ui.c",
     "lines": "155-185",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui.c#L155-L185"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/project.c",
     "lines": "1191-1224",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/project.c#L1191-L1224"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/seq.c",
     "lines": "75-83",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L75-L83"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/seq.c",
     "lines": "76-85",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L76-L85"
    }
   ]
  },
  {
   "id": "midi2",
   "name": "MIDI 2",
   "how_to_get_there": "Tap GLO to open its page family; tap it again to advance, or turn SELECT to move between pages.",
   "what_it_is": "The four knobs change these values on this page.",
   "evidence": "read-in-source",
   "source": [
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/params.c",
     "lines": "435",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L435"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/ui_input.c",
     "lines": "461-490",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/params.c",
     "lines": "38-40",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L38-L40"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/params.c",
     "lines": "165-167",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L165-L167"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/params.c",
     "lines": "189-197",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L189-L197"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/project.c",
     "lines": "1191-1224",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/project.c#L1191-L1224"
    }
   ]
  },
  {
   "id": "texture",
   "name": "TEXTURE",
   "how_to_get_there": "Tap GLO to open its page family; tap it again to advance, or turn SELECT to move between pages.",
   "what_it_is": "The four knobs change these values on this page.",
   "evidence": "read-in-source",
   "source": [
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/params.c",
     "lines": "438",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L438"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/ui_input.c",
     "lines": "461-490",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/params.c",
     "lines": "14-17",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L14-L17"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/params.c",
     "lines": "190-193",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L190-L193"
    }
   ]
  },
  {
   "id": "texture2",
   "name": "TEXTURE 2",
   "how_to_get_there": "Tap GLO to open its page family; tap it again to advance, or turn SELECT to move between pages.",
   "what_it_is": "The four knobs change these values on this page.",
   "evidence": "read-in-source",
   "source": [
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/params.c",
     "lines": "439",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L439"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/ui_input.c",
     "lines": "461-490",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/params.c",
     "lines": "14-17",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L14-L17"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/params.c",
     "lines": "194-196",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L194-L196"
    }
   ]
  },
  {
   "id": "arp",
   "name": "ARP",
   "how_to_get_there": "Tap ARP to open its page family; tap it again to advance, or turn SELECT to move between pages.",
   "what_it_is": "The four knobs change these values on this page. This page is editable only on synth tracks.",
   "evidence": "read-in-source",
   "source": [
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/params.c",
     "lines": "444",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L444"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/ui_input.c",
     "lines": "461-490",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/params.c",
     "lines": "37-42",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L37-L42"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/params.c",
     "lines": "91-94",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L91-L94"
    }
   ]
  },
  {
   "id": "arp2",
   "name": "ARP 2",
   "how_to_get_there": "Tap ARP to open its page family; tap it again to advance, or turn SELECT to move between pages.",
   "what_it_is": "The four knobs change these values on this page. This page is editable only on synth tracks.",
   "evidence": "read-in-source",
   "source": [
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/params.c",
     "lines": "445",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L445"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/ui_input.c",
     "lines": "461-490",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/params.c",
     "lines": "95-98",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L95-L98"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/params.c",
     "lines": "53",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L53"
    }
   ]
  },
  {
   "id": "analog_edit1",
   "name": "ANALOG / OSC",
   "how_to_get_there": "Tap EDIT to open its page family; tap it again to advance, or turn SELECT to move between pages.",
   "what_it_is": "Engine ANALOG parameters, page 1 of 2. This page is editable only on synth tracks.",
   "evidence": "read-in-source",
   "source": [
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/params.c",
     "lines": "422",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L422"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/ui_input.c",
     "lines": "461-490",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/eng_analog.c",
     "lines": "161-175",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_analog.c#L161-L175"
    }
   ]
  },
  {
   "id": "analog_edit2",
   "name": "ANALOG / FLT",
   "how_to_get_there": "Tap EDIT to open its page family; tap it again to advance, or turn SELECT to move between pages.",
   "what_it_is": "Engine ANALOG parameters, page 2 of 2. This page is editable only on synth tracks.",
   "evidence": "read-in-source",
   "source": [
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/params.c",
     "lines": "423",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L423"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/ui_input.c",
     "lines": "461-490",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/eng_analog.c",
     "lines": "161-175",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_analog.c#L161-L175"
    }
   ]
  },
  {
   "id": "digital_edit1",
   "name": "DIGITAL / OPS",
   "how_to_get_there": "Tap EDIT to open its page family; tap it again to advance, or turn SELECT to move between pages.",
   "what_it_is": "Engine DIGITAL parameters, page 1 of 2. This page is editable only on synth tracks.",
   "evidence": "read-in-source",
   "source": [
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/params.c",
     "lines": "422",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L422"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/ui_input.c",
     "lines": "461-490",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/eng_digital.c",
     "lines": "145-159",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_digital.c#L145-L159"
    }
   ]
  },
  {
   "id": "digital_edit2",
   "name": "DIGITAL / MOD",
   "how_to_get_there": "Tap EDIT to open its page family; tap it again to advance, or turn SELECT to move between pages.",
   "what_it_is": "Engine DIGITAL parameters, page 2 of 2. This page is editable only on synth tracks.",
   "evidence": "read-in-source",
   "source": [
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/params.c",
     "lines": "423",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L423"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/ui_input.c",
     "lines": "461-490",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/eng_digital.c",
     "lines": "145-159",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_digital.c#L145-L159"
    }
   ]
  },
  {
   "id": "phase_edit1",
   "name": "PHASE / PHS",
   "how_to_get_there": "Tap EDIT to open its page family; tap it again to advance, or turn SELECT to move between pages.",
   "what_it_is": "Engine PHASE parameters, page 1 of 2. This page is editable only on synth tracks.",
   "evidence": "read-in-source",
   "source": [
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/params.c",
     "lines": "422",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L422"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/ui_input.c",
     "lines": "461-490",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/eng_phase.c",
     "lines": "191-205",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_phase.c#L191-L205"
    }
   ]
  },
  {
   "id": "phase_edit2",
   "name": "PHASE / LINE",
   "how_to_get_there": "Tap EDIT to open its page family; tap it again to advance, or turn SELECT to move between pages.",
   "what_it_is": "Engine PHASE parameters, page 2 of 2. This page is editable only on synth tracks.",
   "evidence": "read-in-source",
   "source": [
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/params.c",
     "lines": "423",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L423"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/ui_input.c",
     "lines": "461-490",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/eng_phase.c",
     "lines": "191-205",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_phase.c#L191-L205"
    }
   ]
  },
  {
   "id": "lofi_edit1",
   "name": "LOFI / CHIP",
   "how_to_get_there": "Tap EDIT to open its page family; tap it again to advance, or turn SELECT to move between pages.",
   "what_it_is": "Engine LOFI parameters, page 1 of 2. This page is editable only on synth tracks.",
   "evidence": "read-in-source",
   "source": [
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/params.c",
     "lines": "422",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L422"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/ui_input.c",
     "lines": "461-490",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/eng_lofi.c",
     "lines": "218-232",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_lofi.c#L218-L232"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/eng_lofi.c",
     "lines": "42-56",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_lofi.c#L42-L56"
    }
   ]
  },
  {
   "id": "lofi_edit2",
   "name": "LOFI / MOTN",
   "how_to_get_there": "Tap EDIT to open its page family; tap it again to advance, or turn SELECT to move between pages.",
   "what_it_is": "Engine LOFI parameters, page 2 of 2. This page is editable only on synth tracks.",
   "evidence": "read-in-source",
   "source": [
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/params.c",
     "lines": "423",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L423"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/ui_input.c",
     "lines": "461-490",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/eng_lofi.c",
     "lines": "218-232",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_lofi.c#L218-L232"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/eng_lofi.c",
     "lines": "42-56",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_lofi.c#L42-L56"
    }
   ]
  },
  {
   "id": "sample_edit1",
   "name": "SAMPLE / SET",
   "how_to_get_there": "Tap EDIT to open its page family; tap it again to advance, or turn SELECT to move between pages.",
   "what_it_is": "Engine SAMPLE parameters, page 1 of 2. This page is editable only on synth tracks.",
   "evidence": "read-in-source",
   "source": [
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/params.c",
     "lines": "422",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L422"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/ui_input.c",
     "lines": "461-490",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/eng_sample.c",
     "lines": "204-218",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_sample.c#L204-L218"
    }
   ]
  },
  {
   "id": "sample_edit2",
   "name": "SAMPLE / TONE",
   "how_to_get_there": "Tap EDIT to open its page family; tap it again to advance, or turn SELECT to move between pages.",
   "what_it_is": "Engine SAMPLE parameters, page 2 of 2. This page is editable only on synth tracks.",
   "evidence": "read-in-source",
   "source": [
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/params.c",
     "lines": "423",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L423"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/ui_input.c",
     "lines": "461-490",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/eng_sample.c",
     "lines": "204-218",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_sample.c#L204-L218"
    }
   ]
  },
  {
   "id": "voice_edit1",
   "name": "VOICE / VOWL",
   "how_to_get_there": "Tap EDIT to open its page family; tap it again to advance, or turn SELECT to move between pages.",
   "what_it_is": "Engine VOICE parameters, page 1 of 2. This page is editable only on synth tracks.",
   "evidence": "read-in-source",
   "source": [
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/params.c",
     "lines": "422",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L422"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/ui_input.c",
     "lines": "461-490",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/eng_formant.c",
     "lines": "227-241",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_formant.c#L227-L241"
    }
   ]
  },
  {
   "id": "voice_edit2",
   "name": "VOICE / TONE",
   "how_to_get_there": "Tap EDIT to open its page family; tap it again to advance, or turn SELECT to move between pages.",
   "what_it_is": "Engine VOICE parameters, page 2 of 2. This page is editable only on synth tracks.",
   "evidence": "read-in-source",
   "source": [
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/params.c",
     "lines": "423",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L423"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/ui_input.c",
     "lines": "461-490",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/eng_formant.c",
     "lines": "227-241",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_formant.c#L227-L241"
    }
   ]
  },
  {
   "id": "trio_edit1",
   "name": "TRIO / OSC",
   "how_to_get_there": "Tap EDIT to open its page family; tap it again to advance, or turn SELECT to move between pages.",
   "what_it_is": "Engine TRIO parameters, page 1 of 2. This page is editable only on synth tracks.",
   "evidence": "read-in-source",
   "source": [
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/params.c",
     "lines": "422",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L422"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/ui_input.c",
     "lines": "461-490",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/eng_trio.c",
     "lines": "380-394",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_trio.c#L380-L394"
    }
   ]
  },
  {
   "id": "trio_edit2",
   "name": "TRIO / TONE",
   "how_to_get_there": "Tap EDIT to open its page family; tap it again to advance, or turn SELECT to move between pages.",
   "what_it_is": "Engine TRIO parameters, page 2 of 2. This page is editable only on synth tracks.",
   "evidence": "read-in-source",
   "source": [
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/params.c",
     "lines": "423",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L423"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/ui_input.c",
     "lines": "461-490",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/eng_trio.c",
     "lines": "380-394",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_trio.c#L380-L394"
    }
   ]
  },
  {
   "id": "wheel_edit1",
   "name": "WHEEL / BARS",
   "how_to_get_there": "Tap EDIT to open its page family; tap it again to advance, or turn SELECT to move between pages.",
   "what_it_is": "Engine WHEEL parameters, page 1 of 2. This page is editable only on synth tracks.",
   "evidence": "read-in-source",
   "source": [
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/params.c",
     "lines": "422",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L422"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/ui_input.c",
     "lines": "461-490",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/eng_drawbar.c",
     "lines": "283-297",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_drawbar.c#L283-L297"
    }
   ]
  },
  {
   "id": "wheel_edit2",
   "name": "WHEEL / TONE",
   "how_to_get_there": "Tap EDIT to open its page family; tap it again to advance, or turn SELECT to move between pages.",
   "what_it_is": "Engine WHEEL parameters, page 2 of 2. This page is editable only on synth tracks.",
   "evidence": "read-in-source",
   "source": [
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/params.c",
     "lines": "423",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L423"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/ui_input.c",
     "lines": "461-490",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/eng_drawbar.c",
     "lines": "283-297",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_drawbar.c#L283-L297"
    }
   ]
  },
  {
   "id": "grain_edit1",
   "name": "GRAIN / GRAN",
   "how_to_get_there": "Tap EDIT to open its page family; tap it again to advance, or turn SELECT to move between pages.",
   "what_it_is": "Engine GRAIN parameters, page 1 of 2. This page is editable only on synth tracks.",
   "evidence": "read-in-source",
   "source": [
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/params.c",
     "lines": "422",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L422"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/ui_input.c",
     "lines": "461-490",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/eng_grain.c",
     "lines": "436-450",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_grain.c#L436-L450"
    }
   ]
  },
  {
   "id": "grain_edit2",
   "name": "GRAIN / SPRY",
   "how_to_get_there": "Tap EDIT to open its page family; tap it again to advance, or turn SELECT to move between pages.",
   "what_it_is": "Engine GRAIN parameters, page 2 of 2. This page is editable only on synth tracks.",
   "evidence": "read-in-source",
   "source": [
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/params.c",
     "lines": "423",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L423"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/ui_input.c",
     "lines": "461-490",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/eng_grain.c",
     "lines": "436-450",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_grain.c#L436-L450"
    }
   ]
  },
  {
   "id": "swarm_edit1",
   "name": "SWARM / OSC",
   "how_to_get_there": "Tap EDIT to open its page family; tap it again to advance, or turn SELECT to move between pages.",
   "what_it_is": "Engine SWARM parameters, page 1 of 2. This page is editable only on synth tracks.",
   "evidence": "read-in-source",
   "source": [
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/params.c",
     "lines": "422",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L422"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/ui_input.c",
     "lines": "461-490",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/eng_orbit.c",
     "lines": "169-176",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_orbit.c#L169-L176"
    }
   ]
  },
  {
   "id": "swarm_edit2",
   "name": "SWARM / TONE",
   "how_to_get_there": "Tap EDIT to open its page family; tap it again to advance, or turn SELECT to move between pages.",
   "what_it_is": "Engine SWARM parameters, page 2 of 2. This page is editable only on synth tracks.",
   "evidence": "read-in-source",
   "source": [
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/params.c",
     "lines": "423",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L423"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/ui_input.c",
     "lines": "461-490",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/eng_orbit.c",
     "lines": "169-176",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_orbit.c#L169-L176"
    }
   ]
  },
  {
   "id": "pulse_edit1",
   "name": "PULSE / OSC",
   "how_to_get_there": "Tap EDIT to open its page family; tap it again to advance, or turn SELECT to move between pages.",
   "what_it_is": "Engine PULSE parameters, page 1 of 2. This page is editable only on synth tracks.",
   "evidence": "read-in-source",
   "source": [
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/params.c",
     "lines": "422",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L422"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/ui_input.c",
     "lines": "461-490",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/eng_orbit.c",
     "lines": "177-184",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_orbit.c#L177-L184"
    }
   ]
  },
  {
   "id": "pulse_edit2",
   "name": "PULSE / TONE",
   "how_to_get_there": "Tap EDIT to open its page family; tap it again to advance, or turn SELECT to move between pages.",
   "what_it_is": "Engine PULSE parameters, page 2 of 2. This page is editable only on synth tracks.",
   "evidence": "read-in-source",
   "source": [
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/params.c",
     "lines": "423",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L423"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/ui_input.c",
     "lines": "461-490",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/eng_orbit.c",
     "lines": "177-184",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_orbit.c#L177-L184"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/eng_orbit.c",
     "lines": "92-107",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_orbit.c#L92-L107"
    }
   ]
  },
  {
   "id": "fm4_edit1",
   "name": "FM4 / OPS",
   "how_to_get_there": "Tap EDIT to open its page family; tap it again to advance, or turn SELECT to move between pages.",
   "what_it_is": "Engine FM4 parameters, page 1 of 2. This page is editable only on synth tracks.",
   "evidence": "read-in-source",
   "source": [
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/params.c",
     "lines": "422",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L422"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/ui_input.c",
     "lines": "461-490",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/eng_orbit.c",
     "lines": "185-193",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_orbit.c#L185-L193"
    }
   ]
  },
  {
   "id": "fm4_edit2",
   "name": "FM4 / ROUTE",
   "how_to_get_there": "Tap EDIT to open its page family; tap it again to advance, or turn SELECT to move between pages.",
   "what_it_is": "Engine FM4 parameters, page 2 of 2. This page is editable only on synth tracks.",
   "evidence": "read-in-source",
   "source": [
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/params.c",
     "lines": "423",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L423"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/ui_input.c",
     "lines": "461-490",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/eng_orbit.c",
     "lines": "185-193",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_orbit.c#L185-L193"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/eng_orbit.c",
     "lines": "110-141",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_orbit.c#L110-L141"
    }
   ]
  },
  {
   "id": "fm6_edit1",
   "name": "FM6 / OPS",
   "how_to_get_there": "Tap EDIT to open its page family; tap it again to advance, or turn SELECT to move between pages.",
   "what_it_is": "Engine FM6 parameters, page 1 of 2. This page is editable only on synth tracks.",
   "evidence": "read-in-source",
   "source": [
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/params.c",
     "lines": "422",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L422"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/ui_input.c",
     "lines": "461-490",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/eng_fm6.c",
     "lines": "367-382",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_fm6.c#L367-L382"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/eng_fm6.c",
     "lines": "13-24",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_fm6.c#L13-L24"
    }
   ]
  },
  {
   "id": "fm6_edit2",
   "name": "FM6 / PATCH",
   "how_to_get_there": "Tap EDIT to open its page family; tap it again to advance, or turn SELECT to move between pages.",
   "what_it_is": "Engine FM6 parameters, page 2 of 2. This page is editable only on synth tracks.",
   "evidence": "read-in-source",
   "source": [
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/params.c",
     "lines": "423",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L423"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/ui_input.c",
     "lines": "461-490",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/eng_fm6.c",
     "lines": "367-382",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_fm6.c#L367-L382"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/eng_fm6.c",
     "lines": "13-24",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_fm6.c#L13-L24"
    }
   ]
  },
  {
   "id": "phys_edit1",
   "name": "PHYS / BODY",
   "how_to_get_there": "Tap EDIT to open its page family; tap it again to advance, or turn SELECT to move between pages.",
   "what_it_is": "Engine PHYS parameters, page 1 of 2. This page is editable only on synth tracks.",
   "evidence": "read-in-source",
   "source": [
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/params.c",
     "lines": "422",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L422"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/ui_input.c",
     "lines": "461-490",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/eng_phys.c",
     "lines": "263-285",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_phys.c#L263-L285"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/eng_phys.c",
     "lines": "7-27",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_phys.c#L7-L27"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/eng_phys.c",
     "lines": "54-70",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_phys.c#L54-L70"
    }
   ]
  },
  {
   "id": "phys_edit2",
   "name": "PHYS / EXCT",
   "how_to_get_there": "Tap EDIT to open its page family; tap it again to advance, or turn SELECT to move between pages.",
   "what_it_is": "Engine PHYS parameters, page 2 of 2. This page is editable only on synth tracks.",
   "evidence": "read-in-source",
   "source": [
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/params.c",
     "lines": "423",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L423"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/ui_input.c",
     "lines": "461-490",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/eng_phys.c",
     "lines": "263-285",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_phys.c#L263-L285"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/eng_phys.c",
     "lines": "7-27",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_phys.c#L7-L27"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/eng_phys.c",
     "lines": "54-70",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_phys.c#L54-L70"
    }
   ]
  },
  {
   "id": "noise_edit1",
   "name": "NOISE / SRC",
   "how_to_get_there": "Tap EDIT to open its page family; tap it again to advance, or turn SELECT to move between pages.",
   "what_it_is": "Engine NOISE parameters, page 1 of 2. This page is editable only on synth tracks.",
   "evidence": "read-in-source",
   "source": [
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/params.c",
     "lines": "422",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L422"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/ui_input.c",
     "lines": "461-490",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/eng_noise.c",
     "lines": "259-280",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_noise.c#L259-L280"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/eng_noise.c",
     "lines": "10-14",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_noise.c#L10-L14"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/eng_noise.c",
     "lines": "45-52",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_noise.c#L45-L52"
    }
   ]
  },
  {
   "id": "noise_edit2",
   "name": "NOISE / MOVE",
   "how_to_get_there": "Tap EDIT to open its page family; tap it again to advance, or turn SELECT to move between pages.",
   "what_it_is": "Engine NOISE parameters, page 2 of 2. This page is editable only on synth tracks.",
   "evidence": "read-in-source",
   "source": [
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/params.c",
     "lines": "423",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L423"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/ui_input.c",
     "lines": "461-490",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/eng_noise.c",
     "lines": "259-280",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_noise.c#L259-L280"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/eng_noise.c",
     "lines": "10-14",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_noise.c#L10-L14"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/eng_noise.c",
     "lines": "45-52",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_noise.c#L45-L52"
    }
   ]
  },
  {
   "id": "cluster_edit1",
   "name": "CLUSTER / OSC RAW",
   "how_to_get_there": "Tap EDIT to open its page family; tap it again to advance, or turn SELECT to move between pages.",
   "what_it_is": "Engine CLUSTER parameters, page 1 of 2. This page is editable only on synth tracks.",
   "evidence": "read-in-source",
   "source": [
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/params.c",
     "lines": "422",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L422"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/ui_input.c",
     "lines": "461-490",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/eng_op1_cluster.c",
     "lines": "71-90",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_op1_cluster.c#L71-L90"
    }
   ]
  },
  {
   "id": "cluster_edit2",
   "name": "CLUSTER / RESERVED",
   "how_to_get_there": "Tap EDIT to open its page family; tap it again to advance, or turn SELECT to move between pages.",
   "what_it_is": "Engine CLUSTER parameters, page 2 of 2; CLUSTER second page has no editable values. This page is editable only on synth tracks.",
   "evidence": "read-in-source",
   "source": [
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/params.c",
     "lines": "423",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L423"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/ui_input.c",
     "lines": "461-490",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/eng_op1_cluster.c",
     "lines": "71-90",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_op1_cluster.c#L71-L90"
    }
   ]
  },
  {
   "id": "cloud_edit1",
   "name": "CLOUD / GRAINS",
   "how_to_get_there": "Tap EDIT to open its page family; tap it again to advance, or turn SELECT to move between pages.",
   "what_it_is": "Engine CLOUD parameters, page 1 of 2. This page is editable only on synth tracks.",
   "evidence": "read-in-source",
   "source": [
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/params.c",
     "lines": "422",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L422"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/ui_input.c",
     "lines": "461-490",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/eng_cloud.c",
     "lines": "146-161",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_cloud.c#L146-L161"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/eng_cloud.c",
     "lines": "2-8",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_cloud.c#L2-L8"
    }
   ]
  },
  {
   "id": "cloud_edit2",
   "name": "CLOUD / SPECTRUM",
   "how_to_get_there": "Tap EDIT to open its page family; tap it again to advance, or turn SELECT to move between pages.",
   "what_it_is": "Engine CLOUD parameters, page 2 of 2. This page is editable only on synth tracks.",
   "evidence": "read-in-source",
   "source": [
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/params.c",
     "lines": "423",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L423"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/ui_input.c",
     "lines": "461-490",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/eng_cloud.c",
     "lines": "146-161",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_cloud.c#L146-L161"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/eng_cloud.c",
     "lines": "2-8",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_cloud.c#L2-L8"
    }
   ]
  },
  {
   "id": "analog_filter",
   "name": "ANALOG / FILTER",
   "how_to_get_there": "Tap EDIT to open its page family; tap it again to advance, or turn SELECT to move between pages.",
   "what_it_is": "The four knobs change these values on this page. This page is editable only on synth tracks.",
   "evidence": "read-in-source",
   "source": [
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/params.c",
     "lines": "424",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L424"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/ui_input.c",
     "lines": "461-490",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/params.c",
     "lines": "469-474",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L469-L474"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/eng_analog.c",
     "lines": "161-175",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_analog.c#L161-L175"
    }
   ]
  },
  {
   "id": "drum_unavailable",
   "name": "Unavailable drum page",
   "how_to_get_there": "Select track 4 while an unsupported synth sound page is open.",
   "what_it_is": "ENV, LFO, SEL, ARP, engine edits, voice edits, FX sends and the page FILTER do not edit drum sound values; reach usable drum controls through HOME and DRUMS, SLICER, INSERT or globals.",
   "evidence": "read-in-source",
   "source": [
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/params.c",
     "lines": "459-499",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L459-L499"
    }
   ]
  },
  {
   "id": "sample_perc",
   "name": "SAMPLE percussion set",
   "how_to_get_there": "Choose SAMPLE on a synth track and select its PERC sample set.",
   "what_it_is": "A chromatic General MIDI percussion map beginning at C2 replaces the pitched keyboard mapping, with keyboard octave still applied.",
   "evidence": "read-in-source",
   "source": [
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/seq.c",
     "lines": "235-242",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L235-L242"
    }
   ]
  },
  {
   "id": "rescue",
   "name": "USB rescue",
   "how_to_get_there": "Power on with physical OCT- alone, or enter automatically after two failed warm starts.",
   "what_it_is": "Recovery runs before normal project/settings startup, with audio off and no flash write merely for entry.",
   "evidence": "read-in-source",
   "source": [
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/bootguard.h",
     "lines": "15-29",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/bootguard.h#L15-L29"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/main.c",
     "lines": "317-318",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/main.c#L317-L318"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/recovery.c",
     "lines": "52-69",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/recovery.c#L52-L69"
    }
   ]
  }
 ],
 "controls": {
  "button_env": [
   {
    "mode": "any",
    "gesture": "press",
    "action": "Opens or cycles the ENV pages when no menu or held layer takes the buttons.",
    "short_label": "ENV PAGES",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "1106-1111",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L1106-L1111"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui.c",
      "lines": "307-322",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui.c#L307-L322"
     }
    ]
   },
   {
    "mode": "menu_screen",
    "gesture": "press",
    "action": "Has no menu action while HOME is released.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "1015-1021",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L1015-L1021"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_menu.c",
      "lines": "241-278",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L241-L278"
     }
    ]
   },
   {
    "mode": "menu_lights",
    "gesture": "press",
    "action": "Has no menu action while HOME is released.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "1015-1021",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L1015-L1021"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_menu.c",
      "lines": "241-278",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L241-L278"
     }
    ]
   },
   {
    "mode": "menu_audio",
    "gesture": "press",
    "action": "Has no menu action while HOME is released.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "1015-1021",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L1015-L1021"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_menu.c",
      "lines": "241-278",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L241-L278"
     }
    ]
   },
   {
    "mode": "menu_system",
    "gesture": "press",
    "action": "Has no menu action while HOME is released.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "1015-1021",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L1015-L1021"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_menu.c",
      "lines": "241-278",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L241-L278"
     }
    ]
   }
  ],
  "button_lfo": [
   {
    "mode": "any",
    "gesture": "press",
    "action": "Opens or cycles the LFO pages when no menu or held layer takes the buttons.",
    "short_label": "LFO PAGES",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "1106-1111",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L1106-L1111"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui.c",
      "lines": "307-322",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui.c#L307-L322"
     }
    ]
   },
   {
    "mode": "menu_screen",
    "gesture": "press",
    "action": "Has no menu action while HOME is released.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "1015-1021",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L1015-L1021"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_menu.c",
      "lines": "241-278",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L241-L278"
     }
    ]
   },
   {
    "mode": "menu_lights",
    "gesture": "press",
    "action": "Has no menu action while HOME is released.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "1015-1021",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L1015-L1021"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_menu.c",
      "lines": "241-278",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L241-L278"
     }
    ]
   },
   {
    "mode": "menu_audio",
    "gesture": "press",
    "action": "Has no menu action while HOME is released.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "1015-1021",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L1015-L1021"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_menu.c",
      "lines": "241-278",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L241-L278"
     }
    ]
   },
   {
    "mode": "menu_system",
    "gesture": "press",
    "action": "Has no menu action while HOME is released.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "1015-1021",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L1015-L1021"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_menu.c",
      "lines": "241-278",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L241-L278"
     }
    ]
   }
  ],
  "button_fx": [
   {
    "mode": "any",
    "gesture": "release",
    "action": "An untouched tap under 450 ms opens or cycles its pages, subject to the screen-specific jobs below.",
    "short_label": "FX PAGES",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "31-32",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L31-L32"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "685-736",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L685-L736"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "778-789",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L778-L789"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "hold",
    "action": "Uses the Punch layer while held, with its screen appearing after 140 ms or a control is used.",
    "short_label": "PUNCH",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "31-32",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L31-L32"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "835-848",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L835-L848"
     }
    ]
   },
   {
    "mode": "punch",
    "gesture": "release",
    "action": "Returns from the held layer unless HOME locked it open, with page-knob input ignored for 250 ms after the layer ends.",
    "short_label": "END FX",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "751-759",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L751-L759"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "807-833",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L807-L833"
     }
    ]
   },
   {
    "mode": "menu_screen",
    "gesture": "press",
    "action": "Has no menu action while HOME is released.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "1015-1021",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L1015-L1021"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_menu.c",
      "lines": "241-278",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L241-L278"
     }
    ]
   },
   {
    "mode": "menu_lights",
    "gesture": "press",
    "action": "Has no menu action while HOME is released.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "1015-1021",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L1015-L1021"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_menu.c",
      "lines": "241-278",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L241-L278"
     }
    ]
   },
   {
    "mode": "menu_audio",
    "gesture": "press",
    "action": "Has no menu action while HOME is released.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "1015-1021",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L1015-L1021"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_menu.c",
      "lines": "241-278",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L241-L278"
     }
    ]
   },
   {
    "mode": "menu_system",
    "gesture": "press",
    "action": "Has no menu action while HOME is released.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "1015-1021",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L1015-L1021"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_menu.c",
      "lines": "241-278",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L241-L278"
     }
    ]
   }
  ],
  "button_home": [
   {
    "mode": "any",
    "gesture": "press_while_holding:button_fx",
    "action": "Locks the Punch layer after a short HOME tap, so it remains active after release.",
    "short_label": "LOCK FX",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "739-748",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L739-L748"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "794-803",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L794-L803"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "press_while_holding:button_sel",
    "action": "Locks the Key and scale layer after a short HOME tap, so it remains active after release.",
    "short_label": "LOCK SEL",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "739-748",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L739-L748"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "794-803",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L794-L803"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "press_while_holding:button_edit",
    "action": "Locks the Erase layer after a short HOME tap, so it remains active after release.",
    "short_label": "LOCK EDIT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "739-748",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L739-L748"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "794-803",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L794-L803"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "press_while_holding:button_arp",
    "action": "Locks the Roll layer after a short HOME tap, so it remains active after release.",
    "short_label": "LOCK ARP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "739-748",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L739-L748"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "794-803",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L794-L803"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "press_while_holding:button_seq",
    "action": "Locks the Steps layer after a short HOME tap, so it remains active after release.",
    "short_label": "LOCK SEQ",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "739-748",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L739-L748"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "794-803",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L794-L803"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "press_while_holding:button_glo",
    "action": "Locks the Mix layer after a short HOME tap, so it remains active after release.",
    "short_label": "LOCK GLO",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "739-748",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L739-L748"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "794-803",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L794-L803"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "press_while_holding:button_save",
    "action": "Locks the Sections layer after a short HOME tap, so it remains active after release.",
    "short_label": "LOCK SAVE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "739-748",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L739-L748"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "794-803",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L794-L803"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "release",
    "action": "A short tap returns to Tape from an editing page, SONG or DRUMS, while a locked layer consumes the tap to unlock.",
    "short_label": "TAPE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "768-776",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L768-L776"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "1071-1077",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L1071-L1077"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_song.c",
      "lines": "92",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_song.c#L92"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_studio.c",
      "lines": "542-545",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_studio.c#L542-L545"
     }
    ]
   },
   {
    "mode": "tape",
    "gesture": "release",
    "action": "A short tap opens Visualizer.",
    "short_label": "VISUALIZER",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "1071-1077",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L1071-L1077"
     }
    ]
   },
   {
    "mode": "mixer_level",
    "gesture": "release",
    "action": "A short tap opens Visualizer.",
    "short_label": "VISUALIZER",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "1071-1077",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L1071-L1077"
     }
    ]
   },
   {
    "mode": "mixer_pan",
    "gesture": "release",
    "action": "A short tap opens Visualizer.",
    "short_label": "VISUALIZER",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "1071-1077",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L1071-L1077"
     }
    ]
   },
   {
    "mode": "mixer_track",
    "gesture": "release",
    "action": "A short tap opens Visualizer.",
    "short_label": "VISUALIZER",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "1071-1077",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L1071-L1077"
     }
    ]
   },
   {
    "mode": "visualizer",
    "gesture": "release",
    "action": "A short tap closes Visualizer and returns to Tape.",
    "short_label": "BACK TO TAPE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "1071-1077",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L1071-L1077"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "long_press",
    "action": "Holding HOME for more than 0.7 seconds opens the menu or closes it and requests a settings save, immediately if stopped or after stop.",
    "short_label": "MENU",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "665-682",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L665-L682"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "1003-1021",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L1003-L1021"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_menu.c",
      "lines": "162-171",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L162-L171"
     }
    ]
   }
  ],
  "button_sel": [
   {
    "mode": "any",
    "gesture": "release",
    "action": "An untouched tap under 450 ms opens or cycles its pages, subject to the screen-specific jobs below.",
    "short_label": "SEL PAGES",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "31-32",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L31-L32"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "685-736",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L685-L736"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "778-789",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L778-L789"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "hold",
    "action": "Uses the Key and scale layer while held, with its screen appearing after 140 ms or a control is used.",
    "short_label": "ROOT LAYER",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "31-32",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L31-L32"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "835-848",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L835-L848"
     }
    ]
   },
   {
    "mode": "key_scale",
    "gesture": "release",
    "action": "Returns from the held layer unless HOME locked it open, with page-knob input ignored for 250 ms after the layer ends.",
    "short_label": "END SEL",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "751-759",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L751-L759"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "807-833",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L807-L833"
     }
    ]
   },
   {
    "mode": "menu_screen",
    "gesture": "press",
    "action": "Has no menu action while HOME is released.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "1015-1021",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L1015-L1021"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_menu.c",
      "lines": "241-278",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L241-L278"
     }
    ]
   },
   {
    "mode": "menu_lights",
    "gesture": "press",
    "action": "Has no menu action while HOME is released.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "1015-1021",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L1015-L1021"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_menu.c",
      "lines": "241-278",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L241-L278"
     }
    ]
   },
   {
    "mode": "menu_audio",
    "gesture": "press",
    "action": "Has no menu action while HOME is released.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "1015-1021",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L1015-L1021"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_menu.c",
      "lines": "241-278",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L241-L278"
     }
    ]
   },
   {
    "mode": "menu_system",
    "gesture": "press",
    "action": "Has no menu action while HOME is released.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "1015-1021",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L1015-L1021"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_menu.c",
      "lines": "241-278",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L241-L278"
     }
    ]
   }
  ],
  "button_edit": [
   {
    "mode": "any",
    "gesture": "release",
    "action": "An untouched tap under 450 ms opens or cycles its pages, subject to the screen-specific jobs below.",
    "short_label": "EDIT PAGES",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "31-32",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L31-L32"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "685-736",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L685-L736"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "778-789",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L778-L789"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "hold",
    "action": "Uses the Erase layer while held, with its screen appearing after 140 ms or a control is used.",
    "short_label": "ERASE LAYER",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "31-32",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L31-L32"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "835-848",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L835-L848"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "release",
    "action": "Returns from the held layer unless HOME locked it open, with page-knob input ignored for 250 ms after the layer ends.",
    "short_label": "END EDIT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "751-759",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L751-L759"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "807-833",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L807-L833"
     }
    ]
   },
   {
    "mode": "tape",
    "gesture": "release",
    "action": "With track 4 selected, a short tap opens DRUMS at its remembered GRID or KIT view.",
    "short_label": "DRUM EDIT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "694-701",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L694-L701"
     }
    ]
   },
   {
    "mode": "mixer_level",
    "gesture": "release",
    "action": "With track 4 selected, a short tap opens DRUMS at its remembered GRID or KIT view.",
    "short_label": "DRUM EDIT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "694-701",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L694-L701"
     }
    ]
   },
   {
    "mode": "mixer_pan",
    "gesture": "release",
    "action": "With track 4 selected, a short tap opens DRUMS at its remembered GRID or KIT view.",
    "short_label": "DRUM EDIT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "694-701",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L694-L701"
     }
    ]
   },
   {
    "mode": "mixer_track",
    "gesture": "release",
    "action": "With track 4 selected, a short tap opens DRUMS at its remembered GRID or KIT view.",
    "short_label": "DRUM EDIT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "694-701",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L694-L701"
     }
    ]
   },
   {
    "mode": "drum_grid",
    "gesture": "release",
    "action": "A short tap switches between GRID and KIT.",
    "short_label": "GRID / KIT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "694-697",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L694-L697"
     }
    ]
   },
   {
    "mode": "drum_kit",
    "gesture": "release",
    "action": "A short tap switches between GRID and KIT.",
    "short_label": "GRID / KIT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "694-697",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L694-L697"
     }
    ]
   },
   {
    "mode": "step",
    "gesture": "release",
    "action": "A short tap clears the cursor step immediately in the working pattern and moves on without a question; EDIT + OCT- can undo that sequence edit.",
    "short_label": "CLEAR STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "703-707",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L703-L707"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui.c",
      "lines": "245-283",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui.c#L245-L283"
     }
    ]
   },
   {
    "mode": "menu_screen",
    "gesture": "press",
    "action": "Has no menu action while HOME is released.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "1015-1021",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L1015-L1021"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_menu.c",
      "lines": "241-278",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L241-L278"
     }
    ]
   },
   {
    "mode": "menu_lights",
    "gesture": "press",
    "action": "Has no menu action while HOME is released.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "1015-1021",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L1015-L1021"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_menu.c",
      "lines": "241-278",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L241-L278"
     }
    ]
   },
   {
    "mode": "menu_audio",
    "gesture": "press",
    "action": "Has no menu action while HOME is released.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "1015-1021",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L1015-L1021"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_menu.c",
      "lines": "241-278",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L241-L278"
     }
    ]
   },
   {
    "mode": "menu_system",
    "gesture": "press",
    "action": "Has no menu action while HOME is released.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "1015-1021",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L1015-L1021"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_menu.c",
      "lines": "241-278",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L241-L278"
     }
    ]
   }
  ],
  "button_arp": [
   {
    "mode": "any",
    "gesture": "release",
    "action": "An untouched tap under 450 ms opens or cycles its pages, subject to the screen-specific jobs below.",
    "short_label": "ARP PAGES",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "31-32",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L31-L32"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "685-736",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L685-L736"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "778-789",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L778-L789"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "hold",
    "action": "Uses the Roll layer while held, with its screen appearing after 140 ms or a control is used.",
    "short_label": "REPEAT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "31-32",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L31-L32"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "835-848",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L835-L848"
     }
    ]
   },
   {
    "mode": "roll",
    "gesture": "release",
    "action": "Returns from the held layer unless HOME locked it open, with page-knob input ignored for 250 ms after the layer ends.",
    "short_label": "END ARP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "751-759",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L751-L759"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "807-833",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L807-L833"
     }
    ]
   },
   {
    "mode": "menu_screen",
    "gesture": "press",
    "action": "Has no menu action while HOME is released.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "1015-1021",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L1015-L1021"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_menu.c",
      "lines": "241-278",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L241-L278"
     }
    ]
   },
   {
    "mode": "menu_lights",
    "gesture": "press",
    "action": "Has no menu action while HOME is released.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "1015-1021",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L1015-L1021"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_menu.c",
      "lines": "241-278",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L241-L278"
     }
    ]
   },
   {
    "mode": "menu_audio",
    "gesture": "press",
    "action": "Has no menu action while HOME is released.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "1015-1021",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L1015-L1021"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_menu.c",
      "lines": "241-278",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L241-L278"
     }
    ]
   },
   {
    "mode": "menu_system",
    "gesture": "press",
    "action": "Has no menu action while HOME is released.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "1015-1021",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L1015-L1021"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_menu.c",
      "lines": "241-278",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L241-L278"
     }
    ]
   }
  ],
  "button_seq": [
   {
    "mode": "any",
    "gesture": "release",
    "action": "An untouched tap under 450 ms opens or cycles its pages, subject to the screen-specific jobs below.",
    "short_label": "SEQ PAGES",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "31-32",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L31-L32"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "685-736",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L685-L736"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "778-789",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L778-L789"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "hold",
    "action": "Uses the Steps layer while held, with its screen appearing after 140 ms or a control is used.",
    "short_label": "STEP LAYER",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "31-32",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L31-L32"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "835-848",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L835-L848"
     }
    ]
   },
   {
    "mode": "steps",
    "gesture": "release",
    "action": "Returns from the held layer unless HOME locked it open, with page-knob input ignored for 250 ms after the layer ends.",
    "short_label": "END SEQ",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "751-759",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L751-L759"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "807-833",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L807-L833"
     }
    ]
   },
   {
    "mode": "tape",
    "gesture": "release",
    "action": "With track 4 selected, a short tap opens DRUMS at its remembered GRID or KIT view.",
    "short_label": "DRUM EDIT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "694-701",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L694-L701"
     }
    ]
   },
   {
    "mode": "mixer_level",
    "gesture": "release",
    "action": "With track 4 selected, a short tap opens DRUMS at its remembered GRID or KIT view.",
    "short_label": "DRUM EDIT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "694-701",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L694-L701"
     }
    ]
   },
   {
    "mode": "mixer_pan",
    "gesture": "release",
    "action": "With track 4 selected, a short tap opens DRUMS at its remembered GRID or KIT view.",
    "short_label": "DRUM EDIT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "694-701",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L694-L701"
     }
    ]
   },
   {
    "mode": "mixer_track",
    "gesture": "release",
    "action": "With track 4 selected, a short tap opens DRUMS at its remembered GRID or KIT view.",
    "short_label": "DRUM EDIT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "694-701",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L694-L701"
     }
    ]
   },
   {
    "mode": "drum_grid",
    "gesture": "release",
    "action": "A short tap switches between GRID and KIT.",
    "short_label": "GRID / KIT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "694-697",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L694-L697"
     }
    ]
   },
   {
    "mode": "drum_kit",
    "gesture": "release",
    "action": "A short tap switches between GRID and KIT.",
    "short_label": "GRID / KIT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "694-697",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L694-L697"
     }
    ]
   },
   {
    "mode": "menu_screen",
    "gesture": "press",
    "action": "Has no menu action while HOME is released.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "1015-1021",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L1015-L1021"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_menu.c",
      "lines": "241-278",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L241-L278"
     }
    ]
   },
   {
    "mode": "menu_lights",
    "gesture": "press",
    "action": "Has no menu action while HOME is released.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "1015-1021",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L1015-L1021"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_menu.c",
      "lines": "241-278",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L241-L278"
     }
    ]
   },
   {
    "mode": "menu_audio",
    "gesture": "press",
    "action": "Has no menu action while HOME is released.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "1015-1021",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L1015-L1021"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_menu.c",
      "lines": "241-278",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L241-L278"
     }
    ]
   },
   {
    "mode": "menu_system",
    "gesture": "press",
    "action": "Has no menu action while HOME is released.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "1015-1021",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L1015-L1021"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_menu.c",
      "lines": "241-278",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L241-L278"
     }
    ]
   }
  ],
  "button_glo": [
   {
    "mode": "any",
    "gesture": "release",
    "action": "An untouched tap under 450 ms opens or cycles its pages, subject to the screen-specific jobs below.",
    "short_label": "GLOBAL PAGES",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "31-32",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L31-L32"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "685-736",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L685-L736"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "778-789",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L778-L789"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "hold",
    "action": "Uses the Mix layer while held, with its screen appearing after 140 ms or a control is used.",
    "short_label": "MIX LAYER",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "31-32",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L31-L32"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "835-848",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L835-L848"
     }
    ]
   },
   {
    "mode": "mix_layer",
    "gesture": "release",
    "action": "Returns from the held layer unless HOME locked it open, with page-knob input ignored for 250 ms after the layer ends.",
    "short_label": "END GLO",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "751-759",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L751-L759"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "807-833",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L807-L833"
     }
    ]
   },
   {
    "mode": "menu_screen",
    "gesture": "press",
    "action": "Has no menu action while HOME is released.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "1015-1021",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L1015-L1021"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_menu.c",
      "lines": "241-278",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L241-L278"
     }
    ]
   },
   {
    "mode": "menu_lights",
    "gesture": "press",
    "action": "Has no menu action while HOME is released.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "1015-1021",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L1015-L1021"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_menu.c",
      "lines": "241-278",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L241-L278"
     }
    ]
   },
   {
    "mode": "menu_audio",
    "gesture": "press",
    "action": "Has no menu action while HOME is released.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "1015-1021",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L1015-L1021"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_menu.c",
      "lines": "241-278",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L241-L278"
     }
    ]
   },
   {
    "mode": "menu_system",
    "gesture": "press",
    "action": "Has no menu action while HOME is released.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "1015-1021",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L1015-L1021"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_menu.c",
      "lines": "241-278",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L241-L278"
     }
    ]
   },
   {
    "mode": "tape",
    "gesture": "release",
    "short_label": "MIXER",
    "action": "A short tap from Tape opens the Mixer.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "718-722",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L718-L722"
     }
    ]
   }
  ],
  "button_save": [
   {
    "mode": "any",
    "gesture": "release",
    "action": "An untouched tap under 450 ms opens or cycles its pages, subject to the screen-specific jobs below.",
    "short_label": "SAVE PAGES",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "31-32",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L31-L32"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "685-736",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L685-L736"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "778-789",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L778-L789"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "hold",
    "action": "Uses the Sections layer while held, with its screen appearing after 140 ms or a control is used.",
    "short_label": "SECTIONS",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "31-32",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L31-L32"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "835-848",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L835-L848"
     }
    ]
   },
   {
    "mode": "sections",
    "gesture": "release",
    "action": "Returns from the held layer unless HOME locked it open, with page-knob input ignored for 250 ms after the layer ends.",
    "short_label": "END SAVE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "751-759",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L751-L759"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "807-833",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L807-L833"
     }
    ]
   },
   {
    "mode": "tape",
    "gesture": "release",
    "action": "A short tap opens SONG rather than writing a section.",
    "short_label": "OPEN SONG",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "724-732",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L724-L732"
     }
    ]
   },
   {
    "mode": "mixer_level",
    "gesture": "release",
    "action": "A short tap opens SONG rather than writing a section.",
    "short_label": "OPEN SONG",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "724-732",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L724-L732"
     }
    ]
   },
   {
    "mode": "mixer_pan",
    "gesture": "release",
    "action": "A short tap opens SONG rather than writing a section.",
    "short_label": "OPEN SONG",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "724-732",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L724-L732"
     }
    ]
   },
   {
    "mode": "mixer_track",
    "gesture": "release",
    "action": "A short tap opens SONG rather than writing a section.",
    "short_label": "OPEN SONG",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "724-732",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L724-L732"
     }
    ]
   },
   {
    "mode": "drum_grid",
    "gesture": "release",
    "action": "A short tap opens SONG rather than writing a section.",
    "short_label": "OPEN SONG",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "724-732",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L724-L732"
     }
    ]
   },
   {
    "mode": "drum_kit",
    "gesture": "release",
    "action": "A short tap opens SONG rather than writing a section.",
    "short_label": "OPEN SONG",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "724-732",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L724-L732"
     }
    ]
   },
   {
    "mode": "song",
    "gesture": "release",
    "action": "A short tap saves section order and device settings while stopped without another question, with no save undo.",
    "short_label": "SAVE ORDER",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "724-726",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L724-L726"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/project.c",
      "lines": "1116-1123",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/project.c#L1116-L1123"
     }
    ]
   },
   {
    "mode": "sections",
    "gesture": "release",
    "action": "Releasing a physical SAVE hold with two to eight queued section taps starts their repeating chain while loop playback is running.",
    "short_label": "START CHAIN",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "482-497",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L482-L497"
     }
    ]
   },
   {
    "mode": "menu_screen",
    "gesture": "press",
    "action": "Has no menu action while HOME is released.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "1015-1021",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L1015-L1021"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_menu.c",
      "lines": "241-278",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L241-L278"
     }
    ]
   },
   {
    "mode": "menu_lights",
    "gesture": "press",
    "action": "Has no menu action while HOME is released.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "1015-1021",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L1015-L1021"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_menu.c",
      "lines": "241-278",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L241-L278"
     }
    ]
   },
   {
    "mode": "menu_audio",
    "gesture": "press",
    "action": "Has no menu action while HOME is released.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "1015-1021",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L1015-L1021"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_menu.c",
      "lines": "241-278",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L241-L278"
     }
    ]
   },
   {
    "mode": "menu_system",
    "gesture": "press",
    "action": "Has no menu action while HOME is released.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "1015-1021",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L1015-L1021"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_menu.c",
      "lines": "241-278",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L241-L278"
     }
    ]
   }
  ],
  "button_play_stop": [
   {
    "mode": "any",
    "gesture": "press",
    "action": "Starts or stops transport outside the menu, including in held layers, and refuses a song containing an empty section.",
    "short_label": "PLAY / STOP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "1034-1049",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L1034-L1049"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "1085-1094",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L1085-L1094"
     }
    ]
   },
   {
    "mode": "record_ready",
    "gesture": "press",
    "action": "Starts recording at the loop beginning, or starts one bar of clicks with START COUNT.",
    "short_label": "START TAKE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "2409-2426",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L2409-L2426"
     }
    ]
   },
   {
    "mode": "count_in",
    "gesture": "press",
    "action": "Cancels the count-in and returns to armed recording.",
    "short_label": "CANCEL COUNT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "2413-2415",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L2413-L2415"
     }
    ]
   },
   {
    "mode": "free_take",
    "gesture": "press",
    "action": "Discards the temporary take at once without a question, leaving the pattern unchanged.",
    "short_label": "DROP TAKE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "948-961",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L948-L961"
     }
    ]
   },
   {
    "mode": "menu_screen",
    "gesture": "press",
    "action": "Has no menu action while HOME is released.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "1015-1021",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L1015-L1021"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_menu.c",
      "lines": "241-278",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L241-L278"
     }
    ]
   },
   {
    "mode": "menu_lights",
    "gesture": "press",
    "action": "Has no menu action while HOME is released.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "1015-1021",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L1015-L1021"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_menu.c",
      "lines": "241-278",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L241-L278"
     }
    ]
   },
   {
    "mode": "menu_audio",
    "gesture": "press",
    "action": "Has no menu action while HOME is released.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "1015-1021",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L1015-L1021"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_menu.c",
      "lines": "241-278",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L241-L278"
     }
    ]
   },
   {
    "mode": "menu_system",
    "gesture": "press",
    "action": "Has no menu action while HOME is released.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "1015-1021",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L1015-L1021"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_menu.c",
      "lines": "241-278",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L241-L278"
     }
    ]
   }
  ],
  "button_rec": [
   {
    "mode": "any",
    "gesture": "press",
    "action": "Outside SONG and menu, switches song mode to loop mode and arms the selected stopped track or starts overdub in loop playback, with a second press ending recording while playback continues and recording refused during song-mode playback.",
    "short_label": "RECORD",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_studio.c",
      "lines": "122-140",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_studio.c#L122-L140"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "945-953",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L945-L953"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_studio.c",
      "lines": "122-140",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_studio.c#L122-L140"
     }
    ]
   },
   {
    "mode": "record_ready",
    "gesture": "press",
    "action": "Cancels the recording arm.",
    "short_label": "DISARM",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_studio.c",
      "lines": "130-134",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_studio.c#L130-L134"
     }
    ]
   },
   {
    "mode": "count_in",
    "gesture": "press",
    "action": "Cancels the recording arm and count-in.",
    "short_label": "DISARM",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_studio.c",
      "lines": "130-134",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_studio.c#L130-L134"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "2436-2440",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L2436-L2440"
     }
    ]
   },
   {
    "mode": "free_take",
    "gesture": "press",
    "action": "Closes a free take of at least half a second into a quantized one-, two- or four-bar pattern when a tempo fits and starts it, with at most 192 note events kept and an unsuitable take discarded.",
    "short_label": "CLOSE TAKE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "637-638",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L637-L638"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "871-879",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L871-L879"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "893-938",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L893-L938"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "long_press",
    "action": "Outside SONG and a free take, holding REC for 0.7 seconds reverses its initial record toggle and holding another 1.3 seconds clears the selected track pattern and latched arp notes in memory without another question; sequence undo can restore the pattern.",
    "short_label": "CLEAR TRACK",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "934-984",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L934-L984"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "1070-1081",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L1070-L1081"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui.c",
      "lines": "245-283",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui.c#L245-L283"
     }
    ]
   },
   {
    "mode": "clear_track",
    "gesture": "release",
    "action": "Releasing before the ring finishes cancels the clear.",
    "short_label": "CANCEL CLEAR",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "978-983",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L978-L983"
     }
    ]
   },
   {
    "mode": "song",
    "gesture": "press",
    "action": "While stopped, saves the working project into the entry’s section and settings, asking for another press within three seconds if that section is occupied, with no save undo.",
    "short_label": "STORE ENTRY",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_song.c",
      "lines": "104-131",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_song.c#L104-L131"
     }
    ]
   },
   {
    "mode": "menu_screen",
    "gesture": "press",
    "action": "Has no menu action while HOME is released.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "1015-1021",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L1015-L1021"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_menu.c",
      "lines": "241-278",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L241-L278"
     }
    ]
   },
   {
    "mode": "menu_lights",
    "gesture": "press",
    "action": "Has no menu action while HOME is released.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "1015-1021",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L1015-L1021"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_menu.c",
      "lines": "241-278",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L241-L278"
     }
    ]
   },
   {
    "mode": "menu_audio",
    "gesture": "press",
    "action": "Has no menu action while HOME is released.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "1015-1021",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L1015-L1021"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_menu.c",
      "lines": "241-278",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L241-L278"
     }
    ]
   },
   {
    "mode": "menu_system",
    "gesture": "press",
    "action": "Has no menu action while HOME is released.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "1015-1021",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L1015-L1021"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_menu.c",
      "lines": "241-278",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L241-L278"
     }
    ]
   }
  ],
  "screen": [
   {
    "mode": "record_ready",
    "gesture": "shows",
    "action": "Shows the armed track, countdown or free take time, with recording choices while armed.",
    "short_label": "REC ARMED",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_studio.c",
      "lines": "674-788",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_studio.c#L674-L788"
     }
    ]
   },
   {
    "mode": "count_in",
    "gesture": "shows",
    "action": "Shows the armed track, countdown or free take time, with recording choices while armed.",
    "short_label": "COUNT IN",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_studio.c",
      "lines": "674-788",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_studio.c#L674-L788"
     }
    ]
   },
   {
    "mode": "free_take",
    "gesture": "shows",
    "action": "Shows the armed track, countdown or free take time, with recording choices while armed.",
    "short_label": "FREE TAKE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_studio.c",
      "lines": "674-788",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_studio.c#L674-L788"
     }
    ]
   },
   {
    "mode": "tape",
    "gesture": "shows",
    "action": "Shows event reels, four track lanes, the inclusive selection, destination head and COPY or LIFT state, temporarily replaced by a nearby-sound list when PRESETS is turned.",
    "short_label": "EVENT TAPE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/orbit_ui.c",
      "lines": "53-121",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/orbit_ui.c#L53-L121"
     }
    ]
   },
   {
    "mode": "visualizer",
    "gesture": "shows",
    "action": "Shows a visualization of the actual mix rather than a sample trim display.",
    "short_label": "VISUALIZER",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_vis.c",
      "lines": "1-32",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_vis.c#L1-L32"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_vis.c",
      "lines": "610-661",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_vis.c#L610-L661"
     }
    ]
   },
   {
    "mode": "mixer_level",
    "gesture": "shows",
    "action": "Shows the four tracks and the current level, pan or selected-track controls, with NO AUTO during recording because these knobs do not record step locks.",
    "short_label": "MIXER LEVEL",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/orbit_modes.c",
      "lines": "126-195",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/orbit_modes.c#L126-L195"
     }
    ]
   },
   {
    "mode": "mixer_pan",
    "gesture": "shows",
    "action": "Shows the four tracks and the current level, pan or selected-track controls, with NO AUTO during recording because these knobs do not record step locks.",
    "short_label": "MIXER PAN",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/orbit_modes.c",
      "lines": "126-195",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/orbit_modes.c#L126-L195"
     }
    ]
   },
   {
    "mode": "mixer_track",
    "gesture": "shows",
    "action": "Shows the four tracks and the current level, pan or selected-track controls, with NO AUTO during recording because these knobs do not record step locks.",
    "short_label": "MIXER TRACK",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/orbit_modes.c",
      "lines": "126-195",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/orbit_modes.c#L126-L195"
     }
    ]
   },
   {
    "mode": "drum_grid",
    "gesture": "shows",
    "action": "Shows sixteen drum rows against sixteen time columns with selected lane, cursor, playhead, levels, ratchets and absolute step position.",
    "short_label": "DRUM MATRIX",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_studio.c",
      "lines": "358-384",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_studio.c#L358-L384"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_studio.c",
      "lines": "408-448",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_studio.c#L408-L448"
     }
    ]
   },
   {
    "mode": "drum_kit",
    "gesture": "shows",
    "action": "Shows the sixteen live pads, current kit and drum mix controls.",
    "short_label": "DRUM PADS",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_studio.c",
      "lines": "388-396",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_studio.c#L388-L396"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_studio.c",
      "lines": "449-479",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_studio.c#L449-L479"
     }
    ]
   },
   {
    "mode": "step",
    "gesture": "shows",
    "action": "Shows the selected synth step and its notes, timing and flags.",
    "short_label": "STEP EDIT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "446",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L446"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_draw.c",
      "lines": "710-746",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_draw.c#L710-L746"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_draw.c",
      "lines": "1125-1136",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_draw.c#L1125-L1136"
     }
    ]
   },
   {
    "mode": "song",
    "gesture": "shows",
    "action": "Shows section order, entry durations, availability and song playback position.",
    "short_label": "SONG ORDER",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_song.c",
      "lines": "18-84",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_song.c#L18-L84"
     }
    ]
   },
   {
    "mode": "env",
    "gesture": "shows",
    "action": "Shows ENV with its four current control labels and values.",
    "short_label": "ENV",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "407",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L407"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "75-82",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L75-L82"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "216-228",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L216-L228"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/voice.c",
      "lines": "746-764",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/voice.c#L746-L764"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_lofi.c",
      "lines": "79-114",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_lofi.c#L79-L114"
     }
    ],
    "condition": "Synth track only; FM6 amplitude uses its patch envelopes, while LOFI STEP uses its staircase amplitude and ENV release only sets the cutoff after key-up."
   },
   {
    "mode": "env_dest",
    "gesture": "shows",
    "action": "Shows ENV DEST with its four current control labels and values.",
    "short_label": "ENV DEST",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "408",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L408"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "79-81",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L79-L81"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "134-138",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L134-L138"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_fm6.c",
      "lines": "13-24",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_fm6.c#L13-L24"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/voice.c",
      "lines": "781-799",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/voice.c#L781-L799"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/voice.c",
      "lines": "286-299",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/voice.c#L286-L299"
     }
    ]
   },
   {
    "mode": "lfo",
    "gesture": "shows",
    "action": "Shows LFO SOURCE with its four current control labels and values.",
    "short_label": "LFO SOURCE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "410",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L410"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "4-10",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L4-L10"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "83-86",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L83-L86"
     }
    ]
   },
   {
    "mode": "lfo2",
    "gesture": "shows",
    "action": "Shows LFO SYNC with its four current control labels and values.",
    "short_label": "LFO SYNC",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "411",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L411"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "4-10",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L4-L10"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "134-138",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L134-L138"
     }
    ]
   },
   {
    "mode": "lfo_dest",
    "gesture": "shows",
    "action": "Shows LFO DEST with its four current control labels and values.",
    "short_label": "LFO DEST",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "412",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L412"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "87-90",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L87-L90"
     }
    ]
   },
   {
    "mode": "fx",
    "gesture": "shows",
    "action": "Shows FX with its four current control labels and values.",
    "short_label": "FX",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "413",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L413"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "107-110",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L107-L110"
     }
    ]
   },
   {
    "mode": "filter",
    "gesture": "shows",
    "action": "Shows FILTER with its four current control labels and values.",
    "short_label": "FILTER",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "414",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L414"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "124",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L124"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "280-287",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L280-L287"
     }
    ]
   },
   {
    "mode": "slicer",
    "gesture": "shows",
    "action": "Shows SLICER with its four current control labels and values.",
    "short_label": "SLICER",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "415",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L415"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "59-60",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L59-L60"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "119-122",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L119-L122"
     }
    ]
   },
   {
    "mode": "insert",
    "gesture": "shows",
    "action": "Shows INSERT with its four current control labels and values.",
    "short_label": "INSERT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "416",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L416"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "30-36",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L30-L36"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "200-214",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L200-L214"
     }
    ]
   },
   {
    "mode": "insert2",
    "gesture": "shows",
    "action": "Shows INSERT 2 with its four current control labels and values.",
    "short_label": "INSERT 2",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "417",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L417"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "129-133",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L129-L133"
     }
    ]
   },
   {
    "mode": "delay",
    "gesture": "shows",
    "action": "Shows DLY with its four current control labels and values.",
    "short_label": "DLY",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "418",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L418"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "157-160",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L157-L160"
     }
    ]
   },
   {
    "mode": "reverb_chorus",
    "gesture": "shows",
    "action": "Shows REV/CHO with its four current control labels and values.",
    "short_label": "REV/CHO",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "419",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L419"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "161-164",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L161-L164"
     }
    ]
   },
   {
    "mode": "sel",
    "gesture": "shows",
    "action": "Shows SEL with its four current control labels and values.",
    "short_label": "SEL",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "420",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L420"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "45-48",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L45-L48"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "99-102",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L99-L102"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "61",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L61"
     }
    ]
   },
   {
    "mode": "sel2",
    "gesture": "shows",
    "action": "Shows SEL 2 with its four current control labels and values.",
    "short_label": "SEL 2",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "421",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L421"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "102",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L102"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "125-126",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L125-L126"
     }
    ]
   },
   {
    "mode": "voice",
    "gesture": "shows",
    "action": "Shows VOICE with its four current control labels and values.",
    "short_label": "VOICE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "426",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L426"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "49-52",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L49-L52"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "111-114",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L111-L114"
     }
    ]
   },
   {
    "mode": "voice2",
    "gesture": "shows",
    "action": "Shows VOICE 2 with its four current control labels and values.",
    "short_label": "VOICE 2",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "427",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L427"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "115-118",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L115-L118"
     }
    ]
   },
   {
    "mode": "perform",
    "gesture": "shows",
    "action": "Shows PERFORM with its four current control labels and values.",
    "short_label": "PERFORM",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "428",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L428"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "237-253",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L237-L253"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "387-390",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L387-L390"
     }
    ]
   },
   {
    "mode": "macros",
    "gesture": "shows",
    "action": "Shows MACROS with its four current control labels and values.",
    "short_label": "MACROS",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "429",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L429"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "237-253",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L237-L253"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "401-417",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L401-L417"
     }
    ]
   },
   {
    "mode": "global",
    "gesture": "shows",
    "action": "Shows GLOBAL with its four current control labels and values.",
    "short_label": "GLOBAL",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "430",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L430"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "153-156",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L153-L156"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "54",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L54"
     }
    ]
   },
   {
    "mode": "master",
    "gesture": "shows",
    "action": "Shows MASTER with its four current control labels and values.",
    "short_label": "MASTER",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "431",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L431"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "180-183",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L180-L183"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "280-287",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L280-L287"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/fx.c",
      "lines": "716-719",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/fx.c#L716-L719"
     }
    ]
   },
   {
    "mode": "system",
    "gesture": "shows",
    "action": "Shows SYSTEM with its four current control labels and values.",
    "short_label": "SYSTEM",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "432",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L432"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "38-40",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L38-L40"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "165-168",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L165-L168"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/project.c",
      "lines": "1191-1224",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/project.c#L1191-L1224"
     }
    ]
   },
   {
    "mode": "global_drums",
    "gesture": "shows",
    "action": "Shows DRUMS with its four current control labels and values.",
    "short_label": "DRUMS",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "433",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L433"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "177-179",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L177-L179"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "185-189",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L185-L189"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/project.c",
      "lines": "1191-1224",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/project.c#L1191-L1224"
     }
    ]
   },
   {
    "mode": "midi",
    "gesture": "shows",
    "action": "Shows MIDI with its four current control labels and values.",
    "short_label": "MIDI",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "434",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L434"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "177-189",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L177-L189"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui.c",
      "lines": "155-185",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui.c#L155-L185"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/project.c",
      "lines": "1191-1224",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/project.c#L1191-L1224"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "75-83",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L75-L83"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "76-85",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L76-L85"
     }
    ]
   },
   {
    "mode": "midi2",
    "gesture": "shows",
    "action": "Shows MIDI 2 with its four current control labels and values.",
    "short_label": "MIDI 2",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "435",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L435"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "38-40",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L38-L40"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "165-167",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L165-L167"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "189-197",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L189-L197"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/project.c",
      "lines": "1191-1224",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/project.c#L1191-L1224"
     }
    ]
   },
   {
    "mode": "texture",
    "gesture": "shows",
    "action": "Shows TEXTURE with its four current control labels and values.",
    "short_label": "TEXTURE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "438",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L438"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "14-17",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L14-L17"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "190-193",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L190-L193"
     }
    ]
   },
   {
    "mode": "texture2",
    "gesture": "shows",
    "action": "Shows TEXTURE 2 with its four current control labels and values.",
    "short_label": "TEXTURE 2",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "439",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L439"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "14-17",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L14-L17"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "194-196",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L194-L196"
     }
    ]
   },
   {
    "mode": "arp",
    "gesture": "shows",
    "action": "Shows ARP with its four current control labels and values.",
    "short_label": "ARP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "444",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L444"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "37-42",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L37-L42"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "91-94",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L91-L94"
     }
    ]
   },
   {
    "mode": "arp2",
    "gesture": "shows",
    "action": "Shows ARP 2 with its four current control labels and values.",
    "short_label": "ARP 2",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "445",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L445"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "95-98",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L95-L98"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "53",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L53"
     }
    ]
   },
   {
    "mode": "analog_edit1",
    "gesture": "shows",
    "action": "Shows ANALOG / OSC with its four current control labels and values.",
    "short_label": "ANALOG 1",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "422",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L422"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_analog.c",
      "lines": "161-175",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_analog.c#L161-L175"
     }
    ]
   },
   {
    "mode": "analog_edit2",
    "gesture": "shows",
    "action": "Shows ANALOG / FLT with its four current control labels and values.",
    "short_label": "ANALOG 2",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "423",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L423"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_analog.c",
      "lines": "161-175",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_analog.c#L161-L175"
     }
    ]
   },
   {
    "mode": "digital_edit1",
    "gesture": "shows",
    "action": "Shows DIGITAL / OPS with its four current control labels and values.",
    "short_label": "DIGITAL 1",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "422",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L422"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_digital.c",
      "lines": "145-159",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_digital.c#L145-L159"
     }
    ]
   },
   {
    "mode": "digital_edit2",
    "gesture": "shows",
    "action": "Shows DIGITAL / MOD with its four current control labels and values.",
    "short_label": "DIGITAL 2",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "423",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L423"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_digital.c",
      "lines": "145-159",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_digital.c#L145-L159"
     }
    ]
   },
   {
    "mode": "phase_edit1",
    "gesture": "shows",
    "action": "Shows PHASE / PHS with its four current control labels and values.",
    "short_label": "PHASE 1",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "422",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L422"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_phase.c",
      "lines": "191-205",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_phase.c#L191-L205"
     }
    ]
   },
   {
    "mode": "phase_edit2",
    "gesture": "shows",
    "action": "Shows PHASE / LINE with its four current control labels and values.",
    "short_label": "PHASE 2",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "423",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L423"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_phase.c",
      "lines": "191-205",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_phase.c#L191-L205"
     }
    ]
   },
   {
    "mode": "lofi_edit1",
    "gesture": "shows",
    "action": "Shows LOFI / CHIP with its four current control labels and values.",
    "short_label": "LOFI 1",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "422",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L422"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_lofi.c",
      "lines": "218-232",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_lofi.c#L218-L232"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_lofi.c",
      "lines": "42-56",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_lofi.c#L42-L56"
     }
    ]
   },
   {
    "mode": "lofi_edit2",
    "gesture": "shows",
    "action": "Shows LOFI / MOTN with its four current control labels and values.",
    "short_label": "LOFI 2",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "423",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L423"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_lofi.c",
      "lines": "218-232",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_lofi.c#L218-L232"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_lofi.c",
      "lines": "42-56",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_lofi.c#L42-L56"
     }
    ]
   },
   {
    "mode": "sample_edit1",
    "gesture": "shows",
    "action": "Shows SAMPLE / SET with its four current control labels and values.",
    "short_label": "SAMPLE 1",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "422",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L422"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_sample.c",
      "lines": "204-218",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_sample.c#L204-L218"
     }
    ]
   },
   {
    "mode": "sample_edit2",
    "gesture": "shows",
    "action": "Shows SAMPLE / TONE with its four current control labels and values.",
    "short_label": "SAMPLE 2",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "423",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L423"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_sample.c",
      "lines": "204-218",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_sample.c#L204-L218"
     }
    ]
   },
   {
    "mode": "voice_edit1",
    "gesture": "shows",
    "action": "Shows VOICE / VOWL with its four current control labels and values.",
    "short_label": "VOICE 1",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "422",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L422"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_formant.c",
      "lines": "227-241",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_formant.c#L227-L241"
     }
    ]
   },
   {
    "mode": "voice_edit2",
    "gesture": "shows",
    "action": "Shows VOICE / TONE with its four current control labels and values.",
    "short_label": "VOWL TONE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "423",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L423"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_formant.c",
      "lines": "227-241",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_formant.c#L227-L241"
     }
    ]
   },
   {
    "mode": "trio_edit1",
    "gesture": "shows",
    "action": "Shows TRIO / OSC with its four current control labels and values.",
    "short_label": "TRIO 1",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "422",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L422"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_trio.c",
      "lines": "380-394",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_trio.c#L380-L394"
     }
    ]
   },
   {
    "mode": "trio_edit2",
    "gesture": "shows",
    "action": "Shows TRIO / TONE with its four current control labels and values.",
    "short_label": "TRIO 2",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "423",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L423"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_trio.c",
      "lines": "380-394",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_trio.c#L380-L394"
     }
    ]
   },
   {
    "mode": "wheel_edit1",
    "gesture": "shows",
    "action": "Shows WHEEL / BARS with its four current control labels and values.",
    "short_label": "WHEEL 1",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "422",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L422"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_drawbar.c",
      "lines": "283-297",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_drawbar.c#L283-L297"
     }
    ]
   },
   {
    "mode": "wheel_edit2",
    "gesture": "shows",
    "action": "Shows WHEEL / TONE with its four current control labels and values.",
    "short_label": "WHEEL 2",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "423",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L423"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_drawbar.c",
      "lines": "283-297",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_drawbar.c#L283-L297"
     }
    ]
   },
   {
    "mode": "grain_edit1",
    "gesture": "shows",
    "action": "Shows GRAIN / GRAN with its four current control labels and values.",
    "short_label": "GRAIN 1",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "422",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L422"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_grain.c",
      "lines": "436-450",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_grain.c#L436-L450"
     }
    ]
   },
   {
    "mode": "grain_edit2",
    "gesture": "shows",
    "action": "Shows GRAIN / SPRY with its four current control labels and values.",
    "short_label": "GRAIN 2",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "423",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L423"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_grain.c",
      "lines": "436-450",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_grain.c#L436-L450"
     }
    ]
   },
   {
    "mode": "swarm_edit1",
    "gesture": "shows",
    "action": "Shows SWARM / OSC with its four current control labels and values.",
    "short_label": "SWARM 1",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "422",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L422"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_orbit.c",
      "lines": "169-176",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_orbit.c#L169-L176"
     }
    ]
   },
   {
    "mode": "swarm_edit2",
    "gesture": "shows",
    "action": "Shows SWARM / TONE with its four current control labels and values.",
    "short_label": "SWARM 2",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "423",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L423"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_orbit.c",
      "lines": "169-176",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_orbit.c#L169-L176"
     }
    ]
   },
   {
    "mode": "pulse_edit1",
    "gesture": "shows",
    "action": "Shows PULSE / OSC with its four current control labels and values.",
    "short_label": "PULSE 1",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "422",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L422"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_orbit.c",
      "lines": "177-184",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_orbit.c#L177-L184"
     }
    ]
   },
   {
    "mode": "pulse_edit2",
    "gesture": "shows",
    "action": "Shows PULSE / TONE with its four current control labels and values.",
    "short_label": "PULSE 2",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "423",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L423"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_orbit.c",
      "lines": "177-184",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_orbit.c#L177-L184"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_orbit.c",
      "lines": "92-107",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_orbit.c#L92-L107"
     }
    ]
   },
   {
    "mode": "fm4_edit1",
    "gesture": "shows",
    "action": "Shows FM4 / OPS with its four current control labels and values.",
    "short_label": "FM4 1",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "422",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L422"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_orbit.c",
      "lines": "185-193",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_orbit.c#L185-L193"
     }
    ]
   },
   {
    "mode": "fm4_edit2",
    "gesture": "shows",
    "action": "Shows FM4 / ROUTE with its four current control labels and values.",
    "short_label": "FM4 2",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "423",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L423"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_orbit.c",
      "lines": "185-193",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_orbit.c#L185-L193"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_orbit.c",
      "lines": "110-141",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_orbit.c#L110-L141"
     }
    ]
   },
   {
    "mode": "fm6_edit1",
    "gesture": "shows",
    "action": "Shows FM6 / OPS with its four current control labels and values.",
    "short_label": "FM6 1",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "422",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L422"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_fm6.c",
      "lines": "367-382",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_fm6.c#L367-L382"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_fm6.c",
      "lines": "13-24",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_fm6.c#L13-L24"
     }
    ]
   },
   {
    "mode": "fm6_edit2",
    "gesture": "shows",
    "action": "Shows FM6 / PATCH with its four current control labels and values.",
    "short_label": "FM6 2",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "423",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L423"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_fm6.c",
      "lines": "367-382",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_fm6.c#L367-L382"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_fm6.c",
      "lines": "13-24",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_fm6.c#L13-L24"
     }
    ]
   },
   {
    "mode": "phys_edit1",
    "gesture": "shows",
    "action": "Shows PHYS / BODY with its four current control labels and values.",
    "short_label": "PHYS 1",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "422",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L422"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_phys.c",
      "lines": "263-285",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_phys.c#L263-L285"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_phys.c",
      "lines": "7-27",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_phys.c#L7-L27"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_phys.c",
      "lines": "54-70",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_phys.c#L54-L70"
     }
    ]
   },
   {
    "mode": "phys_edit2",
    "gesture": "shows",
    "action": "Shows PHYS / EXCT with its four current control labels and values.",
    "short_label": "PHYS 2",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "423",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L423"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_phys.c",
      "lines": "263-285",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_phys.c#L263-L285"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_phys.c",
      "lines": "7-27",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_phys.c#L7-L27"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_phys.c",
      "lines": "54-70",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_phys.c#L54-L70"
     }
    ]
   },
   {
    "mode": "noise_edit1",
    "gesture": "shows",
    "action": "Shows NOISE / SRC with its four current control labels and values.",
    "short_label": "NOISE 1",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "422",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L422"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_noise.c",
      "lines": "259-280",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_noise.c#L259-L280"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_noise.c",
      "lines": "10-14",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_noise.c#L10-L14"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_noise.c",
      "lines": "45-52",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_noise.c#L45-L52"
     }
    ]
   },
   {
    "mode": "noise_edit2",
    "gesture": "shows",
    "action": "Shows NOISE / MOVE with its four current control labels and values.",
    "short_label": "NOISE 2",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "423",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L423"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_noise.c",
      "lines": "259-280",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_noise.c#L259-L280"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_noise.c",
      "lines": "10-14",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_noise.c#L10-L14"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_noise.c",
      "lines": "45-52",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_noise.c#L45-L52"
     }
    ]
   },
   {
    "mode": "cluster_edit1",
    "gesture": "shows",
    "action": "Shows CLUSTER / OSC RAW with its four current control labels and values.",
    "short_label": "CLUSTER 1",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "422",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L422"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_op1_cluster.c",
      "lines": "71-90",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_op1_cluster.c#L71-L90"
     }
    ]
   },
   {
    "mode": "cluster_edit2",
    "gesture": "shows",
    "action": "Shows CLUSTER / RESERVED with its four current control labels and values.",
    "short_label": "CLUSTER 2",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "423",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L423"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_op1_cluster.c",
      "lines": "71-90",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_op1_cluster.c#L71-L90"
     }
    ]
   },
   {
    "mode": "cloud_edit1",
    "gesture": "shows",
    "action": "Shows CLOUD / GRAINS with its four current control labels and values.",
    "short_label": "CLOUD 1",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "422",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L422"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_cloud.c",
      "lines": "146-161",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_cloud.c#L146-L161"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_cloud.c",
      "lines": "2-8",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_cloud.c#L2-L8"
     }
    ]
   },
   {
    "mode": "cloud_edit2",
    "gesture": "shows",
    "action": "Shows CLOUD / SPECTRUM with its four current control labels and values.",
    "short_label": "CLOUD 2",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "423",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L423"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_cloud.c",
      "lines": "146-161",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_cloud.c#L146-L161"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_cloud.c",
      "lines": "2-8",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_cloud.c#L2-L8"
     }
    ]
   },
   {
    "mode": "analog_filter",
    "gesture": "shows",
    "action": "Shows ANALOG / FILTER with its four current control labels and values.",
    "short_label": "ANALOG FLT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "424",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L424"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "469-474",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L469-L474"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_analog.c",
      "lines": "161-175",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_analog.c#L161-L175"
     }
    ]
   },
   {
    "mode": "browse",
    "gesture": "shows",
    "action": "Shows the factory and USER sound list.",
    "short_label": "PRESETS",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "440-443",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L440-L443"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_draw.c",
      "lines": "845-1044",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_draw.c#L845-L1044"
     }
    ]
   },
   {
    "mode": "user",
    "gesture": "shows",
    "action": "Shows the selected USER slot and load, erase and save actions.",
    "short_label": "USER",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "440-443",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L440-L443"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_draw.c",
      "lines": "845-1044",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_draw.c#L845-L1044"
     }
    ]
   },
   {
    "mode": "project",
    "gesture": "shows",
    "action": "Shows the selected section slot and erase, load and save actions.",
    "short_label": "PROJECT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "440-443",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L440-L443"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_draw.c",
      "lines": "845-1044",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_draw.c#L845-L1044"
     }
    ]
   },
   {
    "mode": "tools",
    "gesture": "shows",
    "action": "Shows clear-pattern, sound-init and new-project actions.",
    "short_label": "TOOLS",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "440-443",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L440-L443"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_draw.c",
      "lines": "845-1044",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_draw.c#L845-L1044"
     }
    ]
   },
   {
    "mode": "punch",
    "gesture": "shows",
    "action": "Shows Punch key jobs, knob values and LOCK when latched open.",
    "short_label": "PUNCH",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "692-708",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L692-L708"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "720-1067",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L720-L1067"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "shows",
    "action": "Shows Erase key jobs, knob values and LOCK when latched open.",
    "short_label": "ERASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "692-708",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L692-L708"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "720-1067",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L720-L1067"
     }
    ]
   },
   {
    "mode": "roll",
    "gesture": "shows",
    "action": "Shows Roll key jobs, knob values and LOCK when latched open.",
    "short_label": "ROLL",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "692-708",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L692-L708"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "720-1067",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L720-L1067"
     }
    ]
   },
   {
    "mode": "steps",
    "gesture": "shows",
    "action": "Shows Steps key jobs, knob values and LOCK when latched open.",
    "short_label": "STEPS",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "692-708",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L692-L708"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "720-1067",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L720-L1067"
     }
    ]
   },
   {
    "mode": "key_scale",
    "gesture": "shows",
    "action": "Shows Key and scale key jobs, knob values and LOCK when latched open.",
    "short_label": "KEY / SCALE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "692-708",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L692-L708"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "720-1067",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L720-L1067"
     }
    ]
   },
   {
    "mode": "mix_layer",
    "gesture": "shows",
    "action": "Shows Mix layer key jobs, knob values and LOCK when latched open.",
    "short_label": "LIVE MIX",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "692-708",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L692-L708"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "720-1067",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L720-L1067"
     }
    ]
   },
   {
    "mode": "sections",
    "gesture": "shows",
    "action": "Shows Sections key jobs, knob values and LOCK when latched open.",
    "short_label": "SECTIONS",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "692-708",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L692-L708"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "720-1067",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L720-L1067"
     }
    ]
   },
   {
    "mode": "menu_screen",
    "gesture": "shows",
    "action": "Shows SCREEN settings and the selected row.",
    "short_label": "MENU SCREEN",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_menu.c",
      "lines": "65-151",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L65-L151"
     }
    ]
   },
   {
    "mode": "menu_lights",
    "gesture": "shows",
    "action": "Shows LIGHTS settings and the selected row.",
    "short_label": "MENU LIGHTS",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_menu.c",
      "lines": "65-151",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L65-L151"
     }
    ]
   },
   {
    "mode": "menu_audio",
    "gesture": "shows",
    "action": "Shows AUDIO settings and the selected row.",
    "short_label": "MENU AUDIO",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_menu.c",
      "lines": "65-151",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L65-L151"
     }
    ]
   },
   {
    "mode": "menu_system",
    "gesture": "shows",
    "action": "Shows SYSTEM settings and the selected row.",
    "short_label": "MENU SYSTEM",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_menu.c",
      "lines": "65-151",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L65-L151"
     }
    ]
   },
   {
    "mode": "about",
    "gesture": "shows",
    "action": "Shows ORBIT version, build date, credits and licence notices.",
    "short_label": "ABOUT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_menu.c",
      "lines": "92-108",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L92-L108"
     }
    ]
   },
   {
    "mode": "calibration",
    "gesture": "shows",
    "action": "Prompts for every labelled button and each encoder’s clockwise direction, cancelling after thirty seconds with no input.",
    "short_label": "CALIBRATION",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "1182-1250",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L1182-L1250"
     }
    ]
   },
   {
    "mode": "clear_track",
    "gesture": "shows",
    "action": "Shows the selected track’s clear countdown ring, with early release cancelling the clear.",
    "short_label": "CLEAR RING",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "1070-1112",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L1070-L1112"
     }
    ]
   },
   {
    "mode": "update",
    "gesture": "shows",
    "action": "Shows UBOOT after pending data is flushed and audio is stopped.",
    "short_label": "UBOOT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/main.c",
      "lines": "219-229",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/main.c#L219-L229"
     }
    ]
   },
   {
    "mode": "drum_unavailable",
    "gesture": "shows",
    "action": "Shows blank parameter columns and navigation hints back to HOME, EDIT and GLO on an unsupported drum sound page.",
    "short_label": "DRUM TRACK",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_draw.c",
      "lines": "682-707",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_draw.c#L682-L707"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_draw.c",
      "lines": "882-885",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_draw.c#L882-L885"
     }
    ]
   },
   {
    "mode": "rescue",
    "gesture": "shows",
    "action": "Shows USB rescue, connection and installer prompts with audio off.",
    "short_label": "USB RESCUE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/recovery.c",
      "lines": "52-69",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/recovery.c#L52-L69"
     }
    ]
   }
  ],
  "encoder_knob1": [
   {
    "mode": "record_ready",
    "gesture": "turn",
    "action": "Chooses FREE or TEMPO only while the whole project is empty, with the choice saved later in settings.",
    "short_label": "REC MODE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "905-932",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L905-L932"
     }
    ]
   },
   {
    "mode": "count_in",
    "gesture": "turn",
    "action": "Does nothing on this screen.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "1055-1059",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L1055-L1059"
     }
    ]
   },
   {
    "mode": "free_take",
    "gesture": "turn",
    "action": "Does nothing on this screen.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "1055-1059",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L1055-L1059"
     }
    ]
   },
   {
    "mode": "visualizer",
    "gesture": "turn",
    "action": "Does nothing on this screen.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "1151-1156",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L1151-L1156"
     }
    ]
   },
   {
    "mode": "tape",
    "gesture": "turn",
    "action": "Sets the destination step for a drop.",
    "short_label": "HEAD",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/orbit_ui.c",
      "lines": "4-14",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/orbit_ui.c#L4-L14"
     }
    ]
   },
   {
    "mode": "mixer_level",
    "gesture": "turn",
    "action": "Sets track 1 level, with the first turn only unmuting a muted track.",
    "short_label": "LEVEL 1",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "273-299",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L273-L299"
     }
    ]
   },
   {
    "mode": "mixer_pan",
    "gesture": "turn",
    "action": "Sets track 1 pan.",
    "short_label": "PAN 1",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "273-299",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L273-L299"
     }
    ]
   },
   {
    "mode": "mixer_track",
    "gesture": "turn",
    "action": "Sets global swing from 0 to 100.",
    "short_label": "GLOBAL SWING",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "273-299",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L273-L299"
     }
    ]
   },
   {
    "mode": "drum_grid",
    "gesture": "turn",
    "action": "Chooses and auditions one of sixteen drum lanes.",
    "short_label": "DRUM LANE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_studio.c",
      "lines": "580-611",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_studio.c#L580-L611"
     }
    ]
   },
   {
    "mode": "drum_kit",
    "gesture": "turn",
    "action": "Chooses the drum kit.",
    "short_label": "KIT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_studio.c",
      "lines": "612-617",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_studio.c#L612-L617"
     }
    ]
   },
   {
    "mode": "step",
    "gesture": "turn",
    "action": "Moves the step cursor with wraparound inside the track length.",
    "short_label": "STEP CURSOR",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "301-347",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L301-L347"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui.c",
      "lines": "201-225",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui.c#L201-L225"
     }
    ]
   },
   {
    "mode": "song",
    "gesture": "turn",
    "action": "Chooses the song entry, including while playing.",
    "short_label": "SONG CURSOR",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_song.c",
      "lines": "135-153",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_song.c#L135-L153"
     }
    ]
   },
   {
    "mode": "env",
    "gesture": "turn",
    "action": "Set the amplitude attack time, or its note value when envelope sync is on.",
    "short_label": "ATTACK",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "407",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L407"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "75-82",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L75-L82"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "216-228",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L216-L228"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/voice.c",
      "lines": "746-764",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/voice.c#L746-L764"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_lofi.c",
      "lines": "79-114",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_lofi.c#L79-L114"
     }
    ],
    "condition": "Synth track only; FM6 amplitude uses its patch envelopes, while LOFI STEP uses its staircase amplitude and ENV release only sets the cutoff after key-up."
   },
   {
    "mode": "env_dest",
    "gesture": "turn",
    "action": "Set the signed envelope depth for the engine filter path.",
    "short_label": "ENV FILTER",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "408",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L408"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "79-81",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L79-L81"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "134-138",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L134-L138"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_fm6.c",
      "lines": "13-24",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_fm6.c#L13-L24"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/voice.c",
      "lines": "781-799",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/voice.c#L781-L799"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/voice.c",
      "lines": "286-299",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/voice.c#L286-L299"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit, and FM6 amplitude uses its patch envelopes, ENV filter and shape depths have no effect on it, and the short pitch envelope still works."
   },
   {
    "mode": "lfo",
    "gesture": "turn",
    "action": "Set the free LFO speed, used while LFO sync is off.",
    "short_label": "LFO RATE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "410",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L410"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "4-10",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L4-L10"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "83-86",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L83-L86"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "lfo2",
    "gesture": "turn",
    "action": "Choose a tempo division for the LFO, or OFF to use Rate.",
    "short_label": "SYNC",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "411",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L411"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "4-10",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L4-L10"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "134-138",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L134-L138"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "lfo_dest",
    "gesture": "turn",
    "action": "Set the signed LFO depth for pitch.",
    "short_label": "LFO PITCH",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "412",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L412"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "87-90",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L87-L90"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "fx",
    "gesture": "turn",
    "action": "Set the track distortion amount.",
    "short_label": "DRIVE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "413",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L413"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "107-110",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L107-L110"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "filter",
    "gesture": "turn",
    "action": "Close the track low-pass to the left or high-pass to the right, with the centre open.",
    "short_label": "TRACK FILTER",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "414",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L414"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "124",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L124"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "280-287",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L280-L287"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "slicer",
    "gesture": "turn",
    "action": "Choose OFF, rhythmic gating or stuttering.",
    "short_label": "SLICER",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "415",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L415"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "59-60",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L59-L60"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "119-122",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L119-L122"
     }
    ]
   },
   {
    "mode": "insert",
    "gesture": "turn",
    "action": "Choose OFF, SOFT, HARD, FOLD, FUZZ, CRUSH, PHASR, FLANG or CHOR.",
    "short_label": "INSERT TYPE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "416",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L416"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "30-36",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L30-L36"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "200-214",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L200-L214"
     }
    ]
   },
   {
    "mode": "insert2",
    "gesture": "turn",
    "action": "Set the balance between dry sound and the insert effect.",
    "short_label": "INSERT MIX",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "417",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L417"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "129-133",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L129-L133"
     }
    ]
   },
   {
    "mode": "delay",
    "gesture": "turn",
    "action": "Choose the shared delay tempo division.",
    "short_label": "DELAY TIME",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "418",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L418"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "157-160",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L157-L160"
     }
    ]
   },
   {
    "mode": "reverb_chorus",
    "gesture": "turn",
    "action": "Set the shared reverb size.",
    "short_label": "REVERB SIZE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "419",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L419"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "161-164",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L161-L164"
     }
    ]
   },
   {
    "mode": "sel",
    "gesture": "turn",
    "action": "Set the scale root for the selected track.",
    "short_label": "ROOT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "420",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L420"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "45-48",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L45-L48"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "99-102",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L99-L102"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "61",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L61"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "sel2",
    "gesture": "turn",
    "action": "Transpose the selected track in semitones.",
    "short_label": "TRANSPOSE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "421",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L421"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "102",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L102"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "125-126",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L125-L126"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "voice",
    "gesture": "turn",
    "action": "Choose polyphonic, monophonic, legato or unison playing.",
    "short_label": "VOICE MODE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "426",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L426"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "49-52",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L49-L52"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "111-114",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L111-L114"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "voice2",
    "gesture": "turn",
    "action": "Choose rotating or reused voices.",
    "short_label": "ALLOCATION",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "427",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L427"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "115-118",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L115-L118"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "perform",
    "gesture": "turn",
    "action": "Change the sound parameter assigned to knob 1, or its engine default when the assignment is DEFAULT.",
    "short_label": "MACRO 1",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "428",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L428"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "237-253",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L237-L253"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "387-390",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L387-L390"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "macros",
    "gesture": "turn",
    "action": "Choose the destination for sound knob 1, or DEFAULT to restore that engine default.",
    "short_label": "ASSIGN 1",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "429",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L429"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "237-253",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L237-L253"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "401-417",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L401-L417"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "global",
    "gesture": "turn",
    "action": "Set the song tempo from 40 to 240 BPM.",
    "short_label": "TEMPO",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "430",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L430"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "153-156",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L153-L156"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "54",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L54"
     }
    ]
   },
   {
    "mode": "master",
    "gesture": "turn",
    "action": "Set the combined drive, sample-rate reduction, bit reduction, filtering and record noise.",
    "short_label": "DUST",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "431",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L431"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "180-183",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L180-L183"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "280-287",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L280-L287"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/fx.c",
      "lines": "716-719",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/fx.c#L716-L719"
     }
    ]
   },
   {
    "mode": "system",
    "gesture": "turn",
    "action": "Choose outgoing keyboard notes only or keyboard and sequencer notes; device settings save automatically once stopped and quiet.",
    "short_label": "MIDI OUT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "432",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L432"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "38-40",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L38-L40"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "165-168",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L165-L168"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/project.c",
      "lines": "1191-1224",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/project.c#L1191-L1224"
     }
    ]
   },
   {
    "mode": "global_drums",
    "gesture": "turn",
    "action": "Choose the drum MIDI channel or OFF for incoming and outgoing notes; device settings save automatically once stopped and quiet.",
    "short_label": "DRUM CHANNEL",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "433",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L433"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "177-179",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L177-L179"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "185-189",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L185-L189"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/project.c",
      "lines": "1191-1224",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/project.c#L1191-L1224"
     }
    ]
   },
   {
    "mode": "midi",
    "gesture": "turn",
    "action": "Choose the track 1 MIDI channel or OFF for incoming and outgoing notes; device settings save automatically once stopped and quiet.",
    "short_label": "CHANNEL 1",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "434",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L434"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "177-189",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L177-L189"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui.c",
      "lines": "155-185",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui.c#L155-L185"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/project.c",
      "lines": "1191-1224",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/project.c#L1191-L1224"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "75-83",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L75-L83"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "76-85",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L76-L85"
     }
    ]
   },
   {
    "mode": "midi2",
    "gesture": "turn",
    "action": "Accept normal note routing, clock only, or one chosen channel on the selected track; device settings save automatically once stopped and quiet.",
    "short_label": "MIDI IN",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "435",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L435"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "38-40",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L38-L40"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "165-167",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L165-L167"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "189-197",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L189-L197"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/project.c",
      "lines": "1191-1224",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/project.c#L1191-L1224"
     }
    ]
   },
   {
    "mode": "texture",
    "gesture": "turn",
    "action": "Choose the texture source, including OFF or a user sample slot.",
    "short_label": "TEXTURE SRC",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "438",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L438"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "14-17",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L14-L17"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "190-193",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L190-L193"
     }
    ]
   },
   {
    "mode": "texture2",
    "gesture": "turn",
    "action": "Choose the texture movement length in bars.",
    "short_label": "TEXTURE RATE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "439",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L439"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "14-17",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L14-L17"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "194-196",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L194-L196"
     }
    ]
   },
   {
    "mode": "arp",
    "gesture": "turn",
    "action": "Choose the arpeggiator order, or OFF.",
    "short_label": "ARP MODE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "444",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L444"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "37-42",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L37-L42"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "91-94",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L91-L94"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "arp2",
    "gesture": "turn",
    "action": "Set the arpeggiator swing amount.",
    "short_label": "SWING",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "445",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L445"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "95-98",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L95-L98"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "53",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L53"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "analog_edit1",
    "gesture": "turn",
    "action": "Choose the oscillator waveform.",
    "short_label": "OSC WAVE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "422",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L422"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_analog.c",
      "lines": "161-175",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_analog.c#L161-L175"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "analog_edit2",
    "gesture": "turn",
    "action": "Set the filter cutoff.",
    "short_label": "CUTOFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "423",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L423"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_analog.c",
      "lines": "161-175",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_analog.c#L161-L175"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "digital_edit1",
    "gesture": "turn",
    "action": "Choose the four-operator FM algorithm.",
    "short_label": "FM ALGO",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "422",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L422"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_digital.c",
      "lines": "145-159",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_digital.c#L145-L159"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "digital_edit2",
    "gesture": "turn",
    "action": "Set the FM modulation index.",
    "short_label": "INDEX",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "423",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L423"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_digital.c",
      "lines": "145-159",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_digital.c#L145-L159"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "phase_edit1",
    "gesture": "turn",
    "action": "Choose the primary phase-distortion waveform.",
    "short_label": "PHASE WAVE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "422",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L422"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_phase.c",
      "lines": "191-205",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_phase.c#L191-L205"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "phase_edit2",
    "gesture": "turn",
    "action": "Set the second oscillator line detune.",
    "short_label": "LINE DETUNE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "423",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L423"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_phase.c",
      "lines": "191-205",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_phase.c#L191-L205"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "lofi_edit1",
    "gesture": "turn",
    "action": "Choose the chip-style synthesis model.",
    "short_label": "CHIP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "422",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L422"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_lofi.c",
      "lines": "218-232",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_lofi.c#L218-L232"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_lofi.c",
      "lines": "42-56",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_lofi.c#L42-L56"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "lofi_edit2",
    "gesture": "turn",
    "action": "Set the chip pitch sweep.",
    "short_label": "SWEEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "423",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L423"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_lofi.c",
      "lines": "218-232",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_lofi.c#L218-L232"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_lofi.c",
      "lines": "42-56",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_lofi.c#L42-L56"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "sample_edit1",
    "gesture": "turn",
    "action": "Choose a built-in sample set or a user sample slot.",
    "short_label": "SET",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "422",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L422"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_sample.c",
      "lines": "204-218",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_sample.c#L204-L218"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "sample_edit2",
    "gesture": "turn",
    "action": "Set the sample tone cutoff.",
    "short_label": "SAMPLE CUT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "423",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L423"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_sample.c",
      "lines": "204-218",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_sample.c#L204-L218"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "voice_edit1",
    "gesture": "turn",
    "action": "Set the starting vowel position.",
    "short_label": "VOWEL",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "422",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L422"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_formant.c",
      "lines": "227-241",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_formant.c#L227-L241"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "voice_edit2",
    "gesture": "turn",
    "action": "Set the glottal-source brightness.",
    "short_label": "BUZZ",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "423",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L423"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_formant.c",
      "lines": "227-241",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_formant.c#L227-L241"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "trio_edit1",
    "gesture": "turn",
    "action": "Choose the three-oscillator waveform and interaction set.",
    "short_label": "TRIO WAVE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "422",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L422"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_trio.c",
      "lines": "380-394",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_trio.c#L380-L394"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "trio_edit2",
    "gesture": "turn",
    "action": "Choose low-pass, band-pass, high-pass or notch filtering.",
    "short_label": "FILTER MODE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "423",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L423"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_trio.c",
      "lines": "380-394",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_trio.c#L380-L394"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "wheel_edit1",
    "gesture": "turn",
    "action": "Choose the organ drawbar registration.",
    "short_label": "REGISTRATION",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "422",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L422"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_drawbar.c",
      "lines": "283-297",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_drawbar.c#L283-L297"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "wheel_edit2",
    "gesture": "turn",
    "action": "Choose organ percussion type, level and decay.",
    "short_label": "PERCUSSION",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "423",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L423"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_drawbar.c",
      "lines": "283-297",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_drawbar.c#L283-L297"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "grain_edit1",
    "gesture": "turn",
    "action": "Choose the sample set used for grains.",
    "short_label": "SAMPLE SRC",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "422",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L422"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_grain.c",
      "lines": "436-450",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_grain.c#L436-L450"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "grain_edit2",
    "gesture": "turn",
    "action": "Transpose grain playback in semitones.",
    "short_label": "PITCH",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "423",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L423"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_grain.c",
      "lines": "436-450",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_grain.c#L436-L450"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "swarm_edit1",
    "gesture": "turn",
    "action": "Choose how many oscillators play, from one to six.",
    "short_label": "OSC COUNT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "422",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L422"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_orbit.c",
      "lines": "169-176",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_orbit.c#L169-L176"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "swarm_edit2",
    "gesture": "turn",
    "action": "Set the engine tone cutoff.",
    "short_label": "SWARM TONE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "423",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L423"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_orbit.c",
      "lines": "169-176",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_orbit.c#L169-L176"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "pulse_edit1",
    "gesture": "turn",
    "action": "Set the pulse width.",
    "short_label": "WIDTH",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "422",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L422"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_orbit.c",
      "lines": "177-184",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_orbit.c#L177-L184"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "pulse_edit2",
    "gesture": "turn",
    "action": "Set the engine tone cutoff.",
    "short_label": "PULSE TONE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "423",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L423"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_orbit.c",
      "lines": "177-184",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_orbit.c#L177-L184"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_orbit.c",
      "lines": "92-107",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_orbit.c#L92-L107"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "fm4_edit1",
    "gesture": "turn",
    "action": "Set FM modulation depth.",
    "short_label": "DEPTH",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "422",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L422"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_orbit.c",
      "lines": "185-193",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_orbit.c#L185-L193"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "fm4_edit2",
    "gesture": "turn",
    "action": "Set the engine tone cutoff.",
    "short_label": "FM4 TONE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "423",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L423"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_orbit.c",
      "lines": "185-193",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_orbit.c#L185-L193"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_orbit.c",
      "lines": "110-141",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_orbit.c#L110-L141"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "fm6_edit1",
    "gesture": "turn",
    "action": "Use the patch algorithm or override it with one of 32 algorithms.",
    "short_label": "FM6 ALGO",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "422",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L422"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_fm6.c",
      "lines": "367-382",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_fm6.c#L367-L382"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_fm6.c",
      "lines": "13-24",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_fm6.c#L13-L24"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "fm6_edit2",
    "gesture": "turn",
    "action": "Make the modulator envelopes faster or slower.",
    "short_label": "MOD ENVELOPE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "423",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L423"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_fm6.c",
      "lines": "367-382",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_fm6.c#L367-L382"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_fm6.c",
      "lines": "13-24",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_fm6.c#L13-L24"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "phys_edit1",
    "gesture": "turn",
    "action": "Choose MODAL, STRNG, MEMB or SYMP physical modelling.",
    "short_label": "MODEL",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "422",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L422"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_phys.c",
      "lines": "263-285",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_phys.c#L263-L285"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_phys.c",
      "lines": "7-27",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_phys.c#L7-L27"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_phys.c",
      "lines": "54-70",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_phys.c#L54-L70"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "phys_edit2",
    "gesture": "turn",
    "action": "Set the strike or pluck position, or sympathetic coupling for SYMP.",
    "short_label": "POSITION",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "423",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L423"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_phys.c",
      "lines": "263-285",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_phys.c#L263-L285"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_phys.c",
      "lines": "7-27",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_phys.c#L7-L27"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_phys.c",
      "lines": "54-70",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_phys.c#L54-L70"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "noise_edit1",
    "gesture": "turn",
    "action": "Choose ANLG, DUST, LFSR or META noise.",
    "short_label": "NOISE MODE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "422",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L422"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_noise.c",
      "lines": "259-280",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_noise.c#L259-L280"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_noise.c",
      "lines": "10-14",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_noise.c#L10-L14"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_noise.c",
      "lines": "45-52",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_noise.c#L45-L52"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "noise_edit2",
    "gesture": "turn",
    "action": "Set how strongly note pitch moves filter frequency.",
    "short_label": "TRACKING",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "423",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L423"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_noise.c",
      "lines": "259-280",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_noise.c#L259-L280"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_noise.c",
      "lines": "10-14",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_noise.c#L10-L14"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_noise.c",
      "lines": "45-52",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_noise.c#L45-L52"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "cluster_edit1",
    "gesture": "turn",
    "action": "Set the CLUSTER oscillator COUNT value.",
    "short_label": "COUNT RAW",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "422",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L422"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_op1_cluster.c",
      "lines": "71-90",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_op1_cluster.c#L71-L90"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "cluster_edit2",
    "gesture": "turn",
    "action": "Turning this knob has no effect on this page.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "423",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L423"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_op1_cluster.c",
      "lines": "71-90",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_op1_cluster.c#L71-L90"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "cloud_edit1",
    "gesture": "turn",
    "action": "Move oscillator-grain waveform from sine through triangle to a harmonic spectrum.",
    "short_label": "GRAIN WAVE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "422",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L422"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_cloud.c",
      "lines": "146-161",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_cloud.c#L146-L161"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_cloud.c",
      "lines": "2-8",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_cloud.c#L2-L8"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "cloud_edit2",
    "gesture": "turn",
    "action": "Set oscillator-grain pitch spread.",
    "short_label": "GRAIN DETUNE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "423",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L423"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_cloud.c",
      "lines": "146-161",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_cloud.c#L146-L161"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_cloud.c",
      "lines": "2-8",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_cloud.c#L2-L8"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "analog_filter",
    "gesture": "turn",
    "action": "Choose low-pass, band-pass or high-pass filtering.",
    "short_label": "FILTER TYPE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "424",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L424"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "469-474",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L469-L474"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_analog.c",
      "lines": "161-175",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_analog.c#L161-L175"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "browse",
    "gesture": "turn",
    "action": "Immediately loads a factory or occupied USER sound without a question or sound-edit undo, keeping the track pattern and mix context.",
    "short_label": "CHOOSE SOUND",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "419-427",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L419-L427"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui.c",
      "lines": "378-435",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui.c#L378-L435"
     }
    ]
   },
   {
    "mode": "user",
    "gesture": "turn",
    "action": "Chooses USER slot 1 to 32 and cancels a pending load, erase or save.",
    "short_label": "USER SLOT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "429-446",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L429-L446"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/upreset.c",
      "lines": "290-312",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/upreset.c#L290-L312"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/upreset.c",
      "lines": "356-387",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/upreset.c#L356-L387"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/upreset.c",
      "lines": "416-445",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/upreset.c#L416-L445"
     }
    ]
   },
   {
    "mode": "project",
    "gesture": "turn",
    "action": "Chooses one of four saved sections.",
    "short_label": "PROJECT SLOT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "442",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L442"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "448-459",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L448-L459"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "493-512",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L493-L512"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/project.c",
      "lines": "602-658",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/project.c#L602-L658"
     }
    ]
   },
   {
    "mode": "tools",
    "gesture": "turn",
    "action": "Two positive turns within about 1.5 seconds clear the selected working pattern immediately without a further question, allowing sequence undo and later autosave.",
    "short_label": "CLEAR SEQ",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "350-380",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L350-L380"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "493-537",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L493-L537"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "486-488",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L486-L488"
     }
    ]
   },
   {
    "mode": "punch",
    "gesture": "turn_while_holding:button_fx",
    "action": "Sets the master low-pass or high-pass filter.",
    "short_label": "MASTER FILT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "510-604",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L510-L604"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "turn_while_holding:button_edit",
    "action": "Rotates the working pattern including nudges, fill conditions and locks at once without a question, with sequence undo available.",
    "short_label": "SHIFT EVENTS",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "57-147",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L57-L147"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "544-550",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L544-L550"
     }
    ]
   },
   {
    "mode": "roll",
    "gesture": "turn_while_holding:button_arp",
    "action": "Chooses 1/8, 1/16, 1/32, 32T or 1/64 note repeat.",
    "short_label": "ROLL RATE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "510-604",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L510-L604"
     }
    ]
   },
   {
    "mode": "steps",
    "gesture": "turn_while_holding:button_seq",
    "action": "Sets the note for new synth steps or chooses and auditions the drum lane.",
    "short_label": "STEP PEN",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "510-604",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L510-L604"
     }
    ]
   },
   {
    "mode": "key_scale",
    "gesture": "turn_while_holding:button_sel",
    "action": "On synth tracks, chooses OFF, TRIAD, 7TH, 9TH, SUS4 or POWER one-key chords.",
    "short_label": "CHORD",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "510-604",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L510-L604"
     }
    ]
   },
   {
    "mode": "mix_layer",
    "gesture": "turn_while_holding:button_glo",
    "action": "Sets track 1 level without clearing its mute flag.",
    "short_label": "LIVE LEVEL 1",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "510-604",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L510-L604"
     }
    ]
   },
   {
    "mode": "sections",
    "gesture": "turn_while_holding:button_save",
    "action": "Does nothing in the section layer.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "510-604",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L510-L604"
     }
    ]
   },
   {
    "mode": "steps",
    "gesture": "turn_while_holding:button_seq+key_f3",
    "action": "With synth steps held, transposes their notes; with drum steps held, selects and auditions the lane to edit.",
    "short_label": "STEP PITCH",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "224-287",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L224-L287"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "556-561",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L556-L561"
     }
    ],
    "condition": "F3 is an example; any white step keys can be held, and an edit keeps the step on release."
   },
   {
    "mode": "menu_screen",
    "gesture": "turn",
    "action": "Cycles the display palette.",
    "short_label": "STYLE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_menu.c",
      "lines": "174-237",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L174-L237"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_menu.c",
      "lines": "267-275",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L267-L275"
     }
    ]
   },
   {
    "mode": "menu_lights",
    "gesture": "turn",
    "action": "Sets button background brightness to OFF, LOW, MID or HIGH.",
    "short_label": "BACKLIGHT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_menu.c",
      "lines": "174-237",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L174-L237"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_menu.c",
      "lines": "267-275",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L267-L275"
     }
    ]
   },
   {
    "mode": "menu_audio",
    "gesture": "turn",
    "action": "Turns speaker lowcut on clockwise or off counterclockwise.",
    "short_label": "LOWCUT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_menu.c",
      "lines": "174-237",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L174-L237"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_menu.c",
      "lines": "267-275",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L267-L275"
     }
    ]
   },
   {
    "mode": "menu_system",
    "gesture": "turn",
    "action": "Selects hardware calibration without starting it.",
    "short_label": "CAL ROW",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_menu.c",
      "lines": "174-237",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L174-L237"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_menu.c",
      "lines": "267-275",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L267-L275"
     }
    ]
   },
   {
    "mode": "drum_unavailable",
    "gesture": "turn",
    "action": "Does nothing while this unsupported drum sound page is open.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "391-392",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L391-L392"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "459-499",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L459-L499"
     }
    ]
   }
  ],
  "encoder_knob2": [
   {
    "mode": "record_ready",
    "gesture": "turn",
    "action": "In tempo recording, selects a one-, two- or four-bar length for the selected track.",
    "short_label": "BAR LENGTH",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "905-932",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L905-L932"
     }
    ]
   },
   {
    "mode": "count_in",
    "gesture": "turn",
    "action": "Does nothing on this screen.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "1055-1059",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L1055-L1059"
     }
    ]
   },
   {
    "mode": "free_take",
    "gesture": "turn",
    "action": "Does nothing on this screen.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "1055-1059",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L1055-L1059"
     }
    ]
   },
   {
    "mode": "visualizer",
    "gesture": "turn",
    "action": "Does nothing on this screen.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "1151-1156",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L1151-L1156"
     }
    ]
   },
   {
    "mode": "tape",
    "gesture": "turn",
    "action": "Sets the first step of the captured region.",
    "short_label": "REGION START",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/orbit_ui.c",
      "lines": "4-14",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/orbit_ui.c#L4-L14"
     }
    ]
   },
   {
    "mode": "mixer_level",
    "gesture": "turn",
    "action": "Sets track 2 level, with the first turn only unmuting a muted track.",
    "short_label": "LEVEL 2",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "273-299",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L273-L299"
     }
    ]
   },
   {
    "mode": "mixer_pan",
    "gesture": "turn",
    "action": "Sets track 2 pan.",
    "short_label": "PAN 2",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "273-299",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L273-L299"
     }
    ]
   },
   {
    "mode": "mixer_track",
    "gesture": "turn",
    "action": "Sets selected-track level, with the first turn only unmuting it if muted.",
    "short_label": "TRACK LEVEL",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "273-299",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L273-L299"
     }
    ]
   },
   {
    "mode": "drum_grid",
    "gesture": "turn",
    "action": "Moves the step cursor and auditions that step.",
    "short_label": "DRUM CURSOR",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_studio.c",
      "lines": "580-611",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_studio.c#L580-L611"
     }
    ]
   },
   {
    "mode": "drum_kit",
    "gesture": "turn",
    "action": "Sets the drum track level.",
    "short_label": "DRUM LEVEL",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_studio.c",
      "lines": "612-617",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_studio.c#L612-L617"
     }
    ]
   },
   {
    "mode": "step",
    "gesture": "turn",
    "action": "Transposes all notes at the cursor or adds the last note to an empty step.",
    "short_label": "STEP NOTE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "301-347",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L301-L347"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui.c",
      "lines": "201-225",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui.c#L201-L225"
     }
    ]
   },
   {
    "mode": "song",
    "gesture": "turn",
    "action": "While stopped, assigns section A, B, C or D to the chosen entry.",
    "short_label": "SECTION",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_song.c",
      "lines": "135-153",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_song.c#L135-L153"
     }
    ]
   },
   {
    "mode": "env",
    "gesture": "turn",
    "action": "Set the amplitude decay time, or its note value when envelope sync is on.",
    "short_label": "DECAY",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "407",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L407"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "75-82",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L75-L82"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "216-228",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L216-L228"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/voice.c",
      "lines": "746-764",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/voice.c#L746-L764"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_lofi.c",
      "lines": "79-114",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_lofi.c#L79-L114"
     }
    ],
    "condition": "Synth track only; FM6 amplitude uses its patch envelopes, while LOFI STEP uses its staircase amplitude and ENV release only sets the cutoff after key-up."
   },
   {
    "mode": "env_dest",
    "gesture": "turn",
    "action": "Set the signed depth of the short pitch envelope triggered by a fresh note.",
    "short_label": "ENV PITCH",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "408",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L408"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "79-81",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L79-L81"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "134-138",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L134-L138"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_fm6.c",
      "lines": "13-24",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_fm6.c#L13-L24"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/voice.c",
      "lines": "781-799",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/voice.c#L781-L799"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/voice.c",
      "lines": "286-299",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/voice.c#L286-L299"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit, and FM6 amplitude uses its patch envelopes, ENV filter and shape depths have no effect on it, and the short pitch envelope still works."
   },
   {
    "mode": "lfo",
    "gesture": "turn",
    "action": "Choose the LFO waveform.",
    "short_label": "LFO WAVE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "410",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L410"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "4-10",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L4-L10"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "83-86",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L83-L86"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "lfo2",
    "gesture": "turn",
    "action": "Choose whether a fresh phrase restarts the LFO or leaves it running.",
    "short_label": "TRIGGER",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "411",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L411"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "4-10",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L4-L10"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "134-138",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L134-L138"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "lfo_dest",
    "gesture": "turn",
    "action": "Set the signed LFO depth for the engine filter path.",
    "short_label": "LFO FILTER",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "412",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L412"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "87-90",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L87-L90"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "fx",
    "gesture": "turn",
    "action": "Set the track chorus send.",
    "short_label": "CHORUS SEND",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "413",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L413"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "107-110",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L107-L110"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "filter",
    "gesture": "turn",
    "action": "Turning this knob has no effect on this page.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "414",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L414"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "124",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L124"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "280-287",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L280-L287"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "slicer",
    "gesture": "turn",
    "action": "Choose one of the sixteen slicer patterns.",
    "short_label": "PATTERN",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "415",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L415"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "59-60",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L59-L60"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "119-122",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L119-L122"
     }
    ]
   },
   {
    "mode": "insert",
    "gesture": "turn",
    "action": "Set DRIVE for drive types, BITS for CRUSH, or modulation RATE for PHASR, FLANG and CHOR.",
    "short_label": "INSERT A",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "416",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L416"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "30-36",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L30-L36"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "200-214",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L200-L214"
     }
    ]
   },
   {
    "mode": "insert2",
    "gesture": "turn",
    "action": "Turning this knob has no effect on this page.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "417",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L417"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "129-133",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L129-L133"
     }
    ]
   },
   {
    "mode": "delay",
    "gesture": "turn",
    "action": "Set the shared delay feedback amount.",
    "short_label": "DELAY FDBK",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "418",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L418"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "157-160",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L157-L160"
     }
    ]
   },
   {
    "mode": "reverb_chorus",
    "gesture": "turn",
    "action": "Set the shared reverb damping.",
    "short_label": "DAMPING",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "419",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L419"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "161-164",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L161-L164"
     }
    ]
   },
   {
    "mode": "sel",
    "gesture": "turn",
    "action": "Choose the selected track scale.",
    "short_label": "SCALE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "420",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L420"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "45-48",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L45-L48"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "99-102",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L99-L102"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "61",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L61"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "sel2",
    "gesture": "turn",
    "action": "Spread chord notes in time, rising for positive values and falling for negative values.",
    "short_label": "STRUM",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "421",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L421"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "102",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L102"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "125-126",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L125-L126"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "voice",
    "gesture": "turn",
    "action": "Set the glide time.",
    "short_label": "GLIDE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "426",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L426"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "49-52",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L49-L52"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "111-114",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L111-L114"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "voice2",
    "gesture": "turn",
    "action": "Set the unison detune amount.",
    "short_label": "UNI DETUNE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "427",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L427"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "115-118",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L115-L118"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "perform",
    "gesture": "turn",
    "action": "Change the sound parameter assigned to knob 2, or its engine default when the assignment is DEFAULT.",
    "short_label": "MACRO 2",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "428",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L428"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "237-253",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L237-L253"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "387-390",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L387-L390"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "macros",
    "gesture": "turn",
    "action": "Choose the destination for sound knob 2, or DEFAULT to restore that engine default.",
    "short_label": "ASSIGN 2",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "429",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L429"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "237-253",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L237-L253"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "401-417",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L401-L417"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "global",
    "gesture": "turn",
    "action": "Set the shared swing amount.",
    "short_label": "SWING",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "430",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L430"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "153-156",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L153-L156"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "54",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L54"
     }
    ]
   },
   {
    "mode": "master",
    "gesture": "turn",
    "action": "Set the shared kick-driven ducking amount.",
    "short_label": "DUCKING",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "431",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L431"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "180-183",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L180-L183"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "280-287",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L280-L287"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/fx.c",
      "lines": "716-719",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/fx.c#L716-L719"
     }
    ]
   },
   {
    "mode": "system",
    "gesture": "turn",
    "action": "Choose internal, USB or TRS clock; device settings save automatically once stopped and quiet.",
    "short_label": "CLOCK SOURCE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "432",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L432"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "38-40",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L38-L40"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "165-168",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L165-L168"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/project.c",
      "lines": "1191-1224",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/project.c#L1191-L1224"
     }
    ]
   },
   {
    "mode": "global_drums",
    "gesture": "turn",
    "action": "Sets the drum track level.",
    "short_label": "DRUM LEVEL",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "433",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L433"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "177-179",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L177-L179"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "185-189",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L185-L189"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/project.c",
      "lines": "1191-1224",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/project.c#L1191-L1224"
     }
    ]
   },
   {
    "mode": "midi",
    "gesture": "turn",
    "action": "Choose the track 2 MIDI channel or OFF for incoming and outgoing notes; device settings save automatically once stopped and quiet.",
    "short_label": "CHANNEL 2",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "434",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L434"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "177-189",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L177-L189"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui.c",
      "lines": "155-185",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui.c#L155-L185"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/project.c",
      "lines": "1191-1224",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/project.c#L1191-L1224"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "75-83",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L75-L83"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "76-85",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L76-L85"
     }
    ]
   },
   {
    "mode": "midi2",
    "gesture": "turn",
    "action": "Send unmatched incoming channels to the selected track or ignore them; device settings save automatically once stopped and quiet.",
    "short_label": "OTHER MIDI",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "435",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L435"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "38-40",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L38-L40"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "165-167",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L165-L167"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "189-197",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L189-L197"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/project.c",
      "lines": "1191-1224",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/project.c#L1191-L1224"
     }
    ]
   },
   {
    "mode": "texture",
    "gesture": "turn",
    "action": "Set the texture level.",
    "short_label": "LEVEL",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "438",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L438"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "14-17",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L14-L17"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "190-193",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L190-L193"
     }
    ]
   },
   {
    "mode": "texture2",
    "gesture": "turn",
    "action": "Run the texture during playback or continuously.",
    "short_label": "WHEN",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "439",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L439"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "14-17",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L14-L17"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "194-196",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L194-L196"
     }
    ]
   },
   {
    "mode": "arp",
    "gesture": "turn",
    "action": "Choose the arpeggiator tempo division.",
    "short_label": "ARP RATE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "444",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L444"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "37-42",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L37-L42"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "91-94",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L91-L94"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "arp2",
    "gesture": "turn",
    "action": "Set the chance that an arpeggiator note plays.",
    "short_label": "PROBABILITY",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "445",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L445"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "95-98",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L95-L98"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "53",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L53"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "analog_edit1",
    "gesture": "turn",
    "action": "Set the detuning between the two oscillators.",
    "short_label": "OSC DETUNE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "422",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L422"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_analog.c",
      "lines": "161-175",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_analog.c#L161-L175"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "analog_edit2",
    "gesture": "turn",
    "action": "Set the filter resonance.",
    "short_label": "RESONANCE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "423",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L423"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_analog.c",
      "lines": "161-175",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_analog.c#L161-L175"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "digital_edit1",
    "gesture": "turn",
    "action": "Choose operator 2 frequency relative to the played note.",
    "short_label": "RATIO 2",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "422",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L422"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_digital.c",
      "lines": "145-159",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_digital.c#L145-L159"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "digital_edit2",
    "gesture": "turn",
    "action": "Set the modulator-envelope decay time.",
    "short_label": "MOD DECAY",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "423",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L423"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_digital.c",
      "lines": "145-159",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_digital.c#L145-L159"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "phase_edit1",
    "gesture": "turn",
    "action": "Choose the alternate waveform or disable it.",
    "short_label": "WAVE 2",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "422",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L422"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_phase.c",
      "lines": "191-205",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_phase.c#L191-L205"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "phase_edit2",
    "gesture": "turn",
    "action": "Choose mixed or ring-modulated oscillator lines.",
    "short_label": "LINE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "423",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L423"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_phase.c",
      "lines": "191-205",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_phase.c#L191-L205"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "lofi_edit1",
    "gesture": "turn",
    "action": "Choose the chip waveform.",
    "short_label": "CHIP WAVE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "422",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L422"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_lofi.c",
      "lines": "218-232",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_lofi.c#L218-L232"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_lofi.c",
      "lines": "42-56",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_lofi.c#L42-L56"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "lofi_edit2",
    "gesture": "turn",
    "action": "Set the chip vibrato amount.",
    "short_label": "VIBRATO",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "423",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L423"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_lofi.c",
      "lines": "218-232",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_lofi.c#L218-L232"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_lofi.c",
      "lines": "42-56",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_lofi.c#L42-L56"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "sample_edit1",
    "gesture": "turn",
    "action": "Shift sample pitch in semitones.",
    "short_label": "TUNE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "422",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L422"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_sample.c",
      "lines": "204-218",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_sample.c#L204-L218"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "sample_edit2",
    "gesture": "turn",
    "action": "Turning this knob has no effect on this page.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "423",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L423"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_sample.c",
      "lines": "204-218",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_sample.c#L204-L218"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "voice_edit1",
    "gesture": "turn",
    "action": "Set the destination vowel position.",
    "short_label": "VOWEL 2",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "422",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L422"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_formant.c",
      "lines": "227-241",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_formant.c#L227-L241"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "voice_edit2",
    "gesture": "turn",
    "action": "Set the breath-noise amount.",
    "short_label": "BREATH",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "423",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L423"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_formant.c",
      "lines": "227-241",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_formant.c#L227-L241"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "trio_edit1",
    "gesture": "turn",
    "action": "Set oscillator 2 pitch relative to the played note.",
    "short_label": "INTERVAL 2",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "422",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L422"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_trio.c",
      "lines": "380-394",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_trio.c#L380-L394"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "trio_edit2",
    "gesture": "turn",
    "action": "Set the filter cutoff.",
    "short_label": "CUTOFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "423",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L423"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_trio.c",
      "lines": "380-394",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_trio.c#L380-L394"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "wheel_edit1",
    "gesture": "turn",
    "action": "Adjust the registration lower drawbars.",
    "short_label": "SUB",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "422",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L422"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_drawbar.c",
      "lines": "283-297",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_drawbar.c#L283-L297"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "wheel_edit2",
    "gesture": "turn",
    "action": "Set organ key-click level.",
    "short_label": "CLICK",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "423",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L423"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_drawbar.c",
      "lines": "283-297",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_drawbar.c#L283-L297"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "grain_edit1",
    "gesture": "turn",
    "action": "Set the centre position within the sample zone.",
    "short_label": "POSITION",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "422",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L422"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_grain.c",
      "lines": "436-450",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_grain.c#L436-L450"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "grain_edit2",
    "gesture": "turn",
    "action": "Set random position spread and grain-timing variation.",
    "short_label": "GRAIN SPREAD",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "423",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L423"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_grain.c",
      "lines": "436-450",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_grain.c#L436-L450"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "swarm_edit1",
    "gesture": "turn",
    "action": "Set the frequency spread between oscillators.",
    "short_label": "OSC SPREAD",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "422",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L422"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_orbit.c",
      "lines": "169-176",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_orbit.c#L169-L176"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "swarm_edit2",
    "gesture": "turn",
    "action": "Turning this knob has no effect on this page.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "423",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L423"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_orbit.c",
      "lines": "169-176",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_orbit.c#L169-L176"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "pulse_edit1",
    "gesture": "turn",
    "action": "Set oscillator detuning.",
    "short_label": "PULSE DETUNE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "422",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L422"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_orbit.c",
      "lines": "177-184",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_orbit.c#L177-L184"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "pulse_edit2",
    "gesture": "turn",
    "action": "Set the balance between the width-modulated pulse and a detuned square oscillator.",
    "short_label": "MIX",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "423",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L423"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_orbit.c",
      "lines": "177-184",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_orbit.c#L177-L184"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_orbit.c",
      "lines": "92-107",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_orbit.c#L92-L107"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "fm4_edit1",
    "gesture": "turn",
    "action": "Choose operator 2 frequency relative to the played note.",
    "short_label": "RATIO 2",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "422",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L422"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_orbit.c",
      "lines": "185-193",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_orbit.c#L185-L193"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "fm4_edit2",
    "gesture": "turn",
    "action": "Choose CHAIN, PAIRS or FAN routing for the FM operators.",
    "short_label": "ROUTE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "423",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L423"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_orbit.c",
      "lines": "185-193",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_orbit.c#L185-L193"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_orbit.c",
      "lines": "110-141",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_orbit.c#L110-L141"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "fm6_edit1",
    "gesture": "turn",
    "action": "Offset the patch feedback amount.",
    "short_label": "FM6 FDBK",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "422",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L422"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_fm6.c",
      "lines": "367-382",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_fm6.c#L367-L382"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_fm6.c",
      "lines": "13-24",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_fm6.c#L13-L24"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "fm6_edit2",
    "gesture": "turn",
    "action": "Offset modulator velocity sensitivity.",
    "short_label": "VELOCITY",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "423",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L423"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_fm6.c",
      "lines": "367-382",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_fm6.c#L367-L382"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_fm6.c",
      "lines": "13-24",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_fm6.c#L13-L24"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "phys_edit1",
    "gesture": "turn",
    "action": "Set resonator structure, membrane harmonicity or the sympathetic-string chord for the chosen model.",
    "short_label": "STRUCTURE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "422",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L422"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_phys.c",
      "lines": "263-285",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_phys.c#L263-L285"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_phys.c",
      "lines": "7-27",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_phys.c#L7-L27"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_phys.c",
      "lines": "54-70",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_phys.c#L54-L70"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "phys_edit2",
    "gesture": "turn",
    "action": "Set how strongly velocity brightens, lengthens and raises the strike.",
    "short_label": "ACCENT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "423",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L423"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_phys.c",
      "lines": "263-285",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_phys.c#L263-L285"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_phys.c",
      "lines": "7-27",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_phys.c#L7-L27"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_phys.c",
      "lines": "54-70",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_phys.c#L54-L70"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "noise_edit1",
    "gesture": "turn",
    "action": "Move the source colour from white through pink to brown noise.",
    "short_label": "COLOUR",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "422",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L422"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_noise.c",
      "lines": "259-280",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_noise.c#L259-L280"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_noise.c",
      "lines": "10-14",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_noise.c#L10-L14"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_noise.c",
      "lines": "45-52",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_noise.c#L45-L52"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "noise_edit2",
    "gesture": "turn",
    "action": "Set dust density, or register length for LFSR and META.",
    "short_label": "DENSITY",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "423",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L423"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_noise.c",
      "lines": "259-280",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_noise.c#L259-L280"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_noise.c",
      "lines": "10-14",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_noise.c#L10-L14"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_noise.c",
      "lines": "45-52",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_noise.c#L45-L52"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "cluster_edit1",
    "gesture": "turn",
    "action": "Set the CLUSTER oscillator WAVE value.",
    "short_label": "CLUSTER WAVE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "422",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L422"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_op1_cluster.c",
      "lines": "71-90",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_op1_cluster.c#L71-L90"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "cluster_edit2",
    "gesture": "turn",
    "action": "Turning this knob has no effect on this page.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "423",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L423"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_op1_cluster.c",
      "lines": "71-90",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_op1_cluster.c#L71-L90"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "cloud_edit1",
    "gesture": "turn",
    "action": "Set the oscillator-grain duration.",
    "short_label": "SIZE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "422",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L422"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_cloud.c",
      "lines": "146-161",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_cloud.c#L146-L161"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_cloud.c",
      "lines": "2-8",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_cloud.c#L2-L8"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "cloud_edit2",
    "gesture": "turn",
    "action": "Set an upward or downward pitch sweep inside each grain.",
    "short_label": "CHIRP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "423",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L423"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_cloud.c",
      "lines": "146-161",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_cloud.c#L146-L161"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_cloud.c",
      "lines": "2-8",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_cloud.c#L2-L8"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "analog_filter",
    "gesture": "turn",
    "action": "Set the filter cutoff.",
    "short_label": "CUTOFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "424",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L424"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "469-474",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L469-L474"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_analog.c",
      "lines": "161-175",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_analog.c#L161-L175"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "browse",
    "gesture": "turn",
    "action": "Immediately loads the next engine’s first sound and default macro map without a question or sound-edit undo, keeping the track pattern and mix context.",
    "short_label": "ENGINE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "419-427",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L419-L427"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui.c",
      "lines": "378-435",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui.c#L378-L435"
     }
    ]
   },
   {
    "mode": "user",
    "gesture": "turn",
    "action": "Two positive turns within about 1.5 seconds replace the selected synth sound and macro map from this USER slot, even while playing, with no load undo and its pattern and mix preserved.",
    "short_label": "LOAD SOUND",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "429-446",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L429-L446"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/upreset.c",
      "lines": "290-312",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/upreset.c#L290-L312"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/upreset.c",
      "lines": "356-387",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/upreset.c#L356-L387"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/upreset.c",
      "lines": "416-445",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/upreset.c#L416-L445"
     }
    ]
   },
   {
    "mode": "project",
    "gesture": "turn",
    "action": "While stopped, two positive turns within about 1.5 seconds erase the chosen saved section at once without an erase undo and remove its entries from song order, leaving working music separate and saving changed song order later.",
    "short_label": "ERASE SLOT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "448-459",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L448-L459"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/project.c",
      "lines": "618-646",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/project.c#L618-L646"
     }
    ]
   },
   {
    "mode": "tools",
    "gesture": "turn",
    "action": "On a synth track, two positive turns within about 1.5 seconds load the current engine’s first sound and default macros immediately without a sound undo, preserving the pattern.",
    "short_label": "INIT SOUND",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "350-380",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L350-L380"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "493-537",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L493-L537"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "486-488",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L486-L488"
     }
    ]
   },
   {
    "mode": "punch",
    "gesture": "turn_while_holding:button_fx",
    "action": "Sets master degradation.",
    "short_label": "DUST",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "510-604",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L510-L604"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "turn_while_holding:button_edit",
    "action": "Duplicates the pattern and its details to twice the length or halves its active length at once without a question, refusing a doubled pattern above 64 steps or 24 locks and allowing sequence undo.",
    "short_label": "DOUBLE HALF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "57-147",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L57-L147"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "544-550",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L544-L550"
     }
    ]
   },
   {
    "mode": "roll",
    "gesture": "turn_while_holding:button_arp",
    "action": "Does nothing in the roll layer.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "510-604",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L510-L604"
     }
    ]
   },
   {
    "mode": "steps",
    "gesture": "turn_while_holding:button_seq",
    "action": "Sets the track division from 1/32 through two bars, including triplets.",
    "short_label": "STEP DIV",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "510-604",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L510-L604"
     }
    ]
   },
   {
    "mode": "key_scale",
    "gesture": "turn_while_holding:button_sel",
    "action": "Chooses the scale for all three synth tracks.",
    "short_label": "SONG SCALE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "510-604",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L510-L604"
     }
    ]
   },
   {
    "mode": "mix_layer",
    "gesture": "turn_while_holding:button_glo",
    "action": "Sets track 2 level without clearing its mute flag.",
    "short_label": "LIVE LEVEL 2",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "510-604",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L510-L604"
     }
    ]
   },
   {
    "mode": "sections",
    "gesture": "turn_while_holding:button_save",
    "action": "Does nothing in the section layer.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "510-604",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L510-L604"
     }
    ]
   },
   {
    "mode": "steps",
    "gesture": "turn_while_holding:button_seq+key_f3",
    "action": "With synth steps held, sets their velocity from 1 to 127 and removes accent; with drum steps held, sets the selected lane’s ghost, soft, normal or hard level.",
    "short_label": "STEP LEVEL",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "224-287",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L224-L287"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "556-561",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L556-L561"
     }
    ],
    "condition": "F3 is an example; any white step keys can be held, and an edit keeps the step on release."
   },
   {
    "mode": "menu_screen",
    "gesture": "turn",
    "action": "Turns the large value display on clockwise or off counterclockwise.",
    "short_label": "ZOOM",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_menu.c",
      "lines": "174-237",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L174-L237"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_menu.c",
      "lines": "267-275",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L267-L275"
     }
    ]
   },
   {
    "mode": "menu_lights",
    "gesture": "turn",
    "action": "Chooses no key backlight, C keys, white keys or all keys, raising background brightness to LOW if needed.",
    "short_label": "KEY LIGHTS",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_menu.c",
      "lines": "174-237",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L174-L237"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_menu.c",
      "lines": "267-275",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L267-L275"
     }
    ]
   },
   {
    "mode": "menu_audio",
    "gesture": "turn",
    "action": "Chooses fixed FULL USB audio level clockwise or MASTER volume control counterclockwise.",
    "short_label": "USB LEVEL",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_menu.c",
      "lines": "174-237",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L174-L237"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_menu.c",
      "lines": "267-275",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L267-L275"
     }
    ]
   },
   {
    "mode": "menu_system",
    "gesture": "turn",
    "action": "Selects MIDI LEARN CLEAR without clearing anything.",
    "short_label": "CLEAR CC ROW",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_menu.c",
      "lines": "174-237",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L174-L237"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_menu.c",
      "lines": "267-275",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L267-L275"
     }
    ]
   },
   {
    "mode": "drum_unavailable",
    "gesture": "turn",
    "action": "Does nothing while this unsupported drum sound page is open.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "391-392",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L391-L392"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "459-499",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L459-L499"
     }
    ]
   }
  ],
  "encoder_knob3": [
   {
    "mode": "record_ready",
    "gesture": "turn",
    "action": "In tempo recording, chooses first-note start or a PLAY-triggered count-in, with the choice saved later in settings.",
    "short_label": "START RULE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "905-932",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L905-L932"
     }
    ]
   },
   {
    "mode": "count_in",
    "gesture": "turn",
    "action": "Does nothing on this screen.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "1055-1059",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L1055-L1059"
     }
    ]
   },
   {
    "mode": "free_take",
    "gesture": "turn",
    "action": "Does nothing on this screen.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "1055-1059",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L1055-L1059"
     }
    ]
   },
   {
    "mode": "visualizer",
    "gesture": "turn",
    "action": "Does nothing on this screen.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "1151-1156",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L1151-L1156"
     }
    ]
   },
   {
    "mode": "tape",
    "gesture": "turn",
    "action": "Sets the included last step of the captured region.",
    "short_label": "REGION END",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/orbit_ui.c",
      "lines": "4-14",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/orbit_ui.c#L4-L14"
     }
    ]
   },
   {
    "mode": "mixer_level",
    "gesture": "turn",
    "action": "Sets track 3 level, with the first turn only unmuting a muted track.",
    "short_label": "LEVEL 3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "273-299",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L273-L299"
     }
    ]
   },
   {
    "mode": "mixer_pan",
    "gesture": "turn",
    "action": "Sets track 3 pan.",
    "short_label": "PAN 3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "273-299",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L273-L299"
     }
    ]
   },
   {
    "mode": "mixer_track",
    "gesture": "turn",
    "action": "Sets selected-track pattern length from 1 to 64 steps.",
    "short_label": "TRACK LENGTH",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "273-299",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L273-L299"
     }
    ]
   },
   {
    "mode": "drum_grid",
    "gesture": "turn",
    "action": "Turning right sets the selected hit and left removes it immediately without a question, clearing details when the step becomes empty and allowing sequence undo.",
    "short_label": "HIT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_studio.c",
      "lines": "580-611",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_studio.c#L580-L611"
     }
    ]
   },
   {
    "mode": "drum_kit",
    "gesture": "turn",
    "action": "Sets the drum reverb send.",
    "short_label": "DRUM REVERB",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_studio.c",
      "lines": "612-617",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_studio.c#L612-L617"
     }
    ]
   },
   {
    "mode": "step",
    "gesture": "turn",
    "action": "On a note, extends or shortens it through tie steps until the next note or pattern end; on a non-note, selects NOTE, TIE or REST.",
    "short_label": "NOTE LENGTH",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "301-347",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L301-L347"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui.c",
      "lines": "201-225",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui.c#L201-L225"
     }
    ]
   },
   {
    "mode": "song",
    "gesture": "turn",
    "action": "While stopped, sets how many bars the chosen section plays from 1 to 64.",
    "short_label": "SECTION BARS",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_song.c",
      "lines": "135-153",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_song.c#L135-L153"
     }
    ]
   },
   {
    "mode": "env",
    "gesture": "turn",
    "action": "Set the amplitude sustain level.",
    "short_label": "SUSTAIN",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "407",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L407"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "75-82",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L75-L82"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "216-228",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L216-L228"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/voice.c",
      "lines": "746-764",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/voice.c#L746-L764"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_lofi.c",
      "lines": "79-114",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_lofi.c#L79-L114"
     }
    ],
    "condition": "Synth track only; FM6 amplitude uses its patch envelopes, while LOFI STEP uses its staircase amplitude and ENV release only sets the cutoff after key-up."
   },
   {
    "mode": "env_dest",
    "gesture": "turn",
    "action": "Set the signed envelope depth for the engine shape path.",
    "short_label": "ENV SHAPE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "408",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L408"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "79-81",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L79-L81"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "134-138",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L134-L138"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_fm6.c",
      "lines": "13-24",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_fm6.c#L13-L24"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/voice.c",
      "lines": "781-799",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/voice.c#L781-L799"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/voice.c",
      "lines": "286-299",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/voice.c#L286-L299"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit, and FM6 amplitude uses its patch envelopes, ENV filter and shape depths have no effect on it, and the short pitch envelope still works."
   },
   {
    "mode": "lfo",
    "gesture": "turn",
    "action": "Set the LFO starting phase.",
    "short_label": "PHASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "410",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L410"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "4-10",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L4-L10"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "83-86",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L83-L86"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "lfo2",
    "gesture": "turn",
    "action": "Choose bipolar or one-sided LFO movement.",
    "short_label": "POLARITY",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "411",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L411"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "4-10",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L4-L10"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "134-138",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L134-L138"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "lfo_dest",
    "gesture": "turn",
    "action": "Set the signed LFO depth for the engine shape path.",
    "short_label": "LFO SHAPE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "412",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L412"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "87-90",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L87-L90"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "fx",
    "gesture": "turn",
    "action": "Set the track delay send.",
    "short_label": "DELAY SEND",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "413",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L413"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "107-110",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L107-L110"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "filter",
    "gesture": "turn",
    "action": "Turning this knob has no effect on this page.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "414",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L414"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "124",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L124"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "280-287",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L280-L287"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "slicer",
    "gesture": "turn",
    "action": "Choose the slicer tempo division.",
    "short_label": "RATE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "415",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L415"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "59-60",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L59-L60"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "119-122",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L119-L122"
     }
    ]
   },
   {
    "mode": "insert",
    "gesture": "turn",
    "action": "Set TONE for drive types, sample RATE for CRUSH, or DEPTH for PHASR, FLANG and CHOR.",
    "short_label": "INSERT B",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "416",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L416"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "30-36",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L30-L36"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "200-214",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L200-L214"
     }
    ]
   },
   {
    "mode": "insert2",
    "gesture": "turn",
    "action": "Turning this knob has no effect on this page.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "417",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L417"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "129-133",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L129-L133"
     }
    ]
   },
   {
    "mode": "delay",
    "gesture": "turn",
    "action": "Set the shared delay colour.",
    "short_label": "COLOUR",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "418",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L418"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "157-160",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L157-L160"
     }
    ]
   },
   {
    "mode": "reverb_chorus",
    "gesture": "turn",
    "action": "Set the shared chorus speed.",
    "short_label": "CHORUS RATE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "419",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L419"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "161-164",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L161-L164"
     }
    ]
   },
   {
    "mode": "sel",
    "gesture": "turn",
    "action": "Choose chromatic keys, snapped pitches or a scale spread over white keys.",
    "short_label": "QUANTISE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "420",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L420"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "45-48",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L45-L48"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "99-102",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L99-L102"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "61",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L61"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "sel2",
    "gesture": "turn",
    "action": "Switch chord voice leading on or off.",
    "short_label": "VOICE LEAD",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "421",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L421"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "102",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L102"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "125-126",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L125-L126"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "voice",
    "gesture": "turn",
    "action": "Choose a fixed glide rate or a fixed glide duration.",
    "short_label": "GLIDE MODE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "426",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L426"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "49-52",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L49-L52"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "111-114",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L111-L114"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "voice2",
    "gesture": "turn",
    "action": "Place the selected track in the stereo field.",
    "short_label": "PAN",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "427",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L427"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "115-118",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L115-L118"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "perform",
    "gesture": "turn",
    "action": "Change the sound parameter assigned to knob 3, or its engine default when the assignment is DEFAULT.",
    "short_label": "MACRO 3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "428",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L428"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "237-253",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L237-L253"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "387-390",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L387-L390"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "macros",
    "gesture": "turn",
    "action": "Choose the destination for sound knob 3, or DEFAULT to restore that engine default.",
    "short_label": "ASSIGN 3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "429",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L429"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "237-253",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L237-L253"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "401-417",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L401-L417"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "global",
    "gesture": "turn",
    "action": "Choose no metronome, metronome while recording, or metronome throughout playback.",
    "short_label": "CLICK",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "430",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L430"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "153-156",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L153-L156"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "54",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L54"
     }
    ]
   },
   {
    "mode": "master",
    "gesture": "turn",
    "action": "Close the master low-pass to the left or high-pass to the right, with the centre open.",
    "short_label": "MASTER FILT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "431",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L431"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "180-183",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L180-L183"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "280-287",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L280-L287"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/fx.c",
      "lines": "716-719",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/fx.c#L716-L719"
     }
    ]
   },
   {
    "mode": "system",
    "gesture": "turn",
    "action": "Accept normal note routing, clock only, or one chosen channel on the selected track; device settings save automatically once stopped and quiet.",
    "short_label": "MIDI IN",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "432",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L432"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "38-40",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L38-L40"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "165-168",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L165-L168"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/project.c",
      "lines": "1191-1224",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/project.c#L1191-L1224"
     }
    ]
   },
   {
    "mode": "global_drums",
    "gesture": "turn",
    "action": "Set the drum-track reverb send.",
    "short_label": "REVERB SEND",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "433",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L433"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "177-179",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L177-L179"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "185-189",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L185-L189"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/project.c",
      "lines": "1191-1224",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/project.c#L1191-L1224"
     }
    ]
   },
   {
    "mode": "midi",
    "gesture": "turn",
    "action": "Choose the track 3 MIDI channel or OFF for incoming and outgoing notes; device settings save automatically once stopped and quiet.",
    "short_label": "CHANNEL 3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "434",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L434"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "177-189",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L177-L189"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui.c",
      "lines": "155-185",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui.c#L155-L185"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/project.c",
      "lines": "1191-1224",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/project.c#L1191-L1224"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "75-83",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L75-L83"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "76-85",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L76-L85"
     }
    ]
   },
   {
    "mode": "midi2",
    "gesture": "turn",
    "action": "Choose outgoing keyboard notes only or keyboard and sequencer notes; device settings save automatically once stopped and quiet.",
    "short_label": "MIDI OUT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "435",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L435"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "38-40",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L38-L40"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "165-167",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L165-L167"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "189-197",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L189-L197"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/project.c",
      "lines": "1191-1224",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/project.c#L1191-L1224"
     }
    ]
   },
   {
    "mode": "texture",
    "gesture": "turn",
    "action": "Close the texture low-pass to the left or high-pass to the right, with the centre open.",
    "short_label": "TONE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "438",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L438"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "14-17",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L14-L17"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "190-193",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L190-L193"
     }
    ]
   },
   {
    "mode": "texture2",
    "gesture": "turn",
    "action": "Switch kick-driven ducking of the texture on or off.",
    "short_label": "DUCKING",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "439",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L439"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "14-17",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L14-L17"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "194-196",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L194-L196"
     }
    ]
   },
   {
    "mode": "arp",
    "gesture": "turn",
    "action": "Set the arpeggiator span from one to four octaves.",
    "short_label": "OCTAVES",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "444",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L444"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "37-42",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L37-L42"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "91-94",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L91-L94"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "arp2",
    "gesture": "turn",
    "action": "Keep the arpeggiator chord after the keys are released or require held keys.",
    "short_label": "HOLD",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "445",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L445"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "95-98",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L95-L98"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "53",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L53"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "analog_edit1",
    "gesture": "turn",
    "action": "Set the balance of the two oscillators.",
    "short_label": "MIX",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "422",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L422"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_analog.c",
      "lines": "161-175",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_analog.c#L161-L175"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "analog_edit2",
    "gesture": "turn",
    "action": "Set the engine drive amount.",
    "short_label": "FILTER DRIVE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "423",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L423"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_analog.c",
      "lines": "161-175",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_analog.c#L161-L175"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "digital_edit1",
    "gesture": "turn",
    "action": "Choose operator 3 frequency relative to the played note.",
    "short_label": "RATIO 3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "422",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L422"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_digital.c",
      "lines": "145-159",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_digital.c#L145-L159"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "digital_edit2",
    "gesture": "turn",
    "action": "Set operator 4 feedback.",
    "short_label": "FEEDBACK",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "423",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L423"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_digital.c",
      "lines": "145-159",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_digital.c#L145-L159"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "phase_edit1",
    "gesture": "turn",
    "action": "Set the phase-distortion amount.",
    "short_label": "DCW",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "422",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L422"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_phase.c",
      "lines": "191-205",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_phase.c#L191-L205"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "phase_edit2",
    "gesture": "turn",
    "action": "Set the sub-oscillator amount.",
    "short_label": "SUB",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "423",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L423"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_phase.c",
      "lines": "191-205",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_phase.c#L191-L205"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "lofi_edit1",
    "gesture": "turn",
    "action": "Set pulse width, or choose a wavetable when WAVE is WRAM.",
    "short_label": "DUTY",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "422",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L422"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_lofi.c",
      "lines": "218-232",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_lofi.c#L218-L232"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_lofi.c",
      "lines": "42-56",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_lofi.c#L42-L56"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "lofi_edit2",
    "gesture": "turn",
    "action": "Choose the chip arpeggio pattern.",
    "short_label": "ARP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "423",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L423"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_lofi.c",
      "lines": "218-232",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_lofi.c#L218-L232"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_lofi.c",
      "lines": "42-56",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_lofi.c#L42-L56"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "sample_edit1",
    "gesture": "turn",
    "action": "Set sample bit reduction.",
    "short_label": "BITS",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "422",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L422"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_sample.c",
      "lines": "204-218",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_sample.c#L204-L218"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "sample_edit2",
    "gesture": "turn",
    "action": "Set the sample drive amount.",
    "short_label": "SAMPLE DRIVE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "423",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L423"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_sample.c",
      "lines": "204-218",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_sample.c#L204-L218"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "voice_edit1",
    "gesture": "turn",
    "action": "Set the time taken to move between vowels.",
    "short_label": "TALK",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "422",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L422"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_formant.c",
      "lines": "227-241",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_formant.c#L227-L241"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "voice_edit2",
    "gesture": "turn",
    "action": "Set the formant resonance.",
    "short_label": "Q",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "423",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L423"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_formant.c",
      "lines": "227-241",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_formant.c#L227-L241"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "trio_edit1",
    "gesture": "turn",
    "action": "Set oscillator 3 pitch relative to the played note.",
    "short_label": "INTERVAL 3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "422",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L422"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_trio.c",
      "lines": "380-394",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_trio.c#L380-L394"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "trio_edit2",
    "gesture": "turn",
    "action": "Set the filter resonance.",
    "short_label": "RESONANCE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "423",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L423"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_trio.c",
      "lines": "380-394",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_trio.c#L380-L394"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "wheel_edit1",
    "gesture": "turn",
    "action": "Adjust the registration middle drawbars.",
    "short_label": "BODY",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "422",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L422"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_drawbar.c",
      "lines": "283-297",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_drawbar.c#L283-L297"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "wheel_edit2",
    "gesture": "turn",
    "action": "Set the engine drive amount.",
    "short_label": "ORGAN DRIVE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "423",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L423"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_drawbar.c",
      "lines": "283-297",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_drawbar.c#L283-L297"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "grain_edit1",
    "gesture": "turn",
    "action": "Set the grain duration.",
    "short_label": "SIZE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "422",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L422"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_grain.c",
      "lines": "436-450",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_grain.c#L436-L450"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "grain_edit2",
    "gesture": "turn",
    "action": "Set random pitch spread and the share of reversed grains.",
    "short_label": "RANDOM",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "423",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L423"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_grain.c",
      "lines": "436-450",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_grain.c#L436-L450"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "swarm_edit1",
    "gesture": "turn",
    "action": "Set the upper-harmonic amount.",
    "short_label": "PARTIAL",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "422",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L422"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_orbit.c",
      "lines": "169-176",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_orbit.c#L169-L176"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "swarm_edit2",
    "gesture": "turn",
    "action": "Turning this knob has no effect on this page.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "423",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L423"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_orbit.c",
      "lines": "169-176",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_orbit.c#L169-L176"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "pulse_edit1",
    "gesture": "turn",
    "action": "Set pulse-width modulation depth.",
    "short_label": "PWM",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "422",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L422"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_orbit.c",
      "lines": "177-184",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_orbit.c#L177-L184"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "pulse_edit2",
    "gesture": "turn",
    "action": "Turning this knob has no effect on this page.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "423",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L423"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_orbit.c",
      "lines": "177-184",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_orbit.c#L177-L184"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_orbit.c",
      "lines": "92-107",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_orbit.c#L92-L107"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "fm4_edit1",
    "gesture": "turn",
    "action": "Choose operator 3 frequency relative to the played note.",
    "short_label": "RATIO 3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "422",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L422"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_orbit.c",
      "lines": "185-193",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_orbit.c#L185-L193"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "fm4_edit2",
    "gesture": "turn",
    "action": "Set the envelope effect on FM depth.",
    "short_label": "ENVELOPE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "423",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L423"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_orbit.c",
      "lines": "185-193",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_orbit.c#L185-L193"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_orbit.c",
      "lines": "110-141",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_orbit.c#L110-L141"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "fm6_edit1",
    "gesture": "turn",
    "action": "Offset the FM modulator levels.",
    "short_label": "MOD LEVEL",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "422",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L422"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_fm6.c",
      "lines": "367-382",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_fm6.c#L367-L382"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_fm6.c",
      "lines": "13-24",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_fm6.c#L13-L24"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "fm6_edit2",
    "gesture": "turn",
    "action": "Spread the carrier pitches apart.",
    "short_label": "DETUNE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "423",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L423"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_fm6.c",
      "lines": "367-382",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_fm6.c#L367-L382"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_fm6.c",
      "lines": "13-24",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_fm6.c#L13-L24"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "phys_edit1",
    "gesture": "turn",
    "action": "Set the exciter brightness and resonator brightness.",
    "short_label": "BRIGHTNESS",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "422",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L422"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_phys.c",
      "lines": "263-285",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_phys.c#L263-L285"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_phys.c",
      "lines": "7-27",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_phys.c#L7-L27"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_phys.c",
      "lines": "54-70",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_phys.c#L54-L70"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "phys_edit2",
    "gesture": "turn",
    "action": "Set sustained excitation for MODAL or STRNG, pitch drop for MEMB, or bridge buzz for SYMP.",
    "short_label": "BOW",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "423",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L423"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_phys.c",
      "lines": "263-285",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_phys.c#L263-L285"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_phys.c",
      "lines": "7-27",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_phys.c#L7-L27"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_phys.c",
      "lines": "54-70",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_phys.c#L54-L70"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "noise_edit1",
    "gesture": "turn",
    "action": "Set the noise filter frequency.",
    "short_label": "FREQUENCY",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "422",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L422"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_noise.c",
      "lines": "259-280",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_noise.c#L259-L280"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_noise.c",
      "lines": "10-14",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_noise.c#L10-L14"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_noise.c",
      "lines": "45-52",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_noise.c#L45-L52"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "noise_edit2",
    "gesture": "turn",
    "action": "Set slow random variation of noise frequency and level.",
    "short_label": "DRIFT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "423",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L423"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_noise.c",
      "lines": "259-280",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_noise.c#L259-L280"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_noise.c",
      "lines": "10-14",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_noise.c#L10-L14"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_noise.c",
      "lines": "45-52",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_noise.c#L45-L52"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "cluster_edit1",
    "gesture": "turn",
    "action": "Set the CLUSTER oscillator CURVE value.",
    "short_label": "CURVE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "422",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L422"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_op1_cluster.c",
      "lines": "71-90",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_op1_cluster.c#L71-L90"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "cluster_edit2",
    "gesture": "turn",
    "action": "Turning this knob has no effect on this page.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "423",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L423"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_op1_cluster.c",
      "lines": "71-90",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_op1_cluster.c#L71-L90"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "cloud_edit1",
    "gesture": "turn",
    "action": "Set how often oscillator grains start.",
    "short_label": "DENSITY",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "422",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L422"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_cloud.c",
      "lines": "146-161",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_cloud.c#L146-L161"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_cloud.c",
      "lines": "2-8",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_cloud.c#L2-L8"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "cloud_edit2",
    "gesture": "turn",
    "action": "Set the chance of adding fifths and octaves to grains.",
    "short_label": "STACK",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "423",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L423"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_cloud.c",
      "lines": "146-161",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_cloud.c#L146-L161"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_cloud.c",
      "lines": "2-8",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_cloud.c#L2-L8"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "analog_filter",
    "gesture": "turn",
    "action": "Set the filter resonance.",
    "short_label": "RESONANCE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "424",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L424"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "469-474",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L469-L474"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_analog.c",
      "lines": "161-175",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_analog.c#L161-L175"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "browse",
    "gesture": "turn",
    "action": "Does nothing on PRESETS.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "419-427",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L419-L427"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui.c",
      "lines": "378-435",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui.c#L378-L435"
     }
    ]
   },
   {
    "mode": "user",
    "gesture": "turn",
    "action": "While stopped, two positive turns within about 1.5 seconds erase this USER slot at once and rewrite its whole sixteen-slot bank without an erase undo, leaving saved project snapshots intact.",
    "short_label": "ERASE SOUND",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "429-446",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L429-L446"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/upreset.c",
      "lines": "290-312",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/upreset.c#L290-L312"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/upreset.c",
      "lines": "356-387",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/upreset.c#L356-L387"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/upreset.c",
      "lines": "416-445",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/upreset.c#L416-L445"
     }
    ]
   },
   {
    "mode": "project",
    "gesture": "turn",
    "action": "While stopped, two positive turns within about 1.5 seconds replace working patterns and sounds from the chosen section without a load undo.",
    "short_label": "LOAD PROJECT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "493-507",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L493-L507"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/project.c",
      "lines": "669-684",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/project.c#L669-L684"
     }
    ]
   },
   {
    "mode": "tools",
    "gesture": "turn",
    "action": "Does nothing on TOOLS.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "350-380",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L350-L380"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "493-537",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L493-L537"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "486-488",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L486-L488"
     }
    ]
   },
   {
    "mode": "punch",
    "gesture": "turn_while_holding:button_fx",
    "action": "Sets kick-driven master ducking.",
    "short_label": "DUCK",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "510-604",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L510-L604"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "turn_while_holding:button_edit",
    "action": "On synth tracks, shifts all stored notes by one semitone per direction event, including notes outside the active length, with sequence undo available.",
    "short_label": "TRANSPOSE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "57-147",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L57-L147"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "544-550",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L544-L550"
     }
    ]
   },
   {
    "mode": "roll",
    "gesture": "turn_while_holding:button_arp",
    "action": "Does nothing in the roll layer.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "510-604",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L510-L604"
     }
    ]
   },
   {
    "mode": "steps",
    "gesture": "turn_while_holding:button_seq",
    "action": "Sets the selected track’s own swing from 0 to 100.",
    "short_label": "TRACK SWING",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "510-604",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L510-L604"
     }
    ]
   },
   {
    "mode": "key_scale",
    "gesture": "turn_while_holding:button_sel",
    "action": "On synth tracks, chooses chromatic, downward scale snap or white-key scale mapping.",
    "short_label": "KEY MAPPING",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "510-604",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L510-L604"
     }
    ]
   },
   {
    "mode": "mix_layer",
    "gesture": "turn_while_holding:button_glo",
    "action": "Sets track 3 level without clearing its mute flag.",
    "short_label": "LIVE LEVEL 3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "510-604",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L510-L604"
     }
    ]
   },
   {
    "mode": "sections",
    "gesture": "turn_while_holding:button_save",
    "action": "Does nothing in the section layer.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "510-604",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L510-L604"
     }
    ]
   },
   {
    "mode": "steps",
    "gesture": "turn_while_holding:button_seq+key_f3",
    "action": "With steps held, sets note or selected drum-lane ratchets from one to four hits.",
    "short_label": "RATCHET",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "224-287",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L224-L287"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "556-561",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L556-L561"
     }
    ],
    "condition": "F3 is an example; any white step keys can be held, and an edit keeps the step on release."
   },
   {
    "mode": "menu_screen",
    "gesture": "turn",
    "action": "Does nothing in SCREEN.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_menu.c",
      "lines": "174-237",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L174-L237"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_menu.c",
      "lines": "267-275",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L267-L275"
     }
    ]
   },
   {
    "mode": "menu_lights",
    "gesture": "turn",
    "action": "Turns sounding synth-note lights on clockwise or off counterclockwise.",
    "short_label": "NOTE LIGHTS",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_menu.c",
      "lines": "174-237",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L174-L237"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_menu.c",
      "lines": "267-275",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L267-L275"
     }
    ]
   },
   {
    "mode": "menu_audio",
    "gesture": "turn",
    "action": "Enables USB serial clockwise or disables it counterclockwise, taking effect after restart.",
    "short_label": "USB SERIAL",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_menu.c",
      "lines": "174-237",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L174-L237"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_menu.c",
      "lines": "267-275",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L267-L275"
     }
    ]
   },
   {
    "mode": "menu_system",
    "gesture": "turn",
    "action": "Selects ABOUT without opening it.",
    "short_label": "ABOUT ROW",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_menu.c",
      "lines": "174-237",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L174-L237"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_menu.c",
      "lines": "267-275",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L267-L275"
     }
    ]
   },
   {
    "mode": "drum_unavailable",
    "gesture": "turn",
    "action": "Does nothing while this unsupported drum sound page is open.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "391-392",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L391-L392"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "459-499",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L459-L499"
     }
    ]
   }
  ],
  "encoder_knob4": [
   {
    "mode": "record_ready",
    "gesture": "turn",
    "action": "Does nothing while recording is armed.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "905-932",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L905-L932"
     }
    ]
   },
   {
    "mode": "count_in",
    "gesture": "turn",
    "action": "Does nothing on this screen.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "1055-1059",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L1055-L1059"
     }
    ]
   },
   {
    "mode": "free_take",
    "gesture": "turn",
    "action": "Does nothing on this screen.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "1055-1059",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L1055-L1059"
     }
    ]
   },
   {
    "mode": "visualizer",
    "gesture": "turn",
    "action": "Does nothing on this screen.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "1151-1156",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L1151-L1156"
     }
    ]
   },
   {
    "mode": "tape",
    "gesture": "turn",
    "action": "Chooses whether capture copies events or also removes them.",
    "short_label": "COPY / LIFT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/orbit_ui.c",
      "lines": "4-14",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/orbit_ui.c#L4-L14"
     }
    ]
   },
   {
    "mode": "mixer_level",
    "gesture": "turn",
    "action": "Sets track 4 level, with the first turn only unmuting a muted track.",
    "short_label": "LEVEL 4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "273-299",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L273-L299"
     }
    ]
   },
   {
    "mode": "mixer_pan",
    "gesture": "turn",
    "action": "Sets track 4 pan.",
    "short_label": "PAN 4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "273-299",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L273-L299"
     }
    ]
   },
   {
    "mode": "mixer_track",
    "gesture": "turn",
    "action": "Sets selected-track pan.",
    "short_label": "TRACK PAN",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "273-299",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L273-L299"
     }
    ]
   },
   {
    "mode": "drum_grid",
    "gesture": "turn",
    "action": "Sets the selected existing hit to ghost, soft, normal or hard.",
    "short_label": "HIT LEVEL",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_studio.c",
      "lines": "580-611",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_studio.c#L580-L611"
     }
    ]
   },
   {
    "mode": "drum_kit",
    "gesture": "turn",
    "action": "Sets drum track pan.",
    "short_label": "DRUM PAN",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_studio.c",
      "lines": "612-617",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_studio.c#L612-L617"
     }
    ]
   },
   {
    "mode": "step",
    "gesture": "turn",
    "action": "Chooses no flag, accent, slide or both.",
    "short_label": "STEP FLAGS",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "301-347",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L301-L347"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui.c",
      "lines": "201-225",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui.c#L201-L225"
     }
    ]
   },
   {
    "mode": "song",
    "gesture": "turn",
    "action": "While stopped, sets the number of entries in the song from 1 to 16.",
    "short_label": "SONG LENGTH",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_song.c",
      "lines": "135-153",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_song.c#L135-L153"
     }
    ]
   },
   {
    "mode": "env",
    "gesture": "turn",
    "action": "Set the amplitude release time, or its note value when envelope sync is on.",
    "short_label": "RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "407",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L407"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "75-82",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L75-L82"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "216-228",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L216-L228"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/voice.c",
      "lines": "746-764",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/voice.c#L746-L764"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_lofi.c",
      "lines": "79-114",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_lofi.c#L79-L114"
     }
    ],
    "condition": "Synth track only; FM6 amplitude uses its patch envelopes, while LOFI STEP uses its staircase amplitude and ENV release only sets the cutoff after key-up."
   },
   {
    "mode": "env_dest",
    "gesture": "turn",
    "action": "Switch envelope attack, decay and release between free times and tempo note values.",
    "short_label": "ENV SYNC",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "408",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L408"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "79-81",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L79-L81"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "134-138",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L134-L138"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_fm6.c",
      "lines": "13-24",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_fm6.c#L13-L24"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/voice.c",
      "lines": "781-799",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/voice.c#L781-L799"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/voice.c",
      "lines": "286-299",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/voice.c#L286-L299"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit, and FM6 amplitude uses its patch envelopes, ENV filter and shape depths have no effect on it, and the short pitch envelope still works."
   },
   {
    "mode": "lfo",
    "gesture": "turn",
    "action": "Set how slowly the LFO depth rises after a fresh phrase.",
    "short_label": "FADE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "410",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L410"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "4-10",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L4-L10"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "83-86",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L83-L86"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "lfo2",
    "gesture": "turn",
    "action": "Turning this knob has no effect on this page.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "411",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L411"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "4-10",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L4-L10"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "134-138",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L134-L138"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "lfo_dest",
    "gesture": "turn",
    "action": "Set the LFO depth for amplitude.",
    "short_label": "AMP DEPTH",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "412",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L412"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "87-90",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L87-L90"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "fx",
    "gesture": "turn",
    "action": "Set the track reverb send.",
    "short_label": "REVERB SEND",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "413",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L413"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "107-110",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L107-L110"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "filter",
    "gesture": "turn",
    "action": "Turning this knob has no effect on this page.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "414",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L414"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "124",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L124"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "280-287",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L280-L287"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "slicer",
    "gesture": "turn",
    "action": "Set the slicer amount.",
    "short_label": "DEPTH",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "415",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L415"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "59-60",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L59-L60"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "119-122",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L119-L122"
     }
    ]
   },
   {
    "mode": "insert",
    "gesture": "turn",
    "action": "Set output LEVEL for drive types, LPF for CRUSH, or feedback for PHASR, FLANG and CHOR.",
    "short_label": "INSERT C",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "416",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L416"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "30-36",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L30-L36"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "200-214",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L200-L214"
     }
    ]
   },
   {
    "mode": "insert2",
    "gesture": "turn",
    "action": "Turning this knob has no effect on this page.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "417",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L417"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "129-133",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L129-L133"
     }
    ]
   },
   {
    "mode": "delay",
    "gesture": "turn",
    "action": "Set the shared delay mix.",
    "short_label": "DELAY MIX",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "418",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L418"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "157-160",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L157-L160"
     }
    ]
   },
   {
    "mode": "reverb_chorus",
    "gesture": "turn",
    "action": "Set the shared chorus depth.",
    "short_label": "CHORUS DEPTH",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "419",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L419"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "161-164",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L161-L164"
     }
    ]
   },
   {
    "mode": "sel",
    "gesture": "turn",
    "action": "Choose the chord built from each played key, or OFF.",
    "short_label": "CHORD",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "420",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L420"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "45-48",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L45-L48"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "99-102",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L99-L102"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "61",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L61"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "sel2",
    "gesture": "turn",
    "action": "Turning this knob has no effect on this page.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "421",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L421"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "102",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L102"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "125-126",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L125-L126"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "voice",
    "gesture": "turn",
    "action": "Choose the last, lowest or highest held note for single-note playing.",
    "short_label": "PRIORITY",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "426",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L426"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "49-52",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L49-L52"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "111-114",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L111-L114"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "voice2",
    "gesture": "turn",
    "action": "Mute or unmute the selected track.",
    "short_label": "MUTE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "427",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L427"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "115-118",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L115-L118"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "perform",
    "gesture": "turn",
    "action": "Change the sound parameter assigned to knob 4, or its engine default when the assignment is DEFAULT.",
    "short_label": "MACRO 4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "428",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L428"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "237-253",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L237-L253"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "387-390",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L387-L390"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "macros",
    "gesture": "turn",
    "action": "Choose the destination for sound knob 4, or DEFAULT to restore that engine default.",
    "short_label": "ASSIGN 4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "429",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L429"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "237-253",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L237-L253"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "401-417",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L401-L417"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "global",
    "gesture": "turn",
    "action": "Set the shared tuning offset.",
    "short_label": "TUNE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "430",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L430"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "153-156",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L153-L156"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "54",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L54"
     }
    ]
   },
   {
    "mode": "master",
    "gesture": "turn",
    "action": "Choose the roll tempo division.",
    "short_label": "ROLL RATE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "431",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L431"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "180-183",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L180-L183"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "280-287",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L280-L287"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/fx.c",
      "lines": "716-719",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/fx.c#L716-L719"
     }
    ]
   },
   {
    "mode": "system",
    "gesture": "turn",
    "action": "Turning this knob has no effect; the display shows CPU use.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "432",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L432"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "38-40",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L38-L40"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "165-168",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L165-L168"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/project.c",
      "lines": "1191-1224",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/project.c#L1191-L1224"
     }
    ]
   },
   {
    "mode": "global_drums",
    "gesture": "turn",
    "action": "Set the drum-track delay send.",
    "short_label": "DELAY SEND",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "433",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L433"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "177-179",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L177-L179"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "185-189",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L185-L189"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/project.c",
      "lines": "1191-1224",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/project.c#L1191-L1224"
     }
    ]
   },
   {
    "mode": "midi",
    "gesture": "turn",
    "action": "Choose the drum MIDI channel or OFF for incoming and outgoing notes; device settings save automatically once stopped and quiet.",
    "short_label": "CHANNEL 4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "434",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L434"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "177-189",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L177-L189"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui.c",
      "lines": "155-185",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui.c#L155-L185"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/project.c",
      "lines": "1191-1224",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/project.c#L1191-L1224"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "75-83",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L75-L83"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "76-85",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L76-L85"
     }
    ]
   },
   {
    "mode": "midi2",
    "gesture": "turn",
    "action": "Set the incoming pitch-bend range from one to twelve semitones; device settings save automatically once stopped and quiet.",
    "short_label": "BEND RANGE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "435",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L435"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "38-40",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L38-L40"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "165-167",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L165-L167"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "189-197",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L189-L197"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/project.c",
      "lines": "1191-1224",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/project.c#L1191-L1224"
     }
    ]
   },
   {
    "mode": "texture",
    "gesture": "turn",
    "action": "Set the texture movement amount.",
    "short_label": "MOVEMENT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "438",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L438"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "14-17",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L14-L17"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "190-193",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L190-L193"
     }
    ]
   },
   {
    "mode": "texture2",
    "gesture": "turn",
    "action": "Turning this knob has no effect on this page.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "439",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L439"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "14-17",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L14-L17"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "194-196",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L194-L196"
     }
    ]
   },
   {
    "mode": "arp",
    "gesture": "turn",
    "action": "Set the arpeggiator note gate length.",
    "short_label": "GATE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "444",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L444"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "37-42",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L37-L42"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "91-94",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L91-L94"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "arp2",
    "gesture": "turn",
    "action": "Choose pitch order or played order for the arpeggiator input.",
    "short_label": "ORDER",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "445",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L445"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "95-98",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L95-L98"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "53",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L53"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "analog_edit1",
    "gesture": "turn",
    "action": "Set the oscillator noise amount.",
    "short_label": "NOISE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "422",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L422"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_analog.c",
      "lines": "161-175",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_analog.c#L161-L175"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "analog_edit2",
    "gesture": "turn",
    "action": "Set how strongly note pitch moves the filter cutoff.",
    "short_label": "KEY TRACKING",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "423",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L423"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_analog.c",
      "lines": "161-175",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_analog.c#L161-L175"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "digital_edit1",
    "gesture": "turn",
    "action": "Choose operator 4 frequency relative to the played note.",
    "short_label": "RATIO 4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "422",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L422"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_digital.c",
      "lines": "145-159",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_digital.c#L145-L159"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "digital_edit2",
    "gesture": "turn",
    "action": "Turning this knob has no effect on this page.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "423",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L423"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_digital.c",
      "lines": "145-159",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_digital.c#L145-L159"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "phase_edit1",
    "gesture": "turn",
    "action": "Set the envelope depth for phase distortion.",
    "short_label": "PHASE ENV",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "422",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L422"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_phase.c",
      "lines": "191-205",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_phase.c#L191-L205"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "phase_edit2",
    "gesture": "turn",
    "action": "Turning this knob has no effect on this page.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "423",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L423"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_phase.c",
      "lines": "191-205",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_phase.c#L191-L205"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "lofi_edit1",
    "gesture": "turn",
    "action": "Set bit reduction, or choose the stepped-envelope shape when CHIP is STEP.",
    "short_label": "CHIP CRUSH",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "422",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L422"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_lofi.c",
      "lines": "218-232",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_lofi.c#L218-L232"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_lofi.c",
      "lines": "42-56",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_lofi.c#L42-L56"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "lofi_edit2",
    "gesture": "turn",
    "action": "Set the chip tone cutoff.",
    "short_label": "CHIP TONE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "423",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L423"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_lofi.c",
      "lines": "218-232",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_lofi.c#L218-L232"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_lofi.c",
      "lines": "42-56",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_lofi.c#L42-L56"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "sample_edit1",
    "gesture": "turn",
    "action": "Allow or disable a sample loop where the selected sample has one.",
    "short_label": "LOOP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "422",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L422"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_sample.c",
      "lines": "204-218",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_sample.c#L204-L218"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "sample_edit2",
    "gesture": "turn",
    "action": "Turning this knob has no effect on this page.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "423",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L423"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_sample.c",
      "lines": "204-218",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_sample.c#L204-L218"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "voice_edit1",
    "gesture": "turn",
    "action": "Shift the formant frequencies in semitones.",
    "short_label": "SHIFT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "422",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L422"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_formant.c",
      "lines": "227-241",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_formant.c#L227-L241"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "voice_edit2",
    "gesture": "turn",
    "action": "Set the random vowel variation.",
    "short_label": "RANDOM",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "423",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L423"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_formant.c",
      "lines": "227-241",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_formant.c#L227-L241"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "trio_edit1",
    "gesture": "turn",
    "action": "Set opposite detuning for oscillators 2 and 3.",
    "short_label": "DETUNE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "422",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L422"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_trio.c",
      "lines": "380-394",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_trio.c#L380-L394"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "trio_edit2",
    "gesture": "turn",
    "action": "Set oscillator pulse width.",
    "short_label": "PULSE WIDTH",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "423",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L423"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_trio.c",
      "lines": "380-394",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_trio.c#L380-L394"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "wheel_edit1",
    "gesture": "turn",
    "action": "Adjust the registration upper drawbars.",
    "short_label": "TOP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "422",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L422"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_drawbar.c",
      "lines": "283-297",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_drawbar.c#L283-L297"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "wheel_edit2",
    "gesture": "turn",
    "action": "Choose rotary-speaker motion OFF, SLOW or FAST.",
    "short_label": "ROTOR",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "423",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L423"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_drawbar.c",
      "lines": "283-297",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_drawbar.c#L283-L297"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "grain_edit1",
    "gesture": "turn",
    "action": "Set how often grains start.",
    "short_label": "DENSITY",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "422",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L422"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_grain.c",
      "lines": "436-450",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_grain.c#L436-L450"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "grain_edit2",
    "gesture": "turn",
    "action": "Set the grain tone cutoff.",
    "short_label": "GRAIN TONE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "423",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L423"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_grain.c",
      "lines": "436-450",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_grain.c#L436-L450"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "swarm_edit1",
    "gesture": "turn",
    "action": "Set how strongly the envelope contracts oscillator spread.",
    "short_label": "SPREAD ENV",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "422",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L422"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_orbit.c",
      "lines": "169-176",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_orbit.c#L169-L176"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "swarm_edit2",
    "gesture": "turn",
    "action": "Turning this knob has no effect on this page.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "423",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L423"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_orbit.c",
      "lines": "169-176",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_orbit.c#L169-L176"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "pulse_edit1",
    "gesture": "turn",
    "action": "Set pulse-width modulation speed.",
    "short_label": "PWM RATE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "422",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L422"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_orbit.c",
      "lines": "177-184",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_orbit.c#L177-L184"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "pulse_edit2",
    "gesture": "turn",
    "action": "Turning this knob has no effect on this page.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "423",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L423"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_orbit.c",
      "lines": "177-184",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_orbit.c#L177-L184"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_orbit.c",
      "lines": "92-107",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_orbit.c#L92-L107"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "fm4_edit1",
    "gesture": "turn",
    "action": "Choose operator 4 frequency relative to the played note.",
    "short_label": "RATIO 4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "422",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L422"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_orbit.c",
      "lines": "185-193",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_orbit.c#L185-L193"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "fm4_edit2",
    "gesture": "turn",
    "action": "Set FM feedback.",
    "short_label": "FEEDBACK",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "423",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L423"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_orbit.c",
      "lines": "185-193",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_orbit.c#L185-L193"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_orbit.c",
      "lines": "110-141",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_orbit.c#L110-L141"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "fm6_edit1",
    "gesture": "turn",
    "action": "Offset coarse ratios for modulators running in ratio mode.",
    "short_label": "MOD RATIO",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "422",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L422"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_fm6.c",
      "lines": "367-382",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_fm6.c#L367-L382"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_fm6.c",
      "lines": "13-24",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_fm6.c#L13-L24"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "fm6_edit2",
    "gesture": "turn",
    "action": "Load a factory or stored bank patch, replacing the track patch.",
    "short_label": "PATCH",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "423",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L423"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_fm6.c",
      "lines": "367-382",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_fm6.c#L367-L382"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_fm6.c",
      "lines": "13-24",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_fm6.c#L13-L24"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "phys_edit1",
    "gesture": "turn",
    "action": "Set the model decay.",
    "short_label": "DAMPING",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "422",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L422"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_phys.c",
      "lines": "263-285",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_phys.c#L263-L285"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_phys.c",
      "lines": "7-27",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_phys.c#L7-L27"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_phys.c",
      "lines": "54-70",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_phys.c#L54-L70"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "phys_edit2",
    "gesture": "turn",
    "action": "Set how much of the exciter is mixed into the sound.",
    "short_label": "EXCITER",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "423",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L423"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_phys.c",
      "lines": "263-285",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_phys.c#L263-L285"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_phys.c",
      "lines": "7-27",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_phys.c#L7-L27"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_phys.c",
      "lines": "54-70",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_phys.c#L54-L70"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "noise_edit1",
    "gesture": "turn",
    "action": "Set the noise filter resonance.",
    "short_label": "RESONANCE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "422",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L422"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_noise.c",
      "lines": "259-280",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_noise.c#L259-L280"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_noise.c",
      "lines": "10-14",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_noise.c#L10-L14"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_noise.c",
      "lines": "45-52",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_noise.c#L45-L52"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "noise_edit2",
    "gesture": "turn",
    "action": "Set sample holding and bit reduction, or clock pitch above the key for LFSR and META.",
    "short_label": "NOISE CRUSH",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "423",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L423"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_noise.c",
      "lines": "259-280",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_noise.c#L259-L280"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_noise.c",
      "lines": "10-14",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_noise.c#L10-L14"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_noise.c",
      "lines": "45-52",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_noise.c#L45-L52"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "cluster_edit1",
    "gesture": "turn",
    "action": "Set the CLUSTER oscillator SPREAD value.",
    "short_label": "RAW SPREAD",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "422",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L422"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_op1_cluster.c",
      "lines": "71-90",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_op1_cluster.c#L71-L90"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "cluster_edit2",
    "gesture": "turn",
    "action": "Turning this knob has no effect on this page.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "423",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L423"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_op1_cluster.c",
      "lines": "71-90",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_op1_cluster.c#L71-L90"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "cloud_edit1",
    "gesture": "turn",
    "action": "Set random grain timing and starting-phase spread.",
    "short_label": "TIME SPREAD",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "422",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L422"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_cloud.c",
      "lines": "146-161",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_cloud.c#L146-L161"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_cloud.c",
      "lines": "2-8",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_cloud.c#L2-L8"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "cloud_edit2",
    "gesture": "turn",
    "action": "Set the engine tone cutoff.",
    "short_label": "CLOUD TONE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "423",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L423"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_cloud.c",
      "lines": "146-161",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_cloud.c#L146-L161"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_cloud.c",
      "lines": "2-8",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_cloud.c#L2-L8"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "analog_filter",
    "gesture": "turn",
    "action": "Set how strongly note pitch moves the filter cutoff.",
    "short_label": "KEY TRACKING",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "424",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L424"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "461-490",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L461-L490"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "469-474",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L469-L474"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/eng_analog.c",
      "lines": "161-175",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_analog.c#L161-L175"
     }
    ],
    "condition": "Synth track only; unsupported drum sound pages show blank controls and navigation hints and do not edit."
   },
   {
    "mode": "browse",
    "gesture": "turn",
    "action": "Does nothing on PRESETS.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "419-427",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L419-L427"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui.c",
      "lines": "378-435",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui.c#L378-L435"
     }
    ]
   },
   {
    "mode": "user",
    "gesture": "turn",
    "action": "While stopped, two positive turns within about 1.5 seconds replace this USER sound and macro map at once and rewrite its whole sixteen-slot bank without a save undo.",
    "short_label": "SAVE SOUND",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "429-446",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L429-L446"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/upreset.c",
      "lines": "290-312",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/upreset.c#L290-L312"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/upreset.c",
      "lines": "356-387",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/upreset.c#L356-L387"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/upreset.c",
      "lines": "416-445",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/upreset.c#L416-L445"
     }
    ]
   },
   {
    "mode": "project",
    "gesture": "turn",
    "action": "While stopped, two positive turns within about 1.5 seconds replace the chosen saved section at once without a save undo.",
    "short_label": "SAVE PROJECT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "442",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L442"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "448-459",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L448-L459"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "493-512",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L493-L512"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/project.c",
      "lines": "602-658",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/project.c#L602-L658"
     }
    ]
   },
   {
    "mode": "tools",
    "gesture": "turn",
    "action": "Two positive turns within about 1.5 seconds replace all working tracks and project globals with defaults immediately without a further question, preserving device MIDI settings and numbered slots while later autosave can keep the new project and sequence undo covers only its last marked track.",
    "short_label": "NEW PROJECT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "350-380",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L350-L380"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "493-537",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L493-L537"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "486-488",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L486-L488"
     }
    ]
   },
   {
    "mode": "punch",
    "gesture": "turn_while_holding:button_fx",
    "action": "Sets the selected track’s low-pass or high-pass filter, including drums.",
    "short_label": "TRACK FILTER",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "510-604",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L510-L604"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "turn_while_holding:button_edit",
    "action": "Does nothing in the erase layer.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "57-147",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L57-L147"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "544-550",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L544-L550"
     }
    ]
   },
   {
    "mode": "roll",
    "gesture": "turn_while_holding:button_arp",
    "action": "Does nothing in the roll layer.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "510-604",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L510-L604"
     }
    ]
   },
   {
    "mode": "steps",
    "gesture": "turn_while_holding:button_seq",
    "action": "Sets selected-track pattern length from 1 to 64 steps.",
    "short_label": "TRACK LENGTH",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "510-604",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L510-L604"
     }
    ]
   },
   {
    "mode": "key_scale",
    "gesture": "turn_while_holding:button_sel",
    "action": "On synth tracks, shifts the keyboard pitch by up to 24 semitones either way.",
    "short_label": "KEY SHIFT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "510-604",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L510-L604"
     }
    ]
   },
   {
    "mode": "mix_layer",
    "gesture": "turn_while_holding:button_glo",
    "action": "Sets track 4 level without clearing its mute flag.",
    "short_label": "LIVE LEVEL 4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "510-604",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L510-L604"
     }
    ]
   },
   {
    "mode": "sections",
    "gesture": "turn_while_holding:button_save",
    "action": "Does nothing in the section layer.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "510-604",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L510-L604"
     }
    ]
   },
   {
    "mode": "steps",
    "gesture": "turn_while_holding:button_seq+key_f3",
    "action": "With steps held, moves their timing from 32/64 of a step early to 31/64 late.",
    "short_label": "NUDGE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "224-287",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L224-L287"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "556-561",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L556-L561"
     }
    ],
    "condition": "F3 is an example; any white step keys can be held, and an edit keeps the step on release."
   },
   {
    "mode": "menu_screen",
    "gesture": "turn",
    "action": "Does nothing in SCREEN.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_menu.c",
      "lines": "174-237",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L174-L237"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_menu.c",
      "lines": "267-275",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L267-L275"
     }
    ]
   },
   {
    "mode": "menu_lights",
    "gesture": "turn",
    "action": "Does nothing in LIGHTS.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_menu.c",
      "lines": "174-237",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L174-L237"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_menu.c",
      "lines": "267-275",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L267-L275"
     }
    ]
   },
   {
    "mode": "menu_audio",
    "gesture": "turn",
    "action": "Does nothing in AUDIO.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_menu.c",
      "lines": "174-237",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L174-L237"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_menu.c",
      "lines": "267-275",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L267-L275"
     }
    ]
   },
   {
    "mode": "menu_system",
    "gesture": "turn",
    "action": "Selects DEMO SONG and cancels an armed demo load.",
    "short_label": "DEMO ROW",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_menu.c",
      "lines": "174-237",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L174-L237"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_menu.c",
      "lines": "267-275",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L267-L275"
     }
    ]
   },
   {
    "mode": "drum_unavailable",
    "gesture": "turn",
    "action": "Does nothing while this unsupported drum sound page is open.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "391-392",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L391-L392"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "459-499",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L459-L499"
     }
    ]
   }
  ],
  "encoder_algorithm": [
   {
    "mode": "any",
    "gesture": "turn",
    "action": "Outside menus, SONG, held layers and a free take, selects one of the four tracks, with a recording arm following the selection.",
    "short_label": "TRACK",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "1039-1040",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L1039-L1040"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "1149-1150",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L1149-L1150"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_studio.c",
      "lines": "572-577",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_studio.c#L572-L577"
     }
    ]
   },
   {
    "mode": "song",
    "gesture": "turn",
    "action": "Does nothing on SONG.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_song.c",
      "lines": "152-153",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_song.c#L152-L153"
     }
    ]
   },
   {
    "mode": "steps",
    "gesture": "turn_while_holding:button_seq+key_f3",
    "action": "With any white step key held, cycles lockable parameters instead of selecting tracks.",
    "short_label": "LOCK TARGET",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "290-300",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L290-L300"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "516-525",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L516-L525"
     }
    ]
   },
   {
    "mode": "menu_screen",
    "gesture": "turn",
    "action": "Does nothing in the menu.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_menu.c",
      "lines": "155-160",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L155-L160"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_menu.c",
      "lines": "278",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L278"
     }
    ]
   },
   {
    "mode": "menu_lights",
    "gesture": "turn",
    "action": "Does nothing in the menu.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_menu.c",
      "lines": "155-160",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L155-L160"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_menu.c",
      "lines": "278",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L278"
     }
    ]
   },
   {
    "mode": "menu_audio",
    "gesture": "turn",
    "action": "Does nothing in the menu.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_menu.c",
      "lines": "155-160",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L155-L160"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_menu.c",
      "lines": "278",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L278"
     }
    ]
   },
   {
    "mode": "menu_system",
    "gesture": "turn",
    "action": "Does nothing in the menu.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_menu.c",
      "lines": "155-160",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L155-L160"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_menu.c",
      "lines": "278",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L278"
     }
    ]
   },
   {
    "mode": "punch",
    "gesture": "turn",
    "action": "Does nothing while this layer is held or locked.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "1034-1040",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L1034-L1040"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "turn",
    "action": "Does nothing while this layer is held or locked.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "1034-1040",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L1034-L1040"
     }
    ]
   },
   {
    "mode": "roll",
    "gesture": "turn",
    "action": "Does nothing while this layer is held or locked.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "1034-1040",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L1034-L1040"
     }
    ]
   },
   {
    "mode": "key_scale",
    "gesture": "turn",
    "action": "Does nothing while this layer is held or locked.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "1034-1040",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L1034-L1040"
     }
    ]
   },
   {
    "mode": "mix_layer",
    "gesture": "turn",
    "action": "Does nothing while this layer is held or locked.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "1034-1040",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L1034-L1040"
     }
    ]
   },
   {
    "mode": "sections",
    "gesture": "turn",
    "action": "Does nothing while this layer is held or locked.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "1034-1040",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L1034-L1040"
     }
    ]
   },
   {
    "mode": "steps",
    "gesture": "turn",
    "action": "Does nothing in the step layer without a held white step key.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "516-525",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L516-L525"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "1039-1040",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L1039-L1040"
     }
    ]
   }
  ],
  "encoder_presets": [
   {
    "mode": "any",
    "gesture": "turn",
    "action": "On Tape, Visualizer, Mixer or PRESETS, loads the next factory or occupied USER sound immediately on a synth track or selects the drum kit, without a confirmation or sound-edit undo.",
    "short_label": "SOUND",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "1119-1147",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L1119-L1147"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui.c",
      "lines": "378-435",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui.c#L378-L435"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "turn",
    "action": "On other sound-editing pages, does nothing unless a held-step lock takes this encoder.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "1119-1127",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L1119-L1127"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "516-525",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L516-L525"
     }
    ]
   },
   {
    "mode": "song",
    "gesture": "turn",
    "action": "Does nothing on SONG.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_song.c",
      "lines": "152-153",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_song.c#L152-L153"
     }
    ]
   },
   {
    "mode": "steps",
    "gesture": "turn_while_holding:button_seq+key_f3",
    "action": "With any white step key held, sets its chosen parameter lock from the current base value, refusing new entries when the shared track table has 24 locks.",
    "short_label": "LOCK VALUE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "224-248",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L224-L248"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "516-525",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L516-L525"
     }
    ]
   },
   {
    "mode": "menu_screen",
    "gesture": "turn",
    "action": "Moves between rows of this section with wraparound and cancels an armed demo load.",
    "short_label": "MENU ROW",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_menu.c",
      "lines": "267-269",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L267-L269"
     }
    ]
   },
   {
    "mode": "menu_lights",
    "gesture": "turn",
    "action": "Moves between rows of this section with wraparound and cancels an armed demo load.",
    "short_label": "MENU ROW",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_menu.c",
      "lines": "267-269",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L267-L269"
     }
    ]
   },
   {
    "mode": "menu_audio",
    "gesture": "turn",
    "action": "Moves between rows of this section with wraparound and cancels an armed demo load.",
    "short_label": "MENU ROW",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_menu.c",
      "lines": "267-269",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L267-L269"
     }
    ]
   },
   {
    "mode": "menu_system",
    "gesture": "turn",
    "action": "Moves between rows of this section with wraparound and cancels an armed demo load.",
    "short_label": "MENU ROW",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_menu.c",
      "lines": "267-269",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L267-L269"
     }
    ]
   },
   {
    "mode": "punch",
    "gesture": "turn",
    "action": "Does nothing while this layer is held or locked.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "1034-1040",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L1034-L1040"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "turn",
    "action": "Does nothing while this layer is held or locked.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "1034-1040",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L1034-L1040"
     }
    ]
   },
   {
    "mode": "roll",
    "gesture": "turn",
    "action": "Does nothing while this layer is held or locked.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "1034-1040",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L1034-L1040"
     }
    ]
   },
   {
    "mode": "key_scale",
    "gesture": "turn",
    "action": "Does nothing while this layer is held or locked.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "1034-1040",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L1034-L1040"
     }
    ]
   },
   {
    "mode": "mix_layer",
    "gesture": "turn",
    "action": "Does nothing while this layer is held or locked.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "1034-1040",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L1034-L1040"
     }
    ]
   },
   {
    "mode": "sections",
    "gesture": "turn",
    "action": "Does nothing while this layer is held or locked.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "1034-1040",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L1034-L1040"
     }
    ]
   },
   {
    "mode": "steps",
    "gesture": "turn",
    "action": "Does nothing in the step layer without a held white step key.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "516-525",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L516-L525"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "1039-1040",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L1039-L1040"
     }
    ]
   }
  ],
  "encoder_select": [
   {
    "mode": "tape",
    "gesture": "turn",
    "action": "Sets tempo from 40 to 240 BPM.",
    "short_label": "TEMPO",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "1158-1161",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L1158-L1161"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "153",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L153"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "turn",
    "action": "On editing pages, moves within the current page family and stops at its ends, skipping SONG and the dedicated DRUMS screen.",
    "short_label": "PAGE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui.c",
      "lines": "325-351",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui.c#L325-L351"
     }
    ]
   },
   {
    "mode": "record_ready",
    "gesture": "turn",
    "action": "Sets tempo from 40 to 240 BPM.",
    "short_label": "TEMPO",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "1034-1037",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L1034-L1037"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "1158-1161",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L1158-L1161"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "153",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L153"
     }
    ]
   },
   {
    "mode": "free_take",
    "gesture": "turn",
    "action": "Sets tempo from 40 to 240 BPM.",
    "short_label": "TEMPO",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "1034-1037",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L1034-L1037"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "1158-1161",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L1158-L1161"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "153",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L153"
     }
    ]
   },
   {
    "mode": "count_in",
    "gesture": "turn",
    "action": "Sets tempo from 40 to 240 BPM.",
    "short_label": "TEMPO",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "1034-1037",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L1034-L1037"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "1158-1161",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L1158-L1161"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "153",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L153"
     }
    ]
   },
   {
    "mode": "punch",
    "gesture": "turn",
    "action": "Sets tempo from 40 to 240 BPM.",
    "short_label": "TEMPO",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "1034-1037",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L1034-L1037"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "1158-1161",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L1158-L1161"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "153",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L153"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "turn",
    "action": "Sets tempo from 40 to 240 BPM.",
    "short_label": "TEMPO",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "1034-1037",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L1034-L1037"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "1158-1161",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L1158-L1161"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "153",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L153"
     }
    ]
   },
   {
    "mode": "roll",
    "gesture": "turn",
    "action": "Sets tempo from 40 to 240 BPM.",
    "short_label": "TEMPO",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "1034-1037",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L1034-L1037"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "1158-1161",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L1158-L1161"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "153",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L153"
     }
    ]
   },
   {
    "mode": "steps",
    "gesture": "turn",
    "action": "Sets tempo from 40 to 240 BPM.",
    "short_label": "TEMPO",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "1034-1037",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L1034-L1037"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "1158-1161",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L1158-L1161"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "153",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L153"
     }
    ]
   },
   {
    "mode": "key_scale",
    "gesture": "turn",
    "action": "Sets tempo from 40 to 240 BPM.",
    "short_label": "TEMPO",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "1034-1037",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L1034-L1037"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "1158-1161",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L1158-L1161"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "153",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L153"
     }
    ]
   },
   {
    "mode": "mix_layer",
    "gesture": "turn",
    "action": "Sets tempo from 40 to 240 BPM.",
    "short_label": "TEMPO",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "1034-1037",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L1034-L1037"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "1158-1161",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L1158-L1161"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "153",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L153"
     }
    ]
   },
   {
    "mode": "sections",
    "gesture": "turn",
    "action": "Sets tempo from 40 to 240 BPM.",
    "short_label": "TEMPO",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "1034-1037",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L1034-L1037"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "1158-1161",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L1158-L1161"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "153",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L153"
     }
    ]
   },
   {
    "mode": "clear_track",
    "gesture": "turn",
    "action": "Sets tempo from 40 to 240 BPM.",
    "short_label": "TEMPO",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "1034-1037",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L1034-L1037"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "1158-1161",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L1158-L1161"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/params.c",
      "lines": "153",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L153"
     }
    ]
   },
   {
    "mode": "visualizer",
    "gesture": "turn",
    "action": "Selects one of twelve mix visualizations and requests a deferred settings save.",
    "short_label": "VIS STYLE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "1151-1156",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L1151-L1156"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_vis.c",
      "lines": "655-661",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_vis.c#L655-L661"
     }
    ]
   },
   {
    "mode": "drum_grid",
    "gesture": "turn_cw",
    "action": "Selects KIT.",
    "short_label": "KIT VIEW",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_studio.c",
      "lines": "567-570",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_studio.c#L567-L570"
     }
    ]
   },
   {
    "mode": "drum_grid",
    "gesture": "turn_ccw",
    "action": "Does nothing because this drum view is already selected.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_studio.c",
      "lines": "567-570",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_studio.c#L567-L570"
     }
    ]
   },
   {
    "mode": "drum_kit",
    "gesture": "turn_cw",
    "action": "Does nothing because this drum view is already selected.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_studio.c",
      "lines": "567-570",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_studio.c#L567-L570"
     }
    ]
   },
   {
    "mode": "drum_kit",
    "gesture": "turn_ccw",
    "action": "Selects GRID.",
    "short_label": "GRID VIEW",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_studio.c",
      "lines": "567-570",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_studio.c#L567-L570"
     }
    ]
   },
   {
    "mode": "song",
    "gesture": "turn",
    "action": "Does nothing on SONG.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_song.c",
      "lines": "152-153",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_song.c#L152-L153"
     }
    ]
   },
   {
    "mode": "menu_screen",
    "gesture": "turn",
    "action": "Selects SCREEN, LIGHTS, AUDIO or SYSTEM, stopping at the ends.",
    "short_label": "MENU SECTION",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_menu.c",
      "lines": "258-265",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L258-L265"
     }
    ]
   },
   {
    "mode": "menu_lights",
    "gesture": "turn",
    "action": "Selects SCREEN, LIGHTS, AUDIO or SYSTEM, stopping at the ends.",
    "short_label": "MENU SECTION",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_menu.c",
      "lines": "258-265",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L258-L265"
     }
    ]
   },
   {
    "mode": "menu_audio",
    "gesture": "turn",
    "action": "Selects SCREEN, LIGHTS, AUDIO or SYSTEM, stopping at the ends.",
    "short_label": "MENU SECTION",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_menu.c",
      "lines": "258-265",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L258-L265"
     }
    ]
   },
   {
    "mode": "menu_system",
    "gesture": "turn",
    "action": "Selects SCREEN, LIGHTS, AUDIO or SYSTEM, stopping at the ends.",
    "short_label": "MENU SECTION",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_menu.c",
      "lines": "258-265",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L258-L265"
     }
    ]
   }
  ],
  "knob_master": [
   {
    "mode": "any",
    "gesture": "turn",
    "action": "Sets local output level and USB recording level when USB AUDIO is MASTER, while FULL keeps USB level independent.",
    "short_label": "VOLUME",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/main.c",
      "lines": "193-200",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/main.c#L193-L200"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/audio.c",
      "lines": "25-34",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/audio.c#L25-L34"
     }
    ]
   }
  ],
  "button_oct_down": [
   {
    "mode": "synth_play",
    "gesture": "press",
    "action": "Moves the playable synth keyboard one octave down within the range of three octaves either way.",
    "short_label": "OCT -",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "1095-1104",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L1095-L1104"
     }
    ]
   },
   {
    "mode": "synth_play",
    "gesture": "press_with:button_oct_up",
    "action": "Resets the synth keyboard octave to zero.",
    "short_label": "OCTAVE ZERO",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "1095-1104",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L1095-L1104"
     }
    ]
   },
   {
    "mode": "drum_play",
    "gesture": "hold",
    "action": "Makes played drum hits ghost while held, with OCT- taking priority when both are held.",
    "short_label": "GHOST",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1416-1421",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1416-L1421"
     }
    ]
   },
   {
    "mode": "drum_grid",
    "gesture": "press",
    "action": "Moves to the previous sixteen-step page, wrapping within the drum pattern length.",
    "short_label": "STEP PAGE -",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_studio.c",
      "lines": "559-564",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_studio.c#L559-L564"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "press_while_holding:button_edit",
    "action": "Swaps the last supported sequence edit back, including notes, length, nudges, fill conditions and locks, without restoring sound edits, saved slots or live drum mutes.",
    "short_label": "UNDO",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "861-872",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L861-L872"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui.c",
      "lines": "245-283",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui.c#L245-L283"
     }
    ]
   },
   {
    "mode": "steps",
    "gesture": "press_while_holding:button_seq",
    "action": "Without a held step, selects the previous sixteen-step page with wraparound.",
    "short_label": "STEP PAGE -",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "883-897",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L883-L897"
     }
    ]
   },
   {
    "mode": "steps",
    "gesture": "press_while_holding:button_seq+key_f3",
    "action": "With any white step key held, clears its nudge, locks and fill condition at once in the working pattern without a question, preserving notes and allowing sequence undo.",
    "short_label": "CLEAR DETAIL",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "883-897",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L883-L897"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "302-343",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L302-L343"
     }
    ],
    "condition": "The named F3 key is an example; any held white step key works."
   },
   {
    "mode": "punch",
    "gesture": "press_while_holding:button_fx",
    "action": "Sends the mix to a momentary reverb throw while held.",
    "short_label": "REV THROW",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "850-859",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L850-L859"
     }
    ]
   },
   {
    "mode": "tape",
    "gesture": "press_while_holding:button_sel",
    "action": "Captures the inclusive region into the temporary clipboard, immediately clearing those events in LIFT without a question, with sequence undo for synth LIFT only and later autosave able to keep the change.",
    "short_label": "CAPTURE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "874-881",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L874-L881"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/orbit_ui.c",
      "lines": "16-29",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/orbit_ui.c#L16-L29"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/orbit_tape.h",
      "lines": "14-44",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/orbit_tape.h#L14-L44"
     }
    ]
   },
   {
    "mode": "song",
    "gesture": "press",
    "action": "While stopped, switches between loop and song playback without erasing the working pattern.",
    "short_label": "LOOP / SONG",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_song.c",
      "lines": "104-112",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_song.c#L104-L112"
     }
    ]
   },
   {
    "mode": "menu_screen",
    "gesture": "press",
    "action": "Closes the menu and saves changed settings immediately if stopped or defers them until stop, with no question or settings undo and a first close able to write even without an edit.",
    "short_label": "CLOSE MENU",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_menu.c",
      "lines": "162-171",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L162-L171"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_menu.c",
      "lines": "246-251",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L246-L251"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/project.c",
      "lines": "993-1007",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/project.c#L993-L1007"
     }
    ]
   },
   {
    "mode": "menu_lights",
    "gesture": "press",
    "action": "Closes the menu and saves changed settings immediately if stopped or defers them until stop, with no question or settings undo and a first close able to write even without an edit.",
    "short_label": "CLOSE MENU",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_menu.c",
      "lines": "162-171",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L162-L171"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_menu.c",
      "lines": "246-251",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L246-L251"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/project.c",
      "lines": "993-1007",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/project.c#L993-L1007"
     }
    ]
   },
   {
    "mode": "menu_audio",
    "gesture": "press",
    "action": "Closes the menu and saves changed settings immediately if stopped or defers them until stop, with no question or settings undo and a first close able to write even without an edit.",
    "short_label": "CLOSE MENU",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_menu.c",
      "lines": "162-171",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L162-L171"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_menu.c",
      "lines": "246-251",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L246-L251"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/project.c",
      "lines": "993-1007",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/project.c#L993-L1007"
     }
    ]
   },
   {
    "mode": "menu_system",
    "gesture": "press",
    "action": "Closes the menu and saves changed settings immediately if stopped or defers them until stop, with no question or settings undo and a first close able to write even without an edit.",
    "short_label": "CLOSE MENU",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_menu.c",
      "lines": "162-171",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L162-L171"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_menu.c",
      "lines": "246-251",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L246-L251"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/project.c",
      "lines": "993-1007",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/project.c#L993-L1007"
     }
    ]
   },
   {
    "mode": "about",
    "gesture": "press",
    "action": "Returns to the menu section without closing or saving settings yet.",
    "short_label": "BACK TO MENU",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_menu.c",
      "lines": "246-251",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L246-L251"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "press_while_holding:button_oct_up",
    "action": "Keeping both OCT buttons down while stopped for more than five seconds flushes pending sections, dirty song settings and changed working music before entering UBOOT, with early release cancelling entry.",
    "short_label": "ENTER UBOOT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/main.c",
      "lines": "202-229",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/main.c#L202-L229"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/project.c",
      "lines": "1166-1177",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/project.c#L1166-L1177"
     }
    ]
   }
  ],
  "button_oct_up": [
   {
    "mode": "synth_play",
    "gesture": "press",
    "action": "Moves the playable synth keyboard one octave up within the range of three octaves either way.",
    "short_label": "OCT +",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "1095-1104",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L1095-L1104"
     }
    ]
   },
   {
    "mode": "synth_play",
    "gesture": "press_with:button_oct_down",
    "action": "Resets the synth keyboard octave to zero.",
    "short_label": "OCTAVE ZERO",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "1095-1104",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L1095-L1104"
     }
    ]
   },
   {
    "mode": "drum_play",
    "gesture": "hold",
    "action": "Makes played drum hits hard while held, with OCT- taking priority when both are held.",
    "short_label": "HARD",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1416-1421",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1416-L1421"
     }
    ]
   },
   {
    "mode": "drum_grid",
    "gesture": "press",
    "action": "Moves to the next sixteen-step page, wrapping within the drum pattern length.",
    "short_label": "STEP PAGE +",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_studio.c",
      "lines": "559-564",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_studio.c#L559-L564"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "press_while_holding:button_edit",
    "action": "Swaps the last supported sequence edit forward, including notes, length, nudges, fill conditions and locks, without restoring sound edits, saved slots or live drum mutes.",
    "short_label": "REDO",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "861-872",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L861-L872"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui.c",
      "lines": "245-283",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui.c#L245-L283"
     }
    ]
   },
   {
    "mode": "steps",
    "gesture": "press_while_holding:button_seq",
    "action": "Without a held step, selects the next sixteen-step page with wraparound.",
    "short_label": "STEP PAGE +",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "883-897",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L883-L897"
     }
    ]
   },
   {
    "mode": "steps",
    "gesture": "press_while_holding:button_seq+key_f3",
    "action": "With any white step key held, cycles normal, fill-only and no-fill behavior for the held steps, using the first held step as the starting rule.",
    "short_label": "FILL RULE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "883-897",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L883-L897"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "302-343",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L302-L343"
     }
    ],
    "condition": "The named F3 key is an example; any held white step key works."
   },
   {
    "mode": "punch",
    "gesture": "press_while_holding:button_fx",
    "action": "Sends the mix to a momentary echo throw while held.",
    "short_label": "ECHO THROW",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "850-859",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L850-L859"
     }
    ]
   },
   {
    "mode": "tape",
    "gesture": "press_while_holding:button_sel",
    "action": "Replaces destination events from the head without a question and clips at the pattern end, refusing mismatched clip types or more than 24 total locks without changing the pattern; successful drops support sequence undo and later autosave.",
    "short_label": "DROP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "874-881",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L874-L881"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/orbit_ui.c",
      "lines": "16-29",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/orbit_ui.c#L16-L29"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/orbit_tape.h",
      "lines": "48-80",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/orbit_tape.h#L48-L80"
     }
    ]
   },
   {
    "mode": "song",
    "gesture": "press",
    "action": "While stopped, a second OCT+ press within three seconds loads the entry’s section over working patterns and sounds, without a load undo.",
    "short_label": "LOAD SECTION",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_song.c",
      "lines": "104-122",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_song.c#L104-L122"
     }
    ]
   },
   {
    "mode": "menu_screen",
    "gesture": "press",
    "action": "Cycles the highlighted setting or performs its action, with the action-specific confirmation rules listed for SYSTEM.",
    "short_label": "MENU OK",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_menu.c",
      "lines": "174-237",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L174-L237"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_menu.c",
      "lines": "276-277",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L276-L277"
     }
    ]
   },
   {
    "mode": "menu_lights",
    "gesture": "press",
    "action": "Cycles the highlighted setting or performs its action, with the action-specific confirmation rules listed for SYSTEM.",
    "short_label": "MENU OK",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_menu.c",
      "lines": "174-237",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L174-L237"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_menu.c",
      "lines": "276-277",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L276-L277"
     }
    ]
   },
   {
    "mode": "menu_audio",
    "gesture": "press",
    "action": "Cycles the highlighted setting or performs its action, with the action-specific confirmation rules listed for SYSTEM.",
    "short_label": "MENU OK",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_menu.c",
      "lines": "174-237",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L174-L237"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_menu.c",
      "lines": "276-277",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L276-L277"
     }
    ]
   },
   {
    "mode": "menu_system",
    "gesture": "press",
    "action": "Cycles the highlighted setting or performs its action, with the action-specific confirmation rules listed for SYSTEM.",
    "short_label": "MENU OK",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_menu.c",
      "lines": "174-237",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L174-L237"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_menu.c",
      "lines": "276-277",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L276-L277"
     }
    ]
   },
   {
    "mode": "menu_system",
    "gesture": "press",
    "action": "With calibration highlighted, starts learning without another question; timeout restores the previous map, and closing the menu writes settings only when they differ from the saved state, with no settings undo.",
    "short_label": "CALIBRATE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_menu.c",
      "lines": "223-227",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L223-L227"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "1240-1249",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L1240-L1249"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_menu.c",
      "lines": "162-168",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L162-L168"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/project.c",
      "lines": "993-1007",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/project.c#L993-L1007"
     }
    ]
   },
   {
    "mode": "menu_system",
    "gesture": "press",
    "action": "With MIDI LEARN CLEAR highlighted, immediately removes all learned CC assignments without a second question or undo, then saves settings later when stopped and quiet.",
    "short_label": "CLEAR LEARN",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_menu.c",
      "lines": "219-222",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L219-L222"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui.c",
      "lines": "742-749",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui.c#L742-L749"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/project.c",
      "lines": "1218-1223",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/project.c#L1218-L1223"
     }
    ]
   },
   {
    "mode": "menu_system",
    "gesture": "press",
    "action": "With ABOUT highlighted, opens credits and version information.",
    "short_label": "SHOW ABOUT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_menu.c",
      "lines": "229-233",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L229-L233"
     }
    ]
   },
   {
    "mode": "menu_system",
    "gesture": "press",
    "action": "With DEMO SONG highlighted and playback stopped, a second OCT+ press replaces working patterns and sounds with FIRST LIGHT without a project-load undo, then closes and saves settings while the changed music can autosave later.",
    "short_label": "FIRST LIGHT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_menu.c",
      "lines": "212-218",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L212-L218"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/orbit_demo.c",
      "lines": "12-58",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/orbit_demo.c#L12-L58"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "350-380",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L350-L380"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "press_while_holding:button_oct_down",
    "action": "Keeping both OCT buttons down while stopped for more than five seconds flushes pending sections, dirty song settings and changed working music before entering UBOOT, with early release cancelling entry.",
    "short_label": "ENTER UBOOT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/main.c",
      "lines": "202-229",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/main.c#L202-L229"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/project.c",
      "lines": "1166-1177",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/project.c#L1166-L1177"
     }
    ]
   }
  ],
  "key_f3": [
   {
    "mode": "synth_play",
    "gesture": "press",
    "action": "Plays F3 on a pitched synth sound before octave and transpose, following scale snap or white-key mapping and one-key chords when enabled.",
    "short_label": "F3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "198-246",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L198-L246"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1550-1590",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1550-L1590"
     }
    ]
   },
   {
    "mode": "synth_play",
    "gesture": "release",
    "action": "Releases its sounding synth note or chord, subject to envelope release, sustain and arp HOLD.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1624-1629",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1624-L1629"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1232-1271",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1232-L1271"
     }
    ]
   },
   {
    "mode": "drum_play",
    "gesture": "press",
    "action": "Plays the kick pad, using normal hit level or OCT- ghost and OCT+ hard.",
    "short_label": "KICK",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/drums.c",
      "lines": "64-89",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/drums.c#L64-L89"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1418-1421",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1418-L1421"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1535-1547",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1535-L1547"
     }
    ]
   },
   {
    "mode": "drum_play",
    "gesture": "release",
    "action": "Sends that drum pad’s MIDI note-off and closes its free-take event without cutting the one-shot drum sound.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1631-1636",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1631-L1636"
     }
    ]
   },
   {
    "mode": "step",
    "gesture": "press",
    "action": "On a synth track outside live recording, writes the played note or chord into the cursor step, up to four notes in POLY or the last note otherwise; silent black-key mappings enter nothing.",
    "short_label": "ENTER STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "620-659",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L620-L659"
     }
    ]
   },
   {
    "mode": "step",
    "gesture": "release",
    "action": "After an entry, releasing all panel and MIDI notes advances the step cursor.",
    "short_label": "ADVANCE STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "661-662",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L661-L662"
     }
    ]
   },
   {
    "mode": "punch",
    "gesture": "press_while_holding:button_fx",
    "action": "Applies LOOP 4 to the whole mix while held, with the latest pressed effect replacing the previous one.",
    "short_label": "LOOP 4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/punch.c",
      "lines": "13-21",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/punch.c#L13-L21"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1475-1483",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1475-L1483"
     }
    ]
   },
   {
    "mode": "punch",
    "gesture": "release",
    "action": "Releasing the key currently controlling the punch effect returns the mix to dry.",
    "short_label": "END FX",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1600-1604",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1600-L1604"
     }
    ]
   },
   {
    "mode": "roll",
    "gesture": "press_while_holding:button_arp",
    "action": "Repeats the mapped synth note or drum pad on the repeat grid while held, with silent synth black-key mappings remaining silent.",
    "short_label": "REPEAT NOTE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1535-1564",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1535-L1564"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1289-1382",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1289-L1382"
     }
    ]
   },
   {
    "mode": "roll",
    "gesture": "release",
    "action": "Ends the repeat started by this key.",
    "short_label": "STOP REPEAT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1619-1623",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1619-L1623"
     }
    ]
   },
   {
    "mode": "key_scale",
    "gesture": "press_while_holding:button_sel",
    "action": "Sets F as root for all three synth tracks without playing a note.",
    "short_label": "ROOT F",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "393-398",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L393-L398"
     }
    ]
   },
   {
    "mode": "steps",
    "gesture": "press_while_holding:button_seq",
    "action": "For step 1 on the displayed page, fills an empty step immediately with the recent synth note or chord, or the chosen drum hit; an occupied step clears on release unless edited, while steps outside the pattern or during song-mode playback are left alone.",
    "short_label": "STEP 1",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "158-188",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L158-L188"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "383-392",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L383-L392"
     }
    ]
   },
   {
    "mode": "steps",
    "gesture": "release",
    "action": "Clears an occupied held step on release unless an edit kept it, without a question, removing locks, nudge and fill if it becomes empty and allowing sequence undo.",
    "short_label": "CLEAR ON UP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "190-211",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L190-L211"
     }
    ]
   },
   {
    "mode": "drum_grid",
    "gesture": "press",
    "action": "Toggles the selected drum lane at step 1 of the current page only within the track length and outside song-mode playback at once without a question, auditioning additions and allowing sequence undo while clearing details if the last hit is removed.",
    "short_label": "GRID STEP 1",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_studio.c",
      "lines": "490-535",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_studio.c#L490-L535"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "press_while_holding:button_edit",
    "action": "Erases the mapped synth note or chord, or this drum lane, immediately from all active steps while stopped or from steps passing while held during playback, without a question and with sequence undo available.",
    "short_label": "ERASE EVENTS",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "965-1023",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L965-L1023"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1502-1524",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1502-L1524"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "press_while_holding:button_edit",
    "action": "On drums after a black key selected live mutes, toggles this lane’s sequencer mute without deleting hits, saving the mute or adding undo.",
    "short_label": "MUTE KICK",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "970-975",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L970-L975"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1493-1500",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1493-L1500"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "release",
    "action": "Stops ongoing erasure for this key without restoring events already removed.",
    "short_label": "STOP ERASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1612-1618",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1612-L1618"
     }
    ]
   },
   {
    "mode": "mix_layer",
    "gesture": "press_while_holding:button_glo",
    "action": "Toggles track 1 mute without deleting its events.",
    "short_label": "MUTE 1",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "461-475",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L461-L475"
     }
    ]
   },
   {
    "mode": "sections",
    "gesture": "press_while_holding:button_save",
    "action": "Loads section A over working patterns and sounds at once when stopped without a question or load undo, or requests it for the next bar during loop playback and queues it for a chain while SAVE stays held.",
    "short_label": "RECALL A",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "400-458",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L400-L458"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/project.c",
      "lines": "1116-1163",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/project.c#L1116-L1163"
     }
    ]
   },
   {
    "mode": "sample_perc",
    "gesture": "press",
    "action": "Plays C2 before octave buttons and any chord processing, without scale or keyboard transpose mapping.",
    "short_label": "C2",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "235-242",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L235-L242"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1566-1584",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1566-L1584"
     }
    ]
   }
  ],
  "key_fs3": [
   {
    "mode": "synth_play",
    "gesture": "press",
    "action": "Plays F#3 on a pitched synth sound before octave and transpose, following scale snap or white-key mapping and one-key chords when enabled.",
    "short_label": "F#3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "198-246",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L198-L246"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1550-1590",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1550-L1590"
     }
    ]
   },
   {
    "mode": "synth_play",
    "gesture": "release",
    "action": "Releases its sounding synth note or chord, subject to envelope release, sustain and arp HOLD.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1624-1629",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1624-L1629"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1232-1271",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1232-L1271"
     }
    ]
   },
   {
    "mode": "synth_play",
    "gesture": "hold",
    "action": "In chord mode, flips a major third to minor or a minor third to major when present, yielding to a held SUS4 modifier and leaving POWER chords unchanged; WHITE mapping with chords off is silent.",
    "short_label": "THIRD FLIP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "288-298",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L288-L298"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1433-1465",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1433-L1465"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1551-1557",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1551-L1557"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "320-330",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L320-L330"
     }
    ]
   },
   {
    "mode": "synth_play",
    "gesture": "release",
    "action": "In chord mode, removes its chord modifier and revoices any chord still held.",
    "short_label": "END THIRD",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1609-1611",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1609-L1611"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1433-1465",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1433-L1465"
     }
    ]
   },
   {
    "mode": "drum_play",
    "gesture": "press",
    "action": "Plays the kick pad, using normal hit level or OCT- ghost and OCT+ hard.",
    "short_label": "KICK",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/drums.c",
      "lines": "64-89",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/drums.c#L64-L89"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1418-1421",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1418-L1421"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1535-1547",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1535-L1547"
     }
    ]
   },
   {
    "mode": "drum_play",
    "gesture": "release",
    "action": "Sends that drum pad’s MIDI note-off and closes its free-take event without cutting the one-shot drum sound.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1631-1636",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1631-L1636"
     }
    ]
   },
   {
    "mode": "step",
    "gesture": "press",
    "action": "On a synth track outside live recording, writes the played note or chord into the cursor step, up to four notes in POLY or the last note otherwise; silent black-key mappings enter nothing.",
    "short_label": "ENTER STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "620-659",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L620-L659"
     }
    ]
   },
   {
    "mode": "step",
    "gesture": "release",
    "action": "After an entry, releasing all panel and MIDI notes advances the step cursor.",
    "short_label": "ADVANCE STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "661-662",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L661-L662"
     }
    ]
   },
   {
    "mode": "punch",
    "gesture": "press_while_holding:button_fx",
    "action": "Applies KILL LOW to the whole mix while held, with the latest pressed effect replacing the previous one.",
    "short_label": "KILL LOW",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/punch.c",
      "lines": "13-21",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/punch.c#L13-L21"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1475-1483",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1475-L1483"
     }
    ]
   },
   {
    "mode": "punch",
    "gesture": "release",
    "action": "Releasing the key currently controlling the punch effect returns the mix to dry.",
    "short_label": "END FX",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1600-1604",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1600-L1604"
     }
    ]
   },
   {
    "mode": "roll",
    "gesture": "press_while_holding:button_arp",
    "action": "Repeats the mapped synth note or drum pad on the repeat grid while held, with silent synth black-key mappings remaining silent.",
    "short_label": "REPEAT NOTE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1535-1564",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1535-L1564"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1289-1382",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1289-L1382"
     }
    ]
   },
   {
    "mode": "roll",
    "gesture": "release",
    "action": "Ends the repeat started by this key.",
    "short_label": "STOP REPEAT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1619-1623",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1619-L1623"
     }
    ]
   },
   {
    "mode": "key_scale",
    "gesture": "press_while_holding:button_sel",
    "action": "Sets F# as root for all three synth tracks without playing a note.",
    "short_label": "ROOT F#",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "393-398",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L393-L398"
     }
    ]
   },
   {
    "mode": "drum_grid",
    "gesture": "press",
    "action": "Silently selects kick for grid editing.",
    "short_label": "PICK KICK",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_studio.c",
      "lines": "9-10",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_studio.c#L9-L10"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_studio.c",
      "lines": "500-512",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_studio.c#L500-L512"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "press_while_holding:button_edit",
    "action": "On drums, switches white keys between erasing lanes and toggling temporary live mutes; releasing EDIT resets this choice to erase.",
    "short_label": "ERASE / MUTE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "970-975",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L970-L975"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1493-1500",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1493-L1500"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1676-1677",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1676-L1677"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "press_while_holding:button_edit",
    "action": "On synth tracks, erases the mapped note immediately from active steps without a question, while chord or WHITE mappings make this black key silent; sequence undo can restore the edit.",
    "short_label": "ERASE NOTE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "965-1023",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L965-L1023"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1515-1524",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1515-L1524"
     }
    ]
   },
   {
    "mode": "steps",
    "gesture": "press_while_holding:button_seq",
    "action": "Selects steps 1 to 16 if that page lies inside the track length.",
    "short_label": "PAGE 1",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "383-388",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L383-L388"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "release",
    "action": "Stops ongoing erasure for this key without restoring events already removed.",
    "short_label": "STOP ERASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1612-1618",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1612-L1618"
     }
    ]
   },
   {
    "mode": "mix_layer",
    "gesture": "press_while_holding:button_glo",
    "action": "Toggles MIDI learn, then touching a supported track sound knob and sending an eligible CC assigns it in one of sixteen persistent slots, with automatic settings storage later when quiet.",
    "short_label": "MIDI LEARN",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "461-475",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L461-L475"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui.c",
      "lines": "705-740",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui.c#L705-L740"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui.c",
      "lines": "751-805",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui.c#L751-L805"
     }
    ]
   },
   {
    "mode": "sections",
    "gesture": "press_while_holding:button_save",
    "action": "Does nothing in the section layer.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "400-458",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L400-L458"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/project.c",
      "lines": "1116-1163",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/project.c#L1116-L1163"
     }
    ]
   },
   {
    "mode": "sample_perc",
    "gesture": "press",
    "action": "Plays C#2 before octave buttons and any chord processing, without scale or keyboard transpose mapping.",
    "short_label": "C#2",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "235-242",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L235-L242"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1566-1584",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1566-L1584"
     }
    ]
   }
  ],
  "key_g3": [
   {
    "mode": "synth_play",
    "gesture": "press",
    "action": "Plays G3 on a pitched synth sound before octave and transpose, following scale snap or white-key mapping and one-key chords when enabled.",
    "short_label": "G3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "198-246",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L198-L246"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1550-1590",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1550-L1590"
     }
    ]
   },
   {
    "mode": "synth_play",
    "gesture": "release",
    "action": "Releases its sounding synth note or chord, subject to envelope release, sustain and arp HOLD.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1624-1629",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1624-L1629"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1232-1271",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1232-L1271"
     }
    ]
   },
   {
    "mode": "drum_play",
    "gesture": "press",
    "action": "Plays the kick 2 pad, using normal hit level or OCT- ghost and OCT+ hard.",
    "short_label": "KICK 2",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/drums.c",
      "lines": "64-89",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/drums.c#L64-L89"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1418-1421",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1418-L1421"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1535-1547",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1535-L1547"
     }
    ]
   },
   {
    "mode": "drum_play",
    "gesture": "release",
    "action": "Sends that drum pad’s MIDI note-off and closes its free-take event without cutting the one-shot drum sound.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1631-1636",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1631-L1636"
     }
    ]
   },
   {
    "mode": "step",
    "gesture": "press",
    "action": "On a synth track outside live recording, writes the played note or chord into the cursor step, up to four notes in POLY or the last note otherwise; silent black-key mappings enter nothing.",
    "short_label": "ENTER STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "620-659",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L620-L659"
     }
    ]
   },
   {
    "mode": "step",
    "gesture": "release",
    "action": "After an entry, releasing all panel and MIDI notes advances the step cursor.",
    "short_label": "ADVANCE STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "661-662",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L661-L662"
     }
    ]
   },
   {
    "mode": "punch",
    "gesture": "press_while_holding:button_fx",
    "action": "Applies LOOP 8 to the whole mix while held, with the latest pressed effect replacing the previous one.",
    "short_label": "LOOP 8",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/punch.c",
      "lines": "13-21",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/punch.c#L13-L21"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1475-1483",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1475-L1483"
     }
    ]
   },
   {
    "mode": "punch",
    "gesture": "release",
    "action": "Releasing the key currently controlling the punch effect returns the mix to dry.",
    "short_label": "END FX",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1600-1604",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1600-L1604"
     }
    ]
   },
   {
    "mode": "roll",
    "gesture": "press_while_holding:button_arp",
    "action": "Repeats the mapped synth note or drum pad on the repeat grid while held, with silent synth black-key mappings remaining silent.",
    "short_label": "REPEAT NOTE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1535-1564",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1535-L1564"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1289-1382",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1289-L1382"
     }
    ]
   },
   {
    "mode": "roll",
    "gesture": "release",
    "action": "Ends the repeat started by this key.",
    "short_label": "STOP REPEAT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1619-1623",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1619-L1623"
     }
    ]
   },
   {
    "mode": "key_scale",
    "gesture": "press_while_holding:button_sel",
    "action": "Sets G as root for all three synth tracks without playing a note.",
    "short_label": "ROOT G",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "393-398",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L393-L398"
     }
    ]
   },
   {
    "mode": "steps",
    "gesture": "press_while_holding:button_seq",
    "action": "For step 2 on the displayed page, fills an empty step immediately with the recent synth note or chord, or the chosen drum hit; an occupied step clears on release unless edited, while steps outside the pattern or during song-mode playback are left alone.",
    "short_label": "STEP 2",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "158-188",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L158-L188"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "383-392",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L383-L392"
     }
    ]
   },
   {
    "mode": "steps",
    "gesture": "release",
    "action": "Clears an occupied held step on release unless an edit kept it, without a question, removing locks, nudge and fill if it becomes empty and allowing sequence undo.",
    "short_label": "CLEAR ON UP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "190-211",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L190-L211"
     }
    ]
   },
   {
    "mode": "drum_grid",
    "gesture": "press",
    "action": "Toggles the selected drum lane at step 2 of the current page only within the track length and outside song-mode playback at once without a question, auditioning additions and allowing sequence undo while clearing details if the last hit is removed.",
    "short_label": "GRID STEP 2",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_studio.c",
      "lines": "490-535",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_studio.c#L490-L535"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "press_while_holding:button_edit",
    "action": "Erases the mapped synth note or chord, or this drum lane, immediately from all active steps while stopped or from steps passing while held during playback, without a question and with sequence undo available.",
    "short_label": "ERASE EVENTS",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "965-1023",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L965-L1023"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1502-1524",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1502-L1524"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "press_while_holding:button_edit",
    "action": "On drums after a black key selected live mutes, toggles this lane’s sequencer mute without deleting hits, saving the mute or adding undo.",
    "short_label": "MUTE KICK 2",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "970-975",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L970-L975"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1493-1500",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1493-L1500"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "release",
    "action": "Stops ongoing erasure for this key without restoring events already removed.",
    "short_label": "STOP ERASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1612-1618",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1612-L1618"
     }
    ]
   },
   {
    "mode": "mix_layer",
    "gesture": "press_while_holding:button_glo",
    "action": "Toggles track 2 mute without deleting its events.",
    "short_label": "MUTE 2",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "461-475",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L461-L475"
     }
    ]
   },
   {
    "mode": "sections",
    "gesture": "press_while_holding:button_save",
    "action": "Loads section B over working patterns and sounds at once when stopped without a question or load undo, or requests it for the next bar during loop playback and queues it for a chain while SAVE stays held.",
    "short_label": "RECALL B",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "400-458",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L400-L458"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/project.c",
      "lines": "1116-1163",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/project.c#L1116-L1163"
     }
    ]
   },
   {
    "mode": "sample_perc",
    "gesture": "press",
    "action": "Plays D2 before octave buttons and any chord processing, without scale or keyboard transpose mapping.",
    "short_label": "D2",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "235-242",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L235-L242"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1566-1584",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1566-L1584"
     }
    ]
   }
  ],
  "key_gs3": [
   {
    "mode": "synth_play",
    "gesture": "press",
    "action": "Plays G#3 on a pitched synth sound before octave and transpose, following scale snap or white-key mapping and one-key chords when enabled.",
    "short_label": "G#3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "198-246",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L198-L246"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1550-1590",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1550-L1590"
     }
    ]
   },
   {
    "mode": "synth_play",
    "gesture": "release",
    "action": "Releases its sounding synth note or chord, subject to envelope release, sustain and arp HOLD.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1624-1629",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1624-L1629"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1232-1271",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1232-L1271"
     }
    ]
   },
   {
    "mode": "synth_play",
    "gesture": "hold",
    "action": "In chord mode, silently changes held and newly played chords with the seventh modifier; with WHITE mapping and chords off, it is silent.",
    "short_label": "SEVENTH",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "288-298",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L288-L298"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1433-1465",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1433-L1465"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1551-1557",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1551-L1557"
     }
    ]
   },
   {
    "mode": "synth_play",
    "gesture": "release",
    "action": "In chord mode, removes its chord modifier and revoices any chord still held.",
    "short_label": "END SEVENTH",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1609-1611",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1609-L1611"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1433-1465",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1433-L1465"
     }
    ]
   },
   {
    "mode": "drum_play",
    "gesture": "press",
    "action": "Plays the kick 2 pad, using normal hit level or OCT- ghost and OCT+ hard.",
    "short_label": "KICK 2",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/drums.c",
      "lines": "64-89",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/drums.c#L64-L89"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1418-1421",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1418-L1421"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1535-1547",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1535-L1547"
     }
    ]
   },
   {
    "mode": "drum_play",
    "gesture": "release",
    "action": "Sends that drum pad’s MIDI note-off and closes its free-take event without cutting the one-shot drum sound.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1631-1636",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1631-L1636"
     }
    ]
   },
   {
    "mode": "step",
    "gesture": "press",
    "action": "On a synth track outside live recording, writes the played note or chord into the cursor step, up to four notes in POLY or the last note otherwise; silent black-key mappings enter nothing.",
    "short_label": "ENTER STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "620-659",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L620-L659"
     }
    ]
   },
   {
    "mode": "step",
    "gesture": "release",
    "action": "After an entry, releasing all panel and MIDI notes advances the step cursor.",
    "short_label": "ADVANCE STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "661-662",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L661-L662"
     }
    ]
   },
   {
    "mode": "punch",
    "gesture": "press_while_holding:button_fx",
    "action": "Applies KILL MID to the whole mix while held, with the latest pressed effect replacing the previous one.",
    "short_label": "KILL MID",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/punch.c",
      "lines": "13-21",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/punch.c#L13-L21"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1475-1483",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1475-L1483"
     }
    ]
   },
   {
    "mode": "punch",
    "gesture": "release",
    "action": "Releasing the key currently controlling the punch effect returns the mix to dry.",
    "short_label": "END FX",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1600-1604",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1600-L1604"
     }
    ]
   },
   {
    "mode": "roll",
    "gesture": "press_while_holding:button_arp",
    "action": "Repeats the mapped synth note or drum pad on the repeat grid while held, with silent synth black-key mappings remaining silent.",
    "short_label": "REPEAT NOTE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1535-1564",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1535-L1564"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1289-1382",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1289-L1382"
     }
    ]
   },
   {
    "mode": "roll",
    "gesture": "release",
    "action": "Ends the repeat started by this key.",
    "short_label": "STOP REPEAT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1619-1623",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1619-L1623"
     }
    ]
   },
   {
    "mode": "key_scale",
    "gesture": "press_while_holding:button_sel",
    "action": "Sets G# as root for all three synth tracks without playing a note.",
    "short_label": "ROOT G#",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "393-398",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L393-L398"
     }
    ]
   },
   {
    "mode": "drum_grid",
    "gesture": "press",
    "action": "Silently selects snare for grid editing.",
    "short_label": "PICK SNARE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_studio.c",
      "lines": "9-10",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_studio.c#L9-L10"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_studio.c",
      "lines": "500-512",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_studio.c#L500-L512"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "press_while_holding:button_edit",
    "action": "On drums, switches white keys between erasing lanes and toggling temporary live mutes; releasing EDIT resets this choice to erase.",
    "short_label": "ERASE / MUTE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "970-975",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L970-L975"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1493-1500",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1493-L1500"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1676-1677",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1676-L1677"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "press_while_holding:button_edit",
    "action": "On synth tracks, erases the mapped note immediately from active steps without a question, while chord or WHITE mappings make this black key silent; sequence undo can restore the edit.",
    "short_label": "ERASE NOTE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "965-1023",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L965-L1023"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1515-1524",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1515-L1524"
     }
    ]
   },
   {
    "mode": "steps",
    "gesture": "press_while_holding:button_seq",
    "action": "Selects steps 17 to 32 if that page lies inside the track length.",
    "short_label": "PAGE 2",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "383-388",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L383-L388"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "release",
    "action": "Stops ongoing erasure for this key without restoring events already removed.",
    "short_label": "STOP ERASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1612-1618",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1612-L1618"
     }
    ]
   },
   {
    "mode": "mix_layer",
    "gesture": "press_while_holding:button_glo",
    "action": "Does nothing in the mix layer.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "461-475",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L461-L475"
     }
    ]
   },
   {
    "mode": "sections",
    "gesture": "press_while_holding:button_save",
    "action": "Does nothing in the section layer.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "400-458",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L400-L458"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/project.c",
      "lines": "1116-1163",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/project.c#L1116-L1163"
     }
    ]
   },
   {
    "mode": "sample_perc",
    "gesture": "press",
    "action": "Plays D#2 before octave buttons and any chord processing, without scale or keyboard transpose mapping.",
    "short_label": "D#2",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "235-242",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L235-L242"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1566-1584",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1566-L1584"
     }
    ]
   }
  ],
  "key_a3": [
   {
    "mode": "synth_play",
    "gesture": "press",
    "action": "Plays A3 on a pitched synth sound before octave and transpose, following scale snap or white-key mapping and one-key chords when enabled.",
    "short_label": "A3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "198-246",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L198-L246"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1550-1590",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1550-L1590"
     }
    ]
   },
   {
    "mode": "synth_play",
    "gesture": "release",
    "action": "Releases its sounding synth note or chord, subject to envelope release, sustain and arp HOLD.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1624-1629",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1624-L1629"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1232-1271",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1232-L1271"
     }
    ]
   },
   {
    "mode": "drum_play",
    "gesture": "press",
    "action": "Plays the snare pad, using normal hit level or OCT- ghost and OCT+ hard.",
    "short_label": "SNARE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/drums.c",
      "lines": "64-89",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/drums.c#L64-L89"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1418-1421",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1418-L1421"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1535-1547",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1535-L1547"
     }
    ]
   },
   {
    "mode": "drum_play",
    "gesture": "release",
    "action": "Sends that drum pad’s MIDI note-off and closes its free-take event without cutting the one-shot drum sound.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1631-1636",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1631-L1636"
     }
    ]
   },
   {
    "mode": "step",
    "gesture": "press",
    "action": "On a synth track outside live recording, writes the played note or chord into the cursor step, up to four notes in POLY or the last note otherwise; silent black-key mappings enter nothing.",
    "short_label": "ENTER STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "620-659",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L620-L659"
     }
    ]
   },
   {
    "mode": "step",
    "gesture": "release",
    "action": "After an entry, releasing all panel and MIDI notes advances the step cursor.",
    "short_label": "ADVANCE STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "661-662",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L661-L662"
     }
    ]
   },
   {
    "mode": "punch",
    "gesture": "press_while_holding:button_fx",
    "action": "Applies LOOP 16 to the whole mix while held, with the latest pressed effect replacing the previous one.",
    "short_label": "LOOP 16",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/punch.c",
      "lines": "13-21",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/punch.c#L13-L21"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1475-1483",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1475-L1483"
     }
    ]
   },
   {
    "mode": "punch",
    "gesture": "release",
    "action": "Releasing the key currently controlling the punch effect returns the mix to dry.",
    "short_label": "END FX",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1600-1604",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1600-L1604"
     }
    ]
   },
   {
    "mode": "roll",
    "gesture": "press_while_holding:button_arp",
    "action": "Repeats the mapped synth note or drum pad on the repeat grid while held, with silent synth black-key mappings remaining silent.",
    "short_label": "REPEAT NOTE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1535-1564",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1535-L1564"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1289-1382",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1289-L1382"
     }
    ]
   },
   {
    "mode": "roll",
    "gesture": "release",
    "action": "Ends the repeat started by this key.",
    "short_label": "STOP REPEAT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1619-1623",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1619-L1623"
     }
    ]
   },
   {
    "mode": "key_scale",
    "gesture": "press_while_holding:button_sel",
    "action": "Sets A as root for all three synth tracks without playing a note.",
    "short_label": "ROOT A",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "393-398",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L393-L398"
     }
    ]
   },
   {
    "mode": "steps",
    "gesture": "press_while_holding:button_seq",
    "action": "For step 3 on the displayed page, fills an empty step immediately with the recent synth note or chord, or the chosen drum hit; an occupied step clears on release unless edited, while steps outside the pattern or during song-mode playback are left alone.",
    "short_label": "STEP 3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "158-188",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L158-L188"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "383-392",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L383-L392"
     }
    ]
   },
   {
    "mode": "steps",
    "gesture": "release",
    "action": "Clears an occupied held step on release unless an edit kept it, without a question, removing locks, nudge and fill if it becomes empty and allowing sequence undo.",
    "short_label": "CLEAR ON UP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "190-211",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L190-L211"
     }
    ]
   },
   {
    "mode": "drum_grid",
    "gesture": "press",
    "action": "Toggles the selected drum lane at step 3 of the current page only within the track length and outside song-mode playback at once without a question, auditioning additions and allowing sequence undo while clearing details if the last hit is removed.",
    "short_label": "GRID STEP 3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_studio.c",
      "lines": "490-535",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_studio.c#L490-L535"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "press_while_holding:button_edit",
    "action": "Erases the mapped synth note or chord, or this drum lane, immediately from all active steps while stopped or from steps passing while held during playback, without a question and with sequence undo available.",
    "short_label": "ERASE EVENTS",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "965-1023",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L965-L1023"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1502-1524",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1502-L1524"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "press_while_holding:button_edit",
    "action": "On drums after a black key selected live mutes, toggles this lane’s sequencer mute without deleting hits, saving the mute or adding undo.",
    "short_label": "MUTE SNARE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "970-975",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L970-L975"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1493-1500",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1493-L1500"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "release",
    "action": "Stops ongoing erasure for this key without restoring events already removed.",
    "short_label": "STOP ERASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1612-1618",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1612-L1618"
     }
    ]
   },
   {
    "mode": "mix_layer",
    "gesture": "press_while_holding:button_glo",
    "action": "Toggles track 3 mute without deleting its events.",
    "short_label": "MUTE 3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "461-475",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L461-L475"
     }
    ]
   },
   {
    "mode": "sections",
    "gesture": "press_while_holding:button_save",
    "action": "Loads section C over working patterns and sounds at once when stopped without a question or load undo, or requests it for the next bar during loop playback and queues it for a chain while SAVE stays held.",
    "short_label": "RECALL C",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "400-458",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L400-L458"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/project.c",
      "lines": "1116-1163",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/project.c#L1116-L1163"
     }
    ]
   },
   {
    "mode": "sample_perc",
    "gesture": "press",
    "action": "Plays E2 before octave buttons and any chord processing, without scale or keyboard transpose mapping.",
    "short_label": "E2",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "235-242",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L235-L242"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1566-1584",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1566-L1584"
     }
    ]
   }
  ],
  "key_as3": [
   {
    "mode": "synth_play",
    "gesture": "press",
    "action": "Plays A#3 on a pitched synth sound before octave and transpose, following scale snap or white-key mapping and one-key chords when enabled.",
    "short_label": "A#3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "198-246",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L198-L246"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1550-1590",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1550-L1590"
     }
    ]
   },
   {
    "mode": "synth_play",
    "gesture": "release",
    "action": "Releases its sounding synth note or chord, subject to envelope release, sustain and arp HOLD.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1624-1629",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1624-L1629"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1232-1271",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1232-L1271"
     }
    ]
   },
   {
    "mode": "synth_play",
    "gesture": "hold",
    "action": "In chord mode, silently changes held and newly played chords with the suspended fourth modifier; with WHITE mapping and chords off, it is silent.",
    "short_label": "SUS4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "288-298",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L288-L298"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1433-1465",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1433-L1465"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1551-1557",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1551-L1557"
     }
    ]
   },
   {
    "mode": "synth_play",
    "gesture": "release",
    "action": "In chord mode, removes its chord modifier and revoices any chord still held.",
    "short_label": "END SUS4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1609-1611",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1609-L1611"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1433-1465",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1433-L1465"
     }
    ]
   },
   {
    "mode": "drum_play",
    "gesture": "press",
    "action": "Plays the snare pad, using normal hit level or OCT- ghost and OCT+ hard.",
    "short_label": "SNARE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/drums.c",
      "lines": "64-89",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/drums.c#L64-L89"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1418-1421",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1418-L1421"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1535-1547",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1535-L1547"
     }
    ]
   },
   {
    "mode": "drum_play",
    "gesture": "release",
    "action": "Sends that drum pad’s MIDI note-off and closes its free-take event without cutting the one-shot drum sound.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1631-1636",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1631-L1636"
     }
    ]
   },
   {
    "mode": "step",
    "gesture": "press",
    "action": "On a synth track outside live recording, writes the played note or chord into the cursor step, up to four notes in POLY or the last note otherwise; silent black-key mappings enter nothing.",
    "short_label": "ENTER STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "620-659",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L620-L659"
     }
    ]
   },
   {
    "mode": "step",
    "gesture": "release",
    "action": "After an entry, releasing all panel and MIDI notes advances the step cursor.",
    "short_label": "ADVANCE STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "661-662",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L661-L662"
     }
    ]
   },
   {
    "mode": "punch",
    "gesture": "press_while_holding:button_fx",
    "action": "Applies KILL HIGH to the whole mix while held, with the latest pressed effect replacing the previous one.",
    "short_label": "KILL HIGH",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/punch.c",
      "lines": "13-21",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/punch.c#L13-L21"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1475-1483",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1475-L1483"
     }
    ]
   },
   {
    "mode": "punch",
    "gesture": "release",
    "action": "Releasing the key currently controlling the punch effect returns the mix to dry.",
    "short_label": "END FX",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1600-1604",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1600-L1604"
     }
    ]
   },
   {
    "mode": "roll",
    "gesture": "press_while_holding:button_arp",
    "action": "Repeats the mapped synth note or drum pad on the repeat grid while held, with silent synth black-key mappings remaining silent.",
    "short_label": "REPEAT NOTE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1535-1564",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1535-L1564"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1289-1382",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1289-L1382"
     }
    ]
   },
   {
    "mode": "roll",
    "gesture": "release",
    "action": "Ends the repeat started by this key.",
    "short_label": "STOP REPEAT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1619-1623",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1619-L1623"
     }
    ]
   },
   {
    "mode": "key_scale",
    "gesture": "press_while_holding:button_sel",
    "action": "Sets A# as root for all three synth tracks without playing a note.",
    "short_label": "ROOT A#",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "393-398",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L393-L398"
     }
    ]
   },
   {
    "mode": "drum_grid",
    "gesture": "press",
    "action": "Silently selects hat for grid editing.",
    "short_label": "PICK HAT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_studio.c",
      "lines": "9-10",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_studio.c#L9-L10"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_studio.c",
      "lines": "500-512",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_studio.c#L500-L512"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "press_while_holding:button_edit",
    "action": "On drums, switches white keys between erasing lanes and toggling temporary live mutes; releasing EDIT resets this choice to erase.",
    "short_label": "ERASE / MUTE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "970-975",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L970-L975"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1493-1500",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1493-L1500"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1676-1677",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1676-L1677"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "press_while_holding:button_edit",
    "action": "On synth tracks, erases the mapped note immediately from active steps without a question, while chord or WHITE mappings make this black key silent; sequence undo can restore the edit.",
    "short_label": "ERASE NOTE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "965-1023",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L965-L1023"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1515-1524",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1515-L1524"
     }
    ]
   },
   {
    "mode": "steps",
    "gesture": "press_while_holding:button_seq",
    "action": "Selects steps 33 to 48 if that page lies inside the track length.",
    "short_label": "PAGE 3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "383-388",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L383-L388"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "release",
    "action": "Stops ongoing erasure for this key without restoring events already removed.",
    "short_label": "STOP ERASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1612-1618",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1612-L1618"
     }
    ]
   },
   {
    "mode": "mix_layer",
    "gesture": "press_while_holding:button_glo",
    "action": "Does nothing in the mix layer.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "461-475",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L461-L475"
     }
    ]
   },
   {
    "mode": "sections",
    "gesture": "press_while_holding:button_save",
    "action": "Does nothing in the section layer.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "400-458",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L400-L458"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/project.c",
      "lines": "1116-1163",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/project.c#L1116-L1163"
     }
    ]
   },
   {
    "mode": "sample_perc",
    "gesture": "press",
    "action": "Plays F2 before octave buttons and any chord processing, without scale or keyboard transpose mapping.",
    "short_label": "F2",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "235-242",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L235-L242"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1566-1584",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1566-L1584"
     }
    ]
   }
  ],
  "key_b3": [
   {
    "mode": "synth_play",
    "gesture": "press",
    "action": "Plays B3 on a pitched synth sound before octave and transpose, following scale snap or white-key mapping and one-key chords when enabled.",
    "short_label": "B3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "198-246",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L198-L246"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1550-1590",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1550-L1590"
     }
    ]
   },
   {
    "mode": "synth_play",
    "gesture": "release",
    "action": "Releases its sounding synth note or chord, subject to envelope release, sustain and arp HOLD.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1624-1629",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1624-L1629"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1232-1271",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1232-L1271"
     }
    ]
   },
   {
    "mode": "drum_play",
    "gesture": "press",
    "action": "Plays the clap pad, using normal hit level or OCT- ghost and OCT+ hard.",
    "short_label": "CLAP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/drums.c",
      "lines": "64-89",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/drums.c#L64-L89"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1418-1421",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1418-L1421"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1535-1547",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1535-L1547"
     }
    ]
   },
   {
    "mode": "drum_play",
    "gesture": "release",
    "action": "Sends that drum pad’s MIDI note-off and closes its free-take event without cutting the one-shot drum sound.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1631-1636",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1631-L1636"
     }
    ]
   },
   {
    "mode": "step",
    "gesture": "press",
    "action": "On a synth track outside live recording, writes the played note or chord into the cursor step, up to four notes in POLY or the last note otherwise; silent black-key mappings enter nothing.",
    "short_label": "ENTER STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "620-659",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L620-L659"
     }
    ]
   },
   {
    "mode": "step",
    "gesture": "release",
    "action": "After an entry, releasing all panel and MIDI notes advances the step cursor.",
    "short_label": "ADVANCE STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "661-662",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L661-L662"
     }
    ]
   },
   {
    "mode": "punch",
    "gesture": "press_while_holding:button_fx",
    "action": "Applies LOOP 32 to the whole mix while held, with the latest pressed effect replacing the previous one.",
    "short_label": "LOOP 32",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/punch.c",
      "lines": "13-21",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/punch.c#L13-L21"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1475-1483",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1475-L1483"
     }
    ]
   },
   {
    "mode": "punch",
    "gesture": "release",
    "action": "Releasing the key currently controlling the punch effect returns the mix to dry.",
    "short_label": "END FX",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1600-1604",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1600-L1604"
     }
    ]
   },
   {
    "mode": "roll",
    "gesture": "press_while_holding:button_arp",
    "action": "Repeats the mapped synth note or drum pad on the repeat grid while held, with silent synth black-key mappings remaining silent.",
    "short_label": "REPEAT NOTE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1535-1564",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1535-L1564"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1289-1382",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1289-L1382"
     }
    ]
   },
   {
    "mode": "roll",
    "gesture": "release",
    "action": "Ends the repeat started by this key.",
    "short_label": "STOP REPEAT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1619-1623",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1619-L1623"
     }
    ]
   },
   {
    "mode": "key_scale",
    "gesture": "press_while_holding:button_sel",
    "action": "Sets B as root for all three synth tracks without playing a note.",
    "short_label": "ROOT B",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "393-398",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L393-L398"
     }
    ]
   },
   {
    "mode": "steps",
    "gesture": "press_while_holding:button_seq",
    "action": "For step 4 on the displayed page, fills an empty step immediately with the recent synth note or chord, or the chosen drum hit; an occupied step clears on release unless edited, while steps outside the pattern or during song-mode playback are left alone.",
    "short_label": "STEP 4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "158-188",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L158-L188"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "383-392",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L383-L392"
     }
    ]
   },
   {
    "mode": "steps",
    "gesture": "release",
    "action": "Clears an occupied held step on release unless an edit kept it, without a question, removing locks, nudge and fill if it becomes empty and allowing sequence undo.",
    "short_label": "CLEAR ON UP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "190-211",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L190-L211"
     }
    ]
   },
   {
    "mode": "drum_grid",
    "gesture": "press",
    "action": "Toggles the selected drum lane at step 4 of the current page only within the track length and outside song-mode playback at once without a question, auditioning additions and allowing sequence undo while clearing details if the last hit is removed.",
    "short_label": "GRID STEP 4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_studio.c",
      "lines": "490-535",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_studio.c#L490-L535"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "press_while_holding:button_edit",
    "action": "Erases the mapped synth note or chord, or this drum lane, immediately from all active steps while stopped or from steps passing while held during playback, without a question and with sequence undo available.",
    "short_label": "ERASE EVENTS",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "965-1023",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L965-L1023"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1502-1524",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1502-L1524"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "press_while_holding:button_edit",
    "action": "On drums after a black key selected live mutes, toggles this lane’s sequencer mute without deleting hits, saving the mute or adding undo.",
    "short_label": "MUTE CLAP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "970-975",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L970-L975"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1493-1500",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1493-L1500"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "release",
    "action": "Stops ongoing erasure for this key without restoring events already removed.",
    "short_label": "STOP ERASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1612-1618",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1612-L1618"
     }
    ]
   },
   {
    "mode": "mix_layer",
    "gesture": "press_while_holding:button_glo",
    "action": "Toggles track 4 mute without deleting its events.",
    "short_label": "MUTE 4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "461-475",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L461-L475"
     }
    ]
   },
   {
    "mode": "sections",
    "gesture": "press_while_holding:button_save",
    "action": "Loads section D over working patterns and sounds at once when stopped without a question or load undo, or requests it for the next bar during loop playback and queues it for a chain while SAVE stays held.",
    "short_label": "RECALL D",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "400-458",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L400-L458"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/project.c",
      "lines": "1116-1163",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/project.c#L1116-L1163"
     }
    ]
   },
   {
    "mode": "sample_perc",
    "gesture": "press",
    "action": "Plays F#2 before octave buttons and any chord processing, without scale or keyboard transpose mapping.",
    "short_label": "F#2",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "235-242",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L235-L242"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1566-1584",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1566-L1584"
     }
    ]
   }
  ],
  "key_c4": [
   {
    "mode": "synth_play",
    "gesture": "press",
    "action": "Plays C4 on a pitched synth sound before octave and transpose, following scale snap or white-key mapping and one-key chords when enabled.",
    "short_label": "C4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "198-246",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L198-L246"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1550-1590",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1550-L1590"
     }
    ]
   },
   {
    "mode": "synth_play",
    "gesture": "release",
    "action": "Releases its sounding synth note or chord, subject to envelope release, sustain and arp HOLD.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1624-1629",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1624-L1629"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1232-1271",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1232-L1271"
     }
    ]
   },
   {
    "mode": "drum_play",
    "gesture": "press",
    "action": "Plays the hat pad, using normal hit level or OCT- ghost and OCT+ hard.",
    "short_label": "HAT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/drums.c",
      "lines": "64-89",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/drums.c#L64-L89"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1418-1421",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1418-L1421"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1535-1547",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1535-L1547"
     }
    ]
   },
   {
    "mode": "drum_play",
    "gesture": "release",
    "action": "Sends that drum pad’s MIDI note-off and closes its free-take event without cutting the one-shot drum sound.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1631-1636",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1631-L1636"
     }
    ]
   },
   {
    "mode": "step",
    "gesture": "press",
    "action": "On a synth track outside live recording, writes the played note or chord into the cursor step, up to four notes in POLY or the last note otherwise; silent black-key mappings enter nothing.",
    "short_label": "ENTER STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "620-659",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L620-L659"
     }
    ]
   },
   {
    "mode": "step",
    "gesture": "release",
    "action": "After an entry, releasing all panel and MIDI notes advances the step cursor.",
    "short_label": "ADVANCE STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "661-662",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L661-L662"
     }
    ]
   },
   {
    "mode": "punch",
    "gesture": "press_while_holding:button_fx",
    "action": "Applies STUTTER to the whole mix while held, with the latest pressed effect replacing the previous one.",
    "short_label": "STUTTER",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/punch.c",
      "lines": "13-21",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/punch.c#L13-L21"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1475-1483",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1475-L1483"
     }
    ]
   },
   {
    "mode": "punch",
    "gesture": "release",
    "action": "Releasing the key currently controlling the punch effect returns the mix to dry.",
    "short_label": "END FX",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1600-1604",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1600-L1604"
     }
    ]
   },
   {
    "mode": "roll",
    "gesture": "press_while_holding:button_arp",
    "action": "Repeats the mapped synth note or drum pad on the repeat grid while held, with silent synth black-key mappings remaining silent.",
    "short_label": "REPEAT NOTE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1535-1564",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1535-L1564"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1289-1382",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1289-L1382"
     }
    ]
   },
   {
    "mode": "roll",
    "gesture": "release",
    "action": "Ends the repeat started by this key.",
    "short_label": "STOP REPEAT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1619-1623",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1619-L1623"
     }
    ]
   },
   {
    "mode": "key_scale",
    "gesture": "press_while_holding:button_sel",
    "action": "Sets C as root for all three synth tracks without playing a note.",
    "short_label": "ROOT C",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "393-398",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L393-L398"
     }
    ]
   },
   {
    "mode": "steps",
    "gesture": "press_while_holding:button_seq",
    "action": "For step 5 on the displayed page, fills an empty step immediately with the recent synth note or chord, or the chosen drum hit; an occupied step clears on release unless edited, while steps outside the pattern or during song-mode playback are left alone.",
    "short_label": "STEP 5",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "158-188",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L158-L188"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "383-392",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L383-L392"
     }
    ]
   },
   {
    "mode": "steps",
    "gesture": "release",
    "action": "Clears an occupied held step on release unless an edit kept it, without a question, removing locks, nudge and fill if it becomes empty and allowing sequence undo.",
    "short_label": "CLEAR ON UP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "190-211",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L190-L211"
     }
    ]
   },
   {
    "mode": "drum_grid",
    "gesture": "press",
    "action": "Toggles the selected drum lane at step 5 of the current page only within the track length and outside song-mode playback at once without a question, auditioning additions and allowing sequence undo while clearing details if the last hit is removed.",
    "short_label": "GRID STEP 5",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_studio.c",
      "lines": "490-535",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_studio.c#L490-L535"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "press_while_holding:button_edit",
    "action": "Erases the mapped synth note or chord, or this drum lane, immediately from all active steps while stopped or from steps passing while held during playback, without a question and with sequence undo available.",
    "short_label": "ERASE EVENTS",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "965-1023",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L965-L1023"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1502-1524",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1502-L1524"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "press_while_holding:button_edit",
    "action": "On drums after a black key selected live mutes, toggles this lane’s sequencer mute without deleting hits, saving the mute or adding undo.",
    "short_label": "MUTE HAT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "970-975",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L970-L975"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1493-1500",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1493-L1500"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "release",
    "action": "Stops ongoing erasure for this key without restoring events already removed.",
    "short_label": "STOP ERASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1612-1618",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1612-L1618"
     }
    ]
   },
   {
    "mode": "mix_layer",
    "gesture": "press_while_holding:button_glo",
    "action": "Toggles track 1 solo.",
    "short_label": "SOLO 1",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "461-475",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L461-L475"
     }
    ]
   },
   {
    "mode": "sections",
    "gesture": "press_while_holding:button_save",
    "action": "Captures the working project into section A in memory, requiring the same key again within three seconds if occupied, then writes it after stop, 1.5 seconds of inactivity, quiet voices and the five-second retry gap, without a flash-save undo.",
    "short_label": "STORE A",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "426-435",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L426-L435"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/project.c",
      "lines": "1132-1154",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/project.c#L1132-L1154"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/project.c",
      "lines": "1218-1224",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/project.c#L1218-L1224"
     }
    ]
   },
   {
    "mode": "sample_perc",
    "gesture": "press",
    "action": "Plays G2 before octave buttons and any chord processing, without scale or keyboard transpose mapping.",
    "short_label": "G2",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "235-242",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L235-L242"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1566-1584",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1566-L1584"
     }
    ]
   }
  ],
  "key_cs4": [
   {
    "mode": "synth_play",
    "gesture": "press",
    "action": "Plays C#4 on a pitched synth sound before octave and transpose, following scale snap or white-key mapping and one-key chords when enabled.",
    "short_label": "C#4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "198-246",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L198-L246"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1550-1590",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1550-L1590"
     }
    ]
   },
   {
    "mode": "synth_play",
    "gesture": "release",
    "action": "Releases its sounding synth note or chord, subject to envelope release, sustain and arp HOLD.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1624-1629",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1624-L1629"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1232-1271",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1232-L1271"
     }
    ]
   },
   {
    "mode": "synth_play",
    "gesture": "hold",
    "action": "In chord mode, silently changes held and newly played chords with the ninth modifier; with WHITE mapping and chords off, it is silent.",
    "short_label": "NINTH",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "288-298",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L288-L298"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1433-1465",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1433-L1465"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1551-1557",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1551-L1557"
     }
    ]
   },
   {
    "mode": "synth_play",
    "gesture": "release",
    "action": "In chord mode, removes its chord modifier and revoices any chord still held.",
    "short_label": "END NINTH",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1609-1611",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1609-L1611"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1433-1465",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1433-L1465"
     }
    ]
   },
   {
    "mode": "drum_play",
    "gesture": "press",
    "action": "Plays the hat pad, using normal hit level or OCT- ghost and OCT+ hard.",
    "short_label": "HAT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/drums.c",
      "lines": "64-89",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/drums.c#L64-L89"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1418-1421",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1418-L1421"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1535-1547",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1535-L1547"
     }
    ]
   },
   {
    "mode": "drum_play",
    "gesture": "release",
    "action": "Sends that drum pad’s MIDI note-off and closes its free-take event without cutting the one-shot drum sound.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1631-1636",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1631-L1636"
     }
    ]
   },
   {
    "mode": "step",
    "gesture": "press",
    "action": "On a synth track outside live recording, writes the played note or chord into the cursor step, up to four notes in POLY or the last note otherwise; silent black-key mappings enter nothing.",
    "short_label": "ENTER STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "620-659",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L620-L659"
     }
    ]
   },
   {
    "mode": "step",
    "gesture": "release",
    "action": "After an entry, releasing all panel and MIDI notes advances the step cursor.",
    "short_label": "ADVANCE STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "661-662",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L661-L662"
     }
    ]
   },
   {
    "mode": "punch",
    "gesture": "press_while_holding:button_fx",
    "action": "Applies REWIND to the whole mix while held, with the latest pressed effect replacing the previous one.",
    "short_label": "REWIND",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/punch.c",
      "lines": "13-21",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/punch.c#L13-L21"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1475-1483",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1475-L1483"
     }
    ]
   },
   {
    "mode": "punch",
    "gesture": "release",
    "action": "Releasing the key currently controlling the punch effect returns the mix to dry.",
    "short_label": "END FX",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1600-1604",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1600-L1604"
     }
    ]
   },
   {
    "mode": "roll",
    "gesture": "press_while_holding:button_arp",
    "action": "Repeats the mapped synth note or drum pad on the repeat grid while held, with silent synth black-key mappings remaining silent.",
    "short_label": "REPEAT NOTE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1535-1564",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1535-L1564"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1289-1382",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1289-L1382"
     }
    ]
   },
   {
    "mode": "roll",
    "gesture": "release",
    "action": "Ends the repeat started by this key.",
    "short_label": "STOP REPEAT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1619-1623",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1619-L1623"
     }
    ]
   },
   {
    "mode": "key_scale",
    "gesture": "press_while_holding:button_sel",
    "action": "Sets C# as root for all three synth tracks without playing a note.",
    "short_label": "ROOT C#",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "393-398",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L393-L398"
     }
    ]
   },
   {
    "mode": "drum_grid",
    "gesture": "press",
    "action": "Silently selects open hat for grid editing.",
    "short_label": "OPEN HAT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_studio.c",
      "lines": "9-10",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_studio.c#L9-L10"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_studio.c",
      "lines": "500-512",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_studio.c#L500-L512"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "press_while_holding:button_edit",
    "action": "On drums, switches white keys between erasing lanes and toggling temporary live mutes; releasing EDIT resets this choice to erase.",
    "short_label": "ERASE / MUTE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "970-975",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L970-L975"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1493-1500",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1493-L1500"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1676-1677",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1676-L1677"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "press_while_holding:button_edit",
    "action": "On synth tracks, erases the mapped note immediately from active steps without a question, while chord or WHITE mappings make this black key silent; sequence undo can restore the edit.",
    "short_label": "ERASE NOTE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "965-1023",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L965-L1023"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1515-1524",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1515-L1524"
     }
    ]
   },
   {
    "mode": "steps",
    "gesture": "press_while_holding:button_seq",
    "action": "Selects steps 49 to 64 if that page lies inside the track length.",
    "short_label": "PAGE 4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "383-388",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L383-L388"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "release",
    "action": "Stops ongoing erasure for this key without restoring events already removed.",
    "short_label": "STOP ERASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1612-1618",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1612-L1618"
     }
    ]
   },
   {
    "mode": "mix_layer",
    "gesture": "press_while_holding:button_glo",
    "action": "Does nothing in the mix layer.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "461-475",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L461-L475"
     }
    ]
   },
   {
    "mode": "sections",
    "gesture": "press_while_holding:button_save",
    "action": "Does nothing in the section layer.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "400-458",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L400-L458"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/project.c",
      "lines": "1116-1163",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/project.c#L1116-L1163"
     }
    ]
   },
   {
    "mode": "sample_perc",
    "gesture": "press",
    "action": "Plays G#2 before octave buttons and any chord processing, without scale or keyboard transpose mapping.",
    "short_label": "G#2",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "235-242",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L235-L242"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1566-1584",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1566-L1584"
     }
    ]
   }
  ],
  "key_d4": [
   {
    "mode": "synth_play",
    "gesture": "press",
    "action": "Plays D4 on a pitched synth sound before octave and transpose, following scale snap or white-key mapping and one-key chords when enabled.",
    "short_label": "D4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "198-246",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L198-L246"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1550-1590",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1550-L1590"
     }
    ]
   },
   {
    "mode": "synth_play",
    "gesture": "release",
    "action": "Releases its sounding synth note or chord, subject to envelope release, sustain and arp HOLD.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1624-1629",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1624-L1629"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1232-1271",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1232-L1271"
     }
    ]
   },
   {
    "mode": "drum_play",
    "gesture": "press",
    "action": "Plays the open hat pad, using normal hit level or OCT- ghost and OCT+ hard.",
    "short_label": "OPEN HAT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/drums.c",
      "lines": "64-89",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/drums.c#L64-L89"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1418-1421",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1418-L1421"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1535-1547",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1535-L1547"
     }
    ]
   },
   {
    "mode": "drum_play",
    "gesture": "release",
    "action": "Sends that drum pad’s MIDI note-off and closes its free-take event without cutting the one-shot drum sound.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1631-1636",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1631-L1636"
     }
    ]
   },
   {
    "mode": "step",
    "gesture": "press",
    "action": "On a synth track outside live recording, writes the played note or chord into the cursor step, up to four notes in POLY or the last note otherwise; silent black-key mappings enter nothing.",
    "short_label": "ENTER STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "620-659",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L620-L659"
     }
    ]
   },
   {
    "mode": "step",
    "gesture": "release",
    "action": "After an entry, releasing all panel and MIDI notes advances the step cursor.",
    "short_label": "ADVANCE STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "661-662",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L661-L662"
     }
    ]
   },
   {
    "mode": "punch",
    "gesture": "press_while_holding:button_fx",
    "action": "Applies REVERSE to the whole mix while held, with the latest pressed effect replacing the previous one.",
    "short_label": "REVERSE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/punch.c",
      "lines": "13-21",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/punch.c#L13-L21"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1475-1483",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1475-L1483"
     }
    ]
   },
   {
    "mode": "punch",
    "gesture": "release",
    "action": "Releasing the key currently controlling the punch effect returns the mix to dry.",
    "short_label": "END FX",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1600-1604",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1600-L1604"
     }
    ]
   },
   {
    "mode": "roll",
    "gesture": "press_while_holding:button_arp",
    "action": "Repeats the mapped synth note or drum pad on the repeat grid while held, with silent synth black-key mappings remaining silent.",
    "short_label": "REPEAT NOTE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1535-1564",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1535-L1564"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1289-1382",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1289-L1382"
     }
    ]
   },
   {
    "mode": "roll",
    "gesture": "release",
    "action": "Ends the repeat started by this key.",
    "short_label": "STOP REPEAT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1619-1623",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1619-L1623"
     }
    ]
   },
   {
    "mode": "key_scale",
    "gesture": "press_while_holding:button_sel",
    "action": "Sets D as root for all three synth tracks without playing a note.",
    "short_label": "ROOT D",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "393-398",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L393-L398"
     }
    ]
   },
   {
    "mode": "steps",
    "gesture": "press_while_holding:button_seq",
    "action": "For step 6 on the displayed page, fills an empty step immediately with the recent synth note or chord, or the chosen drum hit; an occupied step clears on release unless edited, while steps outside the pattern or during song-mode playback are left alone.",
    "short_label": "STEP 6",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "158-188",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L158-L188"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "383-392",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L383-L392"
     }
    ]
   },
   {
    "mode": "steps",
    "gesture": "release",
    "action": "Clears an occupied held step on release unless an edit kept it, without a question, removing locks, nudge and fill if it becomes empty and allowing sequence undo.",
    "short_label": "CLEAR ON UP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "190-211",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L190-L211"
     }
    ]
   },
   {
    "mode": "drum_grid",
    "gesture": "press",
    "action": "Toggles the selected drum lane at step 6 of the current page only within the track length and outside song-mode playback at once without a question, auditioning additions and allowing sequence undo while clearing details if the last hit is removed.",
    "short_label": "GRID STEP 6",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_studio.c",
      "lines": "490-535",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_studio.c#L490-L535"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "press_while_holding:button_edit",
    "action": "Erases the mapped synth note or chord, or this drum lane, immediately from all active steps while stopped or from steps passing while held during playback, without a question and with sequence undo available.",
    "short_label": "ERASE EVENTS",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "965-1023",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L965-L1023"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1502-1524",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1502-L1524"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "press_while_holding:button_edit",
    "action": "On drums after a black key selected live mutes, toggles this lane’s sequencer mute without deleting hits, saving the mute or adding undo.",
    "short_label": "LANE MUTE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "970-975",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L970-L975"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1493-1500",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1493-L1500"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "release",
    "action": "Stops ongoing erasure for this key without restoring events already removed.",
    "short_label": "STOP ERASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1612-1618",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1612-L1618"
     }
    ]
   },
   {
    "mode": "mix_layer",
    "gesture": "press_while_holding:button_glo",
    "action": "Toggles track 2 solo.",
    "short_label": "SOLO 2",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "461-475",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L461-L475"
     }
    ]
   },
   {
    "mode": "sections",
    "gesture": "press_while_holding:button_save",
    "action": "Captures the working project into section B in memory, requiring the same key again within three seconds if occupied, then writes it after stop, 1.5 seconds of inactivity, quiet voices and the five-second retry gap, without a flash-save undo.",
    "short_label": "STORE B",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "426-435",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L426-L435"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/project.c",
      "lines": "1132-1154",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/project.c#L1132-L1154"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/project.c",
      "lines": "1218-1224",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/project.c#L1218-L1224"
     }
    ]
   },
   {
    "mode": "sample_perc",
    "gesture": "press",
    "action": "Plays A2 before octave buttons and any chord processing, without scale or keyboard transpose mapping.",
    "short_label": "A2",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "235-242",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L235-L242"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1566-1584",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1566-L1584"
     }
    ]
   }
  ],
  "key_ds4": [
   {
    "mode": "synth_play",
    "gesture": "press",
    "action": "Plays D#4 on a pitched synth sound before octave and transpose, following scale snap or white-key mapping and one-key chords when enabled.",
    "short_label": "D#4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "198-246",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L198-L246"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1550-1590",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1550-L1590"
     }
    ]
   },
   {
    "mode": "synth_play",
    "gesture": "release",
    "action": "Releases its sounding synth note or chord, subject to envelope release, sustain and arp HOLD.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1624-1629",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1624-L1629"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1232-1271",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1232-L1271"
     }
    ]
   },
   {
    "mode": "synth_play",
    "gesture": "hold",
    "action": "In chord mode, silently changes held and newly played chords with the inversion modifier; with WHITE mapping and chords off, it is silent.",
    "short_label": "INVERSION",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "288-298",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L288-L298"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1433-1465",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1433-L1465"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1551-1557",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1551-L1557"
     }
    ]
   },
   {
    "mode": "synth_play",
    "gesture": "release",
    "action": "In chord mode, removes its chord modifier and revoices any chord still held.",
    "short_label": "END MODIFIER",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1609-1611",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1609-L1611"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1433-1465",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1433-L1465"
     }
    ]
   },
   {
    "mode": "drum_play",
    "gesture": "press",
    "action": "Plays the open hat pad, using normal hit level or OCT- ghost and OCT+ hard.",
    "short_label": "OPEN HAT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/drums.c",
      "lines": "64-89",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/drums.c#L64-L89"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1418-1421",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1418-L1421"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1535-1547",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1535-L1547"
     }
    ]
   },
   {
    "mode": "drum_play",
    "gesture": "release",
    "action": "Sends that drum pad’s MIDI note-off and closes its free-take event without cutting the one-shot drum sound.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1631-1636",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1631-L1636"
     }
    ]
   },
   {
    "mode": "step",
    "gesture": "press",
    "action": "On a synth track outside live recording, writes the played note or chord into the cursor step, up to four notes in POLY or the last note otherwise; silent black-key mappings enter nothing.",
    "short_label": "ENTER STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "620-659",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L620-L659"
     }
    ]
   },
   {
    "mode": "step",
    "gesture": "release",
    "action": "After an entry, releasing all panel and MIDI notes advances the step cursor.",
    "short_label": "ADVANCE STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "661-662",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L661-L662"
     }
    ]
   },
   {
    "mode": "punch",
    "gesture": "press_while_holding:button_fx",
    "action": "Applies OCT UP to the whole mix while held, with the latest pressed effect replacing the previous one.",
    "short_label": "OCT UP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/punch.c",
      "lines": "13-21",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/punch.c#L13-L21"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1475-1483",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1475-L1483"
     }
    ]
   },
   {
    "mode": "punch",
    "gesture": "release",
    "action": "Releasing the key currently controlling the punch effect returns the mix to dry.",
    "short_label": "END FX",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1600-1604",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1600-L1604"
     }
    ]
   },
   {
    "mode": "roll",
    "gesture": "press_while_holding:button_arp",
    "action": "Repeats the mapped synth note or drum pad on the repeat grid while held, with silent synth black-key mappings remaining silent.",
    "short_label": "REPEAT NOTE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1535-1564",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1535-L1564"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1289-1382",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1289-L1382"
     }
    ]
   },
   {
    "mode": "roll",
    "gesture": "release",
    "action": "Ends the repeat started by this key.",
    "short_label": "STOP REPEAT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1619-1623",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1619-L1623"
     }
    ]
   },
   {
    "mode": "key_scale",
    "gesture": "press_while_holding:button_sel",
    "action": "Sets D# as root for all three synth tracks without playing a note.",
    "short_label": "ROOT D#",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "393-398",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L393-L398"
     }
    ]
   },
   {
    "mode": "drum_grid",
    "gesture": "press",
    "action": "Silently selects clap for grid editing.",
    "short_label": "PICK CLAP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_studio.c",
      "lines": "9-10",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_studio.c#L9-L10"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_studio.c",
      "lines": "500-512",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_studio.c#L500-L512"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "press_while_holding:button_edit",
    "action": "On drums, switches white keys between erasing lanes and toggling temporary live mutes; releasing EDIT resets this choice to erase.",
    "short_label": "ERASE / MUTE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "970-975",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L970-L975"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1493-1500",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1493-L1500"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1676-1677",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1676-L1677"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "press_while_holding:button_edit",
    "action": "On synth tracks, erases the mapped note immediately from active steps without a question, while chord or WHITE mappings make this black key silent; sequence undo can restore the edit.",
    "short_label": "ERASE NOTE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "965-1023",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L965-L1023"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1515-1524",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1515-L1524"
     }
    ]
   },
   {
    "mode": "steps",
    "gesture": "press_while_holding:button_seq",
    "action": "Does nothing in the step layer.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "383-388",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L383-L388"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "release",
    "action": "Stops ongoing erasure for this key without restoring events already removed.",
    "short_label": "STOP ERASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1612-1618",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1612-L1618"
     }
    ]
   },
   {
    "mode": "mix_layer",
    "gesture": "press_while_holding:button_glo",
    "action": "Does nothing in the mix layer.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "461-475",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L461-L475"
     }
    ]
   },
   {
    "mode": "sections",
    "gesture": "press_while_holding:button_save",
    "action": "Does nothing in the section layer.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "400-458",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L400-L458"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/project.c",
      "lines": "1116-1163",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/project.c#L1116-L1163"
     }
    ]
   },
   {
    "mode": "sample_perc",
    "gesture": "press",
    "action": "Plays A#2 before octave buttons and any chord processing, without scale or keyboard transpose mapping.",
    "short_label": "A#2",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "235-242",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L235-L242"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1566-1584",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1566-L1584"
     }
    ]
   }
  ],
  "key_e4": [
   {
    "mode": "synth_play",
    "gesture": "press",
    "action": "Plays E4 on a pitched synth sound before octave and transpose, following scale snap or white-key mapping and one-key chords when enabled.",
    "short_label": "E4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "198-246",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L198-L246"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1550-1590",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1550-L1590"
     }
    ]
   },
   {
    "mode": "synth_play",
    "gesture": "release",
    "action": "Releases its sounding synth note or chord, subject to envelope release, sustain and arp HOLD.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1624-1629",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1624-L1629"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1232-1271",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1232-L1271"
     }
    ]
   },
   {
    "mode": "drum_play",
    "gesture": "press",
    "action": "Plays the pedal pad, using normal hit level or OCT- ghost and OCT+ hard.",
    "short_label": "PEDAL",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/drums.c",
      "lines": "64-89",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/drums.c#L64-L89"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1418-1421",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1418-L1421"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1535-1547",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1535-L1547"
     }
    ]
   },
   {
    "mode": "drum_play",
    "gesture": "release",
    "action": "Sends that drum pad’s MIDI note-off and closes its free-take event without cutting the one-shot drum sound.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1631-1636",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1631-L1636"
     }
    ]
   },
   {
    "mode": "step",
    "gesture": "press",
    "action": "On a synth track outside live recording, writes the played note or chord into the cursor step, up to four notes in POLY or the last note otherwise; silent black-key mappings enter nothing.",
    "short_label": "ENTER STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "620-659",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L620-L659"
     }
    ]
   },
   {
    "mode": "step",
    "gesture": "release",
    "action": "After an entry, releasing all panel and MIDI notes advances the step cursor.",
    "short_label": "ADVANCE STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "661-662",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L661-L662"
     }
    ]
   },
   {
    "mode": "punch",
    "gesture": "press_while_holding:button_fx",
    "action": "Applies STOP to the whole mix while held, with the latest pressed effect replacing the previous one.",
    "short_label": "STOP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/punch.c",
      "lines": "13-21",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/punch.c#L13-L21"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1475-1483",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1475-L1483"
     }
    ]
   },
   {
    "mode": "punch",
    "gesture": "release",
    "action": "Releasing the key currently controlling the punch effect returns the mix to dry.",
    "short_label": "END FX",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1600-1604",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1600-L1604"
     }
    ]
   },
   {
    "mode": "roll",
    "gesture": "press_while_holding:button_arp",
    "action": "Repeats the mapped synth note or drum pad on the repeat grid while held, with silent synth black-key mappings remaining silent.",
    "short_label": "REPEAT NOTE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1535-1564",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1535-L1564"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1289-1382",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1289-L1382"
     }
    ]
   },
   {
    "mode": "roll",
    "gesture": "release",
    "action": "Ends the repeat started by this key.",
    "short_label": "STOP REPEAT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1619-1623",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1619-L1623"
     }
    ]
   },
   {
    "mode": "key_scale",
    "gesture": "press_while_holding:button_sel",
    "action": "Sets E as root for all three synth tracks without playing a note.",
    "short_label": "ROOT E",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "393-398",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L393-L398"
     }
    ]
   },
   {
    "mode": "steps",
    "gesture": "press_while_holding:button_seq",
    "action": "For step 7 on the displayed page, fills an empty step immediately with the recent synth note or chord, or the chosen drum hit; an occupied step clears on release unless edited, while steps outside the pattern or during song-mode playback are left alone.",
    "short_label": "STEP 7",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "158-188",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L158-L188"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "383-392",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L383-L392"
     }
    ]
   },
   {
    "mode": "steps",
    "gesture": "release",
    "action": "Clears an occupied held step on release unless an edit kept it, without a question, removing locks, nudge and fill if it becomes empty and allowing sequence undo.",
    "short_label": "CLEAR ON UP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "190-211",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L190-L211"
     }
    ]
   },
   {
    "mode": "drum_grid",
    "gesture": "press",
    "action": "Toggles the selected drum lane at step 7 of the current page only within the track length and outside song-mode playback at once without a question, auditioning additions and allowing sequence undo while clearing details if the last hit is removed.",
    "short_label": "GRID STEP 7",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_studio.c",
      "lines": "490-535",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_studio.c#L490-L535"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "press_while_holding:button_edit",
    "action": "Erases the mapped synth note or chord, or this drum lane, immediately from all active steps while stopped or from steps passing while held during playback, without a question and with sequence undo available.",
    "short_label": "ERASE EVENTS",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "965-1023",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L965-L1023"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1502-1524",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1502-L1524"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "press_while_holding:button_edit",
    "action": "On drums after a black key selected live mutes, toggles this lane’s sequencer mute without deleting hits, saving the mute or adding undo.",
    "short_label": "MUTE PEDAL",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "970-975",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L970-L975"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1493-1500",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1493-L1500"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "release",
    "action": "Stops ongoing erasure for this key without restoring events already removed.",
    "short_label": "STOP ERASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1612-1618",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1612-L1618"
     }
    ]
   },
   {
    "mode": "mix_layer",
    "gesture": "press_while_holding:button_glo",
    "action": "Toggles track 3 solo.",
    "short_label": "SOLO 3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "461-475",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L461-L475"
     }
    ]
   },
   {
    "mode": "sections",
    "gesture": "press_while_holding:button_save",
    "action": "Captures the working project into section C in memory, requiring the same key again within three seconds if occupied, then writes it after stop, 1.5 seconds of inactivity, quiet voices and the five-second retry gap, without a flash-save undo.",
    "short_label": "STORE C",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "426-435",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L426-L435"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/project.c",
      "lines": "1132-1154",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/project.c#L1132-L1154"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/project.c",
      "lines": "1218-1224",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/project.c#L1218-L1224"
     }
    ]
   },
   {
    "mode": "sample_perc",
    "gesture": "press",
    "action": "Plays B2 before octave buttons and any chord processing, without scale or keyboard transpose mapping.",
    "short_label": "B2",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "235-242",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L235-L242"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1566-1584",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1566-L1584"
     }
    ]
   }
  ],
  "key_f4": [
   {
    "mode": "synth_play",
    "gesture": "press",
    "action": "Plays F4 on a pitched synth sound before octave and transpose, following scale snap or white-key mapping and one-key chords when enabled.",
    "short_label": "F4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "198-246",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L198-L246"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1550-1590",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1550-L1590"
     }
    ]
   },
   {
    "mode": "synth_play",
    "gesture": "release",
    "action": "Releases its sounding synth note or chord, subject to envelope release, sustain and arp HOLD.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1624-1629",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1624-L1629"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1232-1271",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1232-L1271"
     }
    ]
   },
   {
    "mode": "drum_play",
    "gesture": "press",
    "action": "Plays the rim pad, using normal hit level or OCT- ghost and OCT+ hard.",
    "short_label": "RIM",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/drums.c",
      "lines": "64-89",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/drums.c#L64-L89"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1418-1421",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1418-L1421"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1535-1547",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1535-L1547"
     }
    ]
   },
   {
    "mode": "drum_play",
    "gesture": "release",
    "action": "Sends that drum pad’s MIDI note-off and closes its free-take event without cutting the one-shot drum sound.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1631-1636",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1631-L1636"
     }
    ]
   },
   {
    "mode": "step",
    "gesture": "press",
    "action": "On a synth track outside live recording, writes the played note or chord into the cursor step, up to four notes in POLY or the last note otherwise; silent black-key mappings enter nothing.",
    "short_label": "ENTER STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "620-659",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L620-L659"
     }
    ]
   },
   {
    "mode": "step",
    "gesture": "release",
    "action": "After an entry, releasing all panel and MIDI notes advances the step cursor.",
    "short_label": "ADVANCE STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "661-662",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L661-L662"
     }
    ]
   },
   {
    "mode": "punch",
    "gesture": "press_while_holding:button_fx",
    "action": "Applies HALF to the whole mix while held, with the latest pressed effect replacing the previous one.",
    "short_label": "HALF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/punch.c",
      "lines": "13-21",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/punch.c#L13-L21"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1475-1483",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1475-L1483"
     }
    ]
   },
   {
    "mode": "punch",
    "gesture": "release",
    "action": "Releasing the key currently controlling the punch effect returns the mix to dry.",
    "short_label": "END FX",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1600-1604",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1600-L1604"
     }
    ]
   },
   {
    "mode": "roll",
    "gesture": "press_while_holding:button_arp",
    "action": "Repeats the mapped synth note or drum pad on the repeat grid while held, with silent synth black-key mappings remaining silent.",
    "short_label": "REPEAT NOTE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1535-1564",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1535-L1564"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1289-1382",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1289-L1382"
     }
    ]
   },
   {
    "mode": "roll",
    "gesture": "release",
    "action": "Ends the repeat started by this key.",
    "short_label": "STOP REPEAT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1619-1623",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1619-L1623"
     }
    ]
   },
   {
    "mode": "key_scale",
    "gesture": "press_while_holding:button_sel",
    "action": "Sets F as root for all three synth tracks without playing a note.",
    "short_label": "ROOT F",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "393-398",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L393-L398"
     }
    ]
   },
   {
    "mode": "steps",
    "gesture": "press_while_holding:button_seq",
    "action": "For step 8 on the displayed page, fills an empty step immediately with the recent synth note or chord, or the chosen drum hit; an occupied step clears on release unless edited, while steps outside the pattern or during song-mode playback are left alone.",
    "short_label": "STEP 8",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "158-188",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L158-L188"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "383-392",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L383-L392"
     }
    ]
   },
   {
    "mode": "steps",
    "gesture": "release",
    "action": "Clears an occupied held step on release unless an edit kept it, without a question, removing locks, nudge and fill if it becomes empty and allowing sequence undo.",
    "short_label": "CLEAR ON UP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "190-211",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L190-L211"
     }
    ]
   },
   {
    "mode": "drum_grid",
    "gesture": "press",
    "action": "Toggles the selected drum lane at step 8 of the current page only within the track length and outside song-mode playback at once without a question, auditioning additions and allowing sequence undo while clearing details if the last hit is removed.",
    "short_label": "GRID STEP 8",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_studio.c",
      "lines": "490-535",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_studio.c#L490-L535"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "press_while_holding:button_edit",
    "action": "Erases the mapped synth note or chord, or this drum lane, immediately from all active steps while stopped or from steps passing while held during playback, without a question and with sequence undo available.",
    "short_label": "ERASE EVENTS",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "965-1023",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L965-L1023"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1502-1524",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1502-L1524"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "press_while_holding:button_edit",
    "action": "On drums after a black key selected live mutes, toggles this lane’s sequencer mute without deleting hits, saving the mute or adding undo.",
    "short_label": "MUTE RIM",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "970-975",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L970-L975"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1493-1500",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1493-L1500"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "release",
    "action": "Stops ongoing erasure for this key without restoring events already removed.",
    "short_label": "STOP ERASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1612-1618",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1612-L1618"
     }
    ]
   },
   {
    "mode": "mix_layer",
    "gesture": "press_while_holding:button_glo",
    "action": "Toggles track 4 solo.",
    "short_label": "SOLO 4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "461-475",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L461-L475"
     }
    ]
   },
   {
    "mode": "sections",
    "gesture": "press_while_holding:button_save",
    "action": "Captures the working project into section D in memory, requiring the same key again within three seconds if occupied, then writes it after stop, 1.5 seconds of inactivity, quiet voices and the five-second retry gap, without a flash-save undo.",
    "short_label": "STORE D",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "426-435",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L426-L435"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/project.c",
      "lines": "1132-1154",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/project.c#L1132-L1154"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/project.c",
      "lines": "1218-1224",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/project.c#L1218-L1224"
     }
    ]
   },
   {
    "mode": "sample_perc",
    "gesture": "press",
    "action": "Plays C3 before octave buttons and any chord processing, without scale or keyboard transpose mapping.",
    "short_label": "C3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "235-242",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L235-L242"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1566-1584",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1566-L1584"
     }
    ]
   }
  ],
  "key_fs4": [
   {
    "mode": "synth_play",
    "gesture": "press",
    "action": "Plays F#4 on a pitched synth sound before octave and transpose, following scale snap or white-key mapping and one-key chords when enabled.",
    "short_label": "F#4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "198-246",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L198-L246"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1550-1590",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1550-L1590"
     }
    ]
   },
   {
    "mode": "synth_play",
    "gesture": "release",
    "action": "Releases its sounding synth note or chord, subject to envelope release, sustain and arp HOLD.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1624-1629",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1624-L1629"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1232-1271",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1232-L1271"
     }
    ]
   },
   {
    "mode": "synth_play",
    "gesture": "hold",
    "action": "In chord mode, flips a major third to minor or a minor third to major when present, yielding to a held SUS4 modifier and leaving POWER chords unchanged; WHITE mapping with chords off is silent.",
    "short_label": "THIRD FLIP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "288-298",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L288-L298"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1433-1465",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1433-L1465"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1551-1557",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1551-L1557"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "320-330",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L320-L330"
     }
    ]
   },
   {
    "mode": "synth_play",
    "gesture": "release",
    "action": "In chord mode, removes its chord modifier and revoices any chord still held.",
    "short_label": "END THIRD",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1609-1611",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1609-L1611"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1433-1465",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1433-L1465"
     }
    ]
   },
   {
    "mode": "drum_play",
    "gesture": "press",
    "action": "Plays the rim pad, using normal hit level or OCT- ghost and OCT+ hard.",
    "short_label": "RIM",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/drums.c",
      "lines": "64-89",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/drums.c#L64-L89"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1418-1421",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1418-L1421"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1535-1547",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1535-L1547"
     }
    ]
   },
   {
    "mode": "drum_play",
    "gesture": "release",
    "action": "Sends that drum pad’s MIDI note-off and closes its free-take event without cutting the one-shot drum sound.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1631-1636",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1631-L1636"
     }
    ]
   },
   {
    "mode": "step",
    "gesture": "press",
    "action": "On a synth track outside live recording, writes the played note or chord into the cursor step, up to four notes in POLY or the last note otherwise; silent black-key mappings enter nothing.",
    "short_label": "ENTER STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "620-659",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L620-L659"
     }
    ]
   },
   {
    "mode": "step",
    "gesture": "release",
    "action": "After an entry, releasing all panel and MIDI notes advances the step cursor.",
    "short_label": "ADVANCE STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "661-662",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L661-L662"
     }
    ]
   },
   {
    "mode": "punch",
    "gesture": "press_while_holding:button_fx",
    "action": "Applies FLANGER to the whole mix while held, with the latest pressed effect replacing the previous one.",
    "short_label": "FLANGER",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/punch.c",
      "lines": "13-21",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/punch.c#L13-L21"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1475-1483",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1475-L1483"
     }
    ]
   },
   {
    "mode": "punch",
    "gesture": "release",
    "action": "Releasing the key currently controlling the punch effect returns the mix to dry.",
    "short_label": "END FX",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1600-1604",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1600-L1604"
     }
    ]
   },
   {
    "mode": "roll",
    "gesture": "press_while_holding:button_arp",
    "action": "Repeats the mapped synth note or drum pad on the repeat grid while held, with silent synth black-key mappings remaining silent.",
    "short_label": "REPEAT NOTE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1535-1564",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1535-L1564"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1289-1382",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1289-L1382"
     }
    ]
   },
   {
    "mode": "roll",
    "gesture": "release",
    "action": "Ends the repeat started by this key.",
    "short_label": "STOP REPEAT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1619-1623",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1619-L1623"
     }
    ]
   },
   {
    "mode": "key_scale",
    "gesture": "press_while_holding:button_sel",
    "action": "Sets F# as root for all three synth tracks without playing a note.",
    "short_label": "ROOT F#",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "393-398",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L393-L398"
     }
    ]
   },
   {
    "mode": "drum_grid",
    "gesture": "press",
    "action": "Silently selects rim for grid editing.",
    "short_label": "PICK RIM",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_studio.c",
      "lines": "9-10",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_studio.c#L9-L10"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_studio.c",
      "lines": "500-512",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_studio.c#L500-L512"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "press_while_holding:button_edit",
    "action": "On drums, switches white keys between erasing lanes and toggling temporary live mutes; releasing EDIT resets this choice to erase.",
    "short_label": "ERASE / MUTE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "970-975",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L970-L975"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1493-1500",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1493-L1500"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1676-1677",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1676-L1677"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "press_while_holding:button_edit",
    "action": "On synth tracks, erases the mapped note immediately from active steps without a question, while chord or WHITE mappings make this black key silent; sequence undo can restore the edit.",
    "short_label": "ERASE NOTE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "965-1023",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L965-L1023"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1515-1524",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1515-L1524"
     }
    ]
   },
   {
    "mode": "steps",
    "gesture": "press_while_holding:button_seq",
    "action": "Does nothing in the step layer.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "383-388",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L383-L388"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "release",
    "action": "Stops ongoing erasure for this key without restoring events already removed.",
    "short_label": "STOP ERASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1612-1618",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1612-L1618"
     }
    ]
   },
   {
    "mode": "mix_layer",
    "gesture": "press_while_holding:button_glo",
    "action": "Does nothing in the mix layer.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "461-475",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L461-L475"
     }
    ]
   },
   {
    "mode": "sections",
    "gesture": "press_while_holding:button_save",
    "action": "Does nothing in the section layer.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "400-458",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L400-L458"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/project.c",
      "lines": "1116-1163",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/project.c#L1116-L1163"
     }
    ]
   },
   {
    "mode": "sample_perc",
    "gesture": "press",
    "action": "Plays C#3 before octave buttons and any chord processing, without scale or keyboard transpose mapping.",
    "short_label": "C#3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "235-242",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L235-L242"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1566-1584",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1566-L1584"
     }
    ]
   }
  ],
  "key_g4": [
   {
    "mode": "synth_play",
    "gesture": "press",
    "action": "Plays G4 on a pitched synth sound before octave and transpose, following scale snap or white-key mapping and one-key chords when enabled.",
    "short_label": "G4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "198-246",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L198-L246"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1550-1590",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1550-L1590"
     }
    ]
   },
   {
    "mode": "synth_play",
    "gesture": "release",
    "action": "Releases its sounding synth note or chord, subject to envelope release, sustain and arp HOLD.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1624-1629",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1624-L1629"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1232-1271",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1232-L1271"
     }
    ]
   },
   {
    "mode": "drum_play",
    "gesture": "press",
    "action": "Plays the snare 2 pad, using normal hit level or OCT- ghost and OCT+ hard.",
    "short_label": "SNARE 2",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/drums.c",
      "lines": "64-89",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/drums.c#L64-L89"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1418-1421",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1418-L1421"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1535-1547",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1535-L1547"
     }
    ]
   },
   {
    "mode": "drum_play",
    "gesture": "release",
    "action": "Sends that drum pad’s MIDI note-off and closes its free-take event without cutting the one-shot drum sound.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1631-1636",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1631-L1636"
     }
    ]
   },
   {
    "mode": "step",
    "gesture": "press",
    "action": "On a synth track outside live recording, writes the played note or chord into the cursor step, up to four notes in POLY or the last note otherwise; silent black-key mappings enter nothing.",
    "short_label": "ENTER STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "620-659",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L620-L659"
     }
    ]
   },
   {
    "mode": "step",
    "gesture": "release",
    "action": "After an entry, releasing all panel and MIDI notes advances the step cursor.",
    "short_label": "ADVANCE STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "661-662",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L661-L662"
     }
    ]
   },
   {
    "mode": "punch",
    "gesture": "press_while_holding:button_fx",
    "action": "Applies LOW to the whole mix while held, with the latest pressed effect replacing the previous one.",
    "short_label": "LOW",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/punch.c",
      "lines": "13-21",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/punch.c#L13-L21"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1475-1483",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1475-L1483"
     }
    ]
   },
   {
    "mode": "punch",
    "gesture": "release",
    "action": "Releasing the key currently controlling the punch effect returns the mix to dry.",
    "short_label": "END FX",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1600-1604",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1600-L1604"
     }
    ]
   },
   {
    "mode": "roll",
    "gesture": "press_while_holding:button_arp",
    "action": "Repeats the mapped synth note or drum pad on the repeat grid while held, with silent synth black-key mappings remaining silent.",
    "short_label": "REPEAT NOTE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1535-1564",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1535-L1564"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1289-1382",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1289-L1382"
     }
    ]
   },
   {
    "mode": "roll",
    "gesture": "release",
    "action": "Ends the repeat started by this key.",
    "short_label": "STOP REPEAT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1619-1623",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1619-L1623"
     }
    ]
   },
   {
    "mode": "key_scale",
    "gesture": "press_while_holding:button_sel",
    "action": "Sets G as root for all three synth tracks without playing a note.",
    "short_label": "ROOT G",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "393-398",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L393-L398"
     }
    ]
   },
   {
    "mode": "steps",
    "gesture": "press_while_holding:button_seq",
    "action": "For step 9 on the displayed page, fills an empty step immediately with the recent synth note or chord, or the chosen drum hit; an occupied step clears on release unless edited, while steps outside the pattern or during song-mode playback are left alone.",
    "short_label": "STEP 9",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "158-188",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L158-L188"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "383-392",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L383-L392"
     }
    ]
   },
   {
    "mode": "steps",
    "gesture": "release",
    "action": "Clears an occupied held step on release unless an edit kept it, without a question, removing locks, nudge and fill if it becomes empty and allowing sequence undo.",
    "short_label": "CLEAR ON UP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "190-211",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L190-L211"
     }
    ]
   },
   {
    "mode": "drum_grid",
    "gesture": "press",
    "action": "Toggles the selected drum lane at step 9 of the current page only within the track length and outside song-mode playback at once without a question, auditioning additions and allowing sequence undo while clearing details if the last hit is removed.",
    "short_label": "GRID STEP 9",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_studio.c",
      "lines": "490-535",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_studio.c#L490-L535"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "press_while_holding:button_edit",
    "action": "Erases the mapped synth note or chord, or this drum lane, immediately from all active steps while stopped or from steps passing while held during playback, without a question and with sequence undo available.",
    "short_label": "ERASE EVENTS",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "965-1023",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L965-L1023"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1502-1524",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1502-L1524"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "press_while_holding:button_edit",
    "action": "On drums after a black key selected live mutes, toggles this lane’s sequencer mute without deleting hits, saving the mute or adding undo.",
    "short_label": "MUTE SNARE 2",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "970-975",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L970-L975"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1493-1500",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1493-L1500"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "release",
    "action": "Stops ongoing erasure for this key without restoring events already removed.",
    "short_label": "STOP ERASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1612-1618",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1612-L1618"
     }
    ]
   },
   {
    "mode": "mix_layer",
    "gesture": "press_while_holding:button_glo",
    "action": "Turns fill on while this key remains held.",
    "short_label": "FILL HELD",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "461-475",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L461-L475"
     }
    ]
   },
   {
    "mode": "mix_layer",
    "gesture": "release",
    "action": "Ends the held fill when the key is released.",
    "short_label": "END FILL",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "461-475",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L461-L475"
     }
    ]
   },
   {
    "mode": "sections",
    "gesture": "press_while_holding:button_save",
    "action": "Does nothing in the section layer.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "400-458",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L400-L458"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/project.c",
      "lines": "1116-1163",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/project.c#L1116-L1163"
     }
    ]
   },
   {
    "mode": "sample_perc",
    "gesture": "press",
    "action": "Plays D3 before octave buttons and any chord processing, without scale or keyboard transpose mapping.",
    "short_label": "D3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "235-242",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L235-L242"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1566-1584",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1566-L1584"
     }
    ]
   }
  ],
  "key_gs4": [
   {
    "mode": "synth_play",
    "gesture": "press",
    "action": "Plays G#4 on a pitched synth sound before octave and transpose, following scale snap or white-key mapping and one-key chords when enabled.",
    "short_label": "G#4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "198-246",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L198-L246"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1550-1590",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1550-L1590"
     }
    ]
   },
   {
    "mode": "synth_play",
    "gesture": "release",
    "action": "Releases its sounding synth note or chord, subject to envelope release, sustain and arp HOLD.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1624-1629",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1624-L1629"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1232-1271",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1232-L1271"
     }
    ]
   },
   {
    "mode": "synth_play",
    "gesture": "hold",
    "action": "In chord mode, silently changes held and newly played chords with the seventh modifier; with WHITE mapping and chords off, it is silent.",
    "short_label": "SEVENTH",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "288-298",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L288-L298"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1433-1465",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1433-L1465"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1551-1557",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1551-L1557"
     }
    ]
   },
   {
    "mode": "synth_play",
    "gesture": "release",
    "action": "In chord mode, removes its chord modifier and revoices any chord still held.",
    "short_label": "END SEVENTH",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1609-1611",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1609-L1611"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1433-1465",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1433-L1465"
     }
    ]
   },
   {
    "mode": "drum_play",
    "gesture": "press",
    "action": "Plays the snare 2 pad, using normal hit level or OCT- ghost and OCT+ hard.",
    "short_label": "SNARE 2",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/drums.c",
      "lines": "64-89",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/drums.c#L64-L89"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1418-1421",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1418-L1421"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1535-1547",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1535-L1547"
     }
    ]
   },
   {
    "mode": "drum_play",
    "gesture": "release",
    "action": "Sends that drum pad’s MIDI note-off and closes its free-take event without cutting the one-shot drum sound.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1631-1636",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1631-L1636"
     }
    ]
   },
   {
    "mode": "step",
    "gesture": "press",
    "action": "On a synth track outside live recording, writes the played note or chord into the cursor step, up to four notes in POLY or the last note otherwise; silent black-key mappings enter nothing.",
    "short_label": "ENTER STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "620-659",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L620-L659"
     }
    ]
   },
   {
    "mode": "step",
    "gesture": "release",
    "action": "After an entry, releasing all panel and MIDI notes advances the step cursor.",
    "short_label": "ADVANCE STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "661-662",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L661-L662"
     }
    ]
   },
   {
    "mode": "punch",
    "gesture": "press_while_holding:button_fx",
    "action": "Applies AUTO-PAN to the whole mix while held, with the latest pressed effect replacing the previous one.",
    "short_label": "AUTO-PAN",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/punch.c",
      "lines": "13-21",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/punch.c#L13-L21"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1475-1483",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1475-L1483"
     }
    ]
   },
   {
    "mode": "punch",
    "gesture": "release",
    "action": "Releasing the key currently controlling the punch effect returns the mix to dry.",
    "short_label": "END FX",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1600-1604",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1600-L1604"
     }
    ]
   },
   {
    "mode": "roll",
    "gesture": "press_while_holding:button_arp",
    "action": "Repeats the mapped synth note or drum pad on the repeat grid while held, with silent synth black-key mappings remaining silent.",
    "short_label": "REPEAT NOTE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1535-1564",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1535-L1564"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1289-1382",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1289-L1382"
     }
    ]
   },
   {
    "mode": "roll",
    "gesture": "release",
    "action": "Ends the repeat started by this key.",
    "short_label": "STOP REPEAT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1619-1623",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1619-L1623"
     }
    ]
   },
   {
    "mode": "key_scale",
    "gesture": "press_while_holding:button_sel",
    "action": "Sets G# as root for all three synth tracks without playing a note.",
    "short_label": "ROOT G#",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "393-398",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L393-L398"
     }
    ]
   },
   {
    "mode": "drum_grid",
    "gesture": "press",
    "action": "Silently selects low tom for grid editing.",
    "short_label": "PICK LOW TOM",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_studio.c",
      "lines": "9-10",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_studio.c#L9-L10"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_studio.c",
      "lines": "500-512",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_studio.c#L500-L512"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "press_while_holding:button_edit",
    "action": "On drums, switches white keys between erasing lanes and toggling temporary live mutes; releasing EDIT resets this choice to erase.",
    "short_label": "ERASE / MUTE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "970-975",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L970-L975"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1493-1500",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1493-L1500"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1676-1677",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1676-L1677"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "press_while_holding:button_edit",
    "action": "On synth tracks, erases the mapped note immediately from active steps without a question, while chord or WHITE mappings make this black key silent; sequence undo can restore the edit.",
    "short_label": "ERASE NOTE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "965-1023",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L965-L1023"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1515-1524",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1515-L1524"
     }
    ]
   },
   {
    "mode": "steps",
    "gesture": "press_while_holding:button_seq",
    "action": "Does nothing in the step layer.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "383-388",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L383-L388"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "release",
    "action": "Stops ongoing erasure for this key without restoring events already removed.",
    "short_label": "STOP ERASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1612-1618",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1612-L1618"
     }
    ]
   },
   {
    "mode": "mix_layer",
    "gesture": "press_while_holding:button_glo",
    "action": "Does nothing in the mix layer.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "461-475",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L461-L475"
     }
    ]
   },
   {
    "mode": "sections",
    "gesture": "press_while_holding:button_save",
    "action": "Does nothing in the section layer.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "400-458",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L400-L458"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/project.c",
      "lines": "1116-1163",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/project.c#L1116-L1163"
     }
    ]
   },
   {
    "mode": "sample_perc",
    "gesture": "press",
    "action": "Plays D#3 before octave buttons and any chord processing, without scale or keyboard transpose mapping.",
    "short_label": "D#3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "235-242",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L235-L242"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1566-1584",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1566-L1584"
     }
    ]
   }
  ],
  "key_a4": [
   {
    "mode": "synth_play",
    "gesture": "press",
    "action": "Plays A4 on a pitched synth sound before octave and transpose, following scale snap or white-key mapping and one-key chords when enabled.",
    "short_label": "A4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "198-246",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L198-L246"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1550-1590",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1550-L1590"
     }
    ]
   },
   {
    "mode": "synth_play",
    "gesture": "release",
    "action": "Releases its sounding synth note or chord, subject to envelope release, sustain and arp HOLD.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1624-1629",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1624-L1629"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1232-1271",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1232-L1271"
     }
    ]
   },
   {
    "mode": "drum_play",
    "gesture": "press",
    "action": "Plays the low tom pad, using normal hit level or OCT- ghost and OCT+ hard.",
    "short_label": "LOW TOM",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/drums.c",
      "lines": "64-89",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/drums.c#L64-L89"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1418-1421",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1418-L1421"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1535-1547",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1535-L1547"
     }
    ]
   },
   {
    "mode": "drum_play",
    "gesture": "release",
    "action": "Sends that drum pad’s MIDI note-off and closes its free-take event without cutting the one-shot drum sound.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1631-1636",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1631-L1636"
     }
    ]
   },
   {
    "mode": "step",
    "gesture": "press",
    "action": "On a synth track outside live recording, writes the played note or chord into the cursor step, up to four notes in POLY or the last note otherwise; silent black-key mappings enter nothing.",
    "short_label": "ENTER STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "620-659",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L620-L659"
     }
    ]
   },
   {
    "mode": "step",
    "gesture": "release",
    "action": "After an entry, releasing all panel and MIDI notes advances the step cursor.",
    "short_label": "ADVANCE STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "661-662",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L661-L662"
     }
    ]
   },
   {
    "mode": "punch",
    "gesture": "press_while_holding:button_fx",
    "action": "Applies HIGH to the whole mix while held, with the latest pressed effect replacing the previous one.",
    "short_label": "HIGH",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/punch.c",
      "lines": "13-21",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/punch.c#L13-L21"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1475-1483",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1475-L1483"
     }
    ]
   },
   {
    "mode": "punch",
    "gesture": "release",
    "action": "Releasing the key currently controlling the punch effect returns the mix to dry.",
    "short_label": "END FX",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1600-1604",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1600-L1604"
     }
    ]
   },
   {
    "mode": "roll",
    "gesture": "press_while_holding:button_arp",
    "action": "Repeats the mapped synth note or drum pad on the repeat grid while held, with silent synth black-key mappings remaining silent.",
    "short_label": "REPEAT NOTE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1535-1564",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1535-L1564"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1289-1382",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1289-L1382"
     }
    ]
   },
   {
    "mode": "roll",
    "gesture": "release",
    "action": "Ends the repeat started by this key.",
    "short_label": "STOP REPEAT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1619-1623",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1619-L1623"
     }
    ]
   },
   {
    "mode": "key_scale",
    "gesture": "press_while_holding:button_sel",
    "action": "Sets A as root for all three synth tracks without playing a note.",
    "short_label": "ROOT A",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "393-398",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L393-L398"
     }
    ]
   },
   {
    "mode": "steps",
    "gesture": "press_while_holding:button_seq",
    "action": "For step 10 on the displayed page, fills an empty step immediately with the recent synth note or chord, or the chosen drum hit; an occupied step clears on release unless edited, while steps outside the pattern or during song-mode playback are left alone.",
    "short_label": "STEP 10",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "158-188",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L158-L188"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "383-392",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L383-L392"
     }
    ]
   },
   {
    "mode": "steps",
    "gesture": "release",
    "action": "Clears an occupied held step on release unless an edit kept it, without a question, removing locks, nudge and fill if it becomes empty and allowing sequence undo.",
    "short_label": "CLEAR ON UP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "190-211",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L190-L211"
     }
    ]
   },
   {
    "mode": "drum_grid",
    "gesture": "press",
    "action": "Toggles the selected drum lane at step 10 of the current page only within the track length and outside song-mode playback at once without a question, auditioning additions and allowing sequence undo while clearing details if the last hit is removed.",
    "short_label": "GRID STEP 10",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_studio.c",
      "lines": "490-535",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_studio.c#L490-L535"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "press_while_holding:button_edit",
    "action": "Erases the mapped synth note or chord, or this drum lane, immediately from all active steps while stopped or from steps passing while held during playback, without a question and with sequence undo available.",
    "short_label": "ERASE EVENTS",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "965-1023",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L965-L1023"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1502-1524",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1502-L1524"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "press_while_holding:button_edit",
    "action": "On drums after a black key selected live mutes, toggles this lane’s sequencer mute without deleting hits, saving the mute or adding undo.",
    "short_label": "MUTE LOW TOM",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "970-975",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L970-L975"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1493-1500",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1493-L1500"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "release",
    "action": "Stops ongoing erasure for this key without restoring events already removed.",
    "short_label": "STOP ERASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1612-1618",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1612-L1618"
     }
    ]
   },
   {
    "mode": "mix_layer",
    "gesture": "press_while_holding:button_glo",
    "action": "Arms or cancels a fill for the next bar.",
    "short_label": "FILL NEXT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "461-475",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L461-L475"
     }
    ]
   },
   {
    "mode": "sections",
    "gesture": "press_while_holding:button_save",
    "action": "Does nothing in the section layer.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "400-458",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L400-L458"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/project.c",
      "lines": "1116-1163",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/project.c#L1116-L1163"
     }
    ]
   },
   {
    "mode": "sample_perc",
    "gesture": "press",
    "action": "Plays E3 before octave buttons and any chord processing, without scale or keyboard transpose mapping.",
    "short_label": "E3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "235-242",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L235-L242"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1566-1584",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1566-L1584"
     }
    ]
   }
  ],
  "key_as4": [
   {
    "mode": "synth_play",
    "gesture": "press",
    "action": "Plays A#4 on a pitched synth sound before octave and transpose, following scale snap or white-key mapping and one-key chords when enabled.",
    "short_label": "A#4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "198-246",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L198-L246"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1550-1590",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1550-L1590"
     }
    ]
   },
   {
    "mode": "synth_play",
    "gesture": "release",
    "action": "Releases its sounding synth note or chord, subject to envelope release, sustain and arp HOLD.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1624-1629",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1624-L1629"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1232-1271",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1232-L1271"
     }
    ]
   },
   {
    "mode": "synth_play",
    "gesture": "hold",
    "action": "In chord mode, silently changes held and newly played chords with the suspended fourth modifier; with WHITE mapping and chords off, it is silent.",
    "short_label": "SUS4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "288-298",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L288-L298"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1433-1465",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1433-L1465"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1551-1557",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1551-L1557"
     }
    ]
   },
   {
    "mode": "synth_play",
    "gesture": "release",
    "action": "In chord mode, removes its chord modifier and revoices any chord still held.",
    "short_label": "END SUS4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1609-1611",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1609-L1611"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1433-1465",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1433-L1465"
     }
    ]
   },
   {
    "mode": "drum_play",
    "gesture": "press",
    "action": "Plays the low tom pad, using normal hit level or OCT- ghost and OCT+ hard.",
    "short_label": "LOW TOM",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/drums.c",
      "lines": "64-89",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/drums.c#L64-L89"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1418-1421",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1418-L1421"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1535-1547",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1535-L1547"
     }
    ]
   },
   {
    "mode": "drum_play",
    "gesture": "release",
    "action": "Sends that drum pad’s MIDI note-off and closes its free-take event without cutting the one-shot drum sound.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1631-1636",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1631-L1636"
     }
    ]
   },
   {
    "mode": "step",
    "gesture": "press",
    "action": "On a synth track outside live recording, writes the played note or chord into the cursor step, up to four notes in POLY or the last note otherwise; silent black-key mappings enter nothing.",
    "short_label": "ENTER STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "620-659",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L620-L659"
     }
    ]
   },
   {
    "mode": "step",
    "gesture": "release",
    "action": "After an entry, releasing all panel and MIDI notes advances the step cursor.",
    "short_label": "ADVANCE STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "661-662",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L661-L662"
     }
    ]
   },
   {
    "mode": "punch",
    "gesture": "press_while_holding:button_fx",
    "action": "Applies FREEZE to the whole mix while held, with the latest pressed effect replacing the previous one.",
    "short_label": "FREEZE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/punch.c",
      "lines": "13-21",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/punch.c#L13-L21"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1475-1483",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1475-L1483"
     }
    ]
   },
   {
    "mode": "punch",
    "gesture": "release",
    "action": "Releasing the key currently controlling the punch effect returns the mix to dry.",
    "short_label": "END FX",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1600-1604",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1600-L1604"
     }
    ]
   },
   {
    "mode": "roll",
    "gesture": "press_while_holding:button_arp",
    "action": "Repeats the mapped synth note or drum pad on the repeat grid while held, with silent synth black-key mappings remaining silent.",
    "short_label": "REPEAT NOTE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1535-1564",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1535-L1564"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1289-1382",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1289-L1382"
     }
    ]
   },
   {
    "mode": "roll",
    "gesture": "release",
    "action": "Ends the repeat started by this key.",
    "short_label": "STOP REPEAT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1619-1623",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1619-L1623"
     }
    ]
   },
   {
    "mode": "key_scale",
    "gesture": "press_while_holding:button_sel",
    "action": "Sets A# as root for all three synth tracks without playing a note.",
    "short_label": "ROOT A#",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "393-398",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L393-L398"
     }
    ]
   },
   {
    "mode": "drum_grid",
    "gesture": "press",
    "action": "Silently selects hi tom for grid editing.",
    "short_label": "PICK HI TOM",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_studio.c",
      "lines": "9-10",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_studio.c#L9-L10"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_studio.c",
      "lines": "500-512",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_studio.c#L500-L512"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "press_while_holding:button_edit",
    "action": "On drums, switches white keys between erasing lanes and toggling temporary live mutes; releasing EDIT resets this choice to erase.",
    "short_label": "ERASE / MUTE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "970-975",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L970-L975"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1493-1500",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1493-L1500"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1676-1677",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1676-L1677"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "press_while_holding:button_edit",
    "action": "On synth tracks, erases the mapped note immediately from active steps without a question, while chord or WHITE mappings make this black key silent; sequence undo can restore the edit.",
    "short_label": "ERASE NOTE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "965-1023",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L965-L1023"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1515-1524",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1515-L1524"
     }
    ]
   },
   {
    "mode": "steps",
    "gesture": "press_while_holding:button_seq",
    "action": "Does nothing in the step layer.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "383-388",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L383-L388"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "release",
    "action": "Stops ongoing erasure for this key without restoring events already removed.",
    "short_label": "STOP ERASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1612-1618",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1612-L1618"
     }
    ]
   },
   {
    "mode": "mix_layer",
    "gesture": "press_while_holding:button_glo",
    "action": "Does nothing in the mix layer.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "461-475",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L461-L475"
     }
    ]
   },
   {
    "mode": "sections",
    "gesture": "press_while_holding:button_save",
    "action": "Does nothing in the section layer.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "400-458",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L400-L458"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/project.c",
      "lines": "1116-1163",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/project.c#L1116-L1163"
     }
    ]
   },
   {
    "mode": "sample_perc",
    "gesture": "press",
    "action": "Plays F3 before octave buttons and any chord processing, without scale or keyboard transpose mapping.",
    "short_label": "F3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "235-242",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L235-L242"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1566-1584",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1566-L1584"
     }
    ]
   }
  ],
  "key_b4": [
   {
    "mode": "synth_play",
    "gesture": "press",
    "action": "Plays B4 on a pitched synth sound before octave and transpose, following scale snap or white-key mapping and one-key chords when enabled.",
    "short_label": "B4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "198-246",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L198-L246"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1550-1590",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1550-L1590"
     }
    ]
   },
   {
    "mode": "synth_play",
    "gesture": "release",
    "action": "Releases its sounding synth note or chord, subject to envelope release, sustain and arp HOLD.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1624-1629",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1624-L1629"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1232-1271",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1232-L1271"
     }
    ]
   },
   {
    "mode": "drum_play",
    "gesture": "press",
    "action": "Plays the hi tom pad, using normal hit level or OCT- ghost and OCT+ hard.",
    "short_label": "HI TOM",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/drums.c",
      "lines": "64-89",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/drums.c#L64-L89"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1418-1421",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1418-L1421"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1535-1547",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1535-L1547"
     }
    ]
   },
   {
    "mode": "drum_play",
    "gesture": "release",
    "action": "Sends that drum pad’s MIDI note-off and closes its free-take event without cutting the one-shot drum sound.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1631-1636",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1631-L1636"
     }
    ]
   },
   {
    "mode": "step",
    "gesture": "press",
    "action": "On a synth track outside live recording, writes the played note or chord into the cursor step, up to four notes in POLY or the last note otherwise; silent black-key mappings enter nothing.",
    "short_label": "ENTER STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "620-659",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L620-L659"
     }
    ]
   },
   {
    "mode": "step",
    "gesture": "release",
    "action": "After an entry, releasing all panel and MIDI notes advances the step cursor.",
    "short_label": "ADVANCE STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "661-662",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L661-L662"
     }
    ]
   },
   {
    "mode": "punch",
    "gesture": "press_while_holding:button_fx",
    "action": "Applies PHONE to the whole mix while held, with the latest pressed effect replacing the previous one.",
    "short_label": "PHONE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/punch.c",
      "lines": "13-21",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/punch.c#L13-L21"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1475-1483",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1475-L1483"
     }
    ]
   },
   {
    "mode": "punch",
    "gesture": "release",
    "action": "Releasing the key currently controlling the punch effect returns the mix to dry.",
    "short_label": "END FX",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1600-1604",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1600-L1604"
     }
    ]
   },
   {
    "mode": "roll",
    "gesture": "press_while_holding:button_arp",
    "action": "Repeats the mapped synth note or drum pad on the repeat grid while held, with silent synth black-key mappings remaining silent.",
    "short_label": "REPEAT NOTE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1535-1564",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1535-L1564"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1289-1382",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1289-L1382"
     }
    ]
   },
   {
    "mode": "roll",
    "gesture": "release",
    "action": "Ends the repeat started by this key.",
    "short_label": "STOP REPEAT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1619-1623",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1619-L1623"
     }
    ]
   },
   {
    "mode": "key_scale",
    "gesture": "press_while_holding:button_sel",
    "action": "Sets B as root for all three synth tracks without playing a note.",
    "short_label": "ROOT B",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "393-398",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L393-L398"
     }
    ]
   },
   {
    "mode": "steps",
    "gesture": "press_while_holding:button_seq",
    "action": "For step 11 on the displayed page, fills an empty step immediately with the recent synth note or chord, or the chosen drum hit; an occupied step clears on release unless edited, while steps outside the pattern or during song-mode playback are left alone.",
    "short_label": "STEP 11",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "158-188",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L158-L188"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "383-392",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L383-L392"
     }
    ]
   },
   {
    "mode": "steps",
    "gesture": "release",
    "action": "Clears an occupied held step on release unless an edit kept it, without a question, removing locks, nudge and fill if it becomes empty and allowing sequence undo.",
    "short_label": "CLEAR ON UP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "190-211",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L190-L211"
     }
    ]
   },
   {
    "mode": "drum_grid",
    "gesture": "press",
    "action": "Toggles the selected drum lane at step 11 of the current page only within the track length and outside song-mode playback at once without a question, auditioning additions and allowing sequence undo while clearing details if the last hit is removed.",
    "short_label": "GRID STEP 11",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_studio.c",
      "lines": "490-535",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_studio.c#L490-L535"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "press_while_holding:button_edit",
    "action": "Erases the mapped synth note or chord, or this drum lane, immediately from all active steps while stopped or from steps passing while held during playback, without a question and with sequence undo available.",
    "short_label": "ERASE EVENTS",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "965-1023",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L965-L1023"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1502-1524",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1502-L1524"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "press_while_holding:button_edit",
    "action": "On drums after a black key selected live mutes, toggles this lane’s sequencer mute without deleting hits, saving the mute or adding undo.",
    "short_label": "MUTE HI TOM",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "970-975",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L970-L975"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1493-1500",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1493-L1500"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "release",
    "action": "Stops ongoing erasure for this key without restoring events already removed.",
    "short_label": "STOP ERASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1612-1618",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1612-L1618"
     }
    ]
   },
   {
    "mode": "mix_layer",
    "gesture": "press_while_holding:button_glo",
    "action": "Does nothing in the mix layer.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "461-475",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L461-L475"
     }
    ]
   },
   {
    "mode": "sections",
    "gesture": "press_while_holding:button_save",
    "action": "Does nothing in the section layer.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "400-458",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L400-L458"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/project.c",
      "lines": "1116-1163",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/project.c#L1116-L1163"
     }
    ]
   },
   {
    "mode": "sample_perc",
    "gesture": "press",
    "action": "Plays F#3 before octave buttons and any chord processing, without scale or keyboard transpose mapping.",
    "short_label": "F#3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "235-242",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L235-L242"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1566-1584",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1566-L1584"
     }
    ]
   }
  ],
  "key_c5": [
   {
    "mode": "synth_play",
    "gesture": "press",
    "action": "Plays C5 on a pitched synth sound before octave and transpose, following scale snap or white-key mapping and one-key chords when enabled.",
    "short_label": "C5",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "198-246",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L198-L246"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1550-1590",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1550-L1590"
     }
    ]
   },
   {
    "mode": "synth_play",
    "gesture": "release",
    "action": "Releases its sounding synth note or chord, subject to envelope release, sustain and arp HOLD.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1624-1629",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1624-L1629"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1232-1271",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1232-L1271"
     }
    ]
   },
   {
    "mode": "drum_play",
    "gesture": "press",
    "action": "Plays the crash pad, using normal hit level or OCT- ghost and OCT+ hard.",
    "short_label": "CRASH",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/drums.c",
      "lines": "64-89",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/drums.c#L64-L89"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1418-1421",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1418-L1421"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1535-1547",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1535-L1547"
     }
    ]
   },
   {
    "mode": "drum_play",
    "gesture": "release",
    "action": "Sends that drum pad’s MIDI note-off and closes its free-take event without cutting the one-shot drum sound.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1631-1636",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1631-L1636"
     }
    ]
   },
   {
    "mode": "step",
    "gesture": "press",
    "action": "On a synth track outside live recording, writes the played note or chord into the cursor step, up to four notes in POLY or the last note otherwise; silent black-key mappings enter nothing.",
    "short_label": "ENTER STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "620-659",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L620-L659"
     }
    ]
   },
   {
    "mode": "step",
    "gesture": "release",
    "action": "After an entry, releasing all panel and MIDI notes advances the step cursor.",
    "short_label": "ADVANCE STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "661-662",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L661-L662"
     }
    ]
   },
   {
    "mode": "punch",
    "gesture": "press_while_holding:button_fx",
    "action": "Applies CRUSH to the whole mix while held, with the latest pressed effect replacing the previous one.",
    "short_label": "CRUSH",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/punch.c",
      "lines": "13-21",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/punch.c#L13-L21"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1475-1483",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1475-L1483"
     }
    ]
   },
   {
    "mode": "punch",
    "gesture": "release",
    "action": "Releasing the key currently controlling the punch effect returns the mix to dry.",
    "short_label": "END FX",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1600-1604",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1600-L1604"
     }
    ]
   },
   {
    "mode": "roll",
    "gesture": "press_while_holding:button_arp",
    "action": "Repeats the mapped synth note or drum pad on the repeat grid while held, with silent synth black-key mappings remaining silent.",
    "short_label": "REPEAT NOTE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1535-1564",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1535-L1564"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1289-1382",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1289-L1382"
     }
    ]
   },
   {
    "mode": "roll",
    "gesture": "release",
    "action": "Ends the repeat started by this key.",
    "short_label": "STOP REPEAT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1619-1623",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1619-L1623"
     }
    ]
   },
   {
    "mode": "key_scale",
    "gesture": "press_while_holding:button_sel",
    "action": "Sets C as root for all three synth tracks without playing a note.",
    "short_label": "ROOT C",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "393-398",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L393-L398"
     }
    ]
   },
   {
    "mode": "steps",
    "gesture": "press_while_holding:button_seq",
    "action": "For step 12 on the displayed page, fills an empty step immediately with the recent synth note or chord, or the chosen drum hit; an occupied step clears on release unless edited, while steps outside the pattern or during song-mode playback are left alone.",
    "short_label": "STEP 12",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "158-188",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L158-L188"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "383-392",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L383-L392"
     }
    ]
   },
   {
    "mode": "steps",
    "gesture": "release",
    "action": "Clears an occupied held step on release unless an edit kept it, without a question, removing locks, nudge and fill if it becomes empty and allowing sequence undo.",
    "short_label": "CLEAR ON UP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "190-211",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L190-L211"
     }
    ]
   },
   {
    "mode": "drum_grid",
    "gesture": "press",
    "action": "Toggles the selected drum lane at step 12 of the current page only within the track length and outside song-mode playback at once without a question, auditioning additions and allowing sequence undo while clearing details if the last hit is removed.",
    "short_label": "GRID STEP 12",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_studio.c",
      "lines": "490-535",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_studio.c#L490-L535"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "press_while_holding:button_edit",
    "action": "Erases the mapped synth note or chord, or this drum lane, immediately from all active steps while stopped or from steps passing while held during playback, without a question and with sequence undo available.",
    "short_label": "ERASE EVENTS",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "965-1023",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L965-L1023"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1502-1524",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1502-L1524"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "press_while_holding:button_edit",
    "action": "On drums after a black key selected live mutes, toggles this lane’s sequencer mute without deleting hits, saving the mute or adding undo.",
    "short_label": "MUTE CRASH",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "970-975",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L970-L975"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1493-1500",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1493-L1500"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "release",
    "action": "Stops ongoing erasure for this key without restoring events already removed.",
    "short_label": "STOP ERASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1612-1618",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1612-L1618"
     }
    ]
   },
   {
    "mode": "mix_layer",
    "gesture": "press_while_holding:button_glo",
    "action": "Does nothing in the mix layer.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "461-475",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L461-L475"
     }
    ]
   },
   {
    "mode": "sections",
    "gesture": "press_while_holding:button_save",
    "action": "Does nothing in the section layer.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "400-458",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L400-L458"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/project.c",
      "lines": "1116-1163",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/project.c#L1116-L1163"
     }
    ]
   },
   {
    "mode": "sample_perc",
    "gesture": "press",
    "action": "Plays G3 before octave buttons and any chord processing, without scale or keyboard transpose mapping.",
    "short_label": "G3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "235-242",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L235-L242"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1566-1584",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1566-L1584"
     }
    ]
   }
  ],
  "key_cs5": [
   {
    "mode": "synth_play",
    "gesture": "press",
    "action": "Plays C#5 on a pitched synth sound before octave and transpose, following scale snap or white-key mapping and one-key chords when enabled.",
    "short_label": "C#5",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "198-246",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L198-L246"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1550-1590",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1550-L1590"
     }
    ]
   },
   {
    "mode": "synth_play",
    "gesture": "release",
    "action": "Releases its sounding synth note or chord, subject to envelope release, sustain and arp HOLD.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1624-1629",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1624-L1629"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1232-1271",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1232-L1271"
     }
    ]
   },
   {
    "mode": "synth_play",
    "gesture": "hold",
    "action": "In chord mode, silently changes held and newly played chords with the ninth modifier; with WHITE mapping and chords off, it is silent.",
    "short_label": "NINTH",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "288-298",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L288-L298"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1433-1465",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1433-L1465"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1551-1557",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1551-L1557"
     }
    ]
   },
   {
    "mode": "synth_play",
    "gesture": "release",
    "action": "In chord mode, removes its chord modifier and revoices any chord still held.",
    "short_label": "END NINTH",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1609-1611",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1609-L1611"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1433-1465",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1433-L1465"
     }
    ]
   },
   {
    "mode": "drum_play",
    "gesture": "press",
    "action": "Plays the crash pad, using normal hit level or OCT- ghost and OCT+ hard.",
    "short_label": "CRASH",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/drums.c",
      "lines": "64-89",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/drums.c#L64-L89"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1418-1421",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1418-L1421"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1535-1547",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1535-L1547"
     }
    ]
   },
   {
    "mode": "drum_play",
    "gesture": "release",
    "action": "Sends that drum pad’s MIDI note-off and closes its free-take event without cutting the one-shot drum sound.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1631-1636",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1631-L1636"
     }
    ]
   },
   {
    "mode": "step",
    "gesture": "press",
    "action": "On a synth track outside live recording, writes the played note or chord into the cursor step, up to four notes in POLY or the last note otherwise; silent black-key mappings enter nothing.",
    "short_label": "ENTER STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "620-659",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L620-L659"
     }
    ]
   },
   {
    "mode": "step",
    "gesture": "release",
    "action": "After an entry, releasing all panel and MIDI notes advances the step cursor.",
    "short_label": "ADVANCE STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "661-662",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L661-L662"
     }
    ]
   },
   {
    "mode": "punch",
    "gesture": "press_while_holding:button_fx",
    "action": "Applies LOOP 8T to the whole mix while held, with the latest pressed effect replacing the previous one.",
    "short_label": "LOOP 8T",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/punch.c",
      "lines": "13-21",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/punch.c#L13-L21"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1475-1483",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1475-L1483"
     }
    ]
   },
   {
    "mode": "punch",
    "gesture": "release",
    "action": "Releasing the key currently controlling the punch effect returns the mix to dry.",
    "short_label": "END FX",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1600-1604",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1600-L1604"
     }
    ]
   },
   {
    "mode": "roll",
    "gesture": "press_while_holding:button_arp",
    "action": "Repeats the mapped synth note or drum pad on the repeat grid while held, with silent synth black-key mappings remaining silent.",
    "short_label": "REPEAT NOTE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1535-1564",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1535-L1564"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1289-1382",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1289-L1382"
     }
    ]
   },
   {
    "mode": "roll",
    "gesture": "release",
    "action": "Ends the repeat started by this key.",
    "short_label": "STOP REPEAT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1619-1623",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1619-L1623"
     }
    ]
   },
   {
    "mode": "key_scale",
    "gesture": "press_while_holding:button_sel",
    "action": "Sets C# as root for all three synth tracks without playing a note.",
    "short_label": "ROOT C#",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "393-398",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L393-L398"
     }
    ]
   },
   {
    "mode": "drum_grid",
    "gesture": "press",
    "action": "Silently selects crash for grid editing.",
    "short_label": "PICK CRASH",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_studio.c",
      "lines": "9-10",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_studio.c#L9-L10"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_studio.c",
      "lines": "500-512",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_studio.c#L500-L512"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "press_while_holding:button_edit",
    "action": "On drums, switches white keys between erasing lanes and toggling temporary live mutes; releasing EDIT resets this choice to erase.",
    "short_label": "ERASE / MUTE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "970-975",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L970-L975"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1493-1500",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1493-L1500"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1676-1677",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1676-L1677"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "press_while_holding:button_edit",
    "action": "On synth tracks, erases the mapped note immediately from active steps without a question, while chord or WHITE mappings make this black key silent; sequence undo can restore the edit.",
    "short_label": "ERASE NOTE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "965-1023",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L965-L1023"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1515-1524",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1515-L1524"
     }
    ]
   },
   {
    "mode": "steps",
    "gesture": "press_while_holding:button_seq",
    "action": "Does nothing in the step layer.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "383-388",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L383-L388"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "release",
    "action": "Stops ongoing erasure for this key without restoring events already removed.",
    "short_label": "STOP ERASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1612-1618",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1612-L1618"
     }
    ]
   },
   {
    "mode": "mix_layer",
    "gesture": "press_while_holding:button_glo",
    "action": "Does nothing in the mix layer.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "461-475",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L461-L475"
     }
    ]
   },
   {
    "mode": "sections",
    "gesture": "press_while_holding:button_save",
    "action": "Does nothing in the section layer.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "400-458",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L400-L458"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/project.c",
      "lines": "1116-1163",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/project.c#L1116-L1163"
     }
    ]
   },
   {
    "mode": "sample_perc",
    "gesture": "press",
    "action": "Plays G#3 before octave buttons and any chord processing, without scale or keyboard transpose mapping.",
    "short_label": "G#3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "235-242",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L235-L242"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1566-1584",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1566-L1584"
     }
    ]
   }
  ],
  "key_d5": [
   {
    "mode": "synth_play",
    "gesture": "press",
    "action": "Plays D5 on a pitched synth sound before octave and transpose, following scale snap or white-key mapping and one-key chords when enabled.",
    "short_label": "D5",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "198-246",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L198-L246"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1550-1590",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1550-L1590"
     }
    ]
   },
   {
    "mode": "synth_play",
    "gesture": "release",
    "action": "Releases its sounding synth note or chord, subject to envelope release, sustain and arp HOLD.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1624-1629",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1624-L1629"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1232-1271",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1232-L1271"
     }
    ]
   },
   {
    "mode": "drum_play",
    "gesture": "press",
    "action": "Plays the ride pad, using normal hit level or OCT- ghost and OCT+ hard.",
    "short_label": "RIDE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/drums.c",
      "lines": "64-89",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/drums.c#L64-L89"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1418-1421",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1418-L1421"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1535-1547",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1535-L1547"
     }
    ]
   },
   {
    "mode": "drum_play",
    "gesture": "release",
    "action": "Sends that drum pad’s MIDI note-off and closes its free-take event without cutting the one-shot drum sound.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1631-1636",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1631-L1636"
     }
    ]
   },
   {
    "mode": "step",
    "gesture": "press",
    "action": "On a synth track outside live recording, writes the played note or chord into the cursor step, up to four notes in POLY or the last note otherwise; silent black-key mappings enter nothing.",
    "short_label": "ENTER STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "620-659",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L620-L659"
     }
    ]
   },
   {
    "mode": "step",
    "gesture": "release",
    "action": "After an entry, releasing all panel and MIDI notes advances the step cursor.",
    "short_label": "ADVANCE STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "661-662",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L661-L662"
     }
    ]
   },
   {
    "mode": "punch",
    "gesture": "press_while_holding:button_fx",
    "action": "Applies ALIAS to the whole mix while held, with the latest pressed effect replacing the previous one.",
    "short_label": "ALIAS",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/punch.c",
      "lines": "13-21",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/punch.c#L13-L21"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1475-1483",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1475-L1483"
     }
    ]
   },
   {
    "mode": "punch",
    "gesture": "release",
    "action": "Releasing the key currently controlling the punch effect returns the mix to dry.",
    "short_label": "END FX",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1600-1604",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1600-L1604"
     }
    ]
   },
   {
    "mode": "roll",
    "gesture": "press_while_holding:button_arp",
    "action": "Repeats the mapped synth note or drum pad on the repeat grid while held, with silent synth black-key mappings remaining silent.",
    "short_label": "REPEAT NOTE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1535-1564",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1535-L1564"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1289-1382",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1289-L1382"
     }
    ]
   },
   {
    "mode": "roll",
    "gesture": "release",
    "action": "Ends the repeat started by this key.",
    "short_label": "STOP REPEAT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1619-1623",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1619-L1623"
     }
    ]
   },
   {
    "mode": "key_scale",
    "gesture": "press_while_holding:button_sel",
    "action": "Sets D as root for all three synth tracks without playing a note.",
    "short_label": "ROOT D",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "393-398",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L393-L398"
     }
    ]
   },
   {
    "mode": "steps",
    "gesture": "press_while_holding:button_seq",
    "action": "For step 13 on the displayed page, fills an empty step immediately with the recent synth note or chord, or the chosen drum hit; an occupied step clears on release unless edited, while steps outside the pattern or during song-mode playback are left alone.",
    "short_label": "STEP 13",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "158-188",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L158-L188"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "383-392",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L383-L392"
     }
    ]
   },
   {
    "mode": "steps",
    "gesture": "release",
    "action": "Clears an occupied held step on release unless an edit kept it, without a question, removing locks, nudge and fill if it becomes empty and allowing sequence undo.",
    "short_label": "CLEAR ON UP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "190-211",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L190-L211"
     }
    ]
   },
   {
    "mode": "drum_grid",
    "gesture": "press",
    "action": "Toggles the selected drum lane at step 13 of the current page only within the track length and outside song-mode playback at once without a question, auditioning additions and allowing sequence undo while clearing details if the last hit is removed.",
    "short_label": "GRID STEP 13",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_studio.c",
      "lines": "490-535",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_studio.c#L490-L535"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "press_while_holding:button_edit",
    "action": "Erases the mapped synth note or chord, or this drum lane, immediately from all active steps while stopped or from steps passing while held during playback, without a question and with sequence undo available.",
    "short_label": "ERASE EVENTS",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "965-1023",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L965-L1023"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1502-1524",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1502-L1524"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "press_while_holding:button_edit",
    "action": "On drums after a black key selected live mutes, toggles this lane’s sequencer mute without deleting hits, saving the mute or adding undo.",
    "short_label": "MUTE RIDE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "970-975",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L970-L975"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1493-1500",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1493-L1500"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "release",
    "action": "Stops ongoing erasure for this key without restoring events already removed.",
    "short_label": "STOP ERASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1612-1618",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1612-L1618"
     }
    ]
   },
   {
    "mode": "mix_layer",
    "gesture": "press_while_holding:button_glo",
    "action": "Does nothing in the mix layer.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "461-475",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L461-L475"
     }
    ]
   },
   {
    "mode": "sections",
    "gesture": "press_while_holding:button_save",
    "action": "Switches between loop and song playback unless section-order recording is active.",
    "short_label": "LOOP / SONG",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "400-458",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L400-L458"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/project.c",
      "lines": "1116-1163",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/project.c#L1116-L1163"
     }
    ]
   },
   {
    "mode": "sample_perc",
    "gesture": "press",
    "action": "Plays A3 before octave buttons and any chord processing, without scale or keyboard transpose mapping.",
    "short_label": "A3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "235-242",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L235-L242"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1566-1584",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1566-L1584"
     }
    ]
   }
  ],
  "key_ds5": [
   {
    "mode": "synth_play",
    "gesture": "press",
    "action": "Plays D#5 on a pitched synth sound before octave and transpose, following scale snap or white-key mapping and one-key chords when enabled.",
    "short_label": "D#5",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "198-246",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L198-L246"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1550-1590",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1550-L1590"
     }
    ]
   },
   {
    "mode": "synth_play",
    "gesture": "release",
    "action": "Releases its sounding synth note or chord, subject to envelope release, sustain and arp HOLD.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1624-1629",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1624-L1629"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1232-1271",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1232-L1271"
     }
    ]
   },
   {
    "mode": "synth_play",
    "gesture": "hold",
    "action": "In chord mode, silently changes held and newly played chords with the inversion modifier; with WHITE mapping and chords off, it is silent.",
    "short_label": "INVERSION",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "288-298",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L288-L298"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1433-1465",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1433-L1465"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1551-1557",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1551-L1557"
     }
    ]
   },
   {
    "mode": "synth_play",
    "gesture": "release",
    "action": "In chord mode, removes its chord modifier and revoices any chord still held.",
    "short_label": "END MODIFIER",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1609-1611",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1609-L1611"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1433-1465",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1433-L1465"
     }
    ]
   },
   {
    "mode": "drum_play",
    "gesture": "press",
    "action": "Plays the ride pad, using normal hit level or OCT- ghost and OCT+ hard.",
    "short_label": "RIDE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/drums.c",
      "lines": "64-89",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/drums.c#L64-L89"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1418-1421",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1418-L1421"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1535-1547",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1535-L1547"
     }
    ]
   },
   {
    "mode": "drum_play",
    "gesture": "release",
    "action": "Sends that drum pad’s MIDI note-off and closes its free-take event without cutting the one-shot drum sound.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1631-1636",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1631-L1636"
     }
    ]
   },
   {
    "mode": "step",
    "gesture": "press",
    "action": "On a synth track outside live recording, writes the played note or chord into the cursor step, up to four notes in POLY or the last note otherwise; silent black-key mappings enter nothing.",
    "short_label": "ENTER STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "620-659",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L620-L659"
     }
    ]
   },
   {
    "mode": "step",
    "gesture": "release",
    "action": "After an entry, releasing all panel and MIDI notes advances the step cursor.",
    "short_label": "ADVANCE STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "661-662",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L661-L662"
     }
    ]
   },
   {
    "mode": "punch",
    "gesture": "press_while_holding:button_fx",
    "action": "Applies MONO to the whole mix while held, with the latest pressed effect replacing the previous one.",
    "short_label": "MONO",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/punch.c",
      "lines": "13-21",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/punch.c#L13-L21"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1475-1483",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1475-L1483"
     }
    ]
   },
   {
    "mode": "punch",
    "gesture": "release",
    "action": "Releasing the key currently controlling the punch effect returns the mix to dry.",
    "short_label": "END FX",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1600-1604",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1600-L1604"
     }
    ]
   },
   {
    "mode": "roll",
    "gesture": "press_while_holding:button_arp",
    "action": "Repeats the mapped synth note or drum pad on the repeat grid while held, with silent synth black-key mappings remaining silent.",
    "short_label": "REPEAT NOTE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1535-1564",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1535-L1564"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1289-1382",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1289-L1382"
     }
    ]
   },
   {
    "mode": "roll",
    "gesture": "release",
    "action": "Ends the repeat started by this key.",
    "short_label": "STOP REPEAT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1619-1623",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1619-L1623"
     }
    ]
   },
   {
    "mode": "key_scale",
    "gesture": "press_while_holding:button_sel",
    "action": "Sets D# as root for all three synth tracks without playing a note.",
    "short_label": "ROOT D#",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "393-398",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L393-L398"
     }
    ]
   },
   {
    "mode": "drum_grid",
    "gesture": "press",
    "action": "Silently selects ride for grid editing.",
    "short_label": "PICK RIDE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_studio.c",
      "lines": "9-10",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_studio.c#L9-L10"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_studio.c",
      "lines": "500-512",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_studio.c#L500-L512"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "press_while_holding:button_edit",
    "action": "On drums, switches white keys between erasing lanes and toggling temporary live mutes; releasing EDIT resets this choice to erase.",
    "short_label": "ERASE / MUTE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "970-975",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L970-L975"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1493-1500",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1493-L1500"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1676-1677",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1676-L1677"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "press_while_holding:button_edit",
    "action": "On synth tracks, erases the mapped note immediately from active steps without a question, while chord or WHITE mappings make this black key silent; sequence undo can restore the edit.",
    "short_label": "ERASE NOTE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "965-1023",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L965-L1023"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1515-1524",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1515-L1524"
     }
    ]
   },
   {
    "mode": "steps",
    "gesture": "press_while_holding:button_seq",
    "action": "Does nothing in the step layer.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "383-388",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L383-L388"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "release",
    "action": "Stops ongoing erasure for this key without restoring events already removed.",
    "short_label": "STOP ERASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1612-1618",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1612-L1618"
     }
    ]
   },
   {
    "mode": "mix_layer",
    "gesture": "press_while_holding:button_glo",
    "action": "Does nothing in the mix layer.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "461-475",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L461-L475"
     }
    ]
   },
   {
    "mode": "sections",
    "gesture": "press_while_holding:button_save",
    "action": "Does nothing in the section layer.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "400-458",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L400-L458"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/project.c",
      "lines": "1116-1163",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/project.c#L1116-L1163"
     }
    ]
   },
   {
    "mode": "sample_perc",
    "gesture": "press",
    "action": "Plays A#3 before octave buttons and any chord processing, without scale or keyboard transpose mapping.",
    "short_label": "A#3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "235-242",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L235-L242"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1566-1584",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1566-L1584"
     }
    ]
   }
  ],
  "key_e5": [
   {
    "mode": "synth_play",
    "gesture": "press",
    "action": "Plays E5 on a pitched synth sound before octave and transpose, following scale snap or white-key mapping and one-key chords when enabled.",
    "short_label": "E5",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "198-246",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L198-L246"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1550-1590",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1550-L1590"
     }
    ]
   },
   {
    "mode": "synth_play",
    "gesture": "release",
    "action": "Releases its sounding synth note or chord, subject to envelope release, sustain and arp HOLD.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1624-1629",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1624-L1629"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1232-1271",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1232-L1271"
     }
    ]
   },
   {
    "mode": "drum_play",
    "gesture": "press",
    "action": "Plays the shaker pad, using normal hit level or OCT- ghost and OCT+ hard.",
    "short_label": "SHAKER",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/drums.c",
      "lines": "64-89",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/drums.c#L64-L89"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1418-1421",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1418-L1421"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1535-1547",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1535-L1547"
     }
    ]
   },
   {
    "mode": "drum_play",
    "gesture": "release",
    "action": "Sends that drum pad’s MIDI note-off and closes its free-take event without cutting the one-shot drum sound.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1631-1636",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1631-L1636"
     }
    ]
   },
   {
    "mode": "step",
    "gesture": "press",
    "action": "On a synth track outside live recording, writes the played note or chord into the cursor step, up to four notes in POLY or the last note otherwise; silent black-key mappings enter nothing.",
    "short_label": "ENTER STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "620-659",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L620-L659"
     }
    ]
   },
   {
    "mode": "step",
    "gesture": "release",
    "action": "After an entry, releasing all panel and MIDI notes advances the step cursor.",
    "short_label": "ADVANCE STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "661-662",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L661-L662"
     }
    ]
   },
   {
    "mode": "punch",
    "gesture": "press_while_holding:button_fx",
    "action": "Applies GATE to the whole mix while held, with the latest pressed effect replacing the previous one.",
    "short_label": "GATE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/punch.c",
      "lines": "13-21",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/punch.c#L13-L21"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1475-1483",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1475-L1483"
     }
    ]
   },
   {
    "mode": "punch",
    "gesture": "release",
    "action": "Releasing the key currently controlling the punch effect returns the mix to dry.",
    "short_label": "END FX",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1600-1604",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1600-L1604"
     }
    ]
   },
   {
    "mode": "roll",
    "gesture": "press_while_holding:button_arp",
    "action": "Repeats the mapped synth note or drum pad on the repeat grid while held, with silent synth black-key mappings remaining silent.",
    "short_label": "REPEAT NOTE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1535-1564",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1535-L1564"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1289-1382",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1289-L1382"
     }
    ]
   },
   {
    "mode": "roll",
    "gesture": "release",
    "action": "Ends the repeat started by this key.",
    "short_label": "STOP REPEAT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1619-1623",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1619-L1623"
     }
    ]
   },
   {
    "mode": "key_scale",
    "gesture": "press_while_holding:button_sel",
    "action": "Sets E as root for all three synth tracks without playing a note.",
    "short_label": "ROOT E",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "393-398",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L393-L398"
     }
    ]
   },
   {
    "mode": "steps",
    "gesture": "press_while_holding:button_seq",
    "action": "For step 14 on the displayed page, fills an empty step immediately with the recent synth note or chord, or the chosen drum hit; an occupied step clears on release unless edited, while steps outside the pattern or during song-mode playback are left alone.",
    "short_label": "STEP 14",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "158-188",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L158-L188"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "383-392",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L383-L392"
     }
    ]
   },
   {
    "mode": "steps",
    "gesture": "release",
    "action": "Clears an occupied held step on release unless an edit kept it, without a question, removing locks, nudge and fill if it becomes empty and allowing sequence undo.",
    "short_label": "CLEAR ON UP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "190-211",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L190-L211"
     }
    ]
   },
   {
    "mode": "drum_grid",
    "gesture": "press",
    "action": "Toggles the selected drum lane at step 14 of the current page only within the track length and outside song-mode playback at once without a question, auditioning additions and allowing sequence undo while clearing details if the last hit is removed.",
    "short_label": "GRID STEP 14",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_studio.c",
      "lines": "490-535",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_studio.c#L490-L535"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "press_while_holding:button_edit",
    "action": "Erases the mapped synth note or chord, or this drum lane, immediately from all active steps while stopped or from steps passing while held during playback, without a question and with sequence undo available.",
    "short_label": "ERASE EVENTS",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "965-1023",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L965-L1023"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1502-1524",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1502-L1524"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "press_while_holding:button_edit",
    "action": "On drums after a black key selected live mutes, toggles this lane’s sequencer mute without deleting hits, saving the mute or adding undo.",
    "short_label": "MUTE SHAKER",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "970-975",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L970-L975"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1493-1500",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1493-L1500"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "release",
    "action": "Stops ongoing erasure for this key without restoring events already removed.",
    "short_label": "STOP ERASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1612-1618",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1612-L1618"
     }
    ]
   },
   {
    "mode": "mix_layer",
    "gesture": "press_while_holding:button_glo",
    "action": "Does nothing in the mix layer.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "461-475",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L461-L475"
     }
    ]
   },
   {
    "mode": "sections",
    "gesture": "press_while_holding:button_save",
    "action": "Arms or ends section-order recording in loop playback, with the resulting order saved later when stopped and quiet.",
    "short_label": "ORDER REC",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "400-458",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L400-L458"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/project.c",
      "lines": "1116-1163",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/project.c#L1116-L1163"
     }
    ]
   },
   {
    "mode": "sample_perc",
    "gesture": "press",
    "action": "Plays B3 before octave buttons and any chord processing, without scale or keyboard transpose mapping.",
    "short_label": "B3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "235-242",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L235-L242"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1566-1584",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1566-L1584"
     }
    ]
   }
  ],
  "key_f5": [
   {
    "mode": "synth_play",
    "gesture": "press",
    "action": "Plays F5 on a pitched synth sound before octave and transpose, following scale snap or white-key mapping and one-key chords when enabled.",
    "short_label": "F5",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "198-246",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L198-L246"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1550-1590",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1550-L1590"
     }
    ]
   },
   {
    "mode": "synth_play",
    "gesture": "release",
    "action": "Releases its sounding synth note or chord, subject to envelope release, sustain and arp HOLD.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1624-1629",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1624-L1629"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1232-1271",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1232-L1271"
     }
    ]
   },
   {
    "mode": "drum_play",
    "gesture": "press",
    "action": "Plays the conga pad, using normal hit level or OCT- ghost and OCT+ hard.",
    "short_label": "CONGA",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/drums.c",
      "lines": "64-89",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/drums.c#L64-L89"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1418-1421",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1418-L1421"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1535-1547",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1535-L1547"
     }
    ]
   },
   {
    "mode": "drum_play",
    "gesture": "release",
    "action": "Sends that drum pad’s MIDI note-off and closes its free-take event without cutting the one-shot drum sound.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1631-1636",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1631-L1636"
     }
    ]
   },
   {
    "mode": "step",
    "gesture": "press",
    "action": "On a synth track outside live recording, writes the played note or chord into the cursor step, up to four notes in POLY or the last note otherwise; silent black-key mappings enter nothing.",
    "short_label": "ENTER STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "620-659",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L620-L659"
     }
    ]
   },
   {
    "mode": "step",
    "gesture": "release",
    "action": "After an entry, releasing all panel and MIDI notes advances the step cursor.",
    "short_label": "ADVANCE STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "661-662",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L661-L662"
     }
    ]
   },
   {
    "mode": "punch",
    "gesture": "press_while_holding:button_fx",
    "action": "Applies ECHO to the whole mix while held, with the latest pressed effect replacing the previous one.",
    "short_label": "ECHO",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/punch.c",
      "lines": "13-21",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/punch.c#L13-L21"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1475-1483",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1475-L1483"
     }
    ]
   },
   {
    "mode": "punch",
    "gesture": "release",
    "action": "Releasing the key currently controlling the punch effect returns the mix to dry.",
    "short_label": "END FX",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1600-1604",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1600-L1604"
     }
    ]
   },
   {
    "mode": "roll",
    "gesture": "press_while_holding:button_arp",
    "action": "Repeats the mapped synth note or drum pad on the repeat grid while held, with silent synth black-key mappings remaining silent.",
    "short_label": "REPEAT NOTE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1535-1564",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1535-L1564"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1289-1382",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1289-L1382"
     }
    ]
   },
   {
    "mode": "roll",
    "gesture": "release",
    "action": "Ends the repeat started by this key.",
    "short_label": "STOP REPEAT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1619-1623",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1619-L1623"
     }
    ]
   },
   {
    "mode": "key_scale",
    "gesture": "press_while_holding:button_sel",
    "action": "Sets F as root for all three synth tracks without playing a note.",
    "short_label": "ROOT F",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "393-398",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L393-L398"
     }
    ]
   },
   {
    "mode": "steps",
    "gesture": "press_while_holding:button_seq",
    "action": "For step 15 on the displayed page, fills an empty step immediately with the recent synth note or chord, or the chosen drum hit; an occupied step clears on release unless edited, while steps outside the pattern or during song-mode playback are left alone.",
    "short_label": "STEP 15",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "158-188",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L158-L188"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "383-392",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L383-L392"
     }
    ]
   },
   {
    "mode": "steps",
    "gesture": "release",
    "action": "Clears an occupied held step on release unless an edit kept it, without a question, removing locks, nudge and fill if it becomes empty and allowing sequence undo.",
    "short_label": "CLEAR ON UP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "190-211",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L190-L211"
     }
    ]
   },
   {
    "mode": "drum_grid",
    "gesture": "press",
    "action": "Toggles the selected drum lane at step 15 of the current page only within the track length and outside song-mode playback at once without a question, auditioning additions and allowing sequence undo while clearing details if the last hit is removed.",
    "short_label": "GRID STEP 15",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_studio.c",
      "lines": "490-535",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_studio.c#L490-L535"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "press_while_holding:button_edit",
    "action": "Erases the mapped synth note or chord, or this drum lane, immediately from all active steps while stopped or from steps passing while held during playback, without a question and with sequence undo available.",
    "short_label": "ERASE EVENTS",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "965-1023",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L965-L1023"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1502-1524",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1502-L1524"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "press_while_holding:button_edit",
    "action": "On drums after a black key selected live mutes, toggles this lane’s sequencer mute without deleting hits, saving the mute or adding undo.",
    "short_label": "MUTE CONGA",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "970-975",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L970-L975"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1493-1500",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1493-L1500"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "release",
    "action": "Stops ongoing erasure for this key without restoring events already removed.",
    "short_label": "STOP ERASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1612-1618",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1612-L1618"
     }
    ]
   },
   {
    "mode": "mix_layer",
    "gesture": "press_while_holding:button_glo",
    "action": "Does nothing in the mix layer.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "461-475",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L461-L475"
     }
    ]
   },
   {
    "mode": "sections",
    "gesture": "press_while_holding:button_save",
    "action": "Does nothing in the section layer.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "400-458",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L400-L458"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/project.c",
      "lines": "1116-1163",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/project.c#L1116-L1163"
     }
    ]
   },
   {
    "mode": "sample_perc",
    "gesture": "press",
    "action": "Plays C4 before octave buttons and any chord processing, without scale or keyboard transpose mapping.",
    "short_label": "C4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "235-242",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L235-L242"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1566-1584",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1566-L1584"
     }
    ]
   }
  ],
  "key_fs5": [
   {
    "mode": "synth_play",
    "gesture": "press",
    "action": "Plays F#5 on a pitched synth sound before octave and transpose, following scale snap or white-key mapping and one-key chords when enabled.",
    "short_label": "F#5",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "198-246",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L198-L246"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1550-1590",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1550-L1590"
     }
    ]
   },
   {
    "mode": "synth_play",
    "gesture": "release",
    "action": "Releases its sounding synth note or chord, subject to envelope release, sustain and arp HOLD.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1624-1629",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1624-L1629"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1232-1271",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1232-L1271"
     }
    ]
   },
   {
    "mode": "synth_play",
    "gesture": "hold",
    "action": "In chord mode, flips a major third to minor or a minor third to major when present, yielding to a held SUS4 modifier and leaving POWER chords unchanged; WHITE mapping with chords off is silent.",
    "short_label": "THIRD FLIP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "288-298",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L288-L298"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1433-1465",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1433-L1465"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1551-1557",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1551-L1557"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "320-330",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L320-L330"
     }
    ]
   },
   {
    "mode": "synth_play",
    "gesture": "release",
    "action": "In chord mode, removes its chord modifier and revoices any chord still held.",
    "short_label": "END THIRD",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1609-1611",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1609-L1611"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1433-1465",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1433-L1465"
     }
    ]
   },
   {
    "mode": "drum_play",
    "gesture": "press",
    "action": "Plays the conga pad, using normal hit level or OCT- ghost and OCT+ hard.",
    "short_label": "CONGA",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/drums.c",
      "lines": "64-89",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/drums.c#L64-L89"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1418-1421",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1418-L1421"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1535-1547",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1535-L1547"
     }
    ]
   },
   {
    "mode": "drum_play",
    "gesture": "release",
    "action": "Sends that drum pad’s MIDI note-off and closes its free-take event without cutting the one-shot drum sound.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1631-1636",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1631-L1636"
     }
    ]
   },
   {
    "mode": "step",
    "gesture": "press",
    "action": "On a synth track outside live recording, writes the played note or chord into the cursor step, up to four notes in POLY or the last note otherwise; silent black-key mappings enter nothing.",
    "short_label": "ENTER STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "620-659",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L620-L659"
     }
    ]
   },
   {
    "mode": "step",
    "gesture": "release",
    "action": "After an entry, releasing all panel and MIDI notes advances the step cursor.",
    "short_label": "ADVANCE STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "661-662",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L661-L662"
     }
    ]
   },
   {
    "mode": "punch",
    "gesture": "press_while_holding:button_fx",
    "action": "Applies FADE OUT to the whole mix while held, with the latest pressed effect replacing the previous one.",
    "short_label": "FADE OUT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/punch.c",
      "lines": "13-21",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/punch.c#L13-L21"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1475-1483",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1475-L1483"
     }
    ]
   },
   {
    "mode": "punch",
    "gesture": "release",
    "action": "Releasing the key currently controlling the punch effect returns the mix to dry.",
    "short_label": "END FX",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1600-1604",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1600-L1604"
     }
    ]
   },
   {
    "mode": "roll",
    "gesture": "press_while_holding:button_arp",
    "action": "Repeats the mapped synth note or drum pad on the repeat grid while held, with silent synth black-key mappings remaining silent.",
    "short_label": "REPEAT NOTE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1535-1564",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1535-L1564"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1289-1382",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1289-L1382"
     }
    ]
   },
   {
    "mode": "roll",
    "gesture": "release",
    "action": "Ends the repeat started by this key.",
    "short_label": "STOP REPEAT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1619-1623",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1619-L1623"
     }
    ]
   },
   {
    "mode": "key_scale",
    "gesture": "press_while_holding:button_sel",
    "action": "Sets F# as root for all three synth tracks without playing a note.",
    "short_label": "ROOT F#",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "393-398",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L393-L398"
     }
    ]
   },
   {
    "mode": "drum_grid",
    "gesture": "press",
    "action": "Silently selects cowbell for grid editing.",
    "short_label": "PICK COWBELL",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_studio.c",
      "lines": "9-10",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_studio.c#L9-L10"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_studio.c",
      "lines": "500-512",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_studio.c#L500-L512"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "press_while_holding:button_edit",
    "action": "On drums, switches white keys between erasing lanes and toggling temporary live mutes; releasing EDIT resets this choice to erase.",
    "short_label": "ERASE / MUTE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "970-975",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L970-L975"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1493-1500",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1493-L1500"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1676-1677",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1676-L1677"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "press_while_holding:button_edit",
    "action": "On synth tracks, erases the mapped note immediately from active steps without a question, while chord or WHITE mappings make this black key silent; sequence undo can restore the edit.",
    "short_label": "ERASE NOTE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "965-1023",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L965-L1023"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1515-1524",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1515-L1524"
     }
    ]
   },
   {
    "mode": "steps",
    "gesture": "press_while_holding:button_seq",
    "action": "Does nothing in the step layer.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "383-388",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L383-L388"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "release",
    "action": "Stops ongoing erasure for this key without restoring events already removed.",
    "short_label": "STOP ERASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1612-1618",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1612-L1618"
     }
    ]
   },
   {
    "mode": "mix_layer",
    "gesture": "press_while_holding:button_glo",
    "action": "Does nothing in the mix layer.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "461-475",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L461-L475"
     }
    ]
   },
   {
    "mode": "sections",
    "gesture": "press_while_holding:button_save",
    "action": "Does nothing in the section layer.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "400-458",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L400-L458"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/project.c",
      "lines": "1116-1163",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/project.c#L1116-L1163"
     }
    ]
   },
   {
    "mode": "sample_perc",
    "gesture": "press",
    "action": "Plays C#4 before octave buttons and any chord processing, without scale or keyboard transpose mapping.",
    "short_label": "C#4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "235-242",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L235-L242"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1566-1584",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1566-L1584"
     }
    ]
   }
  ],
  "key_g5": [
   {
    "mode": "synth_play",
    "gesture": "press",
    "action": "Plays G5 on a pitched synth sound before octave and transpose, following scale snap or white-key mapping and one-key chords when enabled.",
    "short_label": "G5",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "198-246",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L198-L246"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1550-1590",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1550-L1590"
     }
    ]
   },
   {
    "mode": "synth_play",
    "gesture": "release",
    "action": "Releases its sounding synth note or chord, subject to envelope release, sustain and arp HOLD.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1624-1629",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1624-L1629"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1232-1271",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1232-L1271"
     }
    ]
   },
   {
    "mode": "drum_play",
    "gesture": "press",
    "action": "Plays the cowbell pad, using normal hit level or OCT- ghost and OCT+ hard.",
    "short_label": "COWBELL",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/drums.c",
      "lines": "64-89",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/drums.c#L64-L89"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1418-1421",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1418-L1421"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1535-1547",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1535-L1547"
     }
    ]
   },
   {
    "mode": "drum_play",
    "gesture": "release",
    "action": "Sends that drum pad’s MIDI note-off and closes its free-take event without cutting the one-shot drum sound.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1631-1636",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1631-L1636"
     }
    ]
   },
   {
    "mode": "step",
    "gesture": "press",
    "action": "On a synth track outside live recording, writes the played note or chord into the cursor step, up to four notes in POLY or the last note otherwise; silent black-key mappings enter nothing.",
    "short_label": "ENTER STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "620-659",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L620-L659"
     }
    ]
   },
   {
    "mode": "step",
    "gesture": "release",
    "action": "After an entry, releasing all panel and MIDI notes advances the step cursor.",
    "short_label": "ADVANCE STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "661-662",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L661-L662"
     }
    ]
   },
   {
    "mode": "punch",
    "gesture": "press_while_holding:button_fx",
    "action": "Applies WOBBLE to the whole mix while held, with the latest pressed effect replacing the previous one.",
    "short_label": "WOBBLE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/punch.c",
      "lines": "13-21",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/punch.c#L13-L21"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1475-1483",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1475-L1483"
     }
    ]
   },
   {
    "mode": "punch",
    "gesture": "release",
    "action": "Releasing the key currently controlling the punch effect returns the mix to dry.",
    "short_label": "END FX",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1600-1604",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1600-L1604"
     }
    ]
   },
   {
    "mode": "roll",
    "gesture": "press_while_holding:button_arp",
    "action": "Repeats the mapped synth note or drum pad on the repeat grid while held, with silent synth black-key mappings remaining silent.",
    "short_label": "REPEAT NOTE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1535-1564",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1535-L1564"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1289-1382",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1289-L1382"
     }
    ]
   },
   {
    "mode": "roll",
    "gesture": "release",
    "action": "Ends the repeat started by this key.",
    "short_label": "STOP REPEAT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1619-1623",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1619-L1623"
     }
    ]
   },
   {
    "mode": "key_scale",
    "gesture": "press_while_holding:button_sel",
    "action": "Sets G as root for all three synth tracks without playing a note.",
    "short_label": "ROOT G",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "393-398",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L393-L398"
     }
    ]
   },
   {
    "mode": "steps",
    "gesture": "press_while_holding:button_seq",
    "action": "For step 16 on the displayed page, fills an empty step immediately with the recent synth note or chord, or the chosen drum hit; an occupied step clears on release unless edited, while steps outside the pattern or during song-mode playback are left alone.",
    "short_label": "STEP 16",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "158-188",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L158-L188"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "383-392",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L383-L392"
     }
    ]
   },
   {
    "mode": "steps",
    "gesture": "release",
    "action": "Clears an occupied held step on release unless an edit kept it, without a question, removing locks, nudge and fill if it becomes empty and allowing sequence undo.",
    "short_label": "CLEAR ON UP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "190-211",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L190-L211"
     }
    ]
   },
   {
    "mode": "drum_grid",
    "gesture": "press",
    "action": "Toggles the selected drum lane at step 16 of the current page only within the track length and outside song-mode playback at once without a question, auditioning additions and allowing sequence undo while clearing details if the last hit is removed.",
    "short_label": "GRID STEP 16",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_studio.c",
      "lines": "490-535",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_studio.c#L490-L535"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "press_while_holding:button_edit",
    "action": "Erases the mapped synth note or chord, or this drum lane, immediately from all active steps while stopped or from steps passing while held during playback, without a question and with sequence undo available.",
    "short_label": "ERASE EVENTS",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "965-1023",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L965-L1023"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1502-1524",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1502-L1524"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "press_while_holding:button_edit",
    "action": "On drums after a black key selected live mutes, toggles this lane’s sequencer mute without deleting hits, saving the mute or adding undo.",
    "short_label": "MUTE COWBELL",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "970-975",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L970-L975"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1493-1500",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1493-L1500"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "release",
    "action": "Stops ongoing erasure for this key without restoring events already removed.",
    "short_label": "STOP ERASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1612-1618",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1612-L1618"
     }
    ]
   },
   {
    "mode": "mix_layer",
    "gesture": "press_while_holding:button_glo",
    "action": "Sets tempo from repeated taps, averaged over up to three intervals and bounded to 40–240 BPM.",
    "short_label": "TAP TEMPO",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "461-475",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L461-L475"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "347-363",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L347-L363"
     }
    ]
   },
   {
    "mode": "sections",
    "gesture": "press_while_holding:button_save",
    "action": "Opens the SONG order screen.",
    "short_label": "OPEN SONG",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_layers.c",
      "lines": "400-458",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_layers.c#L400-L458"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/project.c",
      "lines": "1116-1163",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/project.c#L1116-L1163"
     }
    ]
   },
   {
    "mode": "sample_perc",
    "gesture": "press",
    "action": "Plays D4 before octave buttons and any chord processing, without scale or keyboard transpose mapping.",
    "short_label": "D4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "235-242",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L235-L242"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "1566-1584",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1566-L1584"
     }
    ]
   }
  ],
  "switch_power": [
   {
    "mode": "any",
    "gesture": "power_on_holding:button_oct_down+button_oct_up",
    "action": "Holding both physical OCT buttons at startup learns the panel and then saves settings even after a thirty-second calibration timeout, without a separate question or undo.",
    "short_label": "LEARN PANEL",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/main.c",
      "lines": "173-175",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/main.c#L173-L175"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "1182-1250",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L1182-L1250"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "power_on_holding:button_oct_down",
    "action": "Holding physical OCT- alone at startup opens USB rescue before normal settings and project startup, with rescue behavior read from source and untested on a unit.",
    "short_label": "USB RESCUE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/bootguard.h",
      "lines": "27-29",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/bootguard.h#L27-L29"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/main.c",
      "lines": "308-320",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/main.c#L308-L320"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/recovery.c",
      "lines": "52-69",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/recovery.c#L52-L69"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "press",
    "action": "Switching off has no save handler, so wait for stopped quiet autosave and export a backup before an update.",
    "short_label": "POWER",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/main.c",
      "lines": "181-201",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/main.c#L181-L201"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/project.c",
      "lines": "708-722",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/project.c#L708-L722"
     }
    ]
   }
  ],
  "jack_audio_out": [
   {
    "mode": "any",
    "gesture": "shows",
    "action": "Carries the stereo mix, including effects, drums and background texture.",
    "short_label": "AUDIO OUT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/audio.c",
      "lines": "25-34",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/audio.c#L25-L34"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/fx.c",
      "lines": "1-20",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/fx.c#L1-L20"
     }
    ]
   }
  ],
  "jack_midi_in": [
   {
    "mode": "any",
    "gesture": "shows",
    "action": "Accepts MIDI input and external clock according to SYSTEM and MIDI settings.",
    "short_label": "TRS MIDI",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/midi_uart.c",
      "lines": "1-45",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/midi_uart.c#L1-L45"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "2199-2232",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L2199-L2232"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "shows",
    "short_label": "PROGRAM",
    "action": "Incoming MIDI Program Change loads the addressed synth sound or drum kit immediately without a question or sound-change undo, with zero-based numbering, normal channel routing or the selected-track channel override, and CLOCK-only input ignoring it.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui.c",
      "lines": "602-651",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui.c#L602-L651"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "2556-2573",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L2556-L2573"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "2595-2599",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L2595-L2599"
     }
    ]
   }
  ],
  "jack_usb_c": [
   {
    "mode": "any",
    "gesture": "shows",
    "action": "Provides USB MIDI, editor and installer communication and stereo USB recording at 44.1 or 48 kHz.",
    "short_label": "USB",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/felucca.c",
      "lines": "26-44",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/felucca.c#L26-L44"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/usb.c",
      "lines": "1-35",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/usb.c#L1-L35"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "shows",
    "short_label": "PROGRAM",
    "action": "Incoming MIDI Program Change loads the addressed synth sound or drum kit immediately without a question or sound-change undo, with zero-based numbering, normal channel routing or the selected-track channel override, and CLOCK-only input ignoring it.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui.c",
      "lines": "602-651",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui.c#L602-L651"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "2556-2573",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L2556-L2573"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/seq.c",
      "lines": "2595-2599",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L2595-L2599"
     }
    ]
   }
  ]
 },
 "lights": {
  "button_fx": [
   {
    "mode": "any",
    "gesture": "dim",
    "action": "Glows at the chosen LIGHTS brightness when an active indication does not take precedence.",
    "short_label": "BACKLIGHT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "248-256",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L248-L256"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "lit",
    "action": "Marks its current page family or held layer, with SONG using SAVE, DRUMS using SEQ and Mixer using HOME.",
    "short_label": "PAGE / LAYER",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "28-38",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L28-L38"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "224-225",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L224-L225"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "blinking",
    "action": "Blinks in roughly 300 ms phases when its layer is locked open, unless the physical layer button remains held.",
    "short_label": "LOCKED LAYER",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "224-225",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L224-L225"
     }
    ]
   }
  ],
  "button_sel": [
   {
    "mode": "any",
    "gesture": "dim",
    "action": "Glows at the chosen LIGHTS brightness when an active indication does not take precedence.",
    "short_label": "BACKLIGHT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "248-256",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L248-L256"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "lit",
    "action": "Marks its current page family or held layer, with SONG using SAVE, DRUMS using SEQ and Mixer using HOME.",
    "short_label": "PAGE / LAYER",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "28-38",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L28-L38"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "224-225",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L224-L225"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "blinking",
    "action": "Blinks in roughly 300 ms phases when its layer is locked open, unless the physical layer button remains held.",
    "short_label": "LOCKED LAYER",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "224-225",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L224-L225"
     }
    ]
   }
  ],
  "button_env": [
   {
    "mode": "any",
    "gesture": "dim",
    "action": "Glows at the chosen LIGHTS brightness when an active indication does not take precedence.",
    "short_label": "BACKLIGHT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "248-256",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L248-L256"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "lit",
    "action": "Marks its current page family or held layer, with SONG using SAVE, DRUMS using SEQ and Mixer using HOME.",
    "short_label": "PAGE / LAYER",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "28-38",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L28-L38"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "224-225",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L224-L225"
     }
    ]
   }
  ],
  "button_lfo": [
   {
    "mode": "any",
    "gesture": "dim",
    "action": "Glows at the chosen LIGHTS brightness when an active indication does not take precedence.",
    "short_label": "BACKLIGHT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "248-256",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L248-L256"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "lit",
    "action": "Marks its current page family or held layer, with SONG using SAVE, DRUMS using SEQ and Mixer using HOME.",
    "short_label": "PAGE / LAYER",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "28-38",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L28-L38"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "224-225",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L224-L225"
     }
    ]
   }
  ],
  "button_edit": [
   {
    "mode": "any",
    "gesture": "dim",
    "action": "Glows at the chosen LIGHTS brightness when an active indication does not take precedence.",
    "short_label": "BACKLIGHT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "248-256",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L248-L256"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "lit",
    "action": "Marks its current page family or held layer, with SONG using SAVE, DRUMS using SEQ and Mixer using HOME.",
    "short_label": "PAGE / LAYER",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "28-38",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L28-L38"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "224-225",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L224-L225"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "blinking",
    "action": "Blinks in roughly 300 ms phases when its layer is locked open, unless the physical layer button remains held.",
    "short_label": "LOCKED LAYER",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "224-225",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L224-L225"
     }
    ]
   }
  ],
  "button_glo": [
   {
    "mode": "any",
    "gesture": "dim",
    "action": "Glows at the chosen LIGHTS brightness when an active indication does not take precedence.",
    "short_label": "BACKLIGHT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "248-256",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L248-L256"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "lit",
    "action": "Marks its current page family or held layer, with SONG using SAVE, DRUMS using SEQ and Mixer using HOME.",
    "short_label": "PAGE / LAYER",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "28-38",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L28-L38"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "224-225",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L224-L225"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "blinking",
    "action": "Blinks in roughly 300 ms phases when its layer is locked open, unless the physical layer button remains held.",
    "short_label": "LOCKED LAYER",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "224-225",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L224-L225"
     }
    ]
   }
  ],
  "button_home": [
   {
    "mode": "any",
    "gesture": "dim",
    "action": "Glows at the chosen LIGHTS brightness when an active indication does not take precedence.",
    "short_label": "BACKLIGHT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "248-256",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L248-L256"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "lit",
    "action": "Marks its current page family or held layer, with SONG using SAVE, DRUMS using SEQ and Mixer using HOME.",
    "short_label": "PAGE / LAYER",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "28-38",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L28-L38"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "224-225",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L224-L225"
     }
    ]
   }
  ],
  "button_save": [
   {
    "mode": "any",
    "gesture": "dim",
    "action": "Glows at the chosen LIGHTS brightness when an active indication does not take precedence.",
    "short_label": "BACKLIGHT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "248-256",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L248-L256"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "lit",
    "action": "Marks its current page family or held layer, with SONG using SAVE, DRUMS using SEQ and Mixer using HOME.",
    "short_label": "PAGE / LAYER",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "28-38",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L28-L38"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "224-225",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L224-L225"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "blinking",
    "action": "Blinks in roughly 300 ms phases when its layer is locked open, unless the physical layer button remains held.",
    "short_label": "LOCKED LAYER",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "224-225",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L224-L225"
     }
    ]
   }
  ],
  "button_arp": [
   {
    "mode": "any",
    "gesture": "dim",
    "action": "Glows at the chosen LIGHTS brightness when an active indication does not take precedence.",
    "short_label": "BACKLIGHT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "248-256",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L248-L256"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "lit",
    "action": "Marks its current page family or held layer, with SONG using SAVE, DRUMS using SEQ and Mixer using HOME.",
    "short_label": "PAGE / LAYER",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "28-38",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L28-L38"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "224-225",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L224-L225"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "blinking",
    "action": "Blinks in roughly 300 ms phases when its layer is locked open, unless the physical layer button remains held.",
    "short_label": "LOCKED LAYER",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "224-225",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L224-L225"
     }
    ]
   }
  ],
  "button_seq": [
   {
    "mode": "any",
    "gesture": "dim",
    "action": "Glows at the chosen LIGHTS brightness when an active indication does not take precedence.",
    "short_label": "BACKLIGHT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "248-256",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L248-L256"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "lit",
    "action": "Marks its current page family or held layer, with SONG using SAVE, DRUMS using SEQ and Mixer using HOME.",
    "short_label": "PAGE / LAYER",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "28-38",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L28-L38"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "224-225",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L224-L225"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "blinking",
    "action": "Blinks in roughly 300 ms phases when its layer is locked open, unless the physical layer button remains held.",
    "short_label": "LOCKED LAYER",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "224-225",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L224-L225"
     }
    ]
   }
  ],
  "button_play_stop": [
   {
    "mode": "any",
    "gesture": "dim",
    "action": "Glows at the chosen LIGHTS brightness when an active indication does not take precedence.",
    "short_label": "BACKLIGHT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "248-256",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L248-L256"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "blinking",
    "action": "Pulses at the start of each transport beat or count-in beat.",
    "short_label": "BEAT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "42-48",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L42-L48"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "226-227",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L226-L227"
     }
    ]
   }
  ],
  "button_rec": [
   {
    "mode": "any",
    "gesture": "dim",
    "action": "Glows at the chosen LIGHTS brightness when an active indication does not take precedence.",
    "short_label": "BACKLIGHT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "248-256",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L248-L256"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "lit",
    "action": "Stays lit while a track records or a free take is active.",
    "short_label": "RECORDING",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "228-229",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L228-L229"
     }
    ]
   },
   {
    "mode": "record_ready",
    "gesture": "blinking",
    "action": "Blinks in roughly 125 ms phases while recording is armed.",
    "short_label": "ARMED",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "228-229",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L228-L229"
     }
    ]
   },
   {
    "mode": "clear_track",
    "gesture": "blinking",
    "action": "Blinks in roughly 60 ms phases while the clear ring runs.",
    "short_label": "CLEARING",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "228-229",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L228-L229"
     }
    ]
   }
  ],
  "button_oct_down": [
   {
    "mode": "any",
    "gesture": "dim",
    "action": "Glows at the chosen LIGHTS brightness when an active indication does not take precedence.",
    "short_label": "BACKLIGHT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "248-256",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L248-L256"
     }
    ]
   },
   {
    "mode": "synth_play",
    "gesture": "lit",
    "action": "Marks a synth keyboard octave below zero.",
    "short_label": "OCTAVE -",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "233-239",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L233-L239"
     }
    ]
   },
   {
    "mode": "drum_play",
    "gesture": "lit",
    "action": "Marks the held drum ghost modifier.",
    "short_label": "GHOST",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "233-235",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L233-L235"
     }
    ]
   },
   {
    "mode": "punch",
    "gesture": "lit",
    "action": "Marks the active reverb throw.",
    "short_label": "REV THROW",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "230-232",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L230-L232"
     }
    ]
   }
  ],
  "button_oct_up": [
   {
    "mode": "any",
    "gesture": "dim",
    "action": "Glows at the chosen LIGHTS brightness when an active indication does not take precedence.",
    "short_label": "BACKLIGHT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "248-256",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L248-L256"
     }
    ]
   },
   {
    "mode": "synth_play",
    "gesture": "lit",
    "action": "Marks a synth keyboard octave above zero.",
    "short_label": "OCTAVE +",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "233-239",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L233-L239"
     }
    ]
   },
   {
    "mode": "drum_play",
    "gesture": "lit",
    "action": "Marks the held drum hard modifier.",
    "short_label": "HARD",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "233-235",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L233-L235"
     }
    ]
   },
   {
    "mode": "punch",
    "gesture": "lit",
    "action": "Marks the active echo throw.",
    "short_label": "ECHO THROW",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "230-232",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L230-L232"
     }
    ]
   }
  ],
  "led_play_stop_green": [
   {
    "mode": "any",
    "gesture": "off",
    "action": "Has no separate green-transport LED drive in this firmware’s panel LED path.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "215-257",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L215-L257"
     },
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/panel.c",
      "lines": "25-29",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/panel.c#L25-L29"
     }
    ]
   }
  ],
  "key_lights": [
   {
    "mode": "any",
    "gesture": "lit",
    "action": "Lights held physical keys and short drum-hit indications, adding sounding synth notes when NOTES is enabled.",
    "short_label": "KEYS / HITS",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "165-168",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L165-L168"
     }
    ]
   },
   {
    "mode": "punch",
    "gesture": "lit",
    "action": "Lights the requested punch effect’s key.",
    "short_label": "PUNCH KEY",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "108-110",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L108-L110"
     }
    ]
   },
   {
    "mode": "steps",
    "gesture": "lit",
    "action": "Lights occupied white-key steps of this page for the chosen drum lane or synth track, with the playhead blinking and held keys added.",
    "short_label": "STEPS",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "111-123",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L111-L123"
     }
    ]
   },
   {
    "mode": "key_scale",
    "gesture": "blinking",
    "action": "Marks scale tones with the root blinking, or dims the scale and lights sounding notes when NOTES is on.",
    "short_label": "SONG ROOT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "125-128",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L125-L128"
     }
    ]
   },
   {
    "mode": "mix_layer",
    "gesture": "lit",
    "action": "White keys 1–4 show audible tracks, 5–8 solos, 9 current fill, 10 queued or running next-bar fill and 16 the beat.",
    "short_label": "MIX STATUS",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "129-142",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L129-L142"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "lit",
    "action": "On drums, marks lanes present in the pattern, or dims those lanes and lights sounding hits with NOTES on.",
    "short_label": "ERASE LANES",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "143-144",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L143-L144"
     }
    ]
   },
   {
    "mode": "drum_grid",
    "gesture": "lit",
    "action": "Marks the selected black-key lane shortcut and white-key hits, with the playhead blinking and held physical keys added.",
    "short_label": "GRID STATUS",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "148-163",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L148-L163"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "dim",
    "action": "Dims white keys 1, 5, 9 and 13 on drum tracks and held layers, adds the chosen C, white or all-key backlight, and uses NOTES to show sounding keys beneath FX, SEQ and GLO tiles.",
    "short_label": "LANDMARKS",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "174-212",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L174-L212"
     }
    ]
   }
  ]
 },
 "switching_note": {
  "kept_on_unit": "ORBIT stores one working project, four section snapshots, 32 USER sounds with macro maps, a 27-voice FM6 bank, four user sample slots and device settings including song order, SYN kits and MIDI learn; sample audio and FM6 patches are shared references, not private copies inside each project. From the flash atlas: install through the included loader: Compares program sectors; erases/programs only changed sectors, verifies, leaves SPL/header alone. This range includes Open USER projects 1-16, preferences, staging and the first 24 KiB of shared sample storage. Replacing Open’s sample header leaves its whole sample bank unreadable. The same program writes can also leave PIGEON’s whole sample bank unreadable (validated package transfer). loader removes update records: Conditional update-record cleanup only; no projects, sounds or samples are 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's staging-record sector 0xE4000 and, on a first install from stock, stock's record sector 0xE8000. Saved music does not hold that record. This loader does not skip 0x97000-0xDFFFF). first start and later starts, conditional update cleanup: Erases all five sectors when any first 4 bytes at E0000 or first 8 bytes at E4F00 is non-FF. Does not inspect E1000 restore-journal data in isolation, so such a journal alone does not establish this trigger (one inspected staging sentinel is not erased). What ORBIT writes over the previous firmware's data is in overwrites_previous; what the next firmware writes over ORBIT's is in when_you_leave.",
  "lost": "Power-off loses unsaved edits, the temporary Tape clipboard, selection and sequence undo. Stored sounds, sections, banks, samples and settings have no sequence undo, and a backup restore has no sequence undo. Back up before switching. See the switching advice in this section. From the flash atlas: Other firmwares reading ORBIT's data: Felucca reads and uses ORBIT's sample slot USR1; sample slot USR2; sample slot USR3 (Only data in this sample slot is read. Other saved work is separate); Rainbow Mode reads and uses ORBIT's sample slot USR1; sample slot USR2; sample slot USR3 (Only data in this sample slot is read. Other saved work is separate); Felucca [Salt] reads and uses ORBIT's sample slot USR1; sample slot USR2; sample slot USR3 (Slice positions you set in SLICE stay hidden. This firmware has no storage for slice positions); WaveLoop FM-1 reads and uses ORBIT's sample slot USR1; sample slot USR2 (Only data in this sample slot is read. Other saved work is separate; Saved samples may have no slice positions set by you); SLOOP lists ORBIT's settings, calibration, song order, SYN1-SYN4 kits and MIDI preferences, but plays them differently (Shared settings and drum kits load. Saved display and MIDI options can mean different things in this firmware); SLOOP reads and uses ORBIT's FM6 bank B1-B27; sample slot USR1; sample slot USR2; sample slot USR3; sample slot USR4 (Audio loads only if it fits this slot. Sending to or erasing this slot replaces it); sloopDX takes over ORBIT's settings, calibration, song order, SYN1-SYN4 kits and MIDI preferences, converting them (A settings save drops the source firmware’s synthesized drum kits and any saved MIDI controls stored after them. Favourite and display-option numbers can also mean different things); SLOOP DX7 Banks takes over ORBIT's settings, calibration, song order, SYN1-SYN4 kits and MIDI preferences, converting them (A settings save writes this beta’s drum kits and count of DX banks it has set up, dropping the source firmware’s MIDI controls or theme and favourites. Drum kits load only if the saved settings include the kits without an added MIDI-control block. DX7 Banks can mistake the saved MIDI-input channel for an older count of DX banks it has set up); SLOOP DX7 Banks reads and uses ORBIT's FM6 bank B1-B27; sample slot USR1; sample slot USR2; sample slot USR3; sample slot USR4 (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 takes over ORBIT's settings, calibration, song order, SYN1-SYN4 kits and MIDI preferences, converting them (Saving settings keeps only the older colour, display, calibration and song-order choices. The saved copy lacks newer light options, drum kits, MIDI controls and separately saved options); SLOOP Floyd FM reads and uses ORBIT's sample slot USR1; sample slot USR2; sample slot USR3 (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 takes over ORBIT's settings, calibration, song order, SYN1-SYN4 kits and MIDI preferences, converting them (A settings save keeps Quest’s calibration and song-order format while dropping the source firmware’s extra drum kits, MIDI controls or theme and favourites. Quest can read saved playing options as game preferences or progress); FM1 Quest reads and uses ORBIT's sample slot USR1 (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); GHOULBOX reads and uses ORBIT's sample slot USR1; sample slot USR2; sample slot USR3; fm1-chord reads and uses ORBIT's sample slot USR1; sample slot USR2; sample slot USR3 (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); 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); Jangada reads and uses ORBIT's sample slot USR1; sample slot USR2; sample slot USR3; Skiff reads and uses ORBIT's sample slot USR1; sample slot USR2; sample slot USR3 (Skiff uses its own sound engines, so saved loops or slices can play differently); Hortator lists ORBIT's sample slot USR1; sample slot USR2; sample slot USR3, but plays them differently (Hortator uses its own one-shot sound engines, so saved loops and slices play differently); PIGEON reads and uses ORBIT's sample slot USR1; sample slot USR2; sample slot USR3 (Sample audio can be read. Loops and slices may play differently; we have not tested whether they sound the same); winampFM Synth reads and uses ORBIT's FM6 bank B1-B27; sample slot USR1; sample slot USR2; sample slot USR3; sample slot USR4 (The FM6 patch bank is shared. The project and its links to user sounds are not transferred; Slice marks set by hand are not loaded. Loop modes follow this firmware's playback rules); FM1 Move reads and uses ORBIT's FM6 bank B1-B27; sample slot USR1; sample slot USR2; sample slot USR3; sample slot USR4 (The FM6 patch bank is shared. The project and its links to user sounds are not transferred; Slice marks set by hand are not loaded. Loop modes follow this firmware's playback rules); X0X lists ORBIT's sample slot USR1; sample slot USR2; sample slot USR3, 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); winampFM Synth reads shared settings and calibration; the next settings write can discard preferences or music setup it does not retain.. What ORBIT reads of other firmwares' data: ORBIT takes over Felucca's user presets 1-16; user presets 17-32, 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 Felucca's user sample slot USR1; user sample slot USR2; user sample slot USR3 (Slice marks set by hand are not loaded. Loop modes follow this firmware's playback rules); ORBIT takes over SLOOP's user sounds U01-U16; user sounds U17-U32, 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 SLOOP's FM6 patch bank B1-B27; user sample slot USR1; user sample slot USR2; user sample slot USR3; user sample slot USR4 (The FM6 patch bank is shared. The project and its links to user sounds are not transferred; Slice marks set by hand are not loaded. Loop modes follow this firmware's playback rules); ORBIT reads and uses X0X's break loops slot 1; break loops slot 2; break loops slot 3 (Slice marks set by hand are not loaded. Loop modes follow this firmware's playback rules); ORBIT takes over JIANT's user sounds U01-U16; user sounds U17-U32, 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 takes over GHOULBOX's user sounds 1–16; user sounds 17–32, 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 GHOULBOX's user sample slot USR1; user sample slot USR2; user sample slot USR3 (Slice marks set by hand are not loaded. Loop modes follow this firmware's playback rules); ORBIT takes over Hortator's settings and panel calibration, converting them (Only some settings are changed to the new format. Your songs are not stored in these settings. Switching back may lose settings); ORBIT reads and uses Hortator's user samples USR1; user samples USR2; user samples USR3 (Slice marks set by hand are not loaded. Loop modes follow this firmware's playback rules); ORBIT takes over Skiff's user sound bank 1; user sound 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 Skiff's user sample USR1; user sample USR2; user sample USR3 (Slice marks set by hand are not loaded. Loop modes follow this firmware's playback rules); ORBIT takes over sloopDX's user presets 1–16; user presets 17–32, 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 takes over Rainbow Mode's user sounds U01–U16, names and sixteen-step patterns without automation; user sounds U17–U32, names and sixteen-step patterns without automation, 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 Rainbow Mode's 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 (Slice marks set by hand are not loaded. Loop modes follow this firmware's playback rules); 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); ORBIT takes over fm1-chord's user sounds 1-16; user sounds 17-32, 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 fm1-chord's uploaded sample USR1 and optional SLICE markers; uploaded sample USR2 and optional SLICE markers; uploaded sample USR3 and optional SLICE markers (Slice marks set by hand are not loaded. Loop modes follow this firmware's playback rules); ORBIT takes over SLOOP DX7 Banks's settings, calibration, song order, synthesized drum kits and DX-bank setup; section A; section B; section C; section D; user sounds 1–16; user sounds 17–32; working loop, converting them (The next settings save adds ORBIT’s MIDI controls. DX7 Banks can then no longer load its saved synthesized drum kits from that copy of the settings. It can still read shared settings and song order; Engines and sound controls can mean different things. Saved music can pass the same checks and still sound different; 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 SLOOP DX7 Banks's FM6 patches B1–B27; user sample USR1; user sample USR2; user sample USR3; user sample USR4 (The FM6 patch bank is shared. The project and its links to user sounds are not transferred; Slice marks set by hand are not loaded. Loop modes follow this firmware's playback rules); ORBIT reads and uses Jangada's user samples USR1; user samples USR2; user samples USR3 (Slice marks set by hand are not loaded. Loop modes follow this firmware's playback rules); ORBIT takes over WaveLoop FM-1's user sounds 1–16; user sounds 17–32, 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 WaveLoop FM-1's user sample USR1; user sample USR2 (Slice marks set by hand are not loaded. Loop modes follow this firmware's playback rules); ORBIT takes over SLOOP Floyd FM's settings, panel calibration and song order; song section A; song section B; song section C; song section D; user sounds U01–U16; user sounds U17–U32; working loop kept by autosave, converting them (Only some settings are changed to the new format. Your saved sections are not stored in these settings; the song order is. Switching back may lose settings; Engines and sound controls can mean different things. Saved music can pass the same checks and still sound different; 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 SLOOP Floyd FM's user sample slot USR1; user sample slot USR2; user sample slot USR3 (Slice marks set by hand are not loaded. Loop modes follow this firmware's playback rules); ORBIT takes over winampFM Synth's user sounds 1-16; user sounds 17-32, 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 winampFM Synth's FM6 bank B1-B27; sample USR1; sample USR2; sample USR3; sample USR4 (The FM6 patch bank is shared. The project and its links to user sounds are not transferred; Slice marks set by hand are not loaded. Loop modes follow this firmware's playback rules); ORBIT takes over Felucca [Salt]'s project 1; project 2; project 3; project 4; user sounds U01-U16; user sounds U17-U32, converting them (Engines and sound controls can mean different things. Saved music can pass the same checks and still sound different; 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 Felucca [Salt]'s user sample USR1; user sample USR2; user sample USR3 (Slice marks set by hand are not loaded. Loop modes follow this firmware's playback rules); ORBIT takes over PIGEON's older user preset bank 1; older 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 PIGEON's user sample USR1 in the older format; user sample USR2 in the older format; user sample USR3 in the older format (Slice marks set by hand are not loaded. Loop modes follow this firmware's playback rules); ORBIT takes over FM1 Move's user sounds U01–U16; user sounds U17–U32, 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 FM1 Move's FM6 bank B1–B27; sample slot USR1; sample slot USR2; sample slot USR3 (The FM6 patch bank is shared. The project and its links to user sounds are not transferred; Slice marks set by hand are not loaded. Loop modes follow this firmware's playback rules); ORBIT takes over FM1 Quest's settings, panel mapping, song order and Quest preferences/progress; song section A; song section B; song section C; song section D; user sounds U01–U16; user sounds U17–U32; working music (autosave), converting them (Only some settings are changed to the new format. Your saved sections are not stored in these settings; the song order is. Switching back may lose settings; Engines and sound controls can mean different things. Saved music can pass the same checks and still sound different; 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 FM1 Quest's sample USR1 (Only sample slots that start in the same place in storage can be read. Other small sample slots are not moved to matching slots); ORBIT reads shared settings and calibration; the next settings write can discard preferences or music setup it does not retain.. Everything else of another firmware's looks empty or foreign to the reader.",
  "back_up_first": "Stop playback, connect the Web MIDI editor, open Projects / Backup and export the full file off the unit before installing anything. Export reads the unit, including working music, four sections, settings and calibration, USER sounds, the saved FM6 bank, four SYN kits, MIDI-learn/channel settings and four user sample slots. Store directly edited FM6 patches in the bank first: a project keeps the patch selection and control values, not an unsaved private copy of the raw patch. Tape clipboard, selection, undo and browser-local libraries are not in this backup; export a browser library separately. Felucca’s FM6 bank B1–B32 is absent from its full backup, and GHOULBOX’s B1–B32 bank is absent from its musical archive. Retain their original .syx bank files separately; if you cannot reconstruct a bank, leave it untouched rather than relying on the normal backup.",
  "restore": "The editor asks once before restore, then commits objects separately, so an interrupted restore can leave a mixture. Objects omitted from the file are left alone; explicitly empty records clear their targets. Working music is restored into memory and reaches flash later through autosave or a flush; other stored objects are written as they are restored. A file export does not itself restore or erase anything on the unit.",
  "going_back_a_version": "ORBIT 0.7.0 and 0.7.1 use the same current project and USER-bank layouts. Earlier ORBIT versions cannot read these new saves and may autosave over them; keep the matching pre-update backup and restore it with the version that made it. ORBIT can import older ORBIT projects and banks, but raw SLOOP 2.6 projects are rejected; older shared records do not prove that engine meanings match.",
  "overwrites_previous": [
   {
    "from": "stock",
    "name": "Stock V15",
    "flags": "?",
    "weakest_grade": "reported",
    "at_risk": [],
    "possibly_at_risk": [
     "stock settings (and possibly patterns)",
     "stock Bluetooth data",
     "stock presets (128, banks A-D)"
    ],
    "carried_over": [],
    "kept_unseen": [],
    "notes": [],
    "owner_text": "Possibly at risk (layout reported or inferred): stock settings (and possibly patterns); stock Bluetooth data; stock presets (128, banks A-D).",
    "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": "ACSK",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "FM6 patches of the FM6 user presets",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start",
        "effect": "lost"
       },
       {
        "way": "automatically during use",
        "effect": "lost"
       },
       {
        "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) [uses its preset 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) [uses its preset 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) [uses its preset bank]",
        "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) [uses its preset 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) [uses its preset 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) [uses its preset 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) [uses its preset 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": "settings, button calibration, favourites, MIDI LEARN map",
      "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": "project slot 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": "project slot 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": "project slot 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": "project slot 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": "user presets 1-16",
      "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": "user presets 17-32",
      "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": "the autosave (the music as you left it)",
      "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": "FM6 voice bank B1-B32",
      "effect": "lost",
      "ways": [
       {
        "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": "user sample slot USR1",
      "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": "user sample slot USR2",
      "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": "user sample slot USR3",
      "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 user sample slot USR1 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 user sample slot USR2 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 user sample slot USR3 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: FM6 patches of the FM6 user presets; settings, button calibration, favourites, MIDI LEARN map. At risk by itself, under a condition: project slot A; project slot B; project slot C; project slot D. At risk when you act: user presets 1-16; user presets 17-32; the autosave (the music as you left it); FM6 voice bank B1-B32; user sample slot USR1; user sample slot USR2; user sample slot USR3. ORBIT reads user sample slot USR1 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 user sample slot USR2 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 user sample slot USR3 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)"
   },
   {
    "from": "sloop",
    "name": "SLOOP",
    "flags": "ACSK",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "the music in progress (autosave)",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start",
        "effect": "lost"
       },
       {
        "way": "automatically during use",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "settings, calibration, song order, SYN1-4 kits, MIDI LEARN, theme and favourites",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use",
        "effect": "changed automatically: an automatic settings save can replace shared settings with this firmware's song, kit, MIDI and other settings. Calibration and shared preferences can load, but choices have different meanings. Song, kit, MIDI, theme or favourites settings this firmware cannot use can be lost at the next settings save"
       },
       {
        "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": "changed automatically: an automatic settings save can replace shared settings with this firmware's song, kit, MIDI and other settings. Calibration and shared preferences can load, but choices have different meanings. Song, kit, MIDI, theme or favourites settings this firmware cannot use can be lost at the next settings save"
       },
       {
        "way": "automatically, only when song order has an unsaved change as an update or restart starts",
        "effect": "changed automatically: an automatic settings save can replace shared settings with this firmware's song, kit, MIDI and other settings. Calibration and shared preferences can load, but choices have different meanings. Song, kit, MIDI, theme or favourites settings this firmware cannot use can be lost at the next settings save"
       },
       {
        "way": "when you hold both OCT buttons as you turn it on to calibrate the controls (without asking)",
        "effect": "changed automatically: an automatic settings save can replace shared settings with this firmware's song, kit, MIDI and other settings. Calibration and shared preferences can load, but choices have different meanings. Song, kit, MIDI, theme or favourites settings this firmware cannot use can be lost at the next settings save"
       },
       {
        "way": "when you press REC on the SONG screen to save a section and the song order (without asking)",
        "effect": "changed automatically: an automatic settings save can replace shared settings with this firmware's song, kit, MIDI and other settings. Calibration and shared preferences can load, but choices have different meanings. Song, kit, MIDI, theme or favourites settings this firmware cannot use can be lost at the next settings save"
       },
       {
        "way": "when you press SAVE on the SONG screen (without asking)",
        "effect": "changed automatically: an automatic settings save can replace shared settings with this firmware's song, kit, MIDI and other settings. Calibration and shared preferences can load, but choices have different meanings. Song, kit, MIDI, theme or favourites settings this firmware cannot use can be lost at the next settings save"
       },
       {
        "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": "song section A (a whole project)",
      "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": "song section B (a whole project)",
      "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": "song section C (a whole project)",
      "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": "song section D (a whole project)",
      "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": "user sounds U01-U16",
      "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": "user sounds U17-U32",
      "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": "user sample slot USR1",
      "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": "user sample slot USR2",
      "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": "user sample slot USR3",
      "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": "FM6 patch bank B1-B27",
      "effect": "lost",
      "ways": [
       {
        "way": "when you erase a used FM6 patch from the web editor (the computer asks first for that slot only; writes the whole bank)",
        "effect": "partly lost (only that patch)"
       },
       {
        "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 (does not ask if that slot is empty; writes the whole bank)",
        "effect": "partly lost (only that patch)"
       },
       {
        "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": "some or all lost"
       }
      ]
     },
     {
      "object": "user sample slot USR4",
      "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 user sample slot USR1 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 user sample slot USR2 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 user sample slot USR3 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 FM6 patch bank B1-B27 until you write over the saved data. The FM6 patch bank is shared. The project and its links to user sounds are not transferred.",
     "ORBIT reads user sample slot USR4 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: the music in progress (autosave); settings, calibration, song order, SYN1-4 kits, MIDI LEARN, theme and favourites. At risk by itself, under a condition: song section A (a whole project); song section B (a whole project); song section C (a whole project); song section D (a whole project). At risk when you act: user sounds U01-U16; user sounds U17-U32; user sample slot USR1; user sample slot USR2; user sample slot USR3; FM6 patch bank B1-B27; user sample slot USR4. ORBIT reads user sample slot USR1 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 user sample slot USR2 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 user sample slot USR3 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 FM6 patch bank B1-B27 until you write over the saved data. The FM6 patch bank is shared. The project and its links to user sounds are not transferred. ORBIT reads user sample slot USR4 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)"
   },
   {
    "from": "x0x",
    "name": "X0X",
    "flags": "ACSK",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "the whole X0X project (settings, sound, all 32 patterns, song, knob motion)",
      "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 a section you stored during playback or before a restart is still waiting to be saved",
        "effect": "lost"
       },
       {
        "way": "automatically, only when song order has an unsaved change as an update or restart starts",
        "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 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": "lost"
       },
       {
        "way": "when you hold SAVE and press white key 5–8 to save section A–D (without asking)",
        "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 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"
       },
       {
        "way": "when you send a user sound from the web editor (without asking; writes the whole bank)",
        "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"
       },
       {
        "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": "lost"
       },
       {
        "way": "when you store a user sound from the web editor (without asking; writes the whole bank)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "X0X button calibration",
      "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": "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 user sound from the web editor (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "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": "lost"
       },
       {
        "way": "when you store a user sound from the web editor (without asking; writes the whole bank)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "break loops slot 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": "break loops slot 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": "break loops slot 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 break loops slot 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 break loops slot 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 break loops slot 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: the whole X0X project (settings, sound, all 32 patterns, song, knob motion). At risk when you act: X0X button calibration; break loops slot 1; break loops slot 2; break loops slot 3. ORBIT reads break loops slot 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 break loops slot 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 break loops slot 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)"
   },
   {
    "from": "jiant",
    "name": "JIANT",
    "flags": "ACS",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "FM6 patches for the FM6 user sounds",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start",
        "effect": "lost"
       },
       {
        "way": "automatically during use",
        "effect": "lost"
       },
       {
        "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) [uses its preset 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) [uses its preset 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) [uses its preset bank]",
        "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) [uses its preset 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) [uses its preset 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) [uses its preset 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) [uses its preset 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": "settings, calibration, favourites, MENU options",
      "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": "song 1 section A (a whole project)",
      "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": "song 1 section B (a whole project)",
      "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": "song 1 section C (a whole project)",
      "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": "song 1 section D (a whole project)",
      "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": "song 2: four sections (whole projects)",
      "effect": "lost",
      "ways": [
       {
        "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": "song 3: four sections (whole projects)",
      "effect": "lost",
      "ways": [
       {
        "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": "song 4: four sections (whole projects)",
      "effect": "lost",
      "ways": [
       {
        "way": "when you erase a sample with a MIDI tool (without asking)",
        "effect": "partly 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": "partly lost"
       },
       {
        "way": "when you upload a sample, CHOP selection or drum kit from the web editor (the computer asks first)",
        "effect": "partly lost"
       }
      ]
     },
     {
      "object": "song 5: four sections (whole projects)",
      "effect": "lost",
      "ways": [
       {
        "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": "song 6: four sections (whole projects)",
      "effect": "lost",
      "ways": [
       {
        "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": "song 7: four sections (whole projects)",
      "effect": "lost",
      "ways": [
       {
        "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": "song 8: four sections (whole projects)",
      "effect": "lost",
      "ways": [
       {
        "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": "which song is current, every song's rows and scenes",
      "effect": "lost",
      "ways": [
       {
        "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": "user sounds U01-U16",
      "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": "user sounds U17-U32",
      "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": "music in progress (RESTORE LAST)",
      "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": "FM6 voice bank B1-B32",
      "effect": "lost",
      "ways": [
       {
        "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": [],
    "owner_text": "At risk by itself: FM6 patches for the FM6 user sounds; settings, calibration, favourites, MENU options. At risk by itself, under a condition: song 1 section A (a whole project); song 1 section B (a whole project); song 1 section C (a whole project); song 1 section D (a whole project). At risk when you act: song 2: four sections (whole projects); song 3: four sections (whole projects); song 4: four sections (whole projects); song 5: four sections (whole projects); song 6: four sections (whole projects); song 7: four sections (whole projects); song 8: four sections (whole projects); which song is current, every song's rows and scenes; user sounds U01-U16; user sounds U17-U32; music in progress (RESTORE LAST); FM6 voice bank B1-B32.",
    "source": "flash-atlas derived/matrix.json (generated by apply_to_maps.py; do not edit by hand)"
   },
   {
    "from": "melodee",
    "name": "Melodee",
    "flags": "ACS",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "shared user presets U109-U126",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start",
        "effect": "lost"
       },
       {
        "way": "automatically during use",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "settings, factory favourites, calibration, saved template",
      "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": "shared user presets U289-U378",
      "effect": "partly lost",
      "ways": [
       {
        "way": "automatically, only when a section you stored during playback or before a restart is still waiting to be saved",
        "effect": "partly 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": "partly lost"
       },
       {
        "way": "when you hold SAVE and press white key 5–8 to save section A–D (without asking)",
        "effect": "partly lost"
       },
       {
        "way": "when you press REC on the SONG screen to save a section and the song order (without asking)",
        "effect": "partly lost"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "partly lost"
       },
       {
        "way": "when you save a project from the web editor (the computer asks first)",
        "effect": "partly lost"
       },
       {
        "way": "when you save, restore or clear a section with a MIDI tool (without asking)",
        "effect": "partly lost"
       }
      ]
     },
     {
      "object": "shared user presets U379-U384",
      "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": "project A: patterns, song, sounds, motion, recordings",
      "effect": "lost",
      "ways": [
       {
        "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": "project B: patterns, song, sounds, motion, recordings",
      "effect": "lost",
      "ways": [
       {
        "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": "project C: patterns, song, sounds, motion, recordings",
      "effect": "lost",
      "ways": [
       {
        "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": "project D: patterns, song, sounds, motion, recordings",
      "effect": "lost",
      "ways": [
       {
        "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": "shared user presets U145-U288",
      "effect": "lost",
      "ways": [
       {
        "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": "shared user presets U073-U090",
      "effect": "lost",
      "ways": [
       {
        "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": "shared user presets U091-U108",
      "effect": "lost",
      "ways": [
       {
        "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": "shared user presets U001-U018",
      "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": "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 user sound from the web editor (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "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": "lost"
       },
       {
        "way": "when you store a user sound from the web editor (without asking; writes the whole bank)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "shared user presets U019-U036",
      "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": "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 user sound from the web editor (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "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": "lost"
       },
       {
        "way": "when you store a user sound from the web editor (without asking; writes the whole bank)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "shared user presets U037-U054",
      "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": "shared user presets U055-U072",
      "effect": "lost",
      "ways": [
       {
        "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": "shared user presets U127-U144",
      "effect": "lost",
      "ways": [
       {
        "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": [],
    "owner_text": "At risk by itself: shared user presets U109-U126; settings, factory favourites, calibration, saved template. At risk by itself, under a condition: shared user presets U289-U378 (partly lost); shared user presets U379-U384. At risk when you act: project A: patterns, song, sounds, motion, recordings; project B: patterns, song, sounds, motion, recordings; project C: patterns, song, sounds, motion, recordings; project D: patterns, song, sounds, motion, recordings; shared user presets U145-U288; shared user presets U073-U090; shared user presets U091-U108; shared user presets U001-U018; shared user presets U019-U036; shared user presets U037-U054; shared user presets U055-U072; shared user presets U127-U144.",
    "source": "flash-atlas derived/matrix.json (generated by apply_to_maps.py; do not edit by hand)"
   },
   {
    "from": "fomni",
    "name": "FoMni",
    "flags": "ACS",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "FoMni setup (pages, chord buttons, lights)",
      "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": "FoMni button calibration",
      "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": "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 user sound from the web editor (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "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": "lost"
       },
       {
        "way": "when you store a user sound from the web editor (without asking; writes the whole bank)",
        "effect": "lost"
       }
      ]
     }
    ],
    "possibly_at_risk": [],
    "carried_over": [],
    "kept_unseen": [],
    "notes": [],
    "owner_text": "At risk by itself: FoMni setup (pages, chord buttons, lights). At risk when you act: FoMni button calibration.",
    "source": "flash-atlas derived/matrix.json (generated by apply_to_maps.py; do not edit by hand)"
   },
   {
    "from": "amb",
    "name": "AMB-1",
    "flags": "ACS",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "AMB-1 pieces and setup",
      "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": "AMB-1 panel calibration",
      "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": "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 user sound from the web editor (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "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": "lost"
       },
       {
        "way": "when you store a user sound from the web editor (without asking; writes the whole bank)",
        "effect": "lost"
       }
      ]
     }
    ],
    "possibly_at_risk": [],
    "carried_over": [],
    "kept_unseen": [],
    "notes": [],
    "owner_text": "At risk by itself: AMB-1 pieces and setup. At risk when you act: AMB-1 panel calibration.",
    "source": "flash-atlas derived/matrix.json (generated by apply_to_maps.py; do not edit by hand)"
   },
   {
    "from": "choralroot",
    "name": "ChoralRoot",
    "flags": "ACS",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "32 imported DX7 voices",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start",
        "effect": "lost"
       },
       {
        "way": "automatically during use",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "options, playing setup and panel 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": "CZ-1 bank A (16 tones)",
      "effect": "lost",
      "ways": [
       {
        "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": "CZ-1 bank B (16 tones)",
      "effect": "lost",
      "ways": [
       {
        "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": "CZ-1 bank C (16 tones)",
      "effect": "lost",
      "ways": [
       {
        "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": "CZ-1 bank D (16 tones)",
      "effect": "lost",
      "ways": [
       {
        "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": "CZ-1 bank E (16 tones)",
      "effect": "lost",
      "ways": [
       {
        "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": "CZ-1 bank F (16 tones)",
      "effect": "lost",
      "ways": [
       {
        "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": "CZ-1 bank G (16 tones)",
      "effect": "lost",
      "ways": [
       {
        "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": "CZ-1 bank H (16 tones)",
      "effect": "lost",
      "ways": [
       {
        "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": "last session saved with a global save",
      "effect": "lost",
      "ways": [
       {
        "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": "favourite marks, chord/bass type and filter",
      "effect": "lost",
      "ways": [
       {
        "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": "128 saved sounds with their complete engine patches",
      "effect": "lost",
      "ways": [
       {
        "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": "recorded loop 1",
      "effect": "lost",
      "ways": [
       {
        "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": "recorded loop 2",
      "effect": "lost",
      "ways": [
       {
        "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": "recorded loop 3",
      "effect": "lost",
      "ways": [
       {
        "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": "recorded loop 4",
      "effect": "lost",
      "ways": [
       {
        "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": "recorded loop 5",
      "effect": "lost",
      "ways": [
       {
        "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": "recorded loop 6",
      "effect": "lost",
      "ways": [
       {
        "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": "recorded loop 7",
      "effect": "lost",
      "ways": [
       {
        "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": "recorded loop 8",
      "effect": "lost",
      "ways": [
       {
        "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": "recorded loop 9",
      "effect": "lost",
      "ways": [
       {
        "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": "recorded loop 10",
      "effect": "lost",
      "ways": [
       {
        "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": [],
    "owner_text": "At risk by itself: 32 imported DX7 voices; options, playing setup and panel calibration. At risk when you act: CZ-1 bank A (16 tones); CZ-1 bank B (16 tones); CZ-1 bank C (16 tones); CZ-1 bank D (16 tones); CZ-1 bank E (16 tones); CZ-1 bank F (16 tones); CZ-1 bank G (16 tones); CZ-1 bank H (16 tones); last session saved with a global save; favourite marks, chord/bass type and filter; 128 saved sounds with their complete engine patches; recorded loop 1; recorded loop 2; recorded loop 3; recorded loop 4; recorded loop 5; recorded loop 6; recorded loop 7; recorded loop 8; recorded loop 9; recorded loop 10.",
    "source": "flash-atlas derived/matrix.json (generated by apply_to_maps.py; do not edit by hand)"
   },
   {
    "from": "ghoulbox",
    "name": "GHOULBOX",
    "flags": "ACSK",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "FM6 patches for user sounds",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start",
        "effect": "lost"
       },
       {
        "way": "automatically during use",
        "effect": "lost"
       },
       {
        "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) [uses its preset 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) [uses its preset 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) [uses its preset bank]",
        "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) [uses its preset 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) [uses its preset 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) [uses its preset 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) [uses its preset 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": "settings and panel 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": "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": "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": "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": "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": "user sounds 1–16",
      "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": "user sounds 17–32",
      "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": "music in progress (RESTORE LAST)",
      "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": "FM6 voice bank B1–B32",
      "effect": "lost",
      "ways": [
       {
        "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": "user sample slot USR1",
      "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": "user sample slot USR2",
      "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": "user sample slot USR3",
      "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 user sample slot USR1 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 user sample slot USR2 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 user sample slot USR3 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: FM6 patches for user sounds; settings and panel calibration. At risk by itself, under a condition: project A; project B; project C; project D. At risk when you act: user sounds 1–16; user sounds 17–32; music in progress (RESTORE LAST); FM6 voice bank B1–B32; user sample slot USR1; user sample slot USR2; user sample slot USR3. ORBIT reads user sample slot USR1 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 user sample slot USR2 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 user sample slot USR3 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)"
   },
   {
    "from": "mvaveopen",
    "name": "M-VAVE FM-1 Open",
    "flags": "ACS",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "Open shared sample audio",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start",
        "effect": "lost"
       },
       {
        "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 if leftover data is found in the checked spots where firmware updates are prepared",
        "effect": "lost"
       },
       {
        "way": "automatically, only when a section you stored during playback or before a restart is still waiting to be saved",
        "effect": "lost"
       },
       {
        "way": "automatically, only when song order has an unsaved change as an update or restart starts",
        "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 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": "lost"
       },
       {
        "way": "when you erase a sample with a MIDI tool (without asking)",
        "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 hold both OCT buttons as you turn it on to calibrate the controls (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you install ORBIT",
        "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 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"
       },
       {
        "way": "when you send a user sound from the web editor (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you send or restore a sample with a MIDI tool (without asking)",
        "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"
       },
       {
        "way": "when you send, erase or restore FM6 patches with a MIDI tool (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "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 start a firmware update",
        "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": "lost"
       },
       {
        "way": "when you store a user sound from the web editor (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"
       },
       {
        "way": "when you upload a sample, CHOP selection or drum kit from the web editor (the computer asks first)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "Open USER project 1",
      "effect": "lost",
      "ways": [
       {
        "way": "when you install ORBIT",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "Open USER project 2",
      "effect": "lost",
      "ways": [
       {
        "way": "when you install ORBIT",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "Open USER project 3",
      "effect": "lost",
      "ways": [
       {
        "way": "when you install ORBIT",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "Open USER project 4",
      "effect": "lost",
      "ways": [
       {
        "way": "when you install ORBIT",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "Open USER project 5",
      "effect": "lost",
      "ways": [
       {
        "way": "when you install ORBIT",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "Open USER project 6",
      "effect": "lost",
      "ways": [
       {
        "way": "when you install ORBIT",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "Open USER project 7",
      "effect": "lost",
      "ways": [
       {
        "way": "when you install ORBIT",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "Open USER project 8",
      "effect": "lost",
      "ways": [
       {
        "way": "when you install ORBIT",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "Open USER project 9",
      "effect": "lost",
      "ways": [
       {
        "way": "when you install ORBIT",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "Open USER project 10",
      "effect": "lost",
      "ways": [
       {
        "way": "when you install ORBIT",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "Open USER project 11",
      "effect": "lost",
      "ways": [
       {
        "way": "when you install ORBIT",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "Open USER project 12",
      "effect": "lost",
      "ways": [
       {
        "way": "when you install ORBIT",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "Open USER project 13",
      "effect": "lost",
      "ways": [
       {
        "way": "when you install ORBIT",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "Open USER project 14",
      "effect": "lost",
      "ways": [
       {
        "way": "when you install ORBIT",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "Open USER project 15",
      "effect": "lost",
      "ways": [
       {
        "way": "when you install ORBIT",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "Open USER project 16",
      "effect": "lost",
      "ways": [
       {
        "way": "when you install ORBIT",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "Open device preferences",
      "effect": "lost",
      "ways": [
       {
        "way": "when you install ORBIT",
        "effect": "lost"
       }
      ]
     }
    ],
    "possibly_at_risk": [],
    "carried_over": [],
    "kept_unseen": [],
    "notes": [],
    "owner_text": "At risk by itself: 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": "ACS",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "octave, last selected preset and MIDI preferences",
      "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": "older stored user bank, if present (Beta4 does not store new edits)",
      "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"
       }
      ]
     }
    ],
    "possibly_at_risk": [],
    "carried_over": [],
    "kept_unseen": [],
    "notes": [],
    "owner_text": "At risk by itself: octave, last selected preset and MIDI preferences. At risk by itself, under a condition: older stored user bank, if present (Beta4 does not store new edits).",
    "source": "flash-atlas derived/matrix.json (generated by apply_to_maps.py; do not edit by hand)"
   },
   {
    "from": "hortator",
    "name": "Hortator",
    "flags": "ACSK",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "settings and panel calibration",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use",
        "effect": "changed to the new format: the next settings save uses this firmware's format; if you switch back, your previous firmware's extra preferences may be lost or its settings may be unreadable. Only some settings are changed to the new format. Your songs are not stored in these settings. Switching back may lose settings"
       },
       {
        "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": "changed to the new format: the next settings save uses this firmware's format; if you switch back, your previous firmware's extra preferences may be lost or its settings may be unreadable. Only some settings are changed to the new format. Your songs are not stored in these settings. Switching back may lose settings"
       },
       {
        "way": "automatically, only when song order has an unsaved change as an update or restart starts",
        "effect": "changed to the new format: the next settings save uses this firmware's format; if you switch back, your previous firmware's extra preferences may be lost or its settings may be unreadable. Only some settings are changed to the new format. Your songs are not stored in these settings. Switching back may lose settings"
       },
       {
        "way": "when you hold both OCT buttons as you turn it on to calibrate the controls (without asking)",
        "effect": "changed to the new format: the next settings save uses this firmware's format; if you switch back, your previous firmware's extra preferences may be lost or its settings may be unreadable. Only some settings are changed to the new format. Your songs are not stored in these settings. Switching back may lose settings"
       },
       {
        "way": "when you press REC on the SONG screen to save a section and the song order (without asking)",
        "effect": "changed to the new format: the next settings save uses this firmware's format; if you switch back, your previous firmware's extra preferences may be lost or its settings may be unreadable. Only some settings are changed to the new format. Your songs are not stored in these settings. Switching back may lose settings"
       },
       {
        "way": "when you press SAVE on the SONG screen (without asking)",
        "effect": "changed to the new format: the next settings save uses this firmware's format; if you switch back, your previous firmware's extra preferences may be lost or its settings may be unreadable. Only some settings are changed to the new format. Your songs are not stored in these settings. Switching back may lose settings"
       },
       {
        "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": "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": "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": "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": "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": "user samples USR1",
      "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": "user samples USR2",
      "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": "user samples USR3",
      "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 user samples USR1 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 user samples USR2 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 user samples USR3 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: settings and panel calibration. At risk by itself, under a condition: project A; project B; project C; project D. At risk when you act: user samples USR1; user samples USR2; user samples USR3. ORBIT reads user samples USR1 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 user samples USR2 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 user samples USR3 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)"
   },
   {
    "from": "obervave",
    "name": "OberVave",
    "flags": "ACS",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "pattern 1",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use [uses its saved B-track program]",
        "effect": "its B-track sound can change if it uses a saved program; its pattern notes remain"
       },
       {
        "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 [uses its saved B-track program]",
        "effect": "its B-track sound can change if it uses a saved program; its pattern notes remain"
       },
       {
        "way": "automatically, only when song order has an unsaved change as an update or restart starts [uses its saved B-track program]",
        "effect": "its B-track sound can change if it uses a saved program; its pattern notes remain"
       },
       {
        "way": "when you erase a sample with a MIDI tool (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you hold both OCT buttons as you turn it on to calibrate the controls (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"
       },
       {
        "way": "when you press REC on the SONG screen to save a section and the song order (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"
       },
       {
        "way": "when you press SAVE on the SONG screen (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"
       },
       {
        "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 send settings or MIDI control assignments with a computer tool or store SYN kits from the web editor (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"
       },
       {
        "way": "when you upload a sample, CHOP selection or drum kit from the web editor (the computer asks first)",
        "effect": "lost"
       }
      ],
      "first_way_effect": "its B-track sound can change if it uses a saved program; its pattern notes remain"
     },
     {
      "object": "pattern 2",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use [uses its saved B-track program]",
        "effect": "its B-track sound can change if it uses a saved program; its pattern notes remain"
       },
       {
        "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 [uses its saved B-track program]",
        "effect": "its B-track sound can change if it uses a saved program; its pattern notes remain"
       },
       {
        "way": "automatically, only when song order has an unsaved change as an update or restart starts [uses its saved B-track program]",
        "effect": "its B-track sound can change if it uses a saved program; its pattern notes remain"
       },
       {
        "way": "when you erase a sample with a MIDI tool (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you hold both OCT buttons as you turn it on to calibrate the controls (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"
       },
       {
        "way": "when you press REC on the SONG screen to save a section and the song order (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"
       },
       {
        "way": "when you press SAVE on the SONG screen (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"
       },
       {
        "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 send settings or MIDI control assignments with a computer tool or store SYN kits from the web editor (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"
       },
       {
        "way": "when you upload a sample, CHOP selection or drum kit from the web editor (the computer asks first)",
        "effect": "lost"
       }
      ],
      "first_way_effect": "its B-track sound can change if it uses a saved program; its pattern notes remain"
     },
     {
      "object": "pattern 3",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use [uses its saved B-track program]",
        "effect": "its B-track sound can change if it uses a saved program; its pattern notes remain"
       },
       {
        "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 [uses its saved B-track program]",
        "effect": "its B-track sound can change if it uses a saved program; its pattern notes remain"
       },
       {
        "way": "automatically, only when song order has an unsaved change as an update or restart starts [uses its saved B-track program]",
        "effect": "its B-track sound can change if it uses a saved program; its pattern notes remain"
       },
       {
        "way": "when you erase a sample with a MIDI tool (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you hold both OCT buttons as you turn it on to calibrate the controls (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"
       },
       {
        "way": "when you press REC on the SONG screen to save a section and the song order (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"
       },
       {
        "way": "when you press SAVE on the SONG screen (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"
       },
       {
        "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 send settings or MIDI control assignments with a computer tool or store SYN kits from the web editor (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"
       },
       {
        "way": "when you upload a sample, CHOP selection or drum kit from the web editor (the computer asks first)",
        "effect": "lost"
       }
      ],
      "first_way_effect": "its B-track sound can change if it uses a saved program; its pattern notes remain"
     },
     {
      "object": "pattern 4",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use [uses its saved B-track program]",
        "effect": "its B-track sound can change if it uses a saved program; its pattern notes remain"
       },
       {
        "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 [uses its saved B-track program]",
        "effect": "its B-track sound can change if it uses a saved program; its pattern notes remain"
       },
       {
        "way": "automatically, only when song order has an unsaved change as an update or restart starts [uses its saved B-track program]",
        "effect": "its B-track sound can change if it uses a saved program; its pattern notes remain"
       },
       {
        "way": "when you erase a sample with a MIDI tool (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you hold both OCT buttons as you turn it on to calibrate the controls (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"
       },
       {
        "way": "when you press REC on the SONG screen to save a section and the song order (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"
       },
       {
        "way": "when you press SAVE on the SONG screen (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"
       },
       {
        "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 send settings or MIDI control assignments with a computer tool or store SYN kits from the web editor (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"
       },
       {
        "way": "when you upload a sample, CHOP selection or drum kit from the web editor (the computer asks first)",
        "effect": "lost"
       }
      ],
      "first_way_effect": "its B-track sound can change if it uses a saved program; its pattern notes remain"
     },
     {
      "object": "pattern 5",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use [uses its saved B-track program]",
        "effect": "its B-track sound can change if it uses a saved program; its pattern notes remain"
       },
       {
        "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 [uses its saved B-track program]",
        "effect": "its B-track sound can change if it uses a saved program; its pattern notes remain"
       },
       {
        "way": "automatically, only when song order has an unsaved change as an update or restart starts [uses its saved B-track program]",
        "effect": "its B-track sound can change if it uses a saved program; its pattern notes remain"
       },
       {
        "way": "when you erase a sample with a MIDI tool (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you hold both OCT buttons as you turn it on to calibrate the controls (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"
       },
       {
        "way": "when you press REC on the SONG screen to save a section and the song order (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"
       },
       {
        "way": "when you press SAVE on the SONG screen (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"
       },
       {
        "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 send settings or MIDI control assignments with a computer tool or store SYN kits from the web editor (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"
       },
       {
        "way": "when you upload a sample, CHOP selection or drum kit from the web editor (the computer asks first)",
        "effect": "lost"
       }
      ],
      "first_way_effect": "its B-track sound can change if it uses a saved program; its pattern notes remain"
     },
     {
      "object": "pattern 6",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use [uses its saved B-track program]",
        "effect": "its B-track sound can change if it uses a saved program; its pattern notes remain"
       },
       {
        "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 [uses its saved B-track program]",
        "effect": "its B-track sound can change if it uses a saved program; its pattern notes remain"
       },
       {
        "way": "automatically, only when song order has an unsaved change as an update or restart starts [uses its saved B-track program]",
        "effect": "its B-track sound can change if it uses a saved program; its pattern notes remain"
       },
       {
        "way": "when you erase a sample with a MIDI tool (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you hold both OCT buttons as you turn it on to calibrate the controls (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"
       },
       {
        "way": "when you press REC on the SONG screen to save a section and the song order (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"
       },
       {
        "way": "when you press SAVE on the SONG screen (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"
       },
       {
        "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 send settings or MIDI control assignments with a computer tool or store SYN kits from the web editor (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"
       },
       {
        "way": "when you upload a sample, CHOP selection or drum kit from the web editor (the computer asks first)",
        "effect": "lost"
       }
      ],
      "first_way_effect": "its B-track sound can change if it uses a saved program; its pattern notes remain"
     },
     {
      "object": "pattern 7",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use [uses its saved B-track program]",
        "effect": "its B-track sound can change if it uses a saved program; its pattern notes remain"
       },
       {
        "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 [uses its saved B-track program]",
        "effect": "its B-track sound can change if it uses a saved program; its pattern notes remain"
       },
       {
        "way": "automatically, only when song order has an unsaved change as an update or restart starts [uses its saved B-track program]",
        "effect": "its B-track sound can change if it uses a saved program; its pattern notes remain"
       },
       {
        "way": "when you erase a sample with a MIDI tool (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you hold both OCT buttons as you turn it on to calibrate the controls (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"
       },
       {
        "way": "when you press REC on the SONG screen to save a section and the song order (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"
       },
       {
        "way": "when you press SAVE on the SONG screen (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"
       },
       {
        "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 send settings or MIDI control assignments with a computer tool or store SYN kits from the web editor (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"
       },
       {
        "way": "when you upload a sample, CHOP selection or drum kit from the web editor (the computer asks first)",
        "effect": "lost"
       }
      ],
      "first_way_effect": "its B-track sound can change if it uses a saved program; its pattern notes remain"
     },
     {
      "object": "saved programs and global settings",
      "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": "pattern 8",
      "effect": "its B-track sound can change if it uses a saved program; its pattern notes remain",
      "ways": [
       {
        "way": "automatically during use [uses its saved B-track program]",
        "effect": "its B-track sound can change if it uses a saved program; its pattern notes remain"
       },
       {
        "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 [uses its saved B-track program]",
        "effect": "its B-track sound can change if it uses a saved program; its pattern notes remain"
       },
       {
        "way": "automatically, only when song order has an unsaved change as an update or restart starts [uses its saved B-track program]",
        "effect": "its B-track sound can change if it uses a saved program; its pattern notes remain"
       },
       {
        "way": "when you hold both OCT buttons as you turn it on to calibrate the controls (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"
       },
       {
        "way": "when you press REC on the SONG screen to save a section and the song order (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"
       },
       {
        "way": "when you press SAVE on the SONG screen (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"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup) [uses its saved B-track program]",
        "effect": "its B-track sound can change if it uses a saved program; its pattern notes remain"
       },
       {
        "way": "when you send settings or MIDI control assignments with a computer tool or store SYN kits from the web editor (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 by itself: pattern 1 (its B-track sound can change if it uses a saved program; its pattern notes remain; other writes can also erase it); pattern 2 (its B-track sound can change if it uses a saved program; its pattern notes remain; other writes can also erase it); pattern 3 (its B-track sound can change if it uses a saved program; its pattern notes remain; other writes can also erase it); pattern 4 (its B-track sound can change if it uses a saved program; its pattern notes remain; other writes can also erase it); pattern 5 (its B-track sound can change if it uses a saved program; its pattern notes remain; other writes can also erase it); pattern 6 (its B-track sound can change if it uses a saved program; its pattern notes remain; other writes can also erase it); pattern 7 (its B-track sound can change if it uses a saved program; its pattern notes remain; other writes can also erase it); saved programs and global settings; 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": "ACS",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "Polly shared memory 4",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start",
        "effect": "lost"
       },
       {
        "way": "automatically during use",
        "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": "Polly setup and channel sounds",
      "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": "All four Polly songs",
      "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": "Polly shared memory 1",
      "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": "Polly shared memory 2",
      "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": "Polly shared memory 3",
      "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": "Polly shared memory 5",
      "effect": "lost",
      "ways": [
       {
        "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": "Polly shared memory 6",
      "effect": "lost",
      "ways": [
       {
        "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": "Polly shared memory 7",
      "effect": "lost",
      "ways": [
       {
        "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": "Polly shared memory 8",
      "effect": "lost",
      "ways": [
       {
        "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": "Polly shared memory 9",
      "effect": "lost",
      "ways": [
       {
        "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": "Polly shared memory 10",
      "effect": "lost",
      "ways": [
       {
        "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": "Polly shared memory 11",
      "effect": "lost",
      "ways": [
       {
        "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": "Polly shared memory 12",
      "effect": "lost",
      "ways": [
       {
        "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": "Polly shared memory 13",
      "effect": "lost",
      "ways": [
       {
        "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": "Polly shared memory 14",
      "effect": "lost",
      "ways": [
       {
        "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": "Polly shared memory 15",
      "effect": "lost",
      "ways": [
       {
        "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": "Polly shared memory 16",
      "effect": "lost",
      "ways": [
       {
        "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": "Optional QY70 style bank",
      "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": "lost"
       },
       {
        "way": "when you erase a sample with a MIDI tool (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 user sound from the web editor (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you send or restore a sample with a MIDI tool (without asking)",
        "effect": "damaged (part written over)"
       },
       {
        "way": "when you send, erase or restore FM6 patches with a MIDI tool (without asking; writes the whole bank)",
        "effect": "damaged (part written over)"
       },
       {
        "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": "lost"
       },
       {
        "way": "when you store a user sound from the web editor (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": "damaged (part written over)"
       },
       {
        "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": "damaged (part written over)"
       },
       {
        "way": "when you upload a sample, CHOP selection or drum kit from the web editor (the computer asks first)",
        "effect": "damaged (part written over)"
       }
      ]
     },
     {
      "object": "Polly button and encoder calibration",
      "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": "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 user sound from the web editor (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "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": "lost"
       },
       {
        "way": "when you store a user sound from the web editor (without asking; writes the whole bank)",
        "effect": "lost"
       }
      ]
     }
    ],
    "possibly_at_risk": [],
    "carried_over": [],
    "kept_unseen": [],
    "notes": [],
    "owner_text": "At risk by itself: Polly shared memory 4; Polly setup and channel sounds. At risk by itself, under a condition: All four Polly songs; Polly shared memory 1; Polly shared memory 2; Polly shared memory 3. At risk when you act: Polly shared memory 5; Polly shared memory 6; Polly shared memory 7; Polly shared memory 8; Polly shared memory 9; Polly shared memory 10; Polly shared memory 11; Polly shared memory 12; Polly shared memory 13; Polly shared memory 14; Polly shared memory 15; Polly shared memory 16; Optional QY70 style bank; Polly button and encoder calibration.",
    "source": "flash-atlas derived/matrix.json (generated by apply_to_maps.py; do not edit by hand)"
   },
   {
    "from": "skiff",
    "name": "Skiff",
    "flags": "ACSK",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "user sounds’ own FM6 patches",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start",
        "effect": "lost"
       },
       {
        "way": "automatically during use",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "user sound bank 1",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start [uses its separate FM6 patch collection]",
        "effect": "only FM6 sounds can lose their own patches and fall back to a factory patch or the initial voice; other sounds remain"
       },
       {
        "way": "automatically during use [uses its separate FM6 patch collection]",
        "effect": "only FM6 sounds can lose their own patches and fall back to a factory patch or the initial voice; other sounds remain"
       },
       {
        "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"
       }
      ],
      "first_way_effect": "only FM6 sounds can lose their own patches and fall back to a factory patch or the initial voice; other sounds remain"
     },
     {
      "object": "user sound bank 2",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start [uses its separate FM6 patch collection]",
        "effect": "only FM6 sounds can lose their own patches and fall back to a factory patch or the initial voice; other sounds remain"
       },
       {
        "way": "automatically during use [uses its separate FM6 patch collection]",
        "effect": "only FM6 sounds can lose their own patches and fall back to a factory patch or the initial voice; other sounds remain"
       },
       {
        "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"
       }
      ],
      "first_way_effect": "only FM6 sounds can lose their own patches and fall back to a factory patch or the initial voice; other sounds remain"
     },
     {
      "object": "settings, calibration and favourites",
      "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": "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 erase a sample with a MIDI tool (without asking) [uses its shared pattern pool]",
        "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"
       },
       {
        "way": "when you send or restore a sample with a MIDI tool (without asking) [uses its shared pattern pool]",
        "effect": "lost"
       },
       {
        "way": "when you upload a sample, CHOP selection or drum kit from the web editor (the computer asks first) [uses its shared pattern pool]",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "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 erase a sample with a MIDI tool (without asking) [uses its shared pattern pool]",
        "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"
       },
       {
        "way": "when you send or restore a sample with a MIDI tool (without asking) [uses its shared pattern pool]",
        "effect": "lost"
       },
       {
        "way": "when you upload a sample, CHOP selection or drum kit from the web editor (the computer asks first) [uses its shared pattern pool]",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "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 erase a sample with a MIDI tool (without asking) [uses its shared pattern pool]",
        "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"
       },
       {
        "way": "when you send or restore a sample with a MIDI tool (without asking) [uses its shared pattern pool]",
        "effect": "lost"
       },
       {
        "way": "when you upload a sample, CHOP selection or drum kit from the web editor (the computer asks first) [uses its shared pattern pool]",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "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 erase a sample with a MIDI tool (without asking) [uses its shared pattern pool]",
        "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"
       },
       {
        "way": "when you send or restore a sample with a MIDI tool (without asking) [uses its shared pattern pool]",
        "effect": "lost"
       },
       {
        "way": "when you upload a sample, CHOP selection or drum kit from the web editor (the computer asks first) [uses its shared pattern pool]",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "last session",
      "effect": "lost",
      "ways": [
       {
        "way": "when you erase a sample with a MIDI tool (without asking) [uses its shared pattern pool]",
        "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) [uses its shared pattern pool]",
        "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"
       },
       {
        "way": "when you upload a sample, CHOP selection or drum kit from the web editor (the computer asks first) [uses its shared pattern pool]",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "shared 64-pattern pool",
      "effect": "lost",
      "ways": [
       {
        "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": "user sample USR1",
      "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": "user sample USR2",
      "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": "user sample USR3",
      "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 user sample USR1 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 user sample USR2 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 user sample USR3 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: user sounds’ own FM6 patches; user sound bank 1 (only FM6 sounds can lose their own patches and fall back to a factory patch or the initial voice; other sounds remain; other writes can also erase it); user sound bank 2 (only FM6 sounds can lose their own patches and fall back to a factory patch or the initial voice; other sounds remain; other writes can also erase it); settings, calibration and favourites. At risk by itself, under a condition: project A; project B; project C; project D. At risk when you act: last session; shared 64-pattern pool; user sample USR1; user sample USR2; user sample USR3. ORBIT reads user sample USR1 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 user sample USR2 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 user sample USR3 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)"
   },
   {
    "from": "sloopdx",
    "name": "sloopDX",
    "flags": "ACS",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "working loop",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start",
        "effect": "lost"
       },
       {
        "way": "automatically during use",
        "effect": "lost"
       },
       {
        "way": "when you erase a sample with a MIDI tool (without asking) [uses its saved DX7 voices and drum kit]",
        "effect": "sounds can change if their saved DX7 voices, chosen bank or drum kit are replaced; saved notes and controls stay"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup) [uses its saved DX7 voices and drum kit]",
        "effect": "sounds can change if their saved DX7 voices, chosen bank or drum kit are replaced; saved notes and controls stay"
       },
       {
        "way": "when you send or restore a sample with a MIDI tool (without asking) [uses its saved DX7 voices and drum kit]",
        "effect": "sounds can change if their saved DX7 voices, chosen bank or drum kit are replaced; saved notes and controls stay"
       },
       {
        "way": "when you upload a sample, CHOP selection or drum kit from the web editor (the computer asks first) [uses its saved DX7 voices and drum kit]",
        "effect": "sounds can change if their saved DX7 voices, chosen bank or drum kit are replaced; saved notes and controls stay"
       }
      ]
     },
     {
      "object": "settings, calibration, song order, MIDI, theme and favourites",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use",
        "effect": "changed automatically: an automatic settings save can replace shared settings with this firmware's song, kit, MIDI and other settings. Calibration and shared preferences can load, but choices have different meanings. Song, kit, MIDI, theme or favourites settings this firmware cannot use can be lost at the next settings save"
       },
       {
        "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": "changed automatically: an automatic settings save can replace shared settings with this firmware's song, kit, MIDI and other settings. Calibration and shared preferences can load, but choices have different meanings. Song, kit, MIDI, theme or favourites settings this firmware cannot use can be lost at the next settings save"
       },
       {
        "way": "automatically, only when song order has an unsaved change as an update or restart starts",
        "effect": "changed automatically: an automatic settings save can replace shared settings with this firmware's song, kit, MIDI and other settings. Calibration and shared preferences can load, but choices have different meanings. Song, kit, MIDI, theme or favourites settings this firmware cannot use can be lost at the next settings save"
       },
       {
        "way": "when you hold both OCT buttons as you turn it on to calibrate the controls (without asking)",
        "effect": "changed automatically: an automatic settings save can replace shared settings with this firmware's song, kit, MIDI and other settings. Calibration and shared preferences can load, but choices have different meanings. Song, kit, MIDI, theme or favourites settings this firmware cannot use can be lost at the next settings save"
       },
       {
        "way": "when you press REC on the SONG screen to save a section and the song order (without asking)",
        "effect": "changed automatically: an automatic settings save can replace shared settings with this firmware's song, kit, MIDI and other settings. Calibration and shared preferences can load, but choices have different meanings. Song, kit, MIDI, theme or favourites settings this firmware cannot use can be lost at the next settings save"
       },
       {
        "way": "when you press SAVE on the SONG screen (without asking)",
        "effect": "changed automatically: an automatic settings save can replace shared settings with this firmware's song, kit, MIDI and other settings. Calibration and shared preferences can load, but choices have different meanings. Song, kit, MIDI, theme or favourites settings this firmware cannot use can be lost at the next settings save"
       },
       {
        "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": "section 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 erase a sample with a MIDI tool (without asking) [uses its saved DX7 voices and drum kit]",
        "effect": "sounds can change if their saved DX7 voices, chosen bank or drum kit are replaced; saved notes and controls stay"
       },
       {
        "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"
       },
       {
        "way": "when you send or restore a sample with a MIDI tool (without asking) [uses its saved DX7 voices and drum kit]",
        "effect": "sounds can change if their saved DX7 voices, chosen bank or drum kit are replaced; saved notes and controls stay"
       },
       {
        "way": "when you upload a sample, CHOP selection or drum kit from the web editor (the computer asks first) [uses its saved DX7 voices and drum kit]",
        "effect": "sounds can change if their saved DX7 voices, chosen bank or drum kit are replaced; saved notes and controls stay"
       }
      ]
     },
     {
      "object": "section 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 erase a sample with a MIDI tool (without asking) [uses its saved DX7 voices and drum kit]",
        "effect": "sounds can change if their saved DX7 voices, chosen bank or drum kit are replaced; saved notes and controls stay"
       },
       {
        "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"
       },
       {
        "way": "when you send or restore a sample with a MIDI tool (without asking) [uses its saved DX7 voices and drum kit]",
        "effect": "sounds can change if their saved DX7 voices, chosen bank or drum kit are replaced; saved notes and controls stay"
       },
       {
        "way": "when you upload a sample, CHOP selection or drum kit from the web editor (the computer asks first) [uses its saved DX7 voices and drum kit]",
        "effect": "sounds can change if their saved DX7 voices, chosen bank or drum kit are replaced; saved notes and controls stay"
       }
      ]
     },
     {
      "object": "section 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 erase a sample with a MIDI tool (without asking) [uses its saved DX7 voices and drum kit]",
        "effect": "sounds can change if their saved DX7 voices, chosen bank or drum kit are replaced; saved notes and controls stay"
       },
       {
        "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"
       },
       {
        "way": "when you send or restore a sample with a MIDI tool (without asking) [uses its saved DX7 voices and drum kit]",
        "effect": "sounds can change if their saved DX7 voices, chosen bank or drum kit are replaced; saved notes and controls stay"
       },
       {
        "way": "when you upload a sample, CHOP selection or drum kit from the web editor (the computer asks first) [uses its saved DX7 voices and drum kit]",
        "effect": "sounds can change if their saved DX7 voices, chosen bank or drum kit are replaced; saved notes and controls stay"
       }
      ]
     },
     {
      "object": "section 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 erase a sample with a MIDI tool (without asking) [uses its saved DX7 voices and drum kit]",
        "effect": "sounds can change if their saved DX7 voices, chosen bank or drum kit are replaced; saved notes and controls stay"
       },
       {
        "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"
       },
       {
        "way": "when you send or restore a sample with a MIDI tool (without asking) [uses its saved DX7 voices and drum kit]",
        "effect": "sounds can change if their saved DX7 voices, chosen bank or drum kit are replaced; saved notes and controls stay"
       },
       {
        "way": "when you upload a sample, CHOP selection or drum kit from the web editor (the computer asks first) [uses its saved DX7 voices and drum kit]",
        "effect": "sounds can change if their saved DX7 voices, chosen bank or drum kit are replaced; saved notes and controls stay"
       }
      ]
     },
     {
      "object": "DX7 bank 1 voices 1–16",
      "effect": "lost",
      "ways": [
       {
        "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": "DX7 bank 1 voices 17–32",
      "effect": "lost",
      "ways": [
       {
        "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": "DX7 bank 2 voices 1–16",
      "effect": "lost",
      "ways": [
       {
        "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": "DX7 bank 2 voices 17–32",
      "effect": "lost",
      "ways": [
       {
        "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": "DX7 bank 3 voices 1–16",
      "effect": "lost",
      "ways": [
       {
        "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": "DX7 bank 3 voices 17–32",
      "effect": "lost",
      "ways": [
       {
        "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": "DX7 bank 4 voices 1–16",
      "effect": "lost",
      "ways": [
       {
        "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": "DX7 bank 4 voices 17–32",
      "effect": "lost",
      "ways": [
       {
        "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": "DX7 bank 5 voices 1–16",
      "effect": "lost",
      "ways": [
       {
        "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": "DX7 bank 5 voices 17–32",
      "effect": "lost",
      "ways": [
       {
        "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": "DX7 bank 6 voices 1–16",
      "effect": "lost",
      "ways": [
       {
        "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": "DX7 bank 6 voices 17–32",
      "effect": "lost",
      "ways": [
       {
        "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": "DX7 bank 7 voices 1–16",
      "effect": "lost",
      "ways": [
       {
        "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": "DX7 bank 7 voices 17–32",
      "effect": "lost",
      "ways": [
       {
        "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": "DX7 bank 8 voices 1–16",
      "effect": "lost",
      "ways": [
       {
        "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": "DX7 bank 8 voices 17–32",
      "effect": "lost",
      "ways": [
       {
        "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": "selected DX7 bank",
      "effect": "lost",
      "ways": [
       {
        "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": "MY KIT",
      "effect": "lost",
      "ways": [
       {
        "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": "user presets 1–16",
      "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 sample with a MIDI tool (without asking) [uses its saved DX7 voices]",
        "effect": "sounds can change if their saved DX7 voices or chosen bank are replaced; saved notes and controls stay"
       },
       {
        "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 or restore a sample with a MIDI tool (without asking) [uses its saved DX7 voices]",
        "effect": "sounds can change if their saved DX7 voices or chosen bank are replaced; saved notes and controls stay"
       },
       {
        "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"
       },
       {
        "way": "when you upload a sample, CHOP selection or drum kit from the web editor (the computer asks first) [uses its saved DX7 voices]",
        "effect": "sounds can change if their saved DX7 voices or chosen bank are replaced; saved notes and controls stay"
       }
      ],
      "first_way_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": "user presets 17–32",
      "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 sample with a MIDI tool (without asking) [uses its saved DX7 voices]",
        "effect": "sounds can change if their saved DX7 voices or chosen bank are replaced; saved notes and controls stay"
       },
       {
        "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 or restore a sample with a MIDI tool (without asking) [uses its saved DX7 voices]",
        "effect": "sounds can change if their saved DX7 voices or chosen bank are replaced; saved notes and controls stay"
       },
       {
        "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"
       },
       {
        "way": "when you upload a sample, CHOP selection or drum kit from the web editor (the computer asks first) [uses its saved DX7 voices]",
        "effect": "sounds can change if their saved DX7 voices or chosen bank are replaced; saved notes and controls stay"
       }
      ],
      "first_way_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"
     }
    ],
    "possibly_at_risk": [],
    "carried_over": [],
    "kept_unseen": [],
    "notes": [],
    "owner_text": "At risk by itself: working loop; settings, calibration, song order, MIDI, theme and favourites. At risk by itself, under a condition: section A; section B; section C; section D. At risk when you act: DX7 bank 1 voices 1–16; DX7 bank 1 voices 17–32; DX7 bank 2 voices 1–16; DX7 bank 2 voices 17–32; DX7 bank 3 voices 1–16; DX7 bank 3 voices 17–32; DX7 bank 4 voices 1–16; DX7 bank 4 voices 17–32; DX7 bank 5 voices 1–16; DX7 bank 5 voices 17–32; DX7 bank 6 voices 1–16; DX7 bank 6 voices 17–32; DX7 bank 7 voices 1–16; DX7 bank 7 voices 17–32; DX7 bank 8 voices 1–16; DX7 bank 8 voices 17–32; selected DX7 bank; MY KIT; user presets 1–16 (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; other writes can also erase it); user presets 17–32 (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; other writes can also erase it).",
    "source": "flash-atlas derived/matrix.json (generated by apply_to_maps.py; do not edit by hand)"
   },
   {
    "from": "rainbow",
    "name": "Rainbow Mode",
    "flags": "ACSK",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "the FM6 patches used by the thirty-two user sounds",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start",
        "effect": "lost"
       },
       {
        "way": "automatically during use",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "your old FM6 bank (B1–B27)",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start",
        "effect": "lost"
       },
       {
        "way": "automatically during use",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "user sounds U01–U16, names and sixteen-step patterns without automation",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start [uses its FM6 patches]",
        "effect": "only FM6 sounds can lose their own patches and fall back to a factory patch or the initial voice; other sounds remain"
       },
       {
        "way": "automatically during use [uses its FM6 patches]",
        "effect": "only FM6 sounds can lose their own patches and fall back to a factory patch or the initial voice; other sounds remain"
       },
       {
        "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"
       }
      ],
      "first_way_effect": "only FM6 sounds can lose their own patches and fall back to a factory patch or the initial voice; other sounds remain"
     },
     {
      "object": "user sounds U17–U32, names and sixteen-step patterns without automation",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start [uses its FM6 patches]",
        "effect": "only FM6 sounds can lose their own patches and fall back to a factory patch or the initial voice; other sounds remain"
       },
       {
        "way": "automatically during use [uses its FM6 patches]",
        "effect": "only FM6 sounds can lose their own patches and fall back to a factory patch or the initial voice; other sounds remain"
       },
       {
        "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"
       }
      ],
      "first_way_effect": "only FM6 sounds can lose their own patches and fall back to a factory patch or the initial voice; other sounds remain"
     },
     {
      "object": "Felucca preferences, calibration and favourites; Rainbow WRITE song, greeting name, hat, volume limit and look-alikes",
      "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": "Project A: four tracks and their sounds, notes, automation, song chain and name",
      "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": "Project B: four tracks and their sounds, notes, automation, song chain and name",
      "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": "Project C: four tracks and their sounds, notes, automation, song chain and name",
      "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": "Project D: four tracks and their sounds, notes, automation, song chain and name",
      "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": "the last session in the full version of Felucca",
      "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": "User sample USR1 and any slice positions you set in SLICE",
      "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": "User sample USR2 and any slice positions you set in SLICE",
      "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": "User sample USR3 and any slice positions you set in SLICE",
      "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 user samples USR1, USR2 and USR3 until you write over them. Slice marks set by hand are not loaded. Loop modes follow this firmware's playback rules."
    ],
    "owner_text": "At risk by itself: the FM6 patches used by the thirty-two user sounds; your old FM6 bank (B1–B27); user sounds U01–U16, names and sixteen-step patterns without automation (only FM6 sounds can lose their own patches and fall back to a factory patch or the initial voice; other sounds remain; other writes can also erase it); user sounds U17–U32, names and sixteen-step patterns without automation (only FM6 sounds can lose their own patches and fall back to a factory patch or the initial voice; other sounds remain; other writes can also erase it); Felucca preferences, calibration and favourites; Rainbow WRITE song, greeting name, hat, volume limit and look-alikes. At risk by itself, under a condition: 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. At risk when you act: the last session in the full version of Felucca; 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. ORBIT reads user samples USR1, USR2 and USR3 until you write over them. 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)"
   },
   {
    "from": "duell",
    "name": "DUELL beta",
    "flags": "ACS",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "saved patches",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start",
        "effect": "lost"
       },
       {
        "way": "automatically during use",
        "effect": "lost"
       },
       {
        "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": "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 a user sound from the web editor (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you send or restore a sample with a MIDI tool (without asking)",
        "effect": "lost"
       },
       {
        "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": "lost"
       },
       {
        "way": "when you store a user sound from the web editor (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you upload a sample, CHOP selection or drum kit from the web editor (the computer asks first)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "settings and panel setup",
      "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": "multis M01–M02",
      "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": "multis M03–M04",
      "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": "multis M05–M06",
      "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": "multis M07–M08",
      "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": "user wavetable USR1",
      "effect": "lost",
      "ways": [
       {
        "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": "user wavetable USR2",
      "effect": "lost",
      "ways": [
       {
        "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": "user wavetable USR3",
      "effect": "lost",
      "ways": [
       {
        "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": "multis M09–M10",
      "effect": "lost",
      "ways": [
       {
        "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": "multis M11–M12",
      "effect": "lost",
      "ways": [
       {
        "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": "multis M13–M14",
      "effect": "lost",
      "ways": [
       {
        "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": "multis M15–M16",
      "effect": "lost",
      "ways": [
       {
        "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": "patterns P01–P06",
      "effect": "lost",
      "ways": [
       {
        "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": "patterns P07–P12",
      "effect": "lost",
      "ways": [
       {
        "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": "patterns P13–P16",
      "effect": "lost",
      "ways": [
       {
        "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": "last working music",
      "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": "FM6 bank B01–B32",
      "effect": "lost",
      "ways": [
       {
        "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": [],
    "owner_text": "At risk by itself: saved patches; settings and panel setup. At risk by itself, under a condition: multis M01–M02; multis M03–M04; multis M05–M06; multis M07–M08. At risk when you act: user wavetable USR1; user wavetable USR2; user wavetable USR3; multis M09–M10; multis M11–M12; multis M13–M14; multis M15–M16; patterns P01–P06; patterns P07–P12; patterns P13–P16; last working music; FM6 bank B01–B32.",
    "source": "flash-atlas derived/matrix.json (generated by apply_to_maps.py; do not edit by hand)"
   },
   {
    "from": "fimba",
    "name": "FiMba-1 beta",
    "flags": "ACS",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "FiMba-1 beta sound and playing setup",
      "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": "FiMba-1 beta panel calibration",
      "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": "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 user sound from the web editor (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "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": "lost"
       },
       {
        "way": "when you store a user sound from the web editor (without asking; writes the whole bank)",
        "effect": "lost"
       }
      ]
     }
    ],
    "possibly_at_risk": [],
    "carried_over": [],
    "kept_unseen": [],
    "notes": [],
    "owner_text": "At risk by itself: FiMba-1 beta sound and playing setup. At risk when you act: FiMba-1 beta panel calibration.",
    "source": "flash-atlas derived/matrix.json (generated by apply_to_maps.py; do not edit by hand)"
   },
   {
    "from": "maku",
    "name": "MAKU",
    "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)"
   },
   {
    "from": "fart",
    "name": "Fart Machine One",
    "flags": "S",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "learned button and encoder calibration",
      "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": "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 user sound from the web editor (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "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": "lost"
       },
       {
        "way": "when you store a user sound from the web editor (without asking; writes the whole bank)",
        "effect": "lost"
       }
      ]
     }
    ],
    "possibly_at_risk": [],
    "carried_over": [],
    "kept_unseen": [],
    "notes": [],
    "owner_text": "At risk when you act: learned button and encoder calibration.",
    "source": "flash-atlas derived/matrix.json (generated by apply_to_maps.py; do not edit by hand)"
   },
   {
    "from": "chord",
    "name": "fm1-chord",
    "flags": "ACSK",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "FM6 bank B1-B27",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start",
        "effect": "lost"
       },
       {
        "way": "automatically during use",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "settings, panel calibration, four chord preset setups and the current chord setup",
      "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": "chord preset P1: full synth project",
      "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": "chord preset P2: full synth project",
      "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": "chord preset P3: full synth project",
      "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": "chord preset P4: full synth project",
      "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": "user sounds 1-16",
      "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": "user sounds 17-32",
      "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": "uploaded sample USR1 and optional SLICE markers",
      "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": "uploaded sample USR2 and optional SLICE markers",
      "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": "uploaded sample USR3 and optional SLICE markers",
      "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 uploaded sample USR1 and optional SLICE markers 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 uploaded sample USR2 and optional SLICE markers 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 uploaded sample USR3 and optional SLICE markers 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: FM6 bank B1-B27; settings, panel calibration, four chord preset setups and the current chord setup. At risk by itself, under a condition: chord preset P1: full synth project; chord preset P2: full synth project; chord preset P3: full synth project; chord preset P4: full synth project. At risk when you act: 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. ORBIT reads uploaded sample USR1 and optional SLICE markers 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 uploaded sample USR2 and optional SLICE markers 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 uploaded sample USR3 and optional SLICE markers 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)"
   },
   {
    "from": "sloopbanks",
    "name": "SLOOP DX7 Banks",
    "flags": "ACSK",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "working loop",
      "effect": "changed to the new format: the next save of this project uses ORBIT's project format; your previous firmware cannot load it if you switch back. Engines and sound controls can mean different things. Saved music can pass the same checks and still sound different",
      "ways": [
       {
        "way": "automatically at first start",
        "effect": "changed to the new format: the next save of this project uses ORBIT's project format; your previous firmware cannot load it if you switch back. Engines and sound controls can mean different things. Saved music can pass the same checks and still sound different"
       },
       {
        "way": "automatically during use",
        "effect": "changed to the new format: the next save of this project uses ORBIT's project format; your previous firmware cannot load it if you switch back. Engines and sound controls can mean different things. Saved music can pass the same checks and still sound different"
       }
      ]
     },
     {
      "object": "settings, calibration, song order, synthesized drum kits and DX-bank setup",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use",
        "effect": "changed to the new format: The next settings save adds ORBIT’s MIDI controls. DX7 Banks can then no longer load its saved synthesized drum kits from that copy of the settings. It can still read shared settings and song order"
       },
       {
        "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": "changed to the new format: The next settings save adds ORBIT’s MIDI controls. DX7 Banks can then no longer load its saved synthesized drum kits from that copy of the settings. It can still read shared settings and song order"
       },
       {
        "way": "automatically, only when song order has an unsaved change as an update or restart starts",
        "effect": "changed to the new format: The next settings save adds ORBIT’s MIDI controls. DX7 Banks can then no longer load its saved synthesized drum kits from that copy of the settings. It can still read shared settings and song order"
       },
       {
        "way": "when you hold both OCT buttons as you turn it on to calibrate the controls (without asking)",
        "effect": "changed to the new format: The next settings save adds ORBIT’s MIDI controls. DX7 Banks can then no longer load its saved synthesized drum kits from that copy of the settings. It can still read shared settings and song order"
       },
       {
        "way": "when you press REC on the SONG screen to save a section and the song order (asks first)",
        "effect": "changed to the new format: The next settings save adds ORBIT’s MIDI controls. DX7 Banks can then no longer load its saved synthesized drum kits from that copy of the settings. It can still read shared settings and song order"
       },
       {
        "way": "when you press SAVE on the SONG screen (without asking)",
        "effect": "changed to the new format: The next settings save adds ORBIT’s MIDI controls. DX7 Banks can then no longer load its saved synthesized drum kits from that copy of the settings. It can still read shared settings and song order"
       },
       {
        "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": "section 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": "changed to the new format: the next save of this project uses ORBIT's project format; your previous firmware cannot load it if you switch back. Engines and sound controls can mean different things. Saved music can pass the same checks and still sound different"
       },
       {
        "way": "when you choose SAVE > PROJECT > ERASE and repeat the action (asks first or waits for you to turn again)",
        "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": "changed to the new format: the next save of this project uses ORBIT's project format; your previous firmware cannot load it if you switch back. Engines and sound controls can mean different things. Saved music can pass the same checks and still sound different"
       },
       {
        "way": "when you hold SAVE and press white key 5–8 to save section A–D (asks first)",
        "effect": "changed to the new format: the next save of this project uses ORBIT's project format; your previous firmware cannot load it if you switch back. Engines and sound controls can mean different things. Saved music can pass the same checks and still sound different"
       },
       {
        "way": "when you press REC on the SONG screen to save a section and the song order (asks first)",
        "effect": "changed to the new format: the next save of this project uses ORBIT's project format; your previous firmware cannot load it if you switch back. Engines and sound controls can mean different things. Saved music can pass the same checks and still sound different"
       },
       {
        "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": "changed to the new format: the next save of this project uses ORBIT's project format; your previous firmware cannot load it if you switch back. Engines and sound controls can mean different things. Saved music can pass the same checks and still sound different"
       },
       {
        "way": "when you save, restore or clear a section with a MIDI tool (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "section 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": "changed to the new format: the next save of this project uses ORBIT's project format; your previous firmware cannot load it if you switch back. Engines and sound controls can mean different things. Saved music can pass the same checks and still sound different"
       },
       {
        "way": "when you choose SAVE > PROJECT > ERASE and repeat the action (asks first or waits for you to turn again)",
        "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": "changed to the new format: the next save of this project uses ORBIT's project format; your previous firmware cannot load it if you switch back. Engines and sound controls can mean different things. Saved music can pass the same checks and still sound different"
       },
       {
        "way": "when you hold SAVE and press white key 5–8 to save section A–D (asks first)",
        "effect": "changed to the new format: the next save of this project uses ORBIT's project format; your previous firmware cannot load it if you switch back. Engines and sound controls can mean different things. Saved music can pass the same checks and still sound different"
       },
       {
        "way": "when you press REC on the SONG screen to save a section and the song order (asks first)",
        "effect": "changed to the new format: the next save of this project uses ORBIT's project format; your previous firmware cannot load it if you switch back. Engines and sound controls can mean different things. Saved music can pass the same checks and still sound different"
       },
       {
        "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": "changed to the new format: the next save of this project uses ORBIT's project format; your previous firmware cannot load it if you switch back. Engines and sound controls can mean different things. Saved music can pass the same checks and still sound different"
       },
       {
        "way": "when you save, restore or clear a section with a MIDI tool (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "section 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": "changed to the new format: the next save of this project uses ORBIT's project format; your previous firmware cannot load it if you switch back. Engines and sound controls can mean different things. Saved music can pass the same checks and still sound different"
       },
       {
        "way": "when you choose SAVE > PROJECT > ERASE and repeat the action (asks first or waits for you to turn again)",
        "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": "changed to the new format: the next save of this project uses ORBIT's project format; your previous firmware cannot load it if you switch back. Engines and sound controls can mean different things. Saved music can pass the same checks and still sound different"
       },
       {
        "way": "when you hold SAVE and press white key 5–8 to save section A–D (asks first)",
        "effect": "changed to the new format: the next save of this project uses ORBIT's project format; your previous firmware cannot load it if you switch back. Engines and sound controls can mean different things. Saved music can pass the same checks and still sound different"
       },
       {
        "way": "when you press REC on the SONG screen to save a section and the song order (asks first)",
        "effect": "changed to the new format: the next save of this project uses ORBIT's project format; your previous firmware cannot load it if you switch back. Engines and sound controls can mean different things. Saved music can pass the same checks and still sound different"
       },
       {
        "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": "changed to the new format: the next save of this project uses ORBIT's project format; your previous firmware cannot load it if you switch back. Engines and sound controls can mean different things. Saved music can pass the same checks and still sound different"
       },
       {
        "way": "when you save, restore or clear a section with a MIDI tool (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "section 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": "changed to the new format: the next save of this project uses ORBIT's project format; your previous firmware cannot load it if you switch back. Engines and sound controls can mean different things. Saved music can pass the same checks and still sound different"
       },
       {
        "way": "when you choose SAVE > PROJECT > ERASE and repeat the action (asks first or waits for you to turn again)",
        "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": "changed to the new format: the next save of this project uses ORBIT's project format; your previous firmware cannot load it if you switch back. Engines and sound controls can mean different things. Saved music can pass the same checks and still sound different"
       },
       {
        "way": "when you hold SAVE and press white key 5–8 to save section A–D (asks first)",
        "effect": "changed to the new format: the next save of this project uses ORBIT's project format; your previous firmware cannot load it if you switch back. Engines and sound controls can mean different things. Saved music can pass the same checks and still sound different"
       },
       {
        "way": "when you press REC on the SONG screen to save a section and the song order (asks first)",
        "effect": "changed to the new format: the next save of this project uses ORBIT's project format; your previous firmware cannot load it if you switch back. Engines and sound controls can mean different things. Saved music can pass the same checks and still sound different"
       },
       {
        "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": "changed to the new format: the next save of this project uses ORBIT's project format; your previous firmware cannot load it if you switch back. Engines and sound controls can mean different things. Saved music can pass the same checks and still sound different"
       },
       {
        "way": "when you save, restore or clear a section with a MIDI tool (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "user sounds 1–16",
      "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": "user sounds 17–32",
      "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": "DX7 bank 1 (32 voices)",
      "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": "DX7 bank 2 (32 voices)",
      "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": "DX7 bank 3 (32 voices)",
      "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": "DX7 bank 4 (32 voices)",
      "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": "DX7 bank 5 (32 voices)",
      "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": "DX7 bank 6 (32 voices)",
      "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": "DX7 bank 7 (32 voices)",
      "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": "DX7 bank 8 (32 voices)",
      "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": "DX7 bank 9 (32 voices)",
      "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": "DX7 bank 10 (32 voices)",
      "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": "DX7 bank 11 (32 voices)",
      "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": "DX7 bank 12 (32 voices)",
      "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": "user sample USR1",
      "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": "user sample USR2",
      "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": "user sample USR3",
      "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": "FM6 patches B1–B27",
      "effect": "lost",
      "ways": [
       {
        "way": "when you erase a used FM6 patch from the web editor (the computer asks first for that slot only; writes the whole bank)",
        "effect": "partly lost (only that patch)"
       },
       {
        "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 (does not ask if that slot is empty; writes the whole bank)",
        "effect": "partly lost (only that patch)"
       },
       {
        "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": "some or all lost"
       }
      ]
     },
     {
      "object": "user sample USR4",
      "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": [
     "After ORBIT saves settings, returning to DX7 Banks erases DX banks 1–8 at its first start without asking. It can erase up to banks 1–11 if ORBIT’s MIDI IN is set to one channel from 4–15. The settings save can happen automatically if DX7 Banks’ KEY VELOCITY was 110, 120 or 127. Back up all your DX banks.",
     "ORBIT reads user sample USR1 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 user sample USR2 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 user sample USR3 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 FM6 patches B1–B27 until you write over the saved data. The FM6 patch bank is shared. The project and its links to user sounds are not transferred.",
     "ORBIT reads user sample USR4 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: working loop (changed to the new format: the next save of this project uses ORBIT's project format; your previous firmware cannot load it if you switch back. Engines and sound controls can mean different things. Saved music can pass the same checks and still sound different); settings, calibration, song order, synthesized drum kits and DX-bank setup. At risk by itself, under a condition: section A; section B; section C; section D. At risk when you act: user sounds 1–16; user sounds 17–32; DX7 bank 1 (32 voices); DX7 bank 2 (32 voices); DX7 bank 3 (32 voices); DX7 bank 4 (32 voices); DX7 bank 5 (32 voices); DX7 bank 6 (32 voices); DX7 bank 7 (32 voices); DX7 bank 8 (32 voices); DX7 bank 9 (32 voices); DX7 bank 10 (32 voices); DX7 bank 11 (32 voices); DX7 bank 12 (32 voices); user sample USR1; user sample USR2; user sample USR3; FM6 patches B1–B27; user sample USR4. After ORBIT saves settings, returning to DX7 Banks erases DX banks 1–8 at its first start without asking. It can erase up to banks 1–11 if ORBIT’s MIDI IN is set to one channel from 4–15. The settings save can happen automatically if DX7 Banks’ KEY VELOCITY was 110, 120 or 127. Back up all your DX banks. ORBIT reads user sample USR1 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 user sample USR2 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 user sample USR3 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 FM6 patches B1–B27 until you write over the saved data. The FM6 patch bank is shared. The project and its links to user sounds are not transferred. ORBIT reads user sample USR4 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)"
   },
   {
    "from": "fumi",
    "name": "FuMi-1",
    "flags": "ACS",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "FuMi-1 sound and playing setup",
      "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": "FuMi-1 button and encoder calibration",
      "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": "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 user sound from the web editor (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "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": "lost"
       },
       {
        "way": "when you store a user sound from the web editor (without asking; writes the whole bank)",
        "effect": "lost"
       }
      ]
     }
    ],
    "possibly_at_risk": [],
    "carried_over": [],
    "kept_unseen": [],
    "notes": [],
    "owner_text": "At risk by itself: FuMi-1 sound and playing setup. At risk when you act: FuMi-1 button and encoder calibration.",
    "source": "flash-atlas derived/matrix.json (generated by apply_to_maps.py; do not edit by hand)"
   },
   {
    "from": "jangada",
    "name": "Jangada",
    "flags": "ACSK",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "working music (autosave)",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start",
        "effect": "lost"
       },
       {
        "way": "automatically during use",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "preferences, calibration and MIDI LEARN map",
      "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": "project 1",
      "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": "project 2",
      "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": "project 3",
      "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": "project 4",
      "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": "user sounds U01-U16",
      "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": "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 user sound from the web editor (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "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": "lost"
       },
       {
        "way": "when you store a user sound from the web editor (without asking; writes the whole bank)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "user sounds U17-U32",
      "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": "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 user sound from the web editor (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "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": "lost"
       },
       {
        "way": "when you store a user sound from the web editor (without asking; writes the whole bank)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "FM6 voices B1-B16",
      "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": "FM6 voices B17-B32",
      "effect": "lost",
      "ways": [
       {
        "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": "user samples USR1",
      "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": "user samples USR2",
      "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": "user samples USR3",
      "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 user samples USR1 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 user samples USR2 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 user samples USR3 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: working music (autosave); preferences, calibration and MIDI LEARN map. At risk by itself, under a condition: project 1; project 2; project 3; project 4. At risk when you act: user sounds U01-U16; user sounds U17-U32; FM6 voices B1-B16; FM6 voices B17-B32; user samples USR1; user samples USR2; user samples USR3. ORBIT reads user samples USR1 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 user samples USR2 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 user samples USR3 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)"
   },
   {
    "from": "waveloop",
    "name": "WaveLoop FM-1",
    "flags": "ACSK",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "FM6 patches and controls for each drum in user sounds",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start",
        "effect": "lost"
       },
       {
        "way": "automatically during use",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "settings, calibration and favourites",
      "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": "song 1",
      "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": "song 2",
      "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": "song 3",
      "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": "last session saved for the next start",
      "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": "slice positions you set for USR1",
      "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": "slice positions you set for USR2",
      "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": "song 4",
      "effect": "lost",
      "ways": [
       {
        "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": "song 5",
      "effect": "lost",
      "ways": [
       {
        "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": "song 6",
      "effect": "lost",
      "ways": [
       {
        "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": "song 7",
      "effect": "lost",
      "ways": [
       {
        "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": "song 8",
      "effect": "lost",
      "ways": [
       {
        "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": "song 9",
      "effect": "lost",
      "ways": [
       {
        "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": "song 10",
      "effect": "lost",
      "ways": [
       {
        "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": "song 11",
      "effect": "lost",
      "ways": [
       {
        "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": "song 12",
      "effect": "lost",
      "ways": [
       {
        "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": "song order and selection",
      "effect": "lost",
      "ways": [
       {
        "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": "user sounds 1–16",
      "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": "user sounds 17–32",
      "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": "user sample USR1",
      "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": "user sample USR2",
      "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 user sample USR1 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 user sample USR2 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: FM6 patches and controls for each drum in user sounds; settings, calibration and favourites. At risk by itself, under a condition: song 1; song 2; song 3; last session saved for the next start. At risk when you act: slice positions you set for USR1; slice positions you set for USR2; song 4; song 5; song 6; song 7; song 8; song 9; song 10; song 11; song 12; song order and selection; user sounds 1–16; user sounds 17–32; user sample USR1; user sample USR2. ORBIT reads user sample USR1 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 user sample USR2 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)"
   },
   {
    "from": "floyd",
    "name": "SLOOP Floyd FM",
    "flags": "ACSK",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "the working loop kept by autosave",
      "effect": "changed to the new format: the next save of this project uses ORBIT's project format; your previous firmware cannot load it if you switch back. Engines and sound controls can mean different things. Saved music can pass the same checks and still sound different",
      "ways": [
       {
        "way": "automatically at first start",
        "effect": "changed to the new format: the next save of this project uses ORBIT's project format; your previous firmware cannot load it if you switch back. Engines and sound controls can mean different things. Saved music can pass the same checks and still sound different"
       },
       {
        "way": "automatically during use",
        "effect": "changed to the new format: the next save of this project uses ORBIT's project format; your previous firmware cannot load it if you switch back. Engines and sound controls can mean different things. Saved music can pass the same checks and still sound different"
       }
      ]
     },
     {
      "object": "settings, panel calibration and song order",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use",
        "effect": "changed to the new format: the next settings save adds this firmware's extra settings; if you switch back, your previous firmware can still read the settings it supports, but some saved choices may have different meanings. Only some settings are changed to the new format. Your saved sections are not stored in these settings; the song order is. Switching back may lose settings"
       },
       {
        "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": "changed to the new format: the next settings save adds this firmware's extra settings; if you switch back, your previous firmware can still read the settings it supports, but some saved choices may have different meanings. Only some settings are changed to the new format. Your saved sections are not stored in these settings; the song order is. Switching back may lose settings"
       },
       {
        "way": "automatically, only when song order has an unsaved change as an update or restart starts",
        "effect": "changed to the new format: the next settings save adds this firmware's extra settings; if you switch back, your previous firmware can still read the settings it supports, but some saved choices may have different meanings. Only some settings are changed to the new format. Your saved sections are not stored in these settings; the song order is. Switching back may lose settings"
       },
       {
        "way": "when you hold both OCT buttons as you turn it on to calibrate the controls (without asking)",
        "effect": "changed to the new format: the next settings save adds this firmware's extra settings; if you switch back, your previous firmware can still read the settings it supports, but some saved choices may have different meanings. Only some settings are changed to the new format. Your saved sections are not stored in these settings; the song order is. Switching back may lose settings"
       },
       {
        "way": "when you press REC on the SONG screen to save a section and the song order (asks first)",
        "effect": "changed to the new format: the next settings save adds this firmware's extra settings; if you switch back, your previous firmware can still read the settings it supports, but some saved choices may have different meanings. Only some settings are changed to the new format. Your saved sections are not stored in these settings; the song order is. Switching back may lose settings"
       },
       {
        "way": "when you press SAVE on the SONG screen (without asking)",
        "effect": "changed to the new format: the next settings save adds this firmware's extra settings; if you switch back, your previous firmware can still read the settings it supports, but some saved choices may have different meanings. Only some settings are changed to the new format. Your saved sections are not stored in these settings; the song order is. Switching back may lose settings"
       },
       {
        "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": "song section 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": "changed to the new format: the next save of this project uses ORBIT's project format; your previous firmware cannot load it if you switch back. Engines and sound controls can mean different things. Saved music can pass the same checks and still sound different"
       },
       {
        "way": "when you choose SAVE > PROJECT > ERASE and repeat the action (asks first or waits for you to turn again)",
        "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": "changed to the new format: the next save of this project uses ORBIT's project format; your previous firmware cannot load it if you switch back. Engines and sound controls can mean different things. Saved music can pass the same checks and still sound different"
       },
       {
        "way": "when you hold SAVE and press white key 5–8 to save section A–D (asks first)",
        "effect": "changed to the new format: the next save of this project uses ORBIT's project format; your previous firmware cannot load it if you switch back. Engines and sound controls can mean different things. Saved music can pass the same checks and still sound different"
       },
       {
        "way": "when you press REC on the SONG screen to save a section and the song order (asks first)",
        "effect": "changed to the new format: the next save of this project uses ORBIT's project format; your previous firmware cannot load it if you switch back. Engines and sound controls can mean different things. Saved music can pass the same checks and still sound different"
       },
       {
        "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": "changed to the new format: the next save of this project uses ORBIT's project format; your previous firmware cannot load it if you switch back. Engines and sound controls can mean different things. Saved music can pass the same checks and still sound different"
       },
       {
        "way": "when you save, restore or clear a section with a MIDI tool (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "song section 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": "changed to the new format: the next save of this project uses ORBIT's project format; your previous firmware cannot load it if you switch back. Engines and sound controls can mean different things. Saved music can pass the same checks and still sound different"
       },
       {
        "way": "when you choose SAVE > PROJECT > ERASE and repeat the action (asks first or waits for you to turn again)",
        "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": "changed to the new format: the next save of this project uses ORBIT's project format; your previous firmware cannot load it if you switch back. Engines and sound controls can mean different things. Saved music can pass the same checks and still sound different"
       },
       {
        "way": "when you hold SAVE and press white key 5–8 to save section A–D (asks first)",
        "effect": "changed to the new format: the next save of this project uses ORBIT's project format; your previous firmware cannot load it if you switch back. Engines and sound controls can mean different things. Saved music can pass the same checks and still sound different"
       },
       {
        "way": "when you press REC on the SONG screen to save a section and the song order (asks first)",
        "effect": "changed to the new format: the next save of this project uses ORBIT's project format; your previous firmware cannot load it if you switch back. Engines and sound controls can mean different things. Saved music can pass the same checks and still sound different"
       },
       {
        "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": "changed to the new format: the next save of this project uses ORBIT's project format; your previous firmware cannot load it if you switch back. Engines and sound controls can mean different things. Saved music can pass the same checks and still sound different"
       },
       {
        "way": "when you save, restore or clear a section with a MIDI tool (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "song section 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": "changed to the new format: the next save of this project uses ORBIT's project format; your previous firmware cannot load it if you switch back. Engines and sound controls can mean different things. Saved music can pass the same checks and still sound different"
       },
       {
        "way": "when you choose SAVE > PROJECT > ERASE and repeat the action (asks first or waits for you to turn again)",
        "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": "changed to the new format: the next save of this project uses ORBIT's project format; your previous firmware cannot load it if you switch back. Engines and sound controls can mean different things. Saved music can pass the same checks and still sound different"
       },
       {
        "way": "when you hold SAVE and press white key 5–8 to save section A–D (asks first)",
        "effect": "changed to the new format: the next save of this project uses ORBIT's project format; your previous firmware cannot load it if you switch back. Engines and sound controls can mean different things. Saved music can pass the same checks and still sound different"
       },
       {
        "way": "when you press REC on the SONG screen to save a section and the song order (asks first)",
        "effect": "changed to the new format: the next save of this project uses ORBIT's project format; your previous firmware cannot load it if you switch back. Engines and sound controls can mean different things. Saved music can pass the same checks and still sound different"
       },
       {
        "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": "changed to the new format: the next save of this project uses ORBIT's project format; your previous firmware cannot load it if you switch back. Engines and sound controls can mean different things. Saved music can pass the same checks and still sound different"
       },
       {
        "way": "when you save, restore or clear a section with a MIDI tool (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "song section 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": "changed to the new format: the next save of this project uses ORBIT's project format; your previous firmware cannot load it if you switch back. Engines and sound controls can mean different things. Saved music can pass the same checks and still sound different"
       },
       {
        "way": "when you choose SAVE > PROJECT > ERASE and repeat the action (asks first or waits for you to turn again)",
        "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": "changed to the new format: the next save of this project uses ORBIT's project format; your previous firmware cannot load it if you switch back. Engines and sound controls can mean different things. Saved music can pass the same checks and still sound different"
       },
       {
        "way": "when you hold SAVE and press white key 5–8 to save section A–D (asks first)",
        "effect": "changed to the new format: the next save of this project uses ORBIT's project format; your previous firmware cannot load it if you switch back. Engines and sound controls can mean different things. Saved music can pass the same checks and still sound different"
       },
       {
        "way": "when you press REC on the SONG screen to save a section and the song order (asks first)",
        "effect": "changed to the new format: the next save of this project uses ORBIT's project format; your previous firmware cannot load it if you switch back. Engines and sound controls can mean different things. Saved music can pass the same checks and still sound different"
       },
       {
        "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": "changed to the new format: the next save of this project uses ORBIT's project format; your previous firmware cannot load it if you switch back. Engines and sound controls can mean different things. Saved music can pass the same checks and still sound different"
       },
       {
        "way": "when you save, restore or clear a section with a MIDI tool (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "user sounds U01–U16",
      "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": "user sounds U17–U32",
      "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": "user sample slot USR1",
      "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": "user sample slot USR2",
      "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": "user sample slot USR3",
      "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 user sample slot USR1 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 user sample slot USR2 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 user sample slot USR3 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: the working loop kept by autosave (changed to the new format: the next save of this project uses ORBIT's project format; your previous firmware cannot load it if you switch back. Engines and sound controls can mean different things. Saved music can pass the same checks and still sound different); settings, panel calibration and song order. At risk by itself, under a condition: song section A; song section B; song section C; song section D. At risk when you act: user sounds U01–U16; user sounds U17–U32; user sample slot USR1; user sample slot USR2; user sample slot USR3. ORBIT reads user sample slot USR1 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 user sample slot USR2 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 user sample slot USR3 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)"
   },
   {
    "from": "winampfm",
    "name": "winampFM Synth",
    "flags": "ACSK",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "working music kept by autosave",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start",
        "effect": "lost"
       },
       {
        "way": "automatically during use",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "settings, panel calibration, song order, SYN kits and MIDI",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use",
        "effect": "changed automatically: an automatic settings save can replace shared settings with this firmware's song, kit, MIDI and other settings. Calibration and shared preferences can load, but choices have different meanings. Song, kit, MIDI, theme or favourites settings this firmware cannot use can be lost at the next settings save"
       },
       {
        "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": "changed automatically: an automatic settings save can replace shared settings with this firmware's song, kit, MIDI and other settings. Calibration and shared preferences can load, but choices have different meanings. Song, kit, MIDI, theme or favourites settings this firmware cannot use can be lost at the next settings save"
       },
       {
        "way": "automatically, only when song order has an unsaved change as an update or restart starts",
        "effect": "changed automatically: an automatic settings save can replace shared settings with this firmware's song, kit, MIDI and other settings. Calibration and shared preferences can load, but choices have different meanings. Song, kit, MIDI, theme or favourites settings this firmware cannot use can be lost at the next settings save"
       },
       {
        "way": "when you hold both OCT buttons as you turn it on to calibrate the controls (without asking)",
        "effect": "changed automatically: an automatic settings save can replace shared settings with this firmware's song, kit, MIDI and other settings. Calibration and shared preferences can load, but choices have different meanings. Song, kit, MIDI, theme or favourites settings this firmware cannot use can be lost at the next settings save"
       },
       {
        "way": "when you press REC on the SONG screen to save a section and the song order (without asking)",
        "effect": "changed automatically: an automatic settings save can replace shared settings with this firmware's song, kit, MIDI and other settings. Calibration and shared preferences can load, but choices have different meanings. Song, kit, MIDI, theme or favourites settings this firmware cannot use can be lost at the next settings save"
       },
       {
        "way": "when you press SAVE on the SONG screen (without asking)",
        "effect": "changed automatically: an automatic settings save can replace shared settings with this firmware's song, kit, MIDI and other settings. Calibration and shared preferences can load, but choices have different meanings. Song, kit, MIDI, theme or favourites settings this firmware cannot use can be lost at the next settings save"
       },
       {
        "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": "section A (whole project)",
      "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": "section B (whole project)",
      "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": "section C (whole project)",
      "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": "section D (whole project)",
      "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": "user sounds 1-16",
      "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": "user sounds 17-32",
      "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": "sample USR1",
      "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": "sample USR2",
      "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": "sample USR3",
      "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": "FM6 bank B1-B27",
      "effect": "lost",
      "ways": [
       {
        "way": "when you erase a used FM6 patch from the web editor (the computer asks first for that slot only; writes the whole bank)",
        "effect": "partly lost (only that patch)"
       },
       {
        "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 (does not ask if that slot is empty; writes the whole bank)",
        "effect": "partly lost (only that patch)"
       },
       {
        "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": "some or all lost"
       }
      ]
     },
     {
      "object": "sample USR4",
      "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 sample USR1 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 sample USR2 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 sample USR3 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 FM6 bank B1-B27 until you write over the saved data. The FM6 patch bank is shared. The project and its links to user sounds are not transferred.",
     "ORBIT reads sample USR4 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: working music kept by autosave; settings, panel calibration, song order, SYN kits and MIDI. At risk by itself, under a condition: section A (whole project); section B (whole project); section C (whole project); section D (whole project). At risk when you act: user sounds 1-16; user sounds 17-32; sample USR1; sample USR2; sample USR3; FM6 bank B1-B27; sample USR4. ORBIT reads sample USR1 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 sample USR2 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 sample USR3 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 FM6 bank B1-B27 until you write over the saved data. The FM6 patch bank is shared. The project and its links to user sounds are not transferred. ORBIT reads sample USR4 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)"
   },
   {
    "from": "bubba",
    "name": "Bubba Machine (beta)",
    "flags": "ACS",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "sixteen six-track patterns",
      "effect": "some or all lost",
      "ways": [
       {
        "way": "automatically at first start",
        "effect": "some or all lost"
       },
       {
        "way": "automatically during use",
        "effect": "some or all lost"
       },
       {
        "way": "automatically, only when a section you stored during playback or before a restart is still waiting to be saved",
        "effect": "some or all 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": "some or all lost"
       },
       {
        "way": "when you erase a sample with a MIDI tool (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you hold SAVE and press white key 5–8 to save section A–D (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you press REC on the SONG screen to save a section and the song order (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "some or all lost"
       },
       {
        "way": "when you save a project from the web editor (the computer asks first)",
        "effect": "some or all lost"
       },
       {
        "way": "when you save, restore or clear a section with a MIDI tool (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you send or restore a sample with a MIDI tool (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you upload a sample, CHOP selection or drum kit from the web editor (the computer asks first)",
        "effect": "some or all lost"
       }
      ]
     },
     {
      "object": "song order and four scenes",
      "effect": "some or all lost",
      "ways": [
       {
        "way": "automatically at first start",
        "effect": "some or all lost"
       },
       {
        "way": "automatically during use",
        "effect": "some or all lost"
       },
       {
        "way": "automatically, only when a section you stored during playback or before a restart is still waiting to be saved",
        "effect": "some or all 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": "some or all lost"
       },
       {
        "way": "when you erase a sample with a MIDI tool (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you hold SAVE and press white key 5–8 to save section A–D (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you press REC on the SONG screen to save a section and the song order (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "some or all lost"
       },
       {
        "way": "when you save a project from the web editor (the computer asks first)",
        "effect": "some or all lost"
       },
       {
        "way": "when you save, restore or clear a section with a MIDI tool (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you send or restore a sample with a MIDI tool (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you upload a sample, CHOP selection or drum kit from the web editor (the computer asks first)",
        "effect": "some or all lost"
       }
      ]
     },
     {
      "object": "eight saved sampler takes",
      "effect": "some or all lost",
      "ways": [
       {
        "way": "when you erase a sample with a MIDI tool (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "some or all lost"
       },
       {
        "way": "when you send or restore a sample with a MIDI tool (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you upload a sample, CHOP selection or drum kit from the web editor (the computer asks first)",
        "effect": "some or all lost"
       }
      ]
     },
     {
      "object": "twelve uploaded sounds or DX7 banks",
      "effect": "some or all lost",
      "ways": [
       {
        "way": "when you erase a sample with a MIDI tool (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "some or all lost"
       },
       {
        "way": "when you send or restore a sample with a MIDI tool (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you upload a sample, CHOP selection or drum kit from the web editor (the computer asks first)",
        "effect": "some or all lost"
       }
      ]
     },
     {
      "object": "screen language pack",
      "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": "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 a user sound from the web editor (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you send or restore a sample with a MIDI tool (without asking)",
        "effect": "lost"
       },
       {
        "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": "lost"
       },
       {
        "way": "when you store a user sound from the web editor (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you upload a sample, CHOP selection or drum kit from the web editor (the computer asks first)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "system preferences and last pattern",
      "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": "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 user sound from the web editor (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "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": "lost"
       },
       {
        "way": "when you store a user sound from the web editor (without asking; writes the whole bank)",
        "effect": "lost"
       }
      ]
     }
    ],
    "possibly_at_risk": [],
    "carried_over": [],
    "kept_unseen": [],
    "notes": [],
    "owner_text": "At risk by itself: sixteen six-track patterns (some or all lost); song order and four scenes (some or all lost). At risk when you act: eight saved sampler takes (some or all lost); twelve uploaded sounds or DX7 banks (some or all lost); screen language pack; system preferences and last pattern.",
    "source": "flash-atlas derived/matrix.json (generated by apply_to_maps.py; do not edit by hand)"
   },
   {
    "from": "salt",
    "name": "Felucca [Salt]",
    "flags": "ACSK",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "screen preferences, calibration and favourites",
      "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 (asks first)",
        "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": "project 1",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically, only when a section you stored during playback or before a restart is still waiting to be saved",
        "effect": "changed to the new format: the next save of this project uses ORBIT's project format; your previous firmware cannot load it if you switch back. Engines and sound controls can mean different things. Saved music can pass the same checks and still sound different"
       },
       {
        "way": "when you choose SAVE > PROJECT > ERASE and repeat the action (asks first or waits for you to turn again)",
        "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": "changed to the new format: the next save of this project uses ORBIT's project format; your previous firmware cannot load it if you switch back. Engines and sound controls can mean different things. Saved music can pass the same checks and still sound different"
       },
       {
        "way": "when you hold SAVE and press white key 5–8 to save section A–D (asks first)",
        "effect": "changed to the new format: the next save of this project uses ORBIT's project format; your previous firmware cannot load it if you switch back. Engines and sound controls can mean different things. Saved music can pass the same checks and still sound different"
       },
       {
        "way": "when you press REC on the SONG screen to save a section and the song order (asks first)",
        "effect": "changed to the new format: the next save of this project uses ORBIT's project format; your previous firmware cannot load it if you switch back. Engines and sound controls can mean different things. Saved music can pass the same checks and still sound different"
       },
       {
        "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": "changed to the new format: the next save of this project uses ORBIT's project format; your previous firmware cannot load it if you switch back. Engines and sound controls can mean different things. Saved music can pass the same checks and still sound different"
       },
       {
        "way": "when you save, restore or clear a section with a MIDI tool (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "project 2",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically, only when a section you stored during playback or before a restart is still waiting to be saved",
        "effect": "changed to the new format: the next save of this project uses ORBIT's project format; your previous firmware cannot load it if you switch back. Engines and sound controls can mean different things. Saved music can pass the same checks and still sound different"
       },
       {
        "way": "when you choose SAVE > PROJECT > ERASE and repeat the action (asks first or waits for you to turn again)",
        "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": "changed to the new format: the next save of this project uses ORBIT's project format; your previous firmware cannot load it if you switch back. Engines and sound controls can mean different things. Saved music can pass the same checks and still sound different"
       },
       {
        "way": "when you hold SAVE and press white key 5–8 to save section A–D (asks first)",
        "effect": "changed to the new format: the next save of this project uses ORBIT's project format; your previous firmware cannot load it if you switch back. Engines and sound controls can mean different things. Saved music can pass the same checks and still sound different"
       },
       {
        "way": "when you press REC on the SONG screen to save a section and the song order (asks first)",
        "effect": "changed to the new format: the next save of this project uses ORBIT's project format; your previous firmware cannot load it if you switch back. Engines and sound controls can mean different things. Saved music can pass the same checks and still sound different"
       },
       {
        "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": "changed to the new format: the next save of this project uses ORBIT's project format; your previous firmware cannot load it if you switch back. Engines and sound controls can mean different things. Saved music can pass the same checks and still sound different"
       },
       {
        "way": "when you save, restore or clear a section with a MIDI tool (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "project 3",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically, only when a section you stored during playback or before a restart is still waiting to be saved",
        "effect": "changed to the new format: the next save of this project uses ORBIT's project format; your previous firmware cannot load it if you switch back. Engines and sound controls can mean different things. Saved music can pass the same checks and still sound different"
       },
       {
        "way": "when you choose SAVE > PROJECT > ERASE and repeat the action (asks first or waits for you to turn again)",
        "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": "changed to the new format: the next save of this project uses ORBIT's project format; your previous firmware cannot load it if you switch back. Engines and sound controls can mean different things. Saved music can pass the same checks and still sound different"
       },
       {
        "way": "when you hold SAVE and press white key 5–8 to save section A–D (asks first)",
        "effect": "changed to the new format: the next save of this project uses ORBIT's project format; your previous firmware cannot load it if you switch back. Engines and sound controls can mean different things. Saved music can pass the same checks and still sound different"
       },
       {
        "way": "when you press REC on the SONG screen to save a section and the song order (asks first)",
        "effect": "changed to the new format: the next save of this project uses ORBIT's project format; your previous firmware cannot load it if you switch back. Engines and sound controls can mean different things. Saved music can pass the same checks and still sound different"
       },
       {
        "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": "changed to the new format: the next save of this project uses ORBIT's project format; your previous firmware cannot load it if you switch back. Engines and sound controls can mean different things. Saved music can pass the same checks and still sound different"
       },
       {
        "way": "when you save, restore or clear a section with a MIDI tool (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "project 4",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically, only when a section you stored during playback or before a restart is still waiting to be saved",
        "effect": "changed to the new format: the next save of this project uses ORBIT's project format; your previous firmware cannot load it if you switch back. Engines and sound controls can mean different things. Saved music can pass the same checks and still sound different"
       },
       {
        "way": "when you choose SAVE > PROJECT > ERASE and repeat the action (asks first or waits for you to turn again)",
        "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": "changed to the new format: the next save of this project uses ORBIT's project format; your previous firmware cannot load it if you switch back. Engines and sound controls can mean different things. Saved music can pass the same checks and still sound different"
       },
       {
        "way": "when you hold SAVE and press white key 5–8 to save section A–D (asks first)",
        "effect": "changed to the new format: the next save of this project uses ORBIT's project format; your previous firmware cannot load it if you switch back. Engines and sound controls can mean different things. Saved music can pass the same checks and still sound different"
       },
       {
        "way": "when you press REC on the SONG screen to save a section and the song order (asks first)",
        "effect": "changed to the new format: the next save of this project uses ORBIT's project format; your previous firmware cannot load it if you switch back. Engines and sound controls can mean different things. Saved music can pass the same checks and still sound different"
       },
       {
        "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": "changed to the new format: the next save of this project uses ORBIT's project format; your previous firmware cannot load it if you switch back. Engines and sound controls can mean different things. Saved music can pass the same checks and still sound different"
       },
       {
        "way": "when you save, restore or clear a section with a MIDI tool (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "user sounds U01-U16",
      "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": "user sounds U17-U32",
      "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": "user sample USR1",
      "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": "user sample USR2",
      "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": "user sample USR3",
      "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 user sample USR1 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 user sample USR2 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 user sample USR3 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: screen preferences, calibration and favourites. At risk by itself, under a condition: project 1; project 2; project 3; project 4. At risk when you act: user sounds U01-U16; user sounds U17-U32; user sample USR1; user sample USR2; user sample USR3. ORBIT reads user sample USR1 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 user sample USR2 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 user sample USR3 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)"
   },
   {
    "from": "pigeon",
    "name": "PIGEON",
    "flags": "ACSK",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "the older FM6 patch bank PIGEON no longer uses",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start",
        "effect": "lost"
       },
       {
        "way": "automatically during use",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "older FM6 patches for user presets",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start",
        "effect": "lost"
       },
       {
        "way": "automatically during use",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "preferences, MIDI LEARN and panel 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": "saved pattern 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": "saved pattern 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": "saved pattern 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": "saved pattern 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": "shared song and drum sample bank",
      "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 install ORBIT",
        "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": "slice positions set by hand in the older format",
      "effect": "lost",
      "ways": [
       {
        "way": "when you erase a sample from the web editor (the computer asks first)",
        "effect": "partly lost"
       },
       {
        "way": "when you erase a sample with a MIDI tool (without asking)",
        "effect": "partly 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": "partly lost"
       },
       {
        "way": "when you upload a sample, CHOP selection or drum kit from the web editor (the computer asks first)",
        "effect": "partly lost"
       }
      ]
     },
     {
      "object": "chops, drum-pad and performance edits",
      "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": "older 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": "older 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": "last working session",
      "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": "user sample USR1 in the older format",
      "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": "user sample USR2 in the older format",
      "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": "user sample USR3 in the older format",
      "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": [
     "If your PIGEON sample bank is large enough to reach the flash that installing ORBIT writes, PIGEON then rejects the whole bank, both songs and the kit. Export the PIGEON session and audio bank before switching.",
     "ORBIT reads user sample USR1 in the older format 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 user sample USR2 in the older format 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 user sample USR3 in the older format 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: the older FM6 patch bank PIGEON no longer uses; older FM6 patches for user presets; preferences, MIDI LEARN and panel calibration. At risk by itself, under a condition: saved pattern A; saved pattern B; saved pattern C; saved pattern D. At risk when you act: shared song and drum sample bank; slice positions set by hand in the older format; chops, drum-pad and performance edits; older user preset bank 1; older user preset bank 2; last working session; user sample USR1 in the older format; user sample USR2 in the older format; user sample USR3 in the older format. If your PIGEON sample bank is large enough to reach the flash that installing ORBIT writes, PIGEON then rejects the whole bank, both songs and the kit. Export the PIGEON session and audio bank before switching. ORBIT reads user sample USR1 in the older format 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 user sample USR2 in the older format 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 user sample USR3 in the older format 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)"
   },
   {
    "from": "fm1move",
    "name": "FM1 Move",
    "flags": "ACSK",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "project 1",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use [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": "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 [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": "automatically, only when song order has an unsaved change as an update or restart starts [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 erase a sample from the web editor (the computer asks first) [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 erase a sample with a MIDI tool (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you erase a used FM6 patch from the web editor (the computer asks first for that slot only; writes the whole bank) [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 both OCT buttons as you turn it on to calibrate the controls (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 press REC on the SONG screen to save a section and the song order (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 press SAVE on the SONG screen (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 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 send settings or MIDI control assignments with a computer tool or store SYN kits from the web editor (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 send, erase or restore FM6 patches with a MIDI tool (without asking; writes the whole bank) [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 store an FM6 patch from the web editor (does not ask if that slot is empty; writes the whole bank) [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 store selected DX7 cartridge voices from the web editor (the computer asks first about the slots it fills; writes the whole bank) [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 upload a sample, CHOP selection or drum kit from the web editor (the computer asks first)",
        "effect": "lost"
       }
      ],
      "first_way_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": "lost",
      "ways": [
       {
        "way": "automatically during use [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": "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 [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": "automatically, only when song order has an unsaved change as an update or restart starts [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 erase a sample from the web editor (the computer asks first) [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 erase a sample with a MIDI tool (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you erase a used FM6 patch from the web editor (the computer asks first for that slot only; writes the whole bank) [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 both OCT buttons as you turn it on to calibrate the controls (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 press REC on the SONG screen to save a section and the song order (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 press SAVE on the SONG screen (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 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 send settings or MIDI control assignments with a computer tool or store SYN kits from the web editor (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 send, erase or restore FM6 patches with a MIDI tool (without asking; writes the whole bank) [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 store an FM6 patch from the web editor (does not ask if that slot is empty; writes the whole bank) [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 store selected DX7 cartridge voices from the web editor (the computer asks first about the slots it fills; writes the whole bank) [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 upload a sample, CHOP selection or drum kit from the web editor (the computer asks first)",
        "effect": "lost"
       }
      ],
      "first_way_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": "lost",
      "ways": [
       {
        "way": "automatically during use [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": "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 [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": "automatically, only when song order has an unsaved change as an update or restart starts [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 erase a sample from the web editor (the computer asks first) [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 erase a sample with a MIDI tool (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you erase a used FM6 patch from the web editor (the computer asks first for that slot only; writes the whole bank) [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 both OCT buttons as you turn it on to calibrate the controls (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 press REC on the SONG screen to save a section and the song order (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 press SAVE on the SONG screen (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 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 send settings or MIDI control assignments with a computer tool or store SYN kits from the web editor (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 send, erase or restore FM6 patches with a MIDI tool (without asking; writes the whole bank) [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 store an FM6 patch from the web editor (does not ask if that slot is empty; writes the whole bank) [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 store selected DX7 cartridge voices from the web editor (the computer asks first about the slots it fills; writes the whole bank) [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 upload a sample, CHOP selection or drum kit from the web editor (the computer asks first)",
        "effect": "lost"
       }
      ],
      "first_way_effect": "sounds can change or stop playing when separate samples, FM6 patches or SYN kits are replaced; saved notes and sound settings remain"
     },
     {
      "object": "settings, calibration, SYN kits and stored MIDI mappings",
      "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": "user sounds U01–U16",
      "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": "user sounds U17–U32",
      "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": "sample slot USR1",
      "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": "sample slot USR2",
      "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": "sample slot USR3",
      "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": "FM6 bank B1–B27",
      "effect": "lost",
      "ways": [
       {
        "way": "when you erase a used FM6 patch from the web editor (the computer asks first for that slot only; writes the whole bank)",
        "effect": "partly lost (only that patch)"
       },
       {
        "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 (does not ask if that slot is empty; writes the whole bank)",
        "effect": "partly lost (only that patch)"
       },
       {
        "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": "some or all lost"
       }
      ]
     }
    ],
    "possibly_at_risk": [],
    "carried_over": [],
    "kept_unseen": [],
    "notes": [
     "ORBIT reads sample slot USR1 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 sample slot USR2 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 sample slot USR3 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 FM6 bank B1–B27 until you write over the saved data. The FM6 patch bank is shared. The project and its links to user sounds are not transferred."
    ],
    "owner_text": "At risk by itself: project 1 (sounds can change or stop playing when separate samples, FM6 patches or SYN kits are replaced; saved notes and sound settings remain; other writes can also erase it); project 2 (sounds can change or stop playing when separate samples, FM6 patches or SYN kits are replaced; saved notes and sound settings remain; other writes can also erase it); 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; other writes can also erase it); settings, calibration, SYN kits and stored MIDI mappings. At risk when you act: user sounds U01–U16; user sounds U17–U32; sample slot USR1; sample slot USR2; sample slot USR3; FM6 bank B1–B27. ORBIT reads sample slot USR1 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 sample slot USR2 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 sample slot USR3 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 FM6 bank B1–B27 until you write over the saved data. The FM6 patch bank is shared. The project and its links to user sounds are not transferred.",
    "source": "flash-atlas derived/matrix.json (generated by apply_to_maps.py; do not edit by hand)"
   },
   {
    "from": "fm1quest",
    "name": "FM1 Quest",
    "flags": "ACSK",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "working music (autosave)",
      "effect": "changed to the new format: the next save of this project uses ORBIT's project format; your previous firmware cannot load it if you switch back. Engines and sound controls can mean different things. Saved music can pass the same checks and still sound different",
      "ways": [
       {
        "way": "automatically at first start",
        "effect": "changed to the new format: the next save of this project uses ORBIT's project format; your previous firmware cannot load it if you switch back. Engines and sound controls can mean different things. Saved music can pass the same checks and still sound different"
       },
       {
        "way": "automatically during use",
        "effect": "changed to the new format: the next save of this project uses ORBIT's project format; your previous firmware cannot load it if you switch back. Engines and sound controls can mean different things. Saved music can pass the same checks and still sound different"
       }
      ]
     },
     {
      "object": "settings, panel mapping, song order and Quest preferences/progress",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use",
        "effect": "changed to the new format: the next settings save adds this firmware's extra settings; if you switch back, your previous firmware can still read the settings it supports, but some saved choices may have different meanings. Only some settings are changed to the new format. Your saved sections are not stored in these settings; the song order is. Switching back may lose settings"
       },
       {
        "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": "changed to the new format: the next settings save adds this firmware's extra settings; if you switch back, your previous firmware can still read the settings it supports, but some saved choices may have different meanings. Only some settings are changed to the new format. Your saved sections are not stored in these settings; the song order is. Switching back may lose settings"
       },
       {
        "way": "automatically, only when song order has an unsaved change as an update or restart starts",
        "effect": "changed to the new format: the next settings save adds this firmware's extra settings; if you switch back, your previous firmware can still read the settings it supports, but some saved choices may have different meanings. Only some settings are changed to the new format. Your saved sections are not stored in these settings; the song order is. Switching back may lose settings"
       },
       {
        "way": "when you hold both OCT buttons as you turn it on to calibrate the controls (without asking)",
        "effect": "changed to the new format: the next settings save adds this firmware's extra settings; if you switch back, your previous firmware can still read the settings it supports, but some saved choices may have different meanings. Only some settings are changed to the new format. Your saved sections are not stored in these settings; the song order is. Switching back may lose settings"
       },
       {
        "way": "when you press REC on the SONG screen to save a section and the song order (asks first)",
        "effect": "changed to the new format: the next settings save adds this firmware's extra settings; if you switch back, your previous firmware can still read the settings it supports, but some saved choices may have different meanings. Only some settings are changed to the new format. Your saved sections are not stored in these settings; the song order is. Switching back may lose settings"
       },
       {
        "way": "when you press SAVE on the SONG screen (without asking)",
        "effect": "changed to the new format: the next settings save adds this firmware's extra settings; if you switch back, your previous firmware can still read the settings it supports, but some saved choices may have different meanings. Only some settings are changed to the new format. Your saved sections are not stored in these settings; the song order is. Switching back may lose settings"
       },
       {
        "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": "song section 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": "changed to the new format: the next save of this project uses ORBIT's project format; your previous firmware cannot load it if you switch back. Engines and sound controls can mean different things. Saved music can pass the same checks and still sound different"
       },
       {
        "way": "when you choose SAVE > PROJECT > ERASE and repeat the action (asks first or waits for you to turn again)",
        "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": "changed to the new format: the next save of this project uses ORBIT's project format; your previous firmware cannot load it if you switch back. Engines and sound controls can mean different things. Saved music can pass the same checks and still sound different"
       },
       {
        "way": "when you hold SAVE and press white key 5–8 to save section A–D (asks first)",
        "effect": "changed to the new format: the next save of this project uses ORBIT's project format; your previous firmware cannot load it if you switch back. Engines and sound controls can mean different things. Saved music can pass the same checks and still sound different"
       },
       {
        "way": "when you press REC on the SONG screen to save a section and the song order (asks first)",
        "effect": "changed to the new format: the next save of this project uses ORBIT's project format; your previous firmware cannot load it if you switch back. Engines and sound controls can mean different things. Saved music can pass the same checks and still sound different"
       },
       {
        "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": "changed to the new format: the next save of this project uses ORBIT's project format; your previous firmware cannot load it if you switch back. Engines and sound controls can mean different things. Saved music can pass the same checks and still sound different"
       },
       {
        "way": "when you save, restore or clear a section with a MIDI tool (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "song section 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": "changed to the new format: the next save of this project uses ORBIT's project format; your previous firmware cannot load it if you switch back. Engines and sound controls can mean different things. Saved music can pass the same checks and still sound different"
       },
       {
        "way": "when you choose SAVE > PROJECT > ERASE and repeat the action (asks first or waits for you to turn again)",
        "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": "changed to the new format: the next save of this project uses ORBIT's project format; your previous firmware cannot load it if you switch back. Engines and sound controls can mean different things. Saved music can pass the same checks and still sound different"
       },
       {
        "way": "when you hold SAVE and press white key 5–8 to save section A–D (asks first)",
        "effect": "changed to the new format: the next save of this project uses ORBIT's project format; your previous firmware cannot load it if you switch back. Engines and sound controls can mean different things. Saved music can pass the same checks and still sound different"
       },
       {
        "way": "when you press REC on the SONG screen to save a section and the song order (asks first)",
        "effect": "changed to the new format: the next save of this project uses ORBIT's project format; your previous firmware cannot load it if you switch back. Engines and sound controls can mean different things. Saved music can pass the same checks and still sound different"
       },
       {
        "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": "changed to the new format: the next save of this project uses ORBIT's project format; your previous firmware cannot load it if you switch back. Engines and sound controls can mean different things. Saved music can pass the same checks and still sound different"
       },
       {
        "way": "when you save, restore or clear a section with a MIDI tool (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "song section 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": "changed to the new format: the next save of this project uses ORBIT's project format; your previous firmware cannot load it if you switch back. Engines and sound controls can mean different things. Saved music can pass the same checks and still sound different"
       },
       {
        "way": "when you choose SAVE > PROJECT > ERASE and repeat the action (asks first or waits for you to turn again)",
        "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": "changed to the new format: the next save of this project uses ORBIT's project format; your previous firmware cannot load it if you switch back. Engines and sound controls can mean different things. Saved music can pass the same checks and still sound different"
       },
       {
        "way": "when you hold SAVE and press white key 5–8 to save section A–D (asks first)",
        "effect": "changed to the new format: the next save of this project uses ORBIT's project format; your previous firmware cannot load it if you switch back. Engines and sound controls can mean different things. Saved music can pass the same checks and still sound different"
       },
       {
        "way": "when you press REC on the SONG screen to save a section and the song order (asks first)",
        "effect": "changed to the new format: the next save of this project uses ORBIT's project format; your previous firmware cannot load it if you switch back. Engines and sound controls can mean different things. Saved music can pass the same checks and still sound different"
       },
       {
        "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": "changed to the new format: the next save of this project uses ORBIT's project format; your previous firmware cannot load it if you switch back. Engines and sound controls can mean different things. Saved music can pass the same checks and still sound different"
       },
       {
        "way": "when you save, restore or clear a section with a MIDI tool (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "song section 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": "changed to the new format: the next save of this project uses ORBIT's project format; your previous firmware cannot load it if you switch back. Engines and sound controls can mean different things. Saved music can pass the same checks and still sound different"
       },
       {
        "way": "when you choose SAVE > PROJECT > ERASE and repeat the action (asks first or waits for you to turn again)",
        "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": "changed to the new format: the next save of this project uses ORBIT's project format; your previous firmware cannot load it if you switch back. Engines and sound controls can mean different things. Saved music can pass the same checks and still sound different"
       },
       {
        "way": "when you hold SAVE and press white key 5–8 to save section A–D (asks first)",
        "effect": "changed to the new format: the next save of this project uses ORBIT's project format; your previous firmware cannot load it if you switch back. Engines and sound controls can mean different things. Saved music can pass the same checks and still sound different"
       },
       {
        "way": "when you press REC on the SONG screen to save a section and the song order (asks first)",
        "effect": "changed to the new format: the next save of this project uses ORBIT's project format; your previous firmware cannot load it if you switch back. Engines and sound controls can mean different things. Saved music can pass the same checks and still sound different"
       },
       {
        "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": "changed to the new format: the next save of this project uses ORBIT's project format; your previous firmware cannot load it if you switch back. Engines and sound controls can mean different things. Saved music can pass the same checks and still sound different"
       },
       {
        "way": "when you save, restore or clear a section with a MIDI tool (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "sample USR2",
      "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": "sample USR3",
      "effect": "lost",
      "ways": [
       {
        "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": "Piano Hero P1",
      "effect": "lost",
      "ways": [
       {
        "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": "Piano Hero P2",
      "effect": "lost",
      "ways": [
       {
        "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": "Piano Hero P3",
      "effect": "lost",
      "ways": [
       {
        "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": "Piano Hero P4",
      "effect": "lost",
      "ways": [
       {
        "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": "Piano Hero P5",
      "effect": "lost",
      "ways": [
       {
        "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": "Piano Hero P6",
      "effect": "lost",
      "ways": [
       {
        "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": "FM Hero H1",
      "effect": "lost",
      "ways": [
       {
        "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": "FM Hero H2",
      "effect": "lost",
      "ways": [
       {
        "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": "FM Hero H3",
      "effect": "lost",
      "ways": [
       {
        "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": "FM Hero H4",
      "effect": "lost",
      "ways": [
       {
        "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": "FM Hero H5",
      "effect": "lost",
      "ways": [
       {
        "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": "FM Hero H6",
      "effect": "lost",
      "ways": [
       {
        "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": "user sounds U01–U16",
      "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": "user sounds U17–U32",
      "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": "sample USR1",
      "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 sample USR1 until you write over the saved data. Only sample slots that start in the same place in storage can be read. Other small sample slots are not moved to matching slots."
    ],
    "owner_text": "At risk by itself: working music (autosave) (changed to the new format: the next save of this project uses ORBIT's project format; your previous firmware cannot load it if you switch back. Engines and sound controls can mean different things. Saved music can pass the same checks and still sound different); settings, panel mapping, song order and Quest preferences/progress. At risk by itself, under a condition: song section A; song section B; song section C; song section D. At risk when you act: sample USR2; sample USR3; Piano Hero P1; Piano Hero P2; Piano Hero P3; Piano Hero P4; Piano Hero P5; Piano Hero P6; FM Hero H1; FM Hero H2; FM Hero H3; FM Hero H4; FM Hero H5; FM Hero H6; user sounds U01–U16; user sounds U17–U32; sample USR1. ORBIT reads sample USR1 until you write over the saved data. Only sample slots that start in the same place in storage can be read. Other small sample slots are not moved to matching slots.",
    "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 or how it stores saved work, so data may be lost even where we cannot confirm shared storage. Before switching, use export all on its Projects page to save every project and the autosave. Use Save a backup on Your own sounds too: project exports remember the sounds but leave out the audio. Use Save a safety copy on Your FM-1 for the banks, songs, autosave and samples. Keep these files on your computer. Sound banks, custom sounds, settings and crash reports may be lost."
    ],
    "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 or how it stores saved work, so data may be lost even where we cannot confirm shared storage. Before switching, use export all on its Projects page to save every project and the autosave. Use Save a backup on Your own sounds too: project exports remember the sounds but leave out the audio. Use Save a safety copy on Your FM-1 for the banks, songs, autosave and samples. Keep these files on your computer. Sound banks, custom sounds, settings and crash reports may be lost.",
    "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": [
     "saved section A",
     "saved section B",
     "saved section C",
     "saved section D",
     "working music kept by autosave",
     "sample slot USR1",
     "sample slot USR2",
     "sample slot USR3",
     "USER sounds U01-U16",
     "USER sounds U17-U32",
     "FM6 bank B1-B27",
     "sample slot USR4"
    ],
    "carried_over": [],
    "kept_unseen": [],
    "notes": [],
    "owner_text": "Possibly at risk (layout reported or inferred): saved section A; saved section B; saved section C; saved section D; working music kept by autosave; sample slot USR1; sample slot USR2; sample slot USR3; USER sounds U01-U16; USER sounds U17-U32; FM6 bank B1-B27; sample slot USR4.",
    "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": [
     "saved section A",
     "saved section B",
     "saved section C",
     "saved section D",
     "working music kept by autosave",
     "sample slot USR1",
     "sample slot USR2",
     "sample slot USR3",
     "USER sounds U01-U16",
     "USER sounds U17-U32",
     "FM6 bank B1-B27",
     "sample slot USR4"
    ],
    "carried_over": [],
    "kept_unseen": [],
    "notes": [],
    "owner_text": "Possibly at risk (layout reported or inferred): saved section A; saved section B; saved section C; saved section D; working music kept by autosave; sample slot USR1; sample slot USR2; sample slot USR3; USER sounds U01-U16; USER sounds U17-U32; FM6 bank B1-B27; sample slot USR4.",
    "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": "saved section A",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use (its RESTORE LAST is on by default) [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": "automatically during use [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": "automatically, only if a compatible voice bank sent earlier remains and the saved voice bank is missing or older [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": "automatically, only if beta 2ND CORE is on and a sound calculation fails or takes too long [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 change settings from the editor (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 change slice positions in SLICE (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 erase a sample from the editor (the computer asks first) [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 erase a user preset (asks first: press again to confirm) [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 learn MIDI CC assignments (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 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) [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 save a project (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save a project from the editor (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you send a sample to the FM-1 from the editor (the computer asks first) [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 send an FM6 voice bank with computer commands (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 send or erase a sample with the computer tool (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"
       }
      ],
      "first_way_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": "lost",
      "ways": [
       {
        "way": "automatically during use (its RESTORE LAST is on by default) [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": "automatically during use [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": "automatically, only if a compatible voice bank sent earlier remains and the saved voice bank is missing or older [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": "automatically, only if beta 2ND CORE is on and a sound calculation fails or takes too long [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 change settings from the editor (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 change slice positions in SLICE (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 erase a sample from the editor (the computer asks first) [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 erase a user preset (asks first: press again to confirm) [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 learn MIDI CC assignments (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 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) [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 save a project (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save a project from the editor (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you send a sample to the FM-1 from the editor (the computer asks first) [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 send an FM6 voice bank with computer commands (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 send or erase a sample with the computer tool (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"
       }
      ],
      "first_way_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": "lost",
      "ways": [
       {
        "way": "automatically during use (its RESTORE LAST is on by default) [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": "automatically during use [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": "automatically, only if a compatible voice bank sent earlier remains and the saved voice bank is missing or older [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": "automatically, only if beta 2ND CORE is on and a sound calculation fails or takes too long [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 change settings from the editor (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 change slice positions in SLICE (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 erase a sample from the editor (the computer asks first) [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 erase a user preset (asks first: press again to confirm) [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 learn MIDI CC assignments (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 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) [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 save a project (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save a project from the editor (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you send a sample to the FM-1 from the editor (the computer asks first) [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 send an FM6 voice bank with computer commands (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 send or erase a sample with the computer tool (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"
       }
      ],
      "first_way_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": "lost",
      "ways": [
       {
        "way": "automatically during use (its RESTORE LAST is on by default) [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": "automatically during use [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": "automatically, only if a compatible voice bank sent earlier remains and the saved voice bank is missing or older [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": "automatically, only if beta 2ND CORE is on and a sound calculation fails or takes too long [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 change settings from the editor (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 change slice positions in SLICE (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 erase a sample from the editor (the computer asks first) [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 erase a user preset (asks first: press again to confirm) [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 learn MIDI CC assignments (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 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) [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 save a project (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save a project from the editor (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you send a sample to the FM-1 from the editor (the computer asks first) [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 send an FM6 voice bank with computer commands (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 send or erase a sample with the computer tool (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"
       }
      ],
      "first_way_effect": "sounds can change or stop playing when separate samples, FM6 patches or SYN kits are replaced; saved notes and sound settings remain"
     },
     {
      "object": "working music kept by autosave",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use (its RESTORE LAST is on by default) [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": "automatically during use [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": "automatically, only if a compatible voice bank sent earlier remains and the saved voice bank is missing or older [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": "automatically, only if beta 2ND CORE is on and a sound calculation fails or takes too long [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 change settings from the editor (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 change slice positions in SLICE (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 erase a sample from the editor (the computer asks first) [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 erase a user preset (asks first: press again to confirm) [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 learn MIDI CC assignments (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 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) [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 save an FM6 user sound (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you send a sample to the FM-1 from the editor (the computer asks first) [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 send an FM6 user sound from the editor (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you send an FM6 voice bank with computer commands (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 send or erase a sample with the computer tool (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 store the current FM6 sound from the editor (without asking; writes the whole bank)",
        "effect": "lost"
       }
      ],
      "first_way_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": "lost",
      "ways": [
       {
        "way": "automatically during use (its RESTORE LAST is on by default) [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": "automatically, only if a compatible voice bank sent earlier remains and the saved voice bank is missing or older [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 change slice positions in SLICE (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 erase a sample from the editor (the computer asks first) [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 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 sample to the FM-1 from the editor (the computer asks first) [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 send a user sound from the editor (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you send an FM6 voice bank with computer commands (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 send or erase a sample with the computer tool (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 store the current sound from the editor (without asking; writes the whole bank)",
        "effect": "lost"
       }
      ],
      "first_way_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": "lost",
      "ways": [
       {
        "way": "automatically during use (its RESTORE LAST is on by default) [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": "automatically, only if a compatible voice bank sent earlier remains and the saved voice bank is missing or older [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 change slice positions in SLICE (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 erase a sample from the editor (the computer asks first) [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 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 sample to the FM-1 from the editor (the computer asks first) [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 send a user sound from the editor (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you send an FM6 voice bank with computer commands (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 send or erase a sample with the computer tool (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 store the current sound from the editor (without asking; writes the whole bank)",
        "effect": "lost"
       }
      ],
      "first_way_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": "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, calibration, song order, SYN1-SYN4 kits and MIDI preferences",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use",
        "effect": "lost"
       },
       {
        "way": "automatically, only if beta 2ND CORE is on and a sound calculation fails or takes too long",
        "effect": "lost"
       },
       {
        "way": "when you change settings from the editor (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you erase a user preset (asks first: press again to confirm)",
        "effect": "lost"
       },
       {
        "way": "when you learn MIDI CC assignments (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 run hardware calibration (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "sample slot USR4",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically, only if a compatible voice bank sent earlier remains and the saved voice bank is missing or older",
        "effect": "lost"
       },
       {
        "way": "when you send an FM6 voice bank with computer commands (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "sample slot USR1",
      "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": "sample slot USR2",
      "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": "sample slot USR3",
      "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"
       }
      ]
     }
    ],
    "possibly_at_risk": [],
    "carried_over": [],
    "kept_unseen": [],
    "notes": [
     "Felucca may start with RESTORE LAST ON after ORBIT, even if you turned it OFF before. ORBIT saves its own settings at several points, replacing the earlier settings with ones Felucca cannot read; an older choice saved by another firmware can also mean the opposite here. Check MENU > SYSTEM > RESTORE LAST before you edit. ON allows automatic saving after edits and a pause with playback stopped, keys and buttons released, and no sound; OFF stops that autosave.",
     "Felucca may start with beta 2ND CORE ON or OFF after ORBIT. Do not rely on your earlier choice: ORBIT can replace the saved settings with ones Felucca cannot read. Check MENU > SYSTEM > 2ND CORE when you return. ON (BETA) can turn itself OFF and save settings if a sound calculation fails or takes too long; OFF prevents that second-core save.",
     "Felucca reads sample slot USR1 until you write over the saved data. Only data in this sample slot is read. Other saved work is separate.",
     "Felucca reads sample slot USR2 until you write over the saved data. Only data in this sample slot is read. Other saved work is separate.",
     "Felucca reads sample slot USR3 until you write over the saved data. Only data in this sample slot is read. Other saved work is separate."
    ],
    "owner_text": "At risk by itself: 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; other writes can also erase it); 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; other writes can also erase it); 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; other writes can also erase it); 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; other writes can also erase it); working music 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; other writes can also erase it); 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; other writes can also erase it); 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; other writes can also erase it); FM6 bank B1-B27; settings, calibration, song order, SYN1-SYN4 kits and MIDI preferences. At risk by itself, under a condition: sample slot USR4. At risk when you act: sample slot USR1; sample slot USR2; sample slot USR3. Felucca may start with RESTORE LAST ON after ORBIT, even if you turned it OFF before. ORBIT saves its own settings at several points, replacing the earlier settings with ones Felucca cannot read; an older choice saved by another firmware can also mean the opposite here. Check MENU > SYSTEM > RESTORE LAST before you edit. ON allows automatic saving after edits and a pause with playback stopped, keys and buttons released, and no sound; OFF stops that autosave. Felucca may start with beta 2ND CORE ON or OFF after ORBIT. Do not rely on your earlier choice: ORBIT can replace the saved settings with ones Felucca cannot read. Check MENU > SYSTEM > 2ND CORE when you return. ON (BETA) can turn itself OFF and save settings if a sound calculation fails or takes too long; OFF prevents that second-core save. Felucca reads sample slot USR1 until you write over the saved data. Only data in this sample slot is read. Other saved work is separate. Felucca reads sample slot USR2 until you write over the saved data. Only data in this sample slot is read. Other saved work is separate. Felucca reads sample slot USR3 until you write over the saved data. Only data in this sample slot is read. Other saved work is separate.",
    "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": "saved section A",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use [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": "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 (ORBIT’s own settings cannot trigger this update) [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 calibrate the controls (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 erase a sample from the editor (the computer asks first) [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 erase an FM6 bank patch from the editor (the computer asks first for that slot only; writes the whole bank) [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 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"
       },
       {
        "way": "when you save drum kits from the web editor (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 save selected DX7 voices from the editor (the computer asks first about the slots it fills; writes the whole bank) [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 save the song order (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 send a sample from the editor (the computer asks first) [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 send an FM6 bank patch from the editor (does not ask if that slot is empty; writes the whole bank) [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 send or erase a sample with the computer tool (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 send or remove a theme from the web editor (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 send the song from the web editor (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"
       }
      ],
      "first_way_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": "lost",
      "ways": [
       {
        "way": "automatically during use [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": "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 (ORBIT’s own settings cannot trigger this update) [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 calibrate the controls (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 erase a sample from the editor (the computer asks first) [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 erase an FM6 bank patch from the editor (the computer asks first for that slot only; writes the whole bank) [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 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"
       },
       {
        "way": "when you save drum kits from the web editor (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 save selected DX7 voices from the editor (the computer asks first about the slots it fills; writes the whole bank) [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 save the song order (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 send a sample from the editor (the computer asks first) [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 send an FM6 bank patch from the editor (does not ask if that slot is empty; writes the whole bank) [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 send or erase a sample with the computer tool (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 send or remove a theme from the web editor (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 send the song from the web editor (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"
       }
      ],
      "first_way_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": "lost",
      "ways": [
       {
        "way": "automatically during use [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": "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 (ORBIT’s own settings cannot trigger this update) [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 calibrate the controls (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 erase a sample from the editor (the computer asks first) [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 erase an FM6 bank patch from the editor (the computer asks first for that slot only; writes the whole bank) [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 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"
       },
       {
        "way": "when you save drum kits from the web editor (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 save selected DX7 voices from the editor (the computer asks first about the slots it fills; writes the whole bank) [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 save the song order (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 send a sample from the editor (the computer asks first) [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 send an FM6 bank patch from the editor (does not ask if that slot is empty; writes the whole bank) [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 send or erase a sample with the computer tool (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 send or remove a theme from the web editor (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 send the song from the web editor (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"
       }
      ],
      "first_way_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": "lost",
      "ways": [
       {
        "way": "automatically during use [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": "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 (ORBIT’s own settings cannot trigger this update) [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 calibrate the controls (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 erase a sample from the editor (the computer asks first) [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 erase an FM6 bank patch from the editor (the computer asks first for that slot only; writes the whole bank) [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 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"
       },
       {
        "way": "when you save drum kits from the web editor (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 save selected DX7 voices from the editor (the computer asks first about the slots it fills; writes the whole bank) [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 save the song order (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 send a sample from the editor (the computer asks first) [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 send an FM6 bank patch from the editor (does not ask if that slot is empty; writes the whole bank) [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 send or erase a sample with the computer tool (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 send or remove a theme from the web editor (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 send the song from the web editor (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"
       }
      ],
      "first_way_effect": "sounds can change or stop playing when separate samples, FM6 patches or SYN kits are replaced; saved notes and sound settings remain"
     },
     {
      "object": "working music kept by autosave",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start",
        "effect": "lost"
       },
       {
        "way": "automatically during use [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": "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 (ORBIT’s own settings cannot trigger this update) [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 calibrate the controls (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 erase a sample from the editor (the computer asks first) [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 erase an FM6 bank patch from the editor (the computer asks first for that slot only; writes the whole bank) [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 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) [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 restore a backup from the editor (the computer asks once before restoring the whole backup) [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 save drum kits from the web editor (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 save selected DX7 voices from the editor (the computer asks first about the slots it fills; writes the whole bank) [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 save the song order (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 send a sample from the editor (the computer asks first) [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 send an FM6 bank patch from the editor (does not ask if that slot is empty; writes the whole bank) [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 send or erase a sample with the computer tool (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 send or remove a theme from the web editor (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 send the song from the web editor (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 start an update or enter UPDATE MODE",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "settings, calibration, song order, SYN1-SYN4 kits and MIDI preferences",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use",
        "effect": "kept: SLOOP can read it"
       },
       {
        "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 (ORBIT’s own settings cannot trigger this update)",
        "effect": "kept: SLOOP can read it"
       },
       {
        "way": "when you calibrate the controls (without asking)",
        "effect": "kept: SLOOP can read it"
       },
       {
        "way": "when you load a song file from the editor (the computer asks first)",
        "effect": "kept: SLOOP can read it"
       },
       {
        "way": "when you load a song from the editor LIVE playlist (without asking)",
        "effect": "kept: SLOOP can read it"
       },
       {
        "way": "when you press REC on the SONG screen to save a section (without asking)",
        "effect": "kept: SLOOP 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 save drum kits from the web editor (without asking)",
        "effect": "kept: SLOOP can read it"
       },
       {
        "way": "when you save the song order (without asking)",
        "effect": "kept: SLOOP can read it"
       },
       {
        "way": "when you send or remove a theme from the web editor (without asking)",
        "effect": "kept: SLOOP can read it"
       },
       {
        "way": "when you send the song from the web editor (without asking)",
        "effect": "kept: SLOOP can read it"
       }
      ]
     },
     {
      "object": "USER sounds U01-U16",
      "effect": "lost",
      "ways": [
       {
        "way": "when you erase a sample from the editor (the computer asks first) [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 erase an FM6 bank patch from the editor (the computer asks first for that slot only; writes the whole bank) [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 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": "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 save the current sound from the editor (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you send a sample from the editor (the computer asks first) [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 send a user sound from the editor (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you send an FM6 bank patch from the editor (does not ask if that slot is empty; writes the whole bank) [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 send or erase a sample with the computer tool (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"
       }
      ],
      "first_way_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": "lost",
      "ways": [
       {
        "way": "when you erase a sample from the editor (the computer asks first) [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 erase an FM6 bank patch from the editor (the computer asks first for that slot only; writes the whole bank) [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 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": "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 save the current sound from the editor (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you send a sample from the editor (the computer asks first) [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 send a user sound from the editor (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you send an FM6 bank patch from the editor (does not ask if that slot is empty; writes the whole bank) [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 send or erase a sample with the computer tool (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"
       }
      ],
      "first_way_effect": "sounds can change or stop playing when separate samples, FM6 patches or SYN kits are replaced; saved notes and sound settings remain"
     },
     {
      "object": "sample slot USR1",
      "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": "sample slot USR2",
      "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": "sample slot USR3",
      "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": "FM6 bank B1-B27",
      "effect": "lost",
      "ways": [
       {
        "way": "when you erase an FM6 bank patch from the editor (the computer asks first for that slot only; writes the whole bank)",
        "effect": "partly lost (only that patch)"
       },
       {
        "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": "some or all lost"
       },
       {
        "way": "when you send an FM6 bank patch from the editor (does not ask if that slot is empty; writes the whole bank)",
        "effect": "partly lost (only that patch)"
       }
      ]
     },
     {
      "object": "sample slot USR4",
      "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"
       }
      ]
     }
    ],
    "possibly_at_risk": [],
    "carried_over": [],
    "kept_unseen": [],
    "notes": [
     "SLOOP reads sample slot USR1 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 sample slot USR2 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 sample slot USR3 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 FM6 bank B1-B27 until you write over the saved data.",
     "SLOOP reads sample slot USR4 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 settings, calibration, song order, SYN1-SYN4 kits and MIDI preferences until you write over the saved data. Shared settings and drum kits load. Saved display and MIDI options can mean different things in this firmware."
    ],
    "owner_text": "At risk by itself: 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; other writes can also erase it); 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; other writes can also erase it); 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; other writes can also erase it); 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; other writes can also erase it); working music kept by autosave; settings, calibration, song order, SYN1-SYN4 kits and MIDI preferences. At risk when you act: 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; other writes can also erase it); 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; other writes can also erase it); sample slot USR1; sample slot USR2; sample slot USR3; FM6 bank B1-B27; sample slot USR4. SLOOP reads sample slot USR1 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 sample slot USR2 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 sample slot USR3 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 FM6 bank B1-B27 until you write over the saved data. SLOOP reads sample slot USR4 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 settings, calibration, song order, SYN1-SYN4 kits and MIDI preferences until you write over the saved data. Shared settings and drum kits load. Saved display and MIDI options can mean different things in this firmware.",
    "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": "saved section A",
      "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 [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 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"
       },
       {
        "way": "when you upload samples or break loops (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": "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 [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 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"
       },
       {
        "way": "when you upload samples or break loops (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": "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 [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 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"
       },
       {
        "way": "when you upload samples or break loops (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": "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 [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 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"
       },
       {
        "way": "when you upload samples or break loops (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": "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"
       },
       {
        "way": "when you upload samples or break loops (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": "settings, calibration, song order, SYN1-SYN4 kits and MIDI preferences",
      "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": "working music 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": "automatically during use [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": "automatically, only if X0X crashed while 2ND CORE was on and then restarted without being switched off [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 back up unsaved project changes over USB (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 press SAVE (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 reset to factory settings (asks first: press the button to confirm) [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 restore a backup from the computer [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 restore a backup over USB with the computer question skipped (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 upload samples or break loops (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": "lost",
      "ways": [
       {
        "way": "when you run hardware calibration (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you upload samples or break loops (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": "sample slot USR1",
      "effect": "lost",
      "ways": [
       {
        "way": "when you upload samples or break loops (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "sample slot USR2",
      "effect": "lost",
      "ways": [
       {
        "way": "when you upload samples or break loops (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "sample slot USR3",
      "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 sample slot USR1 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 sample slot USR2 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 sample slot USR3 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: saved section A; saved section B; saved section C; saved section D; USER sounds U17-U32; settings, calibration, song order, SYN1-SYN4 kits and MIDI preferences; working music 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). At risk when you act: USER sounds U01-U16; sample slot USR1; sample slot USR2; sample slot USR3. 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 sample slot USR1 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 sample slot USR2 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 sample slot USR3 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": "saved section A",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start [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": "automatically during use [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": "automatically, only if its RESTORE LAST is on [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": "automatically, only if this firmware ran on your FM-1 before and the voice bank sent to it then is still stored [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 calibrate the controls (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 change settings from the web editor (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 make a song with several sections using GEN (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you mark a favourite with a star (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 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) [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 send an FM6 voice bank from the web editor (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 store a section (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you switch song or project (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"
       }
      ],
      "first_way_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": "lost",
      "ways": [
       {
        "way": "automatically at first start [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": "automatically during use [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": "automatically, only if its RESTORE LAST is on [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": "automatically, only if this firmware ran on your FM-1 before and the voice bank sent to it then is still stored [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 calibrate the controls (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 change settings from the web editor (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 make a song with several sections using GEN (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you mark a favourite with a star (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 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) [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 send an FM6 voice bank from the web editor (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 store a section (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you switch song or project (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"
       }
      ],
      "first_way_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": "lost",
      "ways": [
       {
        "way": "automatically at first start [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": "automatically during use [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": "automatically, only if its RESTORE LAST is on [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": "automatically, only if this firmware ran on your FM-1 before and the voice bank sent to it then is still stored [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 calibrate the controls (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 change settings from the web editor (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 make a song with several sections using GEN (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you mark a favourite with a star (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 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) [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 send an FM6 voice bank from the web editor (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 store a section (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you switch song or project (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"
       }
      ],
      "first_way_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": "lost",
      "ways": [
       {
        "way": "automatically at first start [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": "automatically during use [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": "automatically, only if its RESTORE LAST is on [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": "automatically, only if this firmware ran on your FM-1 before and the voice bank sent to it then is still stored [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 calibrate the controls (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 change settings from the web editor (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 make a song with several sections using GEN (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you mark a favourite with a star (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 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) [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 send an FM6 voice bank from the web editor (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 store a section (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you switch song or project (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"
       }
      ],
      "first_way_effect": "sounds can change or stop playing when separate samples, FM6 patches or SYN kits are replaced; saved notes and sound settings remain"
     },
     {
      "object": "working music kept by autosave",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start [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": "automatically during use [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": "automatically, only if its RESTORE LAST is on [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": "automatically, only if no readable bank of FM6 patches for your sounds survives and a compatible old FM6 bank is present",
        "effect": "lost"
       },
       {
        "way": "automatically, only if this firmware ran on your FM-1 before and the voice bank sent to it then is still stored [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 calibrate the controls (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 change settings from the web editor (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 make a song with several sections using GEN (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 mark a favourite with a star (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 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) [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 save a project from the web editor (the computer asks first) [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 save an FM6 user sound (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you select a song using MIDI PROGRAM CHANGE (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 send an FM6 user sound from the web editor (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you send an FM6 voice bank from the web editor (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 store a section (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 store the current FM6 sound from the web editor (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you switch song or project (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"
       }
      ],
      "first_way_effect": "sounds can change or stop playing when separate samples, FM6 patches or SYN kits are replaced; saved notes and sound settings remain"
     },
     {
      "object": "sample slot USR3",
      "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": "USER sounds U01-U16",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use [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": "automatically, only if its RESTORE LAST is on [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": "automatically, only if this firmware ran on your FM-1 before and the voice bank sent to it then is still stored [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 make a song with several sections using GEN (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 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) [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 save a project from the web editor (the computer asks first) [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 save a user preset (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you select a song using MIDI PROGRAM CHANGE (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 send a user sound from the web editor (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you send an FM6 voice bank from the web editor (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 store a section (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 store the current sound from the web editor (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you switch song or project (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"
       }
      ],
      "first_way_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": "lost",
      "ways": [
       {
        "way": "automatically during use [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": "automatically, only if its RESTORE LAST is on [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": "automatically, only if this firmware ran on your FM-1 before and the voice bank sent to it then is still stored [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 make a song with several sections using GEN (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 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) [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 save a project from the web editor (the computer asks first) [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 save a user preset (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you select a song using MIDI PROGRAM CHANGE (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 send a user sound from the web editor (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you send an FM6 voice bank from the web editor (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 store a section (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 store the current sound from the web editor (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you switch song or project (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"
       }
      ],
      "first_way_effect": "sounds can change or stop playing when separate samples, FM6 patches or SYN kits are replaced; saved notes and sound settings remain"
     },
     {
      "object": "settings, calibration, song order, SYN1-SYN4 kits and MIDI preferences",
      "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 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"
       }
      ]
     },
     {
      "object": "FM6 bank B1-B27",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically, only if its RESTORE LAST is on",
        "effect": "lost"
       },
       {
        "way": "when you send an FM6 voice bank from the web editor (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "sample slot USR4",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically, only if this firmware ran on your FM-1 before and the voice bank sent to it then is still stored",
        "effect": "lost"
       },
       {
        "way": "when you send an FM6 voice bank from the web editor (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "sample slot USR1",
      "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": "sample slot USR2",
      "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"
       }
      ]
     }
    ],
    "possibly_at_risk": [],
    "carried_over": [],
    "kept_unseen": [],
    "notes": [
     "JIANT may start with RESTORE LAST ON or OFF after ORBIT, even if you turned it OFF before. ORBIT saves its own settings at several points, replacing the earlier settings with ones JIANT cannot read; an older choice saved by another firmware can also mean the opposite here. While ON, JIANT can save by itself about 10 seconds after start-up once stopped and idle, even without edits, and again after later edits and a pause. Check MENU > SYSTEM > RESTORE LAST straight after start-up. Hold SAVE once MENU is open to keep that idle wait reset while you check; the open menu alone does not stop it. OFF stops that autosave."
    ],
    "owner_text": "At risk by itself: 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; other writes can also erase it); 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; other writes can also erase it); 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; other writes can also erase it); 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; other writes can also erase it); working music 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; other writes can also erase it); sample slot USR3; 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; other writes can also erase it); 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; other writes can also erase it); settings, calibration, song order, SYN1-SYN4 kits and MIDI preferences. At risk by itself, under a condition: FM6 bank B1-B27; sample slot USR4. At risk when you act: sample slot USR1; sample slot USR2. JIANT may start with RESTORE LAST ON or OFF after ORBIT, even if you turned it OFF before. ORBIT saves its own settings at several points, replacing the earlier settings with ones JIANT cannot read; an older choice saved by another firmware can also mean the opposite here. While ON, JIANT can save by itself about 10 seconds after start-up once stopped and idle, even without edits, and again after later edits and a pause. Check MENU > SYSTEM > RESTORE LAST straight after start-up. Hold SAVE once MENU is open to keep that idle wait reset while you check; the open menu alone does not stop it. OFF stops that autosave.",
    "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": "saved section A",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start [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": "automatically during use [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": "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 calibrate the controls (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 change a setting on the panel or in the menu (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 change settings from the web editor (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 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 mark a favourite with a star (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 quick-save a project (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 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) [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 save a project from the web editor (the computer asks first) [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 save a template (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 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"
       }
      ],
      "first_way_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": "lost",
      "ways": [
       {
        "way": "automatically at first start [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": "automatically during use [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": "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 calibrate the controls (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 change a setting on the panel or in the menu (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 change settings from the web editor (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 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 mark a favourite with a star (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 quick-save a project (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 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) [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 save a project from the web editor (the computer asks first) [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 save a template (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 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"
       }
      ],
      "first_way_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": "lost",
      "ways": [
       {
        "way": "automatically at first start [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": "automatically during use [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": "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 calibrate the controls (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 change a setting on the panel or in the menu (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 change settings from the web editor (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 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 mark a favourite with a star (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 quick-save a project (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 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) [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 save a project from the web editor (the computer asks first) [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 save a template (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 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"
       }
      ],
      "first_way_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": "lost",
      "ways": [
       {
        "way": "automatically at first start [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": "automatically during use [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": "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 calibrate the controls (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 change a setting on the panel or in the menu (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 change settings from the web editor (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 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 mark a favourite with a star (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 quick-save a project (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 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) [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 save a project from the web editor (the computer asks first) [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 save a template (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 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"
       }
      ],
      "first_way_effect": "sounds can change or stop playing when separate samples, FM6 patches or SYN kits are replaced; saved notes and sound settings remain"
     },
     {
      "object": "working music kept by autosave",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start",
        "effect": "lost"
       },
       {
        "way": "automatically during use [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": "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 [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": "automatically, only if erasing all user presets was confirmed earlier but stopped before it finished",
        "effect": "lost"
       },
       {
        "way": "when you calibrate the controls (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 change a setting on the panel or in the menu (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 change settings from the web editor (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 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 mark a favourite with a star (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 quick-save a project (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 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) [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 save a project from the web editor (the computer asks first) [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 save a template (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 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": "USER sounds U01-U16",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start",
        "effect": "lost"
       },
       {
        "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 [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": "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 quick-save a project (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 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) [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 save a project from the web editor (the computer asks first) [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 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": "USER sounds U17-U32",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start",
        "effect": "lost"
       },
       {
        "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 [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": "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 quick-save a project (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 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) [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 save a project from the web editor (the computer asks first) [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 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, calibration, song order, SYN1-SYN4 kits and MIDI preferences",
      "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": "sample slot USR3",
      "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": "FM6 bank B1-B27",
      "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": "sample slot USR4",
      "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 quick-save a project (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 save a project (without asking)",
        "effect": "damaged (part written over)"
       },
       {
        "way": "when you save a project from the web editor (the computer asks first)",
        "effect": "damaged (part written over)"
       },
       {
        "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": "sample slot USR1",
      "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": "sample slot USR2",
      "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: 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; other writes can also erase it); 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; other writes can also erase it); 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; other writes can also erase it); 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; other writes can also erase it); working music kept by autosave; USER sounds U01-U16; USER sounds U17-U32; settings, calibration, song order, SYN1-SYN4 kits and MIDI preferences. At risk by itself, under a condition: sample slot USR3; FM6 bank B1-B27; sample slot USR4. At risk when you act: sample slot USR1; sample slot USR2.",
    "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, calibration, song order, SYN1-SYN4 kits and MIDI preferences",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use",
        "effect": "lost"
       },
       {
        "way": "when you press SAVE (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": "automatically during use [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 press SAVE (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": "automatically during use [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 press SAVE (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": "automatically during use [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 press SAVE (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": "automatically during use [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 press SAVE (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": "working music 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": "automatically during use [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 press SAVE (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": "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, 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); working music 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). At risk when you act: USER sounds U01-U16.",
    "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, calibration, song order, SYN1-SYN4 kits and MIDI preferences",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use",
        "effect": "lost"
       },
       {
        "way": "when you press SAVE (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": "automatically during use [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 press SAVE (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": "automatically during use [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 press SAVE (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": "automatically during use [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 press SAVE (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": "automatically during use [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 press SAVE (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": "working music 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": "automatically during use [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 press SAVE (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": "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, 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); working music 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). At risk when you act: USER sounds U01-U16.",
    "source": "flash-atlas derived/matrix.json (generated by apply_to_maps.py; do not edit by hand)"
   },
   {
    "to": "choralroot",
    "name": "ChoralRoot",
    "flags": "ACS",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "saved section A",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start [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": "automatically during use [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": "automatically, only if a processor failure blocked Dual Core while its saved setting was On [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": "automatically, only if an older ChoralRoot favourites save is still stored and the space for its next save still contains data [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": "automatically, only if an older ChoralRoot session save is still stored and the space for its next save still contains data [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": "automatically, only if an older ChoralRoot sound collection is still saved and the space for its next save still contains data [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": "automatically, only if the space for its next save still needs clearing after a save or a failed start-up cleanup [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": "automatically, only if there is no saved sound collection and at least one supported older user sound can be read [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 choose Import 0.21 sounds from the device manager (the computer asks first) [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 choose Overwrite or Save as new and press OCT+ or SAVE (without asking; writes the whole bank) [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 choose Place all from the device manager (the computer asks first) [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 choose Undo from the device manager (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 choose a voice from a DX7 or CZ bank on the installer page and import it (without asking; writes the whole bank) [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 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) [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 confirm deletion or reset with OCT+ (asks for that slot only: press the button to confirm; writes the whole bank) [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 delete a sound from the installer page (the computer asks first for that slot only; writes the whole bank) [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 delete a sound with the computer question skipped (without asking; writes the whole bank) [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 delete a sound with the computer tool (the computer asks first for that slot only; writes the whole bank) [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 delete all user sounds or reset sounds to factory defaults from the device manager (the computer asks first) [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 delete selected sounds from the device manager (the computer asks first) [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 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 SAVE after recording, editing or clearing this loop (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 SAVE for a global save (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 import a Digitone sound from the installer page (the computer asks first for that slot only; writes the whole bank) [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 import a sound file or one DX7 or CZ voice from the installer page (without asking; writes the whole bank) [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 import a sound or a DX7 or CZ voice with the computer question skipped (without asking; writes the whole bank) [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 import a sound or a DX7 or CZ voice with the computer tool (without asking; writes the whole bank) [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 keep calibration or enter update mode by holding OCT- + OCT+ + HOME for 5 s (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 move or swap sounds from the device manager (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 place a loop from the device manager (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 place a sound as new or back in its saved factory position from the device manager (without asking; writes the whole bank) [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 place several selected sounds from the device manager (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 press REC in Advance mode when the current loop is not empty (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 rename a sound from the device manager and enter its new name (the computer asks first for that slot only; writes the whole bank) [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 rename a sound from the installer page and enter its new name (the computer asks first for that slot only; writes the whole bank) [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 rename a sound with the computer tool (without asking; writes the whole bank) [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 replace a selected user sound from the device manager (the computer asks first for that slot only; writes the whole bank) [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 replace factory sounds from the device manager (the computer asks first) [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 restore a backup from the installer page, device manager or computer tool (the computer asks once before restoring the whole backup) [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 restore a backup with the computer question skipped (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 restore factory order from the device manager (the computer asks first) [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 restore factory presets from the device manager (the computer asks first) [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 restore favourite marks from the computer (the computer asks first) [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 restore favourite marks with the computer question skipped (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 swap loop slots from the device manager (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"
       }
      ],
      "first_way_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": "lost",
      "ways": [
       {
        "way": "automatically at first start [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": "automatically during use [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": "automatically, only if a processor failure blocked Dual Core while its saved setting was On [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": "automatically, only if an older ChoralRoot favourites save is still stored and the space for its next save still contains data [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": "automatically, only if an older ChoralRoot session save is still stored and the space for its next save still contains data [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": "automatically, only if an older ChoralRoot sound collection is still saved and the space for its next save still contains data [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": "automatically, only if the space for its next save still needs clearing after a save or a failed start-up cleanup [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": "automatically, only if there is no saved sound collection and at least one supported older user sound can be read [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 choose Import 0.21 sounds from the device manager (the computer asks first) [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 choose Overwrite or Save as new and press OCT+ or SAVE (without asking; writes the whole bank) [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 choose Place all from the device manager (the computer asks first) [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 choose Undo from the device manager (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 choose a voice from a DX7 or CZ bank on the installer page and import it (without asking; writes the whole bank) [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 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) [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 confirm deletion or reset with OCT+ (asks for that slot only: press the button to confirm; writes the whole bank) [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 delete a sound from the installer page (the computer asks first for that slot only; writes the whole bank) [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 delete a sound with the computer question skipped (without asking; writes the whole bank) [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 delete a sound with the computer tool (the computer asks first for that slot only; writes the whole bank) [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 delete all user sounds or reset sounds to factory defaults from the device manager (the computer asks first) [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 delete selected sounds from the device manager (the computer asks first) [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 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 SAVE after recording, editing or clearing this loop (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 SAVE for a global save (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 import a Digitone sound from the installer page (the computer asks first for that slot only; writes the whole bank) [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 import a sound file or one DX7 or CZ voice from the installer page (without asking; writes the whole bank) [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 import a sound or a DX7 or CZ voice with the computer question skipped (without asking; writes the whole bank) [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 import a sound or a DX7 or CZ voice with the computer tool (without asking; writes the whole bank) [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 keep calibration or enter update mode by holding OCT- + OCT+ + HOME for 5 s (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 move or swap sounds from the device manager (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 place a loop from the device manager (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 place a sound as new or back in its saved factory position from the device manager (without asking; writes the whole bank) [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 place several selected sounds from the device manager (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 press REC in Advance mode when the current loop is not empty (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 rename a sound from the device manager and enter its new name (the computer asks first for that slot only; writes the whole bank) [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 rename a sound from the installer page and enter its new name (the computer asks first for that slot only; writes the whole bank) [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 rename a sound with the computer tool (without asking; writes the whole bank) [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 replace a selected user sound from the device manager (the computer asks first for that slot only; writes the whole bank) [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 replace factory sounds from the device manager (the computer asks first) [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 restore a backup from the installer page, device manager or computer tool (the computer asks once before restoring the whole backup) [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 restore a backup with the computer question skipped (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 restore factory order from the device manager (the computer asks first) [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 restore factory presets from the device manager (the computer asks first) [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 restore favourite marks from the computer (the computer asks first) [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 restore favourite marks with the computer question skipped (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 swap loop slots from the device manager (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"
       }
      ],
      "first_way_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": "lost",
      "ways": [
       {
        "way": "automatically at first start [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": "automatically during use [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": "automatically, only if a processor failure blocked Dual Core while its saved setting was On [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": "automatically, only if an older ChoralRoot favourites save is still stored and the space for its next save still contains data [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": "automatically, only if an older ChoralRoot session save is still stored and the space for its next save still contains data [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": "automatically, only if an older ChoralRoot sound collection is still saved and the space for its next save still contains data [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": "automatically, only if the space for its next save still needs clearing after a save or a failed start-up cleanup [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": "automatically, only if there is no saved sound collection and at least one supported older user sound can be read [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 choose Import 0.21 sounds from the device manager (the computer asks first) [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 choose Overwrite or Save as new and press OCT+ or SAVE (without asking; writes the whole bank) [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 choose Place all from the device manager (the computer asks first) [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 choose Undo from the device manager (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 choose a voice from a DX7 or CZ bank on the installer page and import it (without asking; writes the whole bank) [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 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) [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 confirm deletion or reset with OCT+ (asks for that slot only: press the button to confirm; writes the whole bank) [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 delete a sound from the installer page (the computer asks first for that slot only; writes the whole bank) [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 delete a sound with the computer question skipped (without asking; writes the whole bank) [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 delete a sound with the computer tool (the computer asks first for that slot only; writes the whole bank) [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 delete all user sounds or reset sounds to factory defaults from the device manager (the computer asks first) [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 delete selected sounds from the device manager (the computer asks first) [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 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 SAVE after recording, editing or clearing this loop (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 SAVE for a global save (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 import a Digitone sound from the installer page (the computer asks first for that slot only; writes the whole bank) [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 import a sound file or one DX7 or CZ voice from the installer page (without asking; writes the whole bank) [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 import a sound or a DX7 or CZ voice with the computer question skipped (without asking; writes the whole bank) [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 import a sound or a DX7 or CZ voice with the computer tool (without asking; writes the whole bank) [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 keep calibration or enter update mode by holding OCT- + OCT+ + HOME for 5 s (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 move or swap sounds from the device manager (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 place a loop from the device manager (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 place a sound as new or back in its saved factory position from the device manager (without asking; writes the whole bank) [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 place several selected sounds from the device manager (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 press REC in Advance mode when the current loop is not empty (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 rename a sound from the device manager and enter its new name (the computer asks first for that slot only; writes the whole bank) [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 rename a sound from the installer page and enter its new name (the computer asks first for that slot only; writes the whole bank) [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 rename a sound with the computer tool (without asking; writes the whole bank) [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 replace a selected user sound from the device manager (the computer asks first for that slot only; writes the whole bank) [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 replace factory sounds from the device manager (the computer asks first) [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 restore a backup from the installer page, device manager or computer tool (the computer asks once before restoring the whole backup) [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 restore a backup with the computer question skipped (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 restore factory order from the device manager (the computer asks first) [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 restore factory presets from the device manager (the computer asks first) [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 restore favourite marks from the computer (the computer asks first) [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 restore favourite marks with the computer question skipped (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 swap loop slots from the device manager (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"
       }
      ],
      "first_way_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": "lost",
      "ways": [
       {
        "way": "automatically at first start [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": "automatically during use [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": "automatically, only if a processor failure blocked Dual Core while its saved setting was On [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": "automatically, only if an older ChoralRoot favourites save is still stored and the space for its next save still contains data [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": "automatically, only if an older ChoralRoot session save is still stored and the space for its next save still contains data [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": "automatically, only if an older ChoralRoot sound collection is still saved and the space for its next save still contains data [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": "automatically, only if the space for its next save still needs clearing after a save or a failed start-up cleanup [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": "automatically, only if there is no saved sound collection and at least one supported older user sound can be read [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 choose Import 0.21 sounds from the device manager (the computer asks first) [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 choose Overwrite or Save as new and press OCT+ or SAVE (without asking; writes the whole bank) [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 choose Place all from the device manager (the computer asks first) [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 choose Undo from the device manager (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 choose a voice from a DX7 or CZ bank on the installer page and import it (without asking; writes the whole bank) [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 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) [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 confirm deletion or reset with OCT+ (asks for that slot only: press the button to confirm; writes the whole bank) [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 delete a sound from the installer page (the computer asks first for that slot only; writes the whole bank) [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 delete a sound with the computer question skipped (without asking; writes the whole bank) [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 delete a sound with the computer tool (the computer asks first for that slot only; writes the whole bank) [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 delete all user sounds or reset sounds to factory defaults from the device manager (the computer asks first) [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 delete selected sounds from the device manager (the computer asks first) [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 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 SAVE after recording, editing or clearing this loop (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 SAVE for a global save (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 import a Digitone sound from the installer page (the computer asks first for that slot only; writes the whole bank) [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 import a sound file or one DX7 or CZ voice from the installer page (without asking; writes the whole bank) [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 import a sound or a DX7 or CZ voice with the computer question skipped (without asking; writes the whole bank) [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 import a sound or a DX7 or CZ voice with the computer tool (without asking; writes the whole bank) [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 keep calibration or enter update mode by holding OCT- + OCT+ + HOME for 5 s (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 move or swap sounds from the device manager (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 place a loop from the device manager (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 place a sound as new or back in its saved factory position from the device manager (without asking; writes the whole bank) [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 place several selected sounds from the device manager (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 press REC in Advance mode when the current loop is not empty (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 rename a sound from the device manager and enter its new name (the computer asks first for that slot only; writes the whole bank) [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 rename a sound from the installer page and enter its new name (the computer asks first for that slot only; writes the whole bank) [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 rename a sound with the computer tool (without asking; writes the whole bank) [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 replace a selected user sound from the device manager (the computer asks first for that slot only; writes the whole bank) [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 replace factory sounds from the device manager (the computer asks first) [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 restore a backup from the installer page, device manager or computer tool (the computer asks once before restoring the whole backup) [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 restore a backup with the computer question skipped (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 restore factory order from the device manager (the computer asks first) [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 restore factory presets from the device manager (the computer asks first) [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 restore favourite marks from the computer (the computer asks first) [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 restore favourite marks with the computer question skipped (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 swap loop slots from the device manager (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"
       }
      ],
      "first_way_effect": "sounds can change or stop playing when separate samples, FM6 patches or SYN kits are replaced; saved notes and sound settings remain"
     },
     {
      "object": "working music kept by autosave",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start [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": "automatically during use [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": "automatically, only if a processor failure blocked Dual Core while its saved setting was On [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": "automatically, only if an older ChoralRoot favourites save is still stored and the space for its next save still contains data [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": "automatically, only if an older ChoralRoot session save is still stored and the space for its next save still contains data [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": "automatically, only if an older ChoralRoot sound collection is still saved and the space for its next save still contains data [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": "automatically, only if the space for its next save still needs clearing after a save or a failed start-up cleanup [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": "automatically, only if there is no saved sound collection and at least one supported older user sound can be read [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 choose Import 0.21 sounds from the device manager (the computer asks first) [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 choose Overwrite or Save as new and press OCT+ or SAVE (without asking; writes the whole bank) [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 choose Place all from the device manager (the computer asks first) [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 choose Undo from the device manager (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 choose a voice from a DX7 or CZ bank on the installer page and import it (without asking; writes the whole bank) [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 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) [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 confirm deletion or reset with OCT+ (asks for that slot only: press the button to confirm; writes the whole bank) [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 delete a sound from the installer page (the computer asks first for that slot only; writes the whole bank) [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 delete a sound with the computer question skipped (without asking; writes the whole bank) [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 delete a sound with the computer tool (the computer asks first for that slot only; writes the whole bank) [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 delete all user sounds or reset sounds to factory defaults from the device manager (the computer asks first) [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 delete selected sounds from the device manager (the computer asks first) [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 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 SAVE after recording, editing or clearing this loop (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 SAVE for a global save (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 import a Digitone sound from the installer page (the computer asks first for that slot only; writes the whole bank) [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 import a sound file or one DX7 or CZ voice from the installer page (without asking; writes the whole bank) [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 import a sound or a DX7 or CZ voice with the computer question skipped (without asking; writes the whole bank) [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 import a sound or a DX7 or CZ voice with the computer tool (without asking; writes the whole bank) [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 keep calibration or enter update mode by holding OCT- + OCT+ + HOME for 5 s (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 move or swap sounds from the device manager (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 place a loop from the device manager (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 place a sound as new or back in its saved factory position from the device manager (without asking; writes the whole bank) [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 place several selected sounds from the device manager (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 press REC in Advance mode when the current loop is not empty (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 rename a sound from the device manager and enter its new name (the computer asks first for that slot only; writes the whole bank) [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 rename a sound from the installer page and enter its new name (the computer asks first for that slot only; writes the whole bank) [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 rename a sound with the computer tool (without asking; writes the whole bank) [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 replace a selected user sound from the device manager (the computer asks first for that slot only; writes the whole bank) [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 replace factory sounds from the device manager (the computer asks first) [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 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) [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 restore factory presets from the device manager (the computer asks first) [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 restore favourite marks from the computer (the computer asks first) [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 restore favourite marks with the computer question skipped (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 send a DX7 bank (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you swap loop slots from the device manager (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"
       }
      ],
      "first_way_effect": "sounds can change or stop playing when separate samples, FM6 patches or SYN kits are replaced; saved notes and sound settings remain"
     },
     {
      "object": "sample slot USR2",
      "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": "sample slot USR3",
      "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": "USER sounds U01-U16",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start [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": "automatically during use [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": "automatically, only if an older ChoralRoot favourites save is still stored and the space for its next save still contains data [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": "automatically, only if an older ChoralRoot session save is still stored and the space for its next save still contains data [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": "automatically, only if an older ChoralRoot sound collection is still saved and the space for its next save still contains data [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": "automatically, only if the space for its next save still needs clearing after a save or a failed start-up cleanup [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": "automatically, only if there is no saved sound collection and at least one supported older user sound can be read [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 choose Import 0.21 sounds from the device manager (the computer asks first) [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 choose Overwrite or Save as new and press OCT+ or SAVE (without asking; writes the whole bank) [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 choose Place all from the device manager (the computer asks first) [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 choose Undo from the device manager (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 choose a voice from a DX7 or CZ bank on the installer page and import it (without asking; writes the whole bank) [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 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) [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 confirm deletion or reset with OCT+ (asks for that slot only: press the button to confirm; writes the whole bank) [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 delete a sound from the installer page (the computer asks first for that slot only; writes the whole bank) [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 delete a sound with the computer question skipped (without asking; writes the whole bank) [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 delete a sound with the computer tool (the computer asks first for that slot only; writes the whole bank) [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 delete all user sounds or reset sounds to factory defaults from the device manager (the computer asks first) [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 delete selected sounds from the device manager (the computer asks first) [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 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 SAVE after recording, editing or clearing this loop (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 SAVE for a global save (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 import a Digitone sound from the installer page (the computer asks first for that slot only; writes the whole bank) [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 import a sound file or one DX7 or CZ voice from the installer page (without asking; writes the whole bank) [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 import a sound or a DX7 or CZ voice with the computer question skipped (without asking; writes the whole bank) [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 import a sound or a DX7 or CZ voice with the computer tool (without asking; writes the whole bank) [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 keep calibration or enter update mode by holding OCT- + OCT+ + HOME for 5 s (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 move or swap sounds from the device manager (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 place a loop from the device manager (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 place a sound as new or back in its saved factory position from the device manager (without asking; writes the whole bank) [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 place several selected sounds from the device manager (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 press REC in Advance mode when the current loop is not empty (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 rename a sound from the device manager and enter its new name (the computer asks first for that slot only; writes the whole bank) [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 rename a sound from the installer page and enter its new name (the computer asks first for that slot only; writes the whole bank) [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 rename a sound with the computer tool (without asking; writes the whole bank) [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 replace a selected user sound from the device manager (the computer asks first for that slot only; writes the whole bank) [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 replace factory sounds from the device manager (the computer asks first) [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 restore a backup from the installer page, device manager or computer tool (the computer asks once before restoring the whole backup) [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 restore a backup with the computer question skipped (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 restore factory order from the device manager (the computer asks first) [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 restore factory presets from the device manager (the computer asks first) [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 restore favourite marks from the computer (the computer asks first) [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 restore favourite marks with the computer question skipped (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 swap loop slots from the device manager (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"
       }
      ],
      "first_way_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": "lost",
      "ways": [
       {
        "way": "automatically at first start [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": "automatically during use [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": "automatically, only if an older ChoralRoot favourites save is still stored and the space for its next save still contains data [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": "automatically, only if an older ChoralRoot session save is still stored and the space for its next save still contains data [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": "automatically, only if an older ChoralRoot sound collection is still saved and the space for its next save still contains data [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": "automatically, only if the space for its next save still needs clearing after a save or a failed start-up cleanup [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": "automatically, only if there is no saved sound collection and at least one supported older user sound can be read [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 choose Import 0.21 sounds from the device manager (the computer asks first) [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 choose Overwrite or Save as new and press OCT+ or SAVE (without asking; writes the whole bank) [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 choose Place all from the device manager (the computer asks first) [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 choose Undo from the device manager (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 choose a voice from a DX7 or CZ bank on the installer page and import it (without asking; writes the whole bank) [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 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) [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 confirm deletion or reset with OCT+ (asks for that slot only: press the button to confirm; writes the whole bank) [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 delete a sound from the installer page (the computer asks first for that slot only; writes the whole bank) [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 delete a sound with the computer question skipped (without asking; writes the whole bank) [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 delete a sound with the computer tool (the computer asks first for that slot only; writes the whole bank) [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 delete all user sounds or reset sounds to factory defaults from the device manager (the computer asks first) [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 delete selected sounds from the device manager (the computer asks first) [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 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 SAVE after recording, editing or clearing this loop (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 SAVE for a global save (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 import a Digitone sound from the installer page (the computer asks first for that slot only; writes the whole bank) [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 import a sound file or one DX7 or CZ voice from the installer page (without asking; writes the whole bank) [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 import a sound or a DX7 or CZ voice with the computer question skipped (without asking; writes the whole bank) [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 import a sound or a DX7 or CZ voice with the computer tool (without asking; writes the whole bank) [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 keep calibration or enter update mode by holding OCT- + OCT+ + HOME for 5 s (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 move or swap sounds from the device manager (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 place a loop from the device manager (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 place a sound as new or back in its saved factory position from the device manager (without asking; writes the whole bank) [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 place several selected sounds from the device manager (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 press REC in Advance mode when the current loop is not empty (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 rename a sound from the device manager and enter its new name (the computer asks first for that slot only; writes the whole bank) [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 rename a sound from the installer page and enter its new name (the computer asks first for that slot only; writes the whole bank) [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 rename a sound with the computer tool (without asking; writes the whole bank) [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 replace a selected user sound from the device manager (the computer asks first for that slot only; writes the whole bank) [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 replace factory sounds from the device manager (the computer asks first) [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 restore a backup from the installer page, device manager or computer tool (the computer asks once before restoring the whole backup) [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 restore a backup with the computer question skipped (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 restore factory order from the device manager (the computer asks first) [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 restore factory presets from the device manager (the computer asks first) [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 restore favourite marks from the computer (the computer asks first) [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 restore favourite marks with the computer question skipped (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 swap loop slots from the device manager (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"
       }
      ],
      "first_way_effect": "sounds can change or stop playing when separate samples, FM6 patches or SYN kits are replaced; saved notes and sound settings remain"
     },
     {
      "object": "settings, calibration, song order, SYN1-SYN4 kits and MIDI preferences",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use",
        "effect": "lost"
       },
       {
        "way": "automatically, only if a processor failure blocked Dual Core while its saved setting was On",
        "effect": "lost"
       },
       {
        "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 hold OCT- and OCT+ while powering on (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you hold SAVE for a global save (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you keep calibration or enter update mode by holding OCT- + OCT+ + HOME for 5 s (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"
       }
      ]
     },
     {
      "object": "sample slot USR1",
      "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)"
       }
      ]
     }
    ],
    "possibly_at_risk": [],
    "carried_over": [],
    "kept_unseen": [],
    "notes": [],
    "owner_text": "At risk by itself: 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; other writes can also erase it); 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; other writes can also erase it); 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; other writes can also erase it); 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; other writes can also erase it); working music 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; other writes can also erase it); sample slot USR2; sample slot USR3; 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; other writes can also erase it); 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; other writes can also erase it); settings, calibration, song order, SYN1-SYN4 kits and MIDI preferences. At risk when you act: sample slot USR1.",
    "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": "saved section A",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use (its RESTORE LAST is on by default) [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": "automatically during use [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": "automatically, only if an earlier compatible bank sent to the FM-1 is still stored and is newer than the saved bank, or the saved bank is invalid [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 calibrate the controls (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 change settings from the web editor (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 erase a sample from the web editor (the computer asks first) [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 leave SLICES after editing slice positions set by hand (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 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 send an FM6 voice bank with computer commands (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 upload a sample from the web editor (the computer asks first) [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 upload or erase a sample with the computer tool (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"
       }
      ],
      "first_way_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": "lost",
      "ways": [
       {
        "way": "automatically during use (its RESTORE LAST is on by default) [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": "automatically during use [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": "automatically, only if an earlier compatible bank sent to the FM-1 is still stored and is newer than the saved bank, or the saved bank is invalid [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 calibrate the controls (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 change settings from the web editor (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 erase a sample from the web editor (the computer asks first) [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 leave SLICES after editing slice positions set by hand (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 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 send an FM6 voice bank with computer commands (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 upload a sample from the web editor (the computer asks first) [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 upload or erase a sample with the computer tool (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"
       }
      ],
      "first_way_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": "lost",
      "ways": [
       {
        "way": "automatically during use (its RESTORE LAST is on by default) [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": "automatically during use [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": "automatically, only if an earlier compatible bank sent to the FM-1 is still stored and is newer than the saved bank, or the saved bank is invalid [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 calibrate the controls (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 change settings from the web editor (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 erase a sample from the web editor (the computer asks first) [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 leave SLICES after editing slice positions set by hand (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 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 send an FM6 voice bank with computer commands (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 upload a sample from the web editor (the computer asks first) [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 upload or erase a sample with the computer tool (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"
       }
      ],
      "first_way_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": "lost",
      "ways": [
       {
        "way": "automatically during use (its RESTORE LAST is on by default) [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": "automatically during use [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": "automatically, only if an earlier compatible bank sent to the FM-1 is still stored and is newer than the saved bank, or the saved bank is invalid [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 calibrate the controls (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 change settings from the web editor (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 erase a sample from the web editor (the computer asks first) [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 leave SLICES after editing slice positions set by hand (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 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 send an FM6 voice bank with computer commands (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 upload a sample from the web editor (the computer asks first) [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 upload or erase a sample with the computer tool (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"
       }
      ],
      "first_way_effect": "sounds can change or stop playing when separate samples, FM6 patches or SYN kits are replaced; saved notes and sound settings remain"
     },
     {
      "object": "working music kept by autosave",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use (its RESTORE LAST is on by default) [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": "automatically during use [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": "automatically, only if an earlier compatible bank sent to the FM-1 is still stored and is newer than the saved bank, or the saved bank is invalid [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": "automatically, only if no readable bank of FM6 patches for your sounds is left and a compatible older FM6 bank is still stored",
        "effect": "lost"
       },
       {
        "way": "when you calibrate the controls (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 change settings from the web editor (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 erase a sample from the web editor (the computer asks first) [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 leave SLICES after editing slice positions set by hand (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 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 (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 send an FM6 voice bank with computer commands (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 store the current sound from the web editor (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you upload a sample from the web editor (the computer asks first) [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 upload or erase a sample with the computer tool (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"
       }
      ],
      "first_way_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": "lost",
      "ways": [
       {
        "way": "automatically during use (its RESTORE LAST is on by default) [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": "automatically, only if an earlier compatible bank sent to the FM-1 is still stored and is newer than the saved bank, or the saved bank is invalid [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 erase a sample from the web editor (the computer asks first) [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 leave SLICES after editing slice positions set by hand (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 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 send an FM6 voice bank with computer commands (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 store the current sound from the web editor (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you upload a sample from the web editor (the computer asks first) [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 upload or erase a sample with the computer tool (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"
       }
      ],
      "first_way_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": "lost",
      "ways": [
       {
        "way": "automatically during use (its RESTORE LAST is on by default) [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": "automatically, only if an earlier compatible bank sent to the FM-1 is still stored and is newer than the saved bank, or the saved bank is invalid [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 erase a sample from the web editor (the computer asks first) [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 leave SLICES after editing slice positions set by hand (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 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 send an FM6 voice bank with computer commands (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 store the current sound from the web editor (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you upload a sample from the web editor (the computer asks first) [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 upload or erase a sample with the computer tool (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"
       }
      ],
      "first_way_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": "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, calibration, song order, SYN1-SYN4 kits and MIDI preferences",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use",
        "effect": "lost"
       },
       {
        "way": "when you calibrate the controls (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you change settings from 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"
       }
      ]
     },
     {
      "object": "sample slot USR4",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically, only if an earlier compatible bank sent to the FM-1 is still stored and is newer than the saved bank, or the saved bank is invalid",
        "effect": "lost"
       },
       {
        "way": "when you send an FM6 voice bank with computer commands (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "sample slot USR1",
      "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": "sample slot USR2",
      "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": "sample slot USR3",
      "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": [
     "GHOULBOX may start with RESTORE LAST ON after ORBIT, even if you turned it OFF before. ORBIT saves its own settings at several points, replacing the earlier settings with ones GHOULBOX cannot read; an older choice saved by another firmware can also mean the opposite here. Check MENU > SYSTEM > RESTORE LAST before you edit. ON allows automatic saving after edits and a pause with playback stopped, keys and buttons released, and no sound; OFF stops that autosave.",
     "GHOULBOX reads sample slot USR1 until you write over the saved data.",
     "GHOULBOX reads sample slot USR2 until you write over the saved data.",
     "GHOULBOX reads sample slot USR3 until you write over the saved data."
    ],
    "owner_text": "At risk by itself: 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; other writes can also erase it); 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; other writes can also erase it); 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; other writes can also erase it); 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; other writes can also erase it); working music 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; other writes can also erase it); 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; other writes can also erase it); 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; other writes can also erase it); FM6 bank B1-B27; settings, calibration, song order, SYN1-SYN4 kits and MIDI preferences. At risk by itself, under a condition: sample slot USR4. At risk when you act: sample slot USR1; sample slot USR2; sample slot USR3. GHOULBOX may start with RESTORE LAST ON after ORBIT, even if you turned it OFF before. ORBIT saves its own settings at several points, replacing the earlier settings with ones GHOULBOX cannot read; an older choice saved by another firmware can also mean the opposite here. Check MENU > SYSTEM > RESTORE LAST before you edit. ON allows automatic saving after edits and a pause with playback stopped, keys and buttons released, and no sound; OFF stops that autosave. GHOULBOX reads sample slot USR1 until you write over the saved data. GHOULBOX reads sample slot USR2 until you write over the saved data. GHOULBOX reads sample slot USR3 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": "saved section 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": "saved section 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": "saved section 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": "saved section 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": "working music kept by autosave",
      "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": "sample slot USR1",
      "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": "sample slot USR2",
      "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": "sample slot USR3",
      "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": "USER sounds U01-U16",
      "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": "USER sounds U17-U32",
      "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": "FM6 bank B1-B27",
      "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": "sample slot USR4",
      "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, calibration, song order, SYN1-SYN4 kits and MIDI preferences",
      "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: saved section A; saved section B; saved section C; saved section D; working music kept by autosave. At risk when you act: sample slot USR1; sample slot USR2; sample slot USR3; USER sounds U01-U16; USER sounds U17-U32; FM6 bank B1-B27; sample slot USR4; settings, calibration, song order, SYN1-SYN4 kits and MIDI preferences. 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, calibration, song order, SYN1-SYN4 kits and MIDI preferences",
      "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"
       }
      ]
     },
     {
      "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": "automatically during use [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 confirm deletion of the active user slot (asks first: press again to confirm) [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 press SAVE in the save screen (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 release a short SAVE (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": "automatically during use [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 confirm deletion of the active user slot (asks first: press again to confirm) [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 press SAVE in the save screen (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 release a short SAVE (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": "automatically during use [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 confirm deletion of the active user slot (asks first: press again to confirm) [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 press SAVE in the save screen (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 release a short SAVE (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": "automatically during use [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 confirm deletion of the active user slot (asks first: press again to confirm) [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 press SAVE in the save screen (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 release a short SAVE (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": "working music 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": "automatically during use [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 confirm deletion of the active user slot (asks first: press again to confirm) [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 press SAVE in the save screen (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 release a short SAVE (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": [
     "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, 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); working music 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). 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": "saved section A",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use [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 calibrate the panel (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 remember or forget a Bluetooth device (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 save a project (asks first or waits for you to turn again)",
        "effect": "lost"
       }
      ],
      "first_way_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": "lost",
      "ways": [
       {
        "way": "automatically during use [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 calibrate the panel (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 remember or forget a Bluetooth device (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 save a project (asks first or waits for you to turn again)",
        "effect": "lost"
       }
      ],
      "first_way_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": "lost",
      "ways": [
       {
        "way": "automatically during use [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 calibrate the panel (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 remember or forget a Bluetooth device (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 save a project (asks first or waits for you to turn again)",
        "effect": "lost"
       }
      ],
      "first_way_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": "lost",
      "ways": [
       {
        "way": "automatically during use [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 calibrate the panel (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 remember or forget a Bluetooth device (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 save a project (asks first or waits for you to turn again)",
        "effect": "lost"
       }
      ],
      "first_way_effect": "sounds can change or stop playing when separate samples, FM6 patches or SYN kits are replaced; saved notes and sound settings remain"
     },
     {
      "object": "settings, calibration, song order, SYN1-SYN4 kits and MIDI preferences",
      "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": "working music 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": "automatically during use [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 calibrate the panel (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 remember or forget a Bluetooth device (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": [
     "sample slot USR1 (Hortator uses its own one-shot sound engines, so saved loops and slices play differently)",
     "sample slot USR2 (Hortator uses its own one-shot sound engines, so saved loops and slices play differently)",
     "sample slot USR3 (Hortator uses its own one-shot sound engines, so saved loops and slices play differently)"
    ],
    "kept_unseen": [],
    "notes": [],
    "owner_text": "At risk by itself: 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; other writes can also erase it); 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; other writes can also erase it); 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; other writes can also erase it); 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; other writes can also erase it); settings, calibration, song order, SYN1-SYN4 kits and MIDI preferences; working music 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). Carried over: sample slot USR1 (Hortator uses its own one-shot sound engines, so saved loops and slices play differently); sample slot USR2 (Hortator uses its own one-shot sound engines, so saved loops and slices play differently); sample slot USR3 (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": "sample slot USR4",
      "effect": "damaged (part written over)",
      "ways": [
       {
        "way": "automatically during use",
        "effect": "damaged (part written over)"
       },
       {
        "way": "when you request a copy into pattern 1 (without asking)",
        "effect": "damaged (part written over)"
       },
       {
        "way": "when you request a copy into pattern 2 (without asking)",
        "effect": "damaged (part written over)"
       },
       {
        "way": "when you request a copy into pattern 3 (without asking)",
        "effect": "damaged (part written over)"
       },
       {
        "way": "when you request a copy into pattern 4 (without asking)",
        "effect": "damaged (part written over)"
       },
       {
        "way": "when you request a copy into pattern 5 (without asking)",
        "effect": "damaged (part written over)"
       },
       {
        "way": "when you request a copy into pattern 6 (without asking)",
        "effect": "damaged (part written over)"
       },
       {
        "way": "when you request a copy into pattern 7 (without asking)",
        "effect": "damaged (part written over)"
       },
       {
        "way": "when you tap SAVE in the sequencer (without asking)",
        "effect": "damaged (part written over)"
       }
      ]
     },
     {
      "object": "settings, calibration, song order, SYN1-SYN4 kits and MIDI preferences",
      "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"
       }
      ]
     },
     {
      "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": "automatically during use [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 request a copy into pattern 1 (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 request a copy into pattern 2 (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 request a copy into pattern 3 (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 request a copy into pattern 4 (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 request a copy into pattern 5 (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 request a copy into pattern 6 (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 request a copy into pattern 7 (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 SAVE in the sequencer (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 SAVE twice outside the sequencer (asks for that slot only: press again to confirm; writes the whole bank) [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": "automatically during use [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 request a copy into pattern 1 (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 request a copy into pattern 2 (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 request a copy into pattern 3 (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 request a copy into pattern 4 (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 request a copy into pattern 5 (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 request a copy into pattern 6 (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 request a copy into pattern 7 (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 SAVE in the sequencer (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 SAVE twice outside the sequencer (asks for that slot only: press again to confirm; writes the whole bank) [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": "automatically during use [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 request a copy into pattern 1 (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 request a copy into pattern 2 (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 request a copy into pattern 3 (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 request a copy into pattern 4 (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 request a copy into pattern 5 (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 request a copy into pattern 6 (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 request a copy into pattern 7 (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 SAVE in the sequencer (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 SAVE twice outside the sequencer (asks for that slot only: press again to confirm; writes the whole bank) [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": "automatically during use [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 request a copy into pattern 1 (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 request a copy into pattern 2 (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 request a copy into pattern 3 (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 request a copy into pattern 4 (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 request a copy into pattern 5 (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 request a copy into pattern 6 (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 request a copy into pattern 7 (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 SAVE in the sequencer (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 SAVE twice outside the sequencer (asks for that slot only: press again to confirm; writes the whole bank) [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": "automatically during use [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 request a copy into pattern 1 (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 request a copy into pattern 2 (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 request a copy into pattern 3 (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 request a copy into pattern 4 (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 request a copy into pattern 5 (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 request a copy into pattern 6 (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 request a copy into pattern 7 (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 SAVE in the sequencer (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": "automatically during use [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 request a copy into pattern 1 (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 request a copy into pattern 2 (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 request a copy into pattern 3 (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 request a copy into pattern 4 (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 request a copy into pattern 5 (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 request a copy into pattern 6 (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 request a copy into pattern 7 (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 SAVE in the sequencer (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": "working music 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": "automatically during use [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 request a copy into pattern 1 (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 request a copy into pattern 2 (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 request a copy into pattern 3 (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 request a copy into pattern 4 (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 request a copy into pattern 5 (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 request a copy into pattern 6 (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 request a copy into pattern 7 (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 SAVE in the sequencer (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 SAVE twice outside the sequencer (asks for that slot only: press again to confirm; writes the whole bank) [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: sample slot USR4 (damaged (part written over)); 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); working music 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)"
   },
   {
    "to": "polly",
    "name": "Polly",
    "flags": "AS",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "saved section 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 copy a Band groove with SAVE and a white key (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 install a QY70 style bank from the computer (the computer asks first) [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 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) [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 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": "saved section 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 install a QY70 style bank from the computer (the computer asks first) [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 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) [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 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": "saved section 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 install a QY70 style bank from the computer (the computer asks first) [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 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) [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 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": "saved section 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 install a QY70 style bank from the computer (the computer asks first) [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 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) [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 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": "working music kept by autosave",
      "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) [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 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) [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 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": "sample slot USR1",
      "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": "sample slot USR2",
      "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": "USER sounds U01-U16",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use [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 choose COPY SONG (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 complete power-on hardware calibration (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you confirm FACTORY RESET (asks first: press again to confirm) [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 confirm NEW SONG or FREE (asks first: press again to confirm) [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 copy a Band groove with SAVE and a white key (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 install a QY70 style bank from the computer (the computer asks first) [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 press SAVE (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 restore a backup from the computer [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 send a QY70 style bank directly with a computer tool (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 send a backup for USB restore with computer questions skipped (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 start a USB backup while playback is stopped, or enter a test session (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"
       }
      ],
      "first_way_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": "lost",
      "ways": [
       {
        "way": "automatically during use [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 choose COPY SONG (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 confirm FACTORY RESET (asks first: press again to confirm) [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 confirm NEW SONG or FREE (asks first: press again to confirm) [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 copy a Band groove with SAVE and a white key (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 install a QY70 style bank from the computer (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you press SAVE (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 restore a backup from the computer [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 send a QY70 style bank directly with a computer tool (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you send a backup for USB restore with computer questions skipped (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 start a USB backup while playback is stopped, or enter a test session (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"
       }
      ],
      "first_way_effect": "sounds can change or stop playing when separate samples, FM6 patches or SYN kits are replaced; saved notes and sound settings remain"
     },
     {
      "object": "settings, calibration, song order, SYN1-SYN4 kits and MIDI preferences",
      "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": "sample slot USR3",
      "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": "FM6 bank B1-B27",
      "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": "sample slot USR4",
      "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: saved section A; saved section B; saved section C; saved section D; working music kept by autosave; sample slot USR1; sample slot USR2; 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; other writes can also erase it); 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; other writes can also erase it); settings, calibration, song order, SYN1-SYN4 kits and MIDI preferences. At risk when you act: sample slot USR3; FM6 bank B1-B27; sample slot USR4. 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": "saved section A",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start [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": "automatically during use (its RESTORE LAST is on by default) [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": "automatically during use [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": "automatically, only if Skiff starts without recovering from a crash, freeze or failed start and has not already cleared the old scene storage [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": "automatically, only if a readable old Felucca/Skiff project needs conversion, with room for its patterns",
        "effect": "lost"
       },
       {
        "way": "automatically, only if a readable old autosave needs conversion and its patterns fit [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": "automatically, only if an older project can be read and its patterns need a new format [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 calibrate the panel or change editor preferences (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 choose SAVE AS in the web editor (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you confirm RESET SETTINGS (asks first: press again to confirm) [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 confirm a sample upload in the web editor (the computer asks first) [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 confirm clearing a pattern or song entry (asks for that slot only: press again to confirm; writes the whole bank) [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 confirm erasing a sample slot (the computer asks first) [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 copy or change an entry’s pattern (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 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 (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 save a project with the web editor’s older save command (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you upload or erase a sample with the computer tool (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"
       }
      ],
      "first_way_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": "lost",
      "ways": [
       {
        "way": "automatically at first start [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": "automatically during use (its RESTORE LAST is on by default) [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": "automatically during use [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": "automatically, only if Skiff starts without recovering from a crash, freeze or failed start and has not already cleared the old scene storage [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": "automatically, only if a readable old Felucca/Skiff project needs conversion, with room for its patterns",
        "effect": "lost"
       },
       {
        "way": "automatically, only if a readable old autosave needs conversion and its patterns fit [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": "automatically, only if an older project can be read and its patterns need a new format [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 calibrate the panel or change editor preferences (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 choose SAVE AS in the web editor (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you confirm RESET SETTINGS (asks first: press again to confirm) [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 confirm a sample upload in the web editor (the computer asks first) [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 confirm clearing a pattern or song entry (asks for that slot only: press again to confirm; writes the whole bank) [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 confirm erasing a sample slot (the computer asks first) [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 copy or change an entry’s pattern (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 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 (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 save a project with the web editor’s older save command (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you upload or erase a sample with the computer tool (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"
       }
      ],
      "first_way_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": "lost",
      "ways": [
       {
        "way": "automatically at first start [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": "automatically during use (its RESTORE LAST is on by default) [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": "automatically during use [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": "automatically, only if Skiff starts without recovering from a crash, freeze or failed start and has not already cleared the old scene storage [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": "automatically, only if a readable old Felucca/Skiff project needs conversion, with room for its patterns",
        "effect": "lost"
       },
       {
        "way": "automatically, only if a readable old autosave needs conversion and its patterns fit [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": "automatically, only if an older project can be read and its patterns need a new format [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 calibrate the panel or change editor preferences (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 choose SAVE AS in the web editor (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you confirm RESET SETTINGS (asks first: press again to confirm) [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 confirm a sample upload in the web editor (the computer asks first) [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 confirm clearing a pattern or song entry (asks for that slot only: press again to confirm; writes the whole bank) [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 confirm erasing a sample slot (the computer asks first) [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 copy or change an entry’s pattern (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 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 (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 save a project with the web editor’s older save command (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you upload or erase a sample with the computer tool (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"
       }
      ],
      "first_way_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": "lost",
      "ways": [
       {
        "way": "automatically at first start [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": "automatically during use (its RESTORE LAST is on by default) [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": "automatically during use [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": "automatically, only if Skiff starts without recovering from a crash, freeze or failed start and has not already cleared the old scene storage [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": "automatically, only if a readable old Felucca/Skiff project needs conversion, with room for its patterns",
        "effect": "lost"
       },
       {
        "way": "automatically, only if a readable old autosave needs conversion and its patterns fit [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": "automatically, only if an older project can be read and its patterns need a new format [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 calibrate the panel or change editor preferences (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 choose SAVE AS in the web editor (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you confirm RESET SETTINGS (asks first: press again to confirm) [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 confirm a sample upload in the web editor (the computer asks first) [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 confirm clearing a pattern or song entry (asks for that slot only: press again to confirm; writes the whole bank) [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 confirm erasing a sample slot (the computer asks first) [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 copy or change an entry’s pattern (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 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 (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 save a project with the web editor’s older save command (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you upload or erase a sample with the computer tool (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"
       }
      ],
      "first_way_effect": "sounds can change or stop playing when separate samples, FM6 patches or SYN kits are replaced; saved notes and sound settings remain"
     },
     {
      "object": "working music kept by autosave",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start [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": "automatically during use (its RESTORE LAST is on by default) [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": "automatically during use [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": "automatically, only if Skiff starts without recovering from a crash, freeze or failed start and has not already cleared the old scene storage [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": "automatically, only if a readable old autosave needs conversion and its patterns fit [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": "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": "automatically, only if an older project can be read and its patterns need a new format [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 calibrate the panel or change editor preferences (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 confirm RESET SETTINGS (asks first: press again to confirm) [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 confirm a sample upload in the web editor (the computer asks first) [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 confirm clearing a pattern or song entry (asks for that slot only: press again to confirm; writes the whole bank) [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 confirm erasing a sample slot (the computer asks first) [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 copy or change an entry’s pattern (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 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 (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 save an FM6 user sound (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you send an FM6 patch directly with a MIDI tool (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you send an FM6 sound from the 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"
       },
       {
        "way": "when you upload or erase a sample with the computer tool (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"
       }
      ],
      "first_way_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": "lost",
      "ways": [
       {
        "way": "automatically during use (its RESTORE LAST is on by default) [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": "automatically during use [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": "automatically, only if a readable old autosave needs conversion and its patterns fit [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": "automatically, only if an older project can be read and its patterns need a new format [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 confirm a sample upload in the web editor (the computer asks first) [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 confirm clearing a pattern or song entry (asks for that slot only: press again to confirm; writes the whole bank) [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 confirm erasing a sample slot (the computer asks first) [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 copy or change an entry’s pattern (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 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 (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 save, import, erase or rename a user sound (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you send a user sound from the editor (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you store the current sound from the editor (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you upload or erase a sample with the computer tool (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"
       }
      ],
      "first_way_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": "lost",
      "ways": [
       {
        "way": "automatically during use (its RESTORE LAST is on by default) [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": "automatically during use [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": "automatically, only if a readable old autosave needs conversion and its patterns fit [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": "automatically, only if an older project can be read and its patterns need a new format [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 confirm a sample upload in the web editor (the computer asks first) [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 confirm clearing a pattern or song entry (asks for that slot only: press again to confirm; writes the whole bank) [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 confirm erasing a sample slot (the computer asks first) [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 copy or change an entry’s pattern (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 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 (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 save, import, erase or rename a user sound (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you send a user sound from the editor (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you store the current sound from the editor (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you upload or erase a sample with the computer tool (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"
       }
      ],
      "first_way_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": "automatically during use (its RESTORE LAST is on by default)",
        "effect": "lost"
       },
       {
        "way": "automatically, only if a readable old autosave needs conversion and its patterns fit",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "sample slot USR4",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use",
        "effect": "lost"
       },
       {
        "way": "automatically, only if an older project can be read and its patterns need a new format",
        "effect": "lost"
       },
       {
        "way": "when you confirm clearing a pattern or song entry (asks for that slot only: press again to confirm; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you copy or change an entry’s pattern (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 (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "settings, calibration, song order, SYN1-SYN4 kits and MIDI preferences",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start",
        "effect": "lost"
       },
       {
        "way": "automatically during use",
        "effect": "lost"
       },
       {
        "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": "lost"
       },
       {
        "way": "when you calibrate the panel or change editor preferences (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you confirm RESET SETTINGS (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"
       }
      ]
     },
     {
      "object": "sample slot USR1",
      "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": "sample slot USR2",
      "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": "sample slot USR3",
      "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"
       }
      ]
     }
    ],
    "possibly_at_risk": [],
    "carried_over": [],
    "kept_unseen": [],
    "notes": [
     "Unreadable settings use Skiff’s default RESTORE LAST ON.",
     "Skiff reads sample slot USR1 until you write over the saved data. Skiff uses its own sound engines, so saved loops or slices can play differently.",
     "Skiff reads sample slot USR2 until you write over the saved data. Skiff uses its own sound engines, so saved loops or slices can play differently.",
     "Skiff reads sample slot USR3 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: 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; other writes can also erase it); 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; other writes can also erase it); 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; other writes can also erase it); 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; other writes can also erase it); working music 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; other writes can also erase it); 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; other writes can also erase it); 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; other writes can also erase it); FM6 bank B1-B27; sample slot USR4; settings, calibration, song order, SYN1-SYN4 kits and MIDI preferences; sample slot USR1; sample slot USR2; sample slot USR3. Unreadable settings use Skiff’s default RESTORE LAST ON. Skiff reads sample slot USR1 until you write over the saved data. Skiff uses its own sound engines, so saved loops or slices can play differently. Skiff reads sample slot USR2 until you write over the saved data. Skiff uses its own sound engines, so saved loops or slices can play differently. Skiff reads sample slot USR3 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": "ACS",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "saved section A",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use [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": "automatically, only when the saved input setting selects one MIDI channel rather than NOTES or CLOCK [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": "automatically, only when you leave a bank with unsaved voice changes and a bank is active [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 calibrate the controls at power-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 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) [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 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 MY KIT by tapping SAVE twice from KIT or LANE (asks first: press again to confirm) [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 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 save the active bank by tapping EDIT twice on Store (asks first: press again to confirm) [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 save the active bank from the DX7 list (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 save the active bank from the web editor (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 save the song order (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 send MY KIT from the web editor (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 send a DX7 bank from the web editor (the computer asks first) [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 send or clear a section with computer commands (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you send or erase a DX7 bank with a computer tool (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 send settings, MIDI controls or a theme with computer commands (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"
       }
      ],
      "first_way_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": "lost",
      "ways": [
       {
        "way": "automatically during use [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": "automatically, only when the saved input setting selects one MIDI channel rather than NOTES or CLOCK [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": "automatically, only when you leave a bank with unsaved voice changes and a bank is active [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 calibrate the controls at power-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 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) [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 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 MY KIT by tapping SAVE twice from KIT or LANE (asks first: press again to confirm) [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 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 save the active bank by tapping EDIT twice on Store (asks first: press again to confirm) [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 save the active bank from the DX7 list (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 save the active bank from the web editor (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 save the song order (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 send MY KIT from the web editor (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 send a DX7 bank from the web editor (the computer asks first) [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 send or clear a section with computer commands (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you send or erase a DX7 bank with a computer tool (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 send settings, MIDI controls or a theme with computer commands (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"
       }
      ],
      "first_way_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": "lost",
      "ways": [
       {
        "way": "automatically during use [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": "automatically, only when the saved input setting selects one MIDI channel rather than NOTES or CLOCK [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": "automatically, only when you leave a bank with unsaved voice changes and a bank is active [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 calibrate the controls at power-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 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) [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 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 MY KIT by tapping SAVE twice from KIT or LANE (asks first: press again to confirm) [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 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 save the active bank by tapping EDIT twice on Store (asks first: press again to confirm) [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 save the active bank from the DX7 list (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 save the active bank from the web editor (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 save the song order (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 send MY KIT from the web editor (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 send a DX7 bank from the web editor (the computer asks first) [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 send or clear a section with computer commands (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you send or erase a DX7 bank with a computer tool (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 send settings, MIDI controls or a theme with computer commands (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"
       }
      ],
      "first_way_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": "lost",
      "ways": [
       {
        "way": "automatically during use [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": "automatically, only when the saved input setting selects one MIDI channel rather than NOTES or CLOCK [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": "automatically, only when you leave a bank with unsaved voice changes and a bank is active [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 calibrate the controls at power-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 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) [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 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 MY KIT by tapping SAVE twice from KIT or LANE (asks first: press again to confirm) [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 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 save the active bank by tapping EDIT twice on Store (asks first: press again to confirm) [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 save the active bank from the DX7 list (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 save the active bank from the web editor (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 save the song order (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 send MY KIT from the web editor (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 send a DX7 bank from the web editor (the computer asks first) [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 send or clear a section with computer commands (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you send or erase a DX7 bank with a computer tool (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 send settings, MIDI controls or a theme with computer commands (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"
       }
      ],
      "first_way_effect": "sounds can change or stop playing when separate samples, FM6 patches or SYN kits are replaced; saved notes and sound settings remain"
     },
     {
      "object": "working music kept by autosave",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start",
        "effect": "lost"
       },
       {
        "way": "automatically during use",
        "effect": "lost"
       },
       {
        "way": "automatically, only when the saved input setting selects one MIDI channel rather than NOTES or CLOCK [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": "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": "automatically, only when you leave a bank with unsaved voice changes and a bank is active [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 calibrate the controls at power-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 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) [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 press REC on the SONG screen to save a section and the song order (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 restore a backup from the editor (the computer asks once before restoring the whole backup) [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 save MY KIT by tapping SAVE twice from KIT or LANE (asks first: press again to confirm) [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 save the active bank by tapping EDIT twice on Store (asks first: press again to confirm) [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 save the active bank from the DX7 list (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 save the active bank from the web editor (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 save the song order (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 send MY KIT from the web editor (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 send a DX7 bank from the web editor (the computer asks first) [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 send or erase a DX7 bank with a computer tool (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 send settings, MIDI controls or a theme with computer commands (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": "sample slot USR2",
      "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": "USER sounds U01-U16",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use [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": "automatically, only when you leave a bank with unsaved voice changes and a bank is active [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 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) [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 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) [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 save or erase a user sound (asks or waits for you to turn again for that slot only; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you save the active bank by tapping EDIT twice on Store (asks first: press again to confirm) [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 save the active bank from the DX7 list (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 save the active bank from the web editor (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 save the current sound from the editor (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you send MY KIT from the web editor (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 send a DX7 bank from the web editor (the computer asks first) [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 send a user sound from the editor (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you send or erase a DX7 bank with a computer tool (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"
       }
      ],
      "first_way_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": "lost",
      "ways": [
       {
        "way": "automatically during use [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": "automatically, only when you leave a bank with unsaved voice changes and a bank is active [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 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) [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 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) [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 save or erase a user sound (asks or waits for you to turn again for that slot only; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you save the active bank by tapping EDIT twice on Store (asks first: press again to confirm) [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 save the active bank from the DX7 list (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 save the active bank from the web editor (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 save the current sound from the editor (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you send MY KIT from the web editor (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 send a DX7 bank from the web editor (the computer asks first) [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 send a user sound from the editor (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you send or erase a DX7 bank with a computer tool (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"
       }
      ],
      "first_way_effect": "sounds can change or stop playing when separate samples, FM6 patches or SYN kits are replaced; saved notes and sound settings remain"
     },
     {
      "object": "settings, calibration, song order, SYN1-SYN4 kits and MIDI preferences",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use",
        "effect": "changed to the new format: A settings save drops the source firmware’s synthesized drum kits and any saved MIDI controls stored after them. Favourite and display-option numbers can also mean different things"
       },
       {
        "way": "automatically, only when the saved input setting selects one MIDI channel rather than NOTES or CLOCK",
        "effect": "changed to the new format: A settings save drops the source firmware’s synthesized drum kits and any saved MIDI controls stored after them. Favourite and display-option numbers can also mean different things"
       },
       {
        "way": "when you calibrate the controls at power-on (without asking)",
        "effect": "changed to the new format: A settings save drops the source firmware’s synthesized drum kits and any saved MIDI controls stored after them. Favourite and display-option numbers can also mean different things"
       },
       {
        "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": "changed to the new format: A settings save drops the source firmware’s synthesized drum kits and any saved MIDI controls stored after them. Favourite and display-option numbers can also mean different things"
       },
       {
        "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": "changed to the new format: A settings save drops the source firmware’s synthesized drum kits and any saved MIDI controls stored after them. Favourite and display-option numbers can also mean different things"
       },
       {
        "way": "when you send settings, MIDI controls or a theme with computer commands (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "sample slot USR1",
      "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"
       }
      ]
     }
    ],
    "possibly_at_risk": [],
    "carried_over": [],
    "kept_unseen": [],
    "notes": [],
    "owner_text": "At risk by itself: 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; other writes can also erase it); 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; other writes can also erase it); 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; other writes can also erase it); 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; other writes can also erase it); working music kept by autosave; sample slot USR2; 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; other writes can also erase it); 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; other writes can also erase it); settings, calibration, song order, SYN1-SYN4 kits and MIDI preferences. At risk by itself, under a condition: sample slot USR1.",
    "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": "saved section A",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use [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": "automatically, only if a greeting name was entered in the installer [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": "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) [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 change Rainbow preferences or save its greeting name (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 edit sample slice markers (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 erase a sample from the editor (the computer asks first) [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 erase a user preset (asks first: press again to confirm) [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 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) [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 save a project (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save a project from the editor (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you send a sample to the FM-1 from the editor (the computer asks first) [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 send settings or a name from the editor (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 upload or erase a sample with the computer tool (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"
       }
      ],
      "first_way_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": "lost",
      "ways": [
       {
        "way": "automatically during use [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": "automatically, only if a greeting name was entered in the installer [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": "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) [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 change Rainbow preferences or save its greeting name (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 edit sample slice markers (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 erase a sample from the editor (the computer asks first) [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 erase a user preset (asks first: press again to confirm) [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 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) [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 save a project (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save a project from the editor (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you send a sample to the FM-1 from the editor (the computer asks first) [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 send settings or a name from the editor (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 upload or erase a sample with the computer tool (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"
       }
      ],
      "first_way_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": "lost",
      "ways": [
       {
        "way": "automatically during use [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": "automatically, only if a greeting name was entered in the installer [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": "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) [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 change Rainbow preferences or save its greeting name (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 edit sample slice markers (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 erase a sample from the editor (the computer asks first) [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 erase a user preset (asks first: press again to confirm) [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 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) [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 save a project (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save a project from the editor (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you send a sample to the FM-1 from the editor (the computer asks first) [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 send settings or a name from the editor (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 upload or erase a sample with the computer tool (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"
       }
      ],
      "first_way_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": "lost",
      "ways": [
       {
        "way": "automatically during use [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": "automatically, only if a greeting name was entered in the installer [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": "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) [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 change Rainbow preferences or save its greeting name (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 edit sample slice markers (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 erase a sample from the editor (the computer asks first) [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 erase a user preset (asks first: press again to confirm) [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 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) [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 save a project (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save a project from the editor (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you send a sample to the FM-1 from the editor (the computer asks first) [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 send settings or a name from the editor (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 upload or erase a sample with the computer tool (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"
       }
      ],
      "first_way_effect": "sounds can change or stop playing when separate samples, FM6 patches or SYN kits are replaced; saved notes and sound settings remain"
     },
     {
      "object": "working music kept by autosave",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use [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": "automatically, only if a greeting name was entered in the installer [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": "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) [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 change Rainbow preferences or save its greeting name (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 edit sample slice markers (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 erase a sample from the editor (the computer asks first) [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 erase a user preset (asks first: press again to confirm) [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 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) [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 save an FM6 user sound (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you send a sample to the FM-1 from the editor (the computer asks first) [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 send an FM6 user sound from the editor (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you send settings or a name from the editor (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 store the current FM6 sound from the editor (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you upload or erase a sample with the computer tool (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"
       }
      ],
      "first_way_effect": "sounds can change or stop playing when separate samples, FM6 patches or SYN kits are replaced; saved notes and sound settings remain"
     },
     {
      "object": "settings, calibration, song order, SYN1-SYN4 kits and MIDI preferences",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use",
        "effect": "lost"
       },
       {
        "way": "automatically, only if a greeting name was entered in the installer",
        "effect": "lost"
       },
       {
        "way": "when you change Rainbow preferences or save its greeting name (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you erase a user preset (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 run hardware calibration (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you send settings or a name from the editor (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "USER sounds U01-U16",
      "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) [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 edit sample slice markers (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 erase a sample from the editor (the computer asks first) [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 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 sample to the FM-1 from the editor (the computer asks first) [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 send a user sound from the editor (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you store the current sound from the editor (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you upload or erase a sample with the computer tool (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"
       }
      ],
      "first_way_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": "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) [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 edit sample slice markers (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 erase a sample from the editor (the computer asks first) [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 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 sample to the FM-1 from the editor (the computer asks first) [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 send a user sound from the editor (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you store the current sound from the editor (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you upload or erase a sample with the computer tool (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"
       }
      ],
      "first_way_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": "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": "sample slot USR1",
      "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": "sample slot USR2",
      "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": "sample slot USR3",
      "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"
       }
      ]
     }
    ],
    "possibly_at_risk": [],
    "carried_over": [],
    "kept_unseen": [],
    "notes": [
     "The full Felucca in Rainbow Mode may start with RESTORE LAST ON after ORBIT, even if you turned it OFF before. ORBIT saves its own settings at several points, replacing the earlier settings with ones the full Felucca in Rainbow Mode cannot read; an older choice saved by another firmware can also mean the opposite here. Check MENU > SYSTEM > RESTORE LAST in the full Felucca layer before you edit. ON allows automatic saving after edits and a pause with playback stopped, keys and buttons released, and no sound; OFF stops that autosave.",
     "Rainbow Mode reads sample slot USR1 until you write over the saved data. Only data in this sample slot is read. Other saved work is separate.",
     "Rainbow Mode reads sample slot USR2 until you write over the saved data. Only data in this sample slot is read. Other saved work is separate.",
     "Rainbow Mode reads sample slot USR3 until you write over the saved data. Only data in this sample slot is read. Other saved work is separate."
    ],
    "owner_text": "At risk by itself: 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; other writes can also erase it); 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; other writes can also erase it); 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; other writes can also erase it); 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; other writes can also erase it); working music 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; other writes can also erase it); settings, calibration, song order, SYN1-SYN4 kits and MIDI preferences. At risk by itself, under a condition: 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; other writes can also erase it); 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; other writes can also erase it); FM6 bank B1-B27. At risk when you act: sample slot USR1; sample slot USR2; sample slot USR3. The full Felucca in Rainbow Mode may start with RESTORE LAST ON after ORBIT, even if you turned it OFF before. ORBIT saves its own settings at several points, replacing the earlier settings with ones the full Felucca in Rainbow Mode cannot read; an older choice saved by another firmware can also mean the opposite here. Check MENU > SYSTEM > RESTORE LAST in the full Felucca layer before you edit. ON allows automatic saving after edits and a pause with playback stopped, keys and buttons released, and no sound; OFF stops that autosave. Rainbow Mode reads sample slot USR1 until you write over the saved data. Only data in this sample slot is read. Other saved work is separate. Rainbow Mode reads sample slot USR2 until you write over the saved data. Only data in this sample slot is read. Other saved work is separate. Rainbow Mode reads sample slot USR3 until you write over the saved data. Only data in this sample slot is read. Other saved work is separate.",
    "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": "saved section A",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start [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": "automatically during use (its RESTORE LAST is on by default) [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": "automatically during use [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": "automatically, only if an earlier compatible bank upload is still stored and the saved bank is missing or older [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": "automatically, only if loading M01 at first start changes the music and RESTORE LAST is on [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 calibrate the panel (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 change MIDI LEARN (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 change USB serial settings from the editor (the computer asks first) [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 change preferences from the editor (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 erase a user wavetable directly with a MIDI tool (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 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) [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 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": "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 save a patch on the panel (asks for that slot only: press the button to confirm; writes the whole bank) [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 save or erase a pattern (asks for that slot only: press the button to confirm; writes the whole bank) [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 save or import a patch from the editor (the computer asks first for that slot only; writes the whole bank) [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 send a patch directly with a MIDI tool (without asking; writes the whole bank) [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 send a user wavetable directly with a MIDI tool (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 send an FM6 voice bank directly with a MIDI tool (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 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) [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"
       }
      ],
      "first_way_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": "lost",
      "ways": [
       {
        "way": "automatically at first start [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": "automatically during use (its RESTORE LAST is on by default) [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": "automatically during use [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": "automatically, only if an earlier compatible bank upload is still stored and the saved bank is missing or older [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": "automatically, only if loading M01 at first start changes the music and RESTORE LAST is on [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 calibrate the panel (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 change MIDI LEARN (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 change USB serial settings from the editor (the computer asks first) [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 change preferences from the editor (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 erase a user wavetable directly with a MIDI tool (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 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) [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 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": "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 save a patch on the panel (asks for that slot only: press the button to confirm; writes the whole bank) [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 save or erase a pattern (asks for that slot only: press the button to confirm; writes the whole bank) [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 save or import a patch from the editor (the computer asks first for that slot only; writes the whole bank) [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 send a patch directly with a MIDI tool (without asking; writes the whole bank) [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 send a user wavetable directly with a MIDI tool (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 send an FM6 voice bank directly with a MIDI tool (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 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) [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"
       }
      ],
      "first_way_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": "lost",
      "ways": [
       {
        "way": "automatically at first start [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": "automatically during use (its RESTORE LAST is on by default) [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": "automatically during use [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": "automatically, only if an earlier compatible bank upload is still stored and the saved bank is missing or older [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": "automatically, only if loading M01 at first start changes the music and RESTORE LAST is on [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 calibrate the panel (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 change MIDI LEARN (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 change USB serial settings from the editor (the computer asks first) [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 change preferences from the editor (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 erase a user wavetable directly with a MIDI tool (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 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) [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 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": "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 save a patch on the panel (asks for that slot only: press the button to confirm; writes the whole bank) [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 save or erase a pattern (asks for that slot only: press the button to confirm; writes the whole bank) [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 save or import a patch from the editor (the computer asks first for that slot only; writes the whole bank) [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 send a patch directly with a MIDI tool (without asking; writes the whole bank) [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 send a user wavetable directly with a MIDI tool (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 send an FM6 voice bank directly with a MIDI tool (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 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) [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"
       }
      ],
      "first_way_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": "lost",
      "ways": [
       {
        "way": "automatically at first start [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": "automatically during use (its RESTORE LAST is on by default) [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": "automatically during use [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": "automatically, only if an earlier compatible bank upload is still stored and the saved bank is missing or older [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": "automatically, only if loading M01 at first start changes the music and RESTORE LAST is on [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 calibrate the panel (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 change MIDI LEARN (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 change USB serial settings from the editor (the computer asks first) [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 change preferences from the editor (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 erase a user wavetable directly with a MIDI tool (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 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) [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 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": "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 save a patch on the panel (asks for that slot only: press the button to confirm; writes the whole bank) [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 save or erase a pattern (asks for that slot only: press the button to confirm; writes the whole bank) [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 save or import a patch from the editor (the computer asks first for that slot only; writes the whole bank) [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 send a patch directly with a MIDI tool (without asking; writes the whole bank) [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 send a user wavetable directly with a MIDI tool (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 send an FM6 voice bank directly with a MIDI tool (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 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) [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"
       }
      ],
      "first_way_effect": "sounds can change or stop playing when separate samples, FM6 patches or SYN kits are replaced; saved notes and sound settings remain"
     },
     {
      "object": "working music kept by autosave",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start [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": "automatically during use (its RESTORE LAST is on by default) [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": "automatically during use [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": "automatically, only if an earlier compatible bank upload is still stored and the saved bank is missing or older [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": "automatically, only if loading M01 at first start changes the music and RESTORE LAST is on [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 calibrate the panel (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 change MIDI LEARN (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 change USB serial settings from the editor (the computer asks first) [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 change preferences from the editor (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 erase a user wavetable directly with a MIDI tool (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 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) [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 save a multi directly with a MIDI tool (without asking; writes the whole bank) [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 save a multi from the editor (the computer asks first for that slot only; writes the whole bank) [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 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) [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 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 a user wavetable directly with a MIDI tool (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 send an FM6 voice bank directly with a MIDI tool (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 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) [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"
       }
      ],
      "first_way_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": "lost",
      "ways": [
       {
        "way": "automatically during use (its RESTORE LAST is on by default) [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": "automatically, only if an earlier compatible bank upload is still stored and the saved bank is missing or older [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": "automatically, only if loading M01 at first start changes the music and RESTORE LAST is on [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 erase a user wavetable directly with a MIDI tool (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 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) [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 save a multi directly with a MIDI tool (without asking; writes the whole bank) [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 save a multi from the editor (the computer asks first for that slot only; writes the whole bank) [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 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) [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 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 a user wavetable directly with a MIDI tool (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 send an FM6 voice bank directly with a MIDI tool (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 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) [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"
       }
      ],
      "first_way_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": "lost",
      "ways": [
       {
        "way": "automatically during use (its RESTORE LAST is on by default) [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": "automatically, only if an earlier compatible bank upload is still stored and the saved bank is missing or older [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": "automatically, only if loading M01 at first start changes the music and RESTORE LAST is on [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 erase a user wavetable directly with a MIDI tool (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 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) [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 save a multi directly with a MIDI tool (without asking; writes the whole bank) [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 save a multi from the editor (the computer asks first for that slot only; writes the whole bank) [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 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) [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 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 a user wavetable directly with a MIDI tool (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 send an FM6 voice bank directly with a MIDI tool (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 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) [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"
       }
      ],
      "first_way_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": "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, calibration, song order, SYN1-SYN4 kits and MIDI preferences",
      "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": "sample slot USR4",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically, only if an earlier compatible bank upload is still stored and the saved bank is missing or older",
        "effect": "lost"
       },
       {
        "way": "when you send an FM6 voice bank directly with a MIDI tool (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "sample slot USR1",
      "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": "sample slot USR2",
      "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": "sample slot USR3",
      "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"
       }
      ]
     }
    ],
    "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: 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; other writes can also erase it); 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; other writes can also erase it); 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; other writes can also erase it); 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; other writes can also erase it); working music 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; other writes can also erase it); 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; other writes can also erase it); 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; other writes can also erase it); FM6 bank B1-B27; settings, calibration, song order, SYN1-SYN4 kits and MIDI preferences. At risk by itself, under a condition: sample slot USR4. At risk when you act: sample slot USR1; sample slot USR2; sample slot USR3. 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, calibration, song order, SYN1-SYN4 kits and MIDI preferences",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use",
        "effect": "lost"
       },
       {
        "way": "when you press SAVE briefly (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": "automatically during use [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 press SAVE briefly (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": "automatically during use [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 press SAVE briefly (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": "automatically during use [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 press SAVE briefly (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": "automatically during use [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 press SAVE briefly (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": "working music 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": "automatically during use [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 press SAVE briefly (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": "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, 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); working music 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). At risk when you act: USER sounds U01-U16.",
    "source": "flash-atlas derived/matrix.json (generated by apply_to_maps.py; do not edit by hand)"
   },
   {
    "to": "maku",
    "name": "MAKU",
    "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)"
   },
   {
    "to": "fart",
    "name": "Fart Machine One",
    "flags": "S",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "USER sounds U01-U16",
      "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: USER sounds U01-U16. 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": "saved section A",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start [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": "automatically during use [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 calibrate the controls (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 change favourites or their filter (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 edit sample slice positions set by hand (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 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"
       },
       {
        "way": "when you send or erase a sample directly with a MIDI tool (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 send preferences from the web editor (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 upload or clear a user sample (the computer asks first) [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"
       }
      ],
      "first_way_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": "lost",
      "ways": [
       {
        "way": "automatically at first start [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": "automatically during use [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 calibrate the controls (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 change favourites or their filter (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 edit sample slice positions set by hand (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 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"
       },
       {
        "way": "when you send or erase a sample directly with a MIDI tool (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 send preferences from the web editor (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 upload or clear a user sample (the computer asks first) [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"
       }
      ],
      "first_way_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": "lost",
      "ways": [
       {
        "way": "automatically at first start [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": "automatically during use [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 calibrate the controls (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 change favourites or their filter (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 edit sample slice positions set by hand (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 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"
       },
       {
        "way": "when you send or erase a sample directly with a MIDI tool (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 send preferences from the web editor (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 upload or clear a user sample (the computer asks first) [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"
       }
      ],
      "first_way_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": "lost",
      "ways": [
       {
        "way": "automatically at first start [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": "automatically during use [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 calibrate the controls (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 change favourites or their filter (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 edit sample slice positions set by hand (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 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"
       },
       {
        "way": "when you send or erase a sample directly with a MIDI tool (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 send preferences from the web editor (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 upload or clear a user sample (the computer asks first) [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"
       }
      ],
      "first_way_effect": "sounds can change or stop playing when separate samples, FM6 patches or SYN kits are replaced; saved notes and sound settings remain"
     },
     {
      "object": "working music kept by autosave",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start [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": "automatically during use [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 calibrate the controls (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 change favourites or their filter (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 edit sample slice positions set by hand (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 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) [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 send an FM6 bank patch from the web editor (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you send or erase a sample directly with a MIDI tool (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 send or erase an FM6 bank patch directly with a MIDI tool (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you send preferences from the web editor (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 upload or clear a user sample (the computer asks first) [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"
       }
      ],
      "first_way_effect": "sounds can change or stop playing when separate samples, FM6 patches or SYN kits are replaced; saved notes and sound settings remain"
     },
     {
      "object": "settings, calibration, song order, SYN1-SYN4 kits and MIDI preferences",
      "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 favourites or their filter (without asking)",
        "effect": "lost"
       },
       {
        "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 send preferences from the web editor (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "USER sounds U01-U16",
      "effect": "lost",
      "ways": [
       {
        "way": "when you edit sample slice positions set by hand (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 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 user sound (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 send or erase a sample directly with a MIDI tool (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 send, store or erase a user sound directly with a MIDI tool (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"
       },
       {
        "way": "when you upload or clear a user sample (the computer asks first) [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"
       }
      ],
      "first_way_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": "lost",
      "ways": [
       {
        "way": "when you edit sample slice positions set by hand (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 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 user sound (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 send or erase a sample directly with a MIDI tool (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 send, store or erase a user sound directly with a MIDI tool (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"
       },
       {
        "way": "when you upload or clear a user sample (the computer asks first) [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"
       }
      ],
      "first_way_effect": "sounds can change or stop playing when separate samples, FM6 patches or SYN kits are replaced; saved notes and sound settings remain"
     },
     {
      "object": "sample slot USR1",
      "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": "sample slot USR2",
      "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": "sample slot USR3",
      "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 sample slot USR1 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 sample slot USR2 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 sample slot USR3 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: 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; other writes can also erase it); 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; other writes can also erase it); 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; other writes can also erase it); 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; other writes can also erase it); working music 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; other writes can also erase it); settings, calibration, song order, SYN1-SYN4 kits and MIDI preferences. At risk when you act: 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; other writes can also erase it); 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; other writes can also erase it); sample slot USR1; sample slot USR2; sample slot USR3. fm1-chord reads sample slot USR1 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 sample slot USR2 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 sample slot USR3 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": "saved section A",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start [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": "automatically during use (when the web editor connects or refreshes, this bank has no usable voices and factory auto-fill is on by default) [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": "automatically during use [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": "automatically, only when DX7 Banks’ saved count of banks already set up is below 2 [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": "automatically, only when DX7 Banks’ saved count of banks already set up is below 3 [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": "automatically, only when DX7 Banks’ saved count of banks already set up is below 4 [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 calibrate the controls (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 erase a DX7 bank from the editor (the computer asks first) [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 erase a sample slot from the web editor (the computer asks first) [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 erase an FM6 bank patch from the editor (the computer asks first for that slot only; writes the whole bank) [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 move a voice between DX7 banks from the editor (without asking; writes the whole bank) [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 press REC on the SONG screen to save a section and the song order (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you put the factory voices back from the editor [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 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) [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 save a section on the SAVE PROJECT page (asks first or waits for you to turn again)",
        "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) [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 save the current music as a section with SAVE and a section key (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save the song order (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 send a DX7 bank from the editor (without asking; writes the whole bank) [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 send a sample kit to USR3 and USR4 (the computer asks first) [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 send a sample set from the web editor (the computer asks first) [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 send a song order from the web editor (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 send an FM6 bank patch from the editor (does not ask if that slot is empty; writes the whole bank) [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 upload or erase a sample with the computer tool (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 use the editor to load several DX7 files into banks that look empty (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"
       }
      ],
      "first_way_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": "lost",
      "ways": [
       {
        "way": "automatically at first start [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": "automatically during use (when the web editor connects or refreshes, this bank has no usable voices and factory auto-fill is on by default) [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": "automatically during use [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": "automatically, only when DX7 Banks’ saved count of banks already set up is below 2 [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": "automatically, only when DX7 Banks’ saved count of banks already set up is below 3 [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": "automatically, only when DX7 Banks’ saved count of banks already set up is below 4 [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 calibrate the controls (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 erase a DX7 bank from the editor (the computer asks first) [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 erase a sample slot from the web editor (the computer asks first) [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 erase an FM6 bank patch from the editor (the computer asks first for that slot only; writes the whole bank) [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 move a voice between DX7 banks from the editor (without asking; writes the whole bank) [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 press REC on the SONG screen to save a section and the song order (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you put the factory voices back from the editor [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 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) [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 save a section on the SAVE PROJECT page (asks first or waits for you to turn again)",
        "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) [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 save the current music as a section with SAVE and a section key (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save the song order (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 send a DX7 bank from the editor (without asking; writes the whole bank) [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 send a sample kit to USR3 and USR4 (the computer asks first) [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 send a sample set from the web editor (the computer asks first) [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 send a song order from the web editor (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 send an FM6 bank patch from the editor (does not ask if that slot is empty; writes the whole bank) [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 upload or erase a sample with the computer tool (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 use the editor to load several DX7 files into banks that look empty (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"
       }
      ],
      "first_way_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": "lost",
      "ways": [
       {
        "way": "automatically at first start [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": "automatically during use (when the web editor connects or refreshes, this bank has no usable voices and factory auto-fill is on by default) [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": "automatically during use [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": "automatically, only when DX7 Banks’ saved count of banks already set up is below 2 [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": "automatically, only when DX7 Banks’ saved count of banks already set up is below 3 [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": "automatically, only when DX7 Banks’ saved count of banks already set up is below 4 [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 calibrate the controls (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 erase a DX7 bank from the editor (the computer asks first) [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 erase a sample slot from the web editor (the computer asks first) [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 erase an FM6 bank patch from the editor (the computer asks first for that slot only; writes the whole bank) [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 move a voice between DX7 banks from the editor (without asking; writes the whole bank) [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 press REC on the SONG screen to save a section and the song order (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you put the factory voices back from the editor [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 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) [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 save a section on the SAVE PROJECT page (asks first or waits for you to turn again)",
        "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) [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 save the current music as a section with SAVE and a section key (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save the song order (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 send a DX7 bank from the editor (without asking; writes the whole bank) [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 send a sample kit to USR3 and USR4 (the computer asks first) [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 send a sample set from the web editor (the computer asks first) [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 send a song order from the web editor (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 send an FM6 bank patch from the editor (does not ask if that slot is empty; writes the whole bank) [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 upload or erase a sample with the computer tool (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 use the editor to load several DX7 files into banks that look empty (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"
       }
      ],
      "first_way_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": "lost",
      "ways": [
       {
        "way": "automatically at first start [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": "automatically during use (when the web editor connects or refreshes, this bank has no usable voices and factory auto-fill is on by default) [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": "automatically during use [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": "automatically, only when DX7 Banks’ saved count of banks already set up is below 2 [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": "automatically, only when DX7 Banks’ saved count of banks already set up is below 3 [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": "automatically, only when DX7 Banks’ saved count of banks already set up is below 4 [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 calibrate the controls (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 erase a DX7 bank from the editor (the computer asks first) [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 erase a sample slot from the web editor (the computer asks first) [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 erase an FM6 bank patch from the editor (the computer asks first for that slot only; writes the whole bank) [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 move a voice between DX7 banks from the editor (without asking; writes the whole bank) [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 press REC on the SONG screen to save a section and the song order (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you put the factory voices back from the editor [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 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) [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 save a section on the SAVE PROJECT page (asks first or waits for you to turn again)",
        "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) [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 save the current music as a section with SAVE and a section key (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save the song order (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 send a DX7 bank from the editor (without asking; writes the whole bank) [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 send a sample kit to USR3 and USR4 (the computer asks first) [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 send a sample set from the web editor (the computer asks first) [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 send a song order from the web editor (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 send an FM6 bank patch from the editor (does not ask if that slot is empty; writes the whole bank) [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 upload or erase a sample with the computer tool (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 use the editor to load several DX7 files into banks that look empty (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"
       }
      ],
      "first_way_effect": "sounds can change or stop playing when separate samples, FM6 patches or SYN kits are replaced; saved notes and sound settings remain"
     },
     {
      "object": "working music kept by autosave",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start",
        "effect": "lost"
       },
       {
        "way": "automatically during use (when the web editor connects or refreshes, this bank has no usable voices and factory auto-fill is on by default) [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": "automatically during use [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": "automatically, only when DX7 Banks’ saved count of banks already set up is below 2 [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": "automatically, only when DX7 Banks’ saved count of banks already set up is below 3 [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": "automatically, only when DX7 Banks’ saved count of banks already set up is below 4 [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": "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"
       },
       {
        "way": "when you calibrate the controls (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 erase a DX7 bank from the editor (the computer asks first) [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 erase a sample slot from the web editor (the computer asks first) [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 erase an FM6 bank patch from the editor (the computer asks first for that slot only; writes the whole bank) [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 move a voice between DX7 banks from the editor (without asking; writes the whole bank) [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 press REC on the SONG screen to save a section and the song order (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 put the factory voices back from the editor [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 restore a backup from the editor (the computer asks once before restoring the whole backup) [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 save SYN drum kits from the web editor (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 save selected DX7 voices from the editor (the computer asks first about the slots it fills; writes the whole bank) [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 save the song order (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 send a DX7 bank from the editor (without asking; writes the whole bank) [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 send a sample kit to USR3 and USR4 (the computer asks first) [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 send a sample set from the web editor (the computer asks first) [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 send a song order from the web editor (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 send an FM6 bank patch from the editor (does not ask if that slot is empty; writes the whole bank) [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 upload or erase a sample with the computer tool (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 use the editor to load several DX7 files into banks that look empty (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": "lost",
      "ways": [
       {
        "way": "automatically at first start [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": "automatically during use (when the web editor connects or refreshes, this bank has no usable voices and factory auto-fill is on by default) [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": "automatically, only when DX7 Banks’ saved count of banks already set up is below 2 [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": "automatically, only when DX7 Banks’ saved count of banks already set up is below 3 [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": "automatically, only when DX7 Banks’ saved count of banks already set up is below 4 [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 erase a DX7 bank from the editor (the computer asks first) [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 erase a sample slot from the web editor (the computer asks first) [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 erase an FM6 bank patch from the editor (the computer asks first for that slot only; writes the whole bank) [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 move a voice between DX7 banks from the editor (without asking; writes the whole bank) [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 put the factory voices back from the editor [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 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": "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 save the current sound from the editor (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you send a DX7 bank from the editor (without asking; writes the whole bank) [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 send a sample kit to USR3 and USR4 (the computer asks first) [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 send a sample set from the web editor (the computer asks first) [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 send a user sound from the editor (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you send an FM6 bank patch from the editor (does not ask if that slot is empty; writes the whole bank) [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 upload or erase a sample with the computer tool (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 use the editor to load several DX7 files into banks that look empty (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"
       }
      ],
      "first_way_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": "lost",
      "ways": [
       {
        "way": "automatically at first start [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": "automatically during use (when the web editor connects or refreshes, this bank has no usable voices and factory auto-fill is on by default) [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": "automatically, only when DX7 Banks’ saved count of banks already set up is below 2 [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": "automatically, only when DX7 Banks’ saved count of banks already set up is below 3 [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": "automatically, only when DX7 Banks’ saved count of banks already set up is below 4 [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 erase a DX7 bank from the editor (the computer asks first) [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 erase a sample slot from the web editor (the computer asks first) [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 erase an FM6 bank patch from the editor (the computer asks first for that slot only; writes the whole bank) [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 move a voice between DX7 banks from the editor (without asking; writes the whole bank) [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 put the factory voices back from the editor [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 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": "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 save the current sound from the editor (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you send a DX7 bank from the editor (without asking; writes the whole bank) [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 send a sample kit to USR3 and USR4 (the computer asks first) [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 send a sample set from the web editor (the computer asks first) [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 send a user sound from the editor (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you send an FM6 bank patch from the editor (does not ask if that slot is empty; writes the whole bank) [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 upload or erase a sample with the computer tool (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 use the editor to load several DX7 files into banks that look empty (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"
       }
      ],
      "first_way_effect": "sounds can change or stop playing when separate samples, FM6 patches or SYN kits are replaced; saved notes and sound settings remain"
     },
     {
      "object": "sample slot USR4",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start",
        "effect": "damaged (part written over)"
       },
       {
        "way": "automatically during use (when the web editor connects or refreshes, this bank has no usable voices and factory auto-fill is on by default)",
        "effect": "damaged (part written over)"
       },
       {
        "way": "automatically, only when DX7 Banks’ saved count of banks already set up is below 2",
        "effect": "damaged (part written over)"
       },
       {
        "way": "automatically, only when DX7 Banks’ saved count of banks already set up is below 3",
        "effect": "damaged (part written over)"
       },
       {
        "way": "automatically, only when DX7 Banks’ saved count of banks already set up is below 4",
        "effect": "damaged (part written over)"
       },
       {
        "way": "when you erase a DX7 bank from the editor (the computer asks first)",
        "effect": "damaged (part written over)"
       },
       {
        "way": "when you erase a sample slot from the web editor (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you move a voice between DX7 banks from the editor (without asking; writes the whole bank)",
        "effect": "damaged (part written over)"
       },
       {
        "way": "when you put the factory voices back from the editor",
        "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 DX7 bank from the editor (without asking; writes the whole bank)",
        "effect": "damaged (part written over)"
       },
       {
        "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"
       },
       {
        "way": "when you use the editor to load several DX7 files into banks that look empty (without asking)",
        "effect": "damaged (part written over)"
       }
      ]
     },
     {
      "object": "settings, calibration, song order, SYN1-SYN4 kits and MIDI preferences",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start",
        "effect": "changed to the new format: A settings save writes this beta’s drum kits and count of DX banks it has set up, dropping the source firmware’s MIDI controls or theme and favourites. Drum kits load only if the saved settings include the kits without an added MIDI-control block. DX7 Banks can mistake the saved MIDI-input channel for an older count of DX banks it has set up"
       },
       {
        "way": "automatically during use",
        "effect": "changed to the new format: A settings save writes this beta’s drum kits and count of DX banks it has set up, dropping the source firmware’s MIDI controls or theme and favourites. Drum kits load only if the saved settings include the kits without an added MIDI-control block. DX7 Banks can mistake the saved MIDI-input channel for an older count of DX banks it has set up"
       },
       {
        "way": "when you calibrate the controls (without asking)",
        "effect": "changed to the new format: A settings save writes this beta’s drum kits and count of DX banks it has set up, dropping the source firmware’s MIDI controls or theme and favourites. Drum kits load only if the saved settings include the kits without an added MIDI-control block. DX7 Banks can mistake the saved MIDI-input channel for an older count of DX banks it has set up"
       },
       {
        "way": "when you press REC on the SONG screen to save a section and the song order (without asking)",
        "effect": "changed to the new format: A settings save writes this beta’s drum kits and count of DX banks it has set up, dropping the source firmware’s MIDI controls or theme and favourites. Drum kits load only if the saved settings include the kits without an added MIDI-control block. DX7 Banks can mistake the saved MIDI-input channel for an older count of DX banks it has set up"
       },
       {
        "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": "changed to the new format: A settings save writes this beta’s drum kits and count of DX banks it has set up, dropping the source firmware’s MIDI controls or theme and favourites. Drum kits load only if the saved settings include the kits without an added MIDI-control block. DX7 Banks can mistake the saved MIDI-input channel for an older count of DX banks it has set up"
       },
       {
        "way": "when you save the song order (without asking)",
        "effect": "changed to the new format: A settings save writes this beta’s drum kits and count of DX banks it has set up, dropping the source firmware’s MIDI controls or theme and favourites. Drum kits load only if the saved settings include the kits without an added MIDI-control block. DX7 Banks can mistake the saved MIDI-input channel for an older count of DX banks it has set up"
       },
       {
        "way": "when you send a song order from the web editor (without asking)",
        "effect": "changed to the new format: A settings save writes this beta’s drum kits and count of DX banks it has set up, dropping the source firmware’s MIDI controls or theme and favourites. Drum kits load only if the saved settings include the kits without an added MIDI-control block. DX7 Banks can mistake the saved MIDI-input channel for an older count of DX banks it has set up"
       }
      ]
     },
     {
      "object": "sample slot USR1",
      "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": "sample slot USR2",
      "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": "sample slot USR3",
      "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": "FM6 bank B1-B27",
      "effect": "lost",
      "ways": [
       {
        "way": "when you erase an FM6 bank patch from the editor (the computer asks first for that slot only; writes the whole bank)",
        "effect": "partly lost (only that patch)"
       },
       {
        "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": "some or all lost"
       },
       {
        "way": "when you send an FM6 bank patch from the editor (does not ask if that slot is empty; writes the whole bank)",
        "effect": "partly lost (only that patch)"
       }
      ]
     }
    ],
    "possibly_at_risk": [],
    "carried_over": [],
    "kept_unseen": [],
    "notes": [
     "SLOOP DX7 Banks reads sample slot USR1 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 sample slot USR2 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 sample slot USR3 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 FM6 bank B1-B27 until you write over the saved data.",
     "SLOOP DX7 Banks reads sample slot USR4 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: 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; other writes can also erase it); 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; other writes can also erase it); 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; other writes can also erase it); 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; other writes can also erase it); working music kept by autosave; 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; other writes can also erase it); 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; other writes can also erase it); sample slot USR4; settings, calibration, song order, SYN1-SYN4 kits and MIDI preferences. At risk when you act: sample slot USR1; sample slot USR2; sample slot USR3; FM6 bank B1-B27. SLOOP DX7 Banks reads sample slot USR1 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 sample slot USR2 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 sample slot USR3 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 FM6 bank B1-B27 until you write over the saved data. SLOOP DX7 Banks reads sample slot USR4 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": "fumi",
    "name": "FuMi-1",
    "flags": "AS",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "settings, calibration, song order, SYN1-SYN4 kits and MIDI preferences",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use",
        "effect": "lost"
       },
       {
        "way": "when you press SAVE (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": "automatically during use [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 press SAVE (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": "automatically during use [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 press SAVE (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": "automatically during use [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 press SAVE (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": "automatically during use [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 press SAVE (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": "working music 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": "automatically during use [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 press SAVE (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": "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, 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); working music 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). At risk when you act: USER sounds U01-U16.",
    "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": "saved section A",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use (if the second core fails and playback stops, with AUTO selected by default) [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": "automatically during use [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 confirm SAVE for project 1 (asks first or waits for you to turn again)",
        "effect": "lost"
       },
       {
        "way": "when you confirm a DX7 bank being sent to the FM-1 (asks first which bank to replace) [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 enter power-on hardware calibration (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 erase a sample from the editor (the computer asks first) [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 erase user samples or restore an empty sample slot in Jangada with a computer tool, without the web editor (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 learn or clear MIDI CC mappings (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 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"
       },
       {
        "way": "when you send a DX7 bank directly with a MIDI tool (without asking; writes the whole bank) [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 send or erase FM6 sounds in Jangada with a computer tool, without the web editor (without asking; writes the whole bank) [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 send user samples to Jangada with a computer tool, without the web editor (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 send user samples to the FM-1 from the web editor (the computer asks first) [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 set screen colours from the USB console (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 store an FM6 sound from the editor (without asking; writes the whole bank) [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"
       }
      ],
      "first_way_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": "lost",
      "ways": [
       {
        "way": "automatically during use (if the second core fails and playback stops, with AUTO selected by default) [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": "automatically during use [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 confirm SAVE for project 2 (asks first or waits for you to turn again)",
        "effect": "lost"
       },
       {
        "way": "when you confirm a DX7 bank being sent to the FM-1 (asks first which bank to replace) [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 enter power-on hardware calibration (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 erase a sample from the editor (the computer asks first) [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 erase user samples or restore an empty sample slot in Jangada with a computer tool, without the web editor (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 learn or clear MIDI CC mappings (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 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"
       },
       {
        "way": "when you send a DX7 bank directly with a MIDI tool (without asking; writes the whole bank) [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 send or erase FM6 sounds in Jangada with a computer tool, without the web editor (without asking; writes the whole bank) [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 send user samples to Jangada with a computer tool, without the web editor (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 send user samples to the FM-1 from the web editor (the computer asks first) [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 set screen colours from the USB console (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 store an FM6 sound from the editor (without asking; writes the whole bank) [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"
       }
      ],
      "first_way_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": "lost",
      "ways": [
       {
        "way": "automatically during use (if the second core fails and playback stops, with AUTO selected by default) [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": "automatically during use [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 confirm SAVE for project 3 (asks first or waits for you to turn again)",
        "effect": "lost"
       },
       {
        "way": "when you confirm a DX7 bank being sent to the FM-1 (asks first which bank to replace) [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 enter power-on hardware calibration (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 erase a sample from the editor (the computer asks first) [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 erase user samples or restore an empty sample slot in Jangada with a computer tool, without the web editor (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 learn or clear MIDI CC mappings (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 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"
       },
       {
        "way": "when you send a DX7 bank directly with a MIDI tool (without asking; writes the whole bank) [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 send or erase FM6 sounds in Jangada with a computer tool, without the web editor (without asking; writes the whole bank) [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 send user samples to Jangada with a computer tool, without the web editor (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 send user samples to the FM-1 from the web editor (the computer asks first) [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 set screen colours from the USB console (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 store an FM6 sound from the editor (without asking; writes the whole bank) [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"
       }
      ],
      "first_way_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": "lost",
      "ways": [
       {
        "way": "automatically during use (if the second core fails and playback stops, with AUTO selected by default) [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": "automatically during use [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 confirm SAVE for project 4 (asks first or waits for you to turn again)",
        "effect": "lost"
       },
       {
        "way": "when you confirm a DX7 bank being sent to the FM-1 (asks first which bank to replace) [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 enter power-on hardware calibration (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 erase a sample from the editor (the computer asks first) [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 erase user samples or restore an empty sample slot in Jangada with a computer tool, without the web editor (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 learn or clear MIDI CC mappings (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 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"
       },
       {
        "way": "when you send a DX7 bank directly with a MIDI tool (without asking; writes the whole bank) [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 send or erase FM6 sounds in Jangada with a computer tool, without the web editor (without asking; writes the whole bank) [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 send user samples to Jangada with a computer tool, without the web editor (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 send user samples to the FM-1 from the web editor (the computer asks first) [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 set screen colours from the USB console (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 store an FM6 sound from the editor (without asking; writes the whole bank) [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"
       }
      ],
      "first_way_effect": "sounds can change or stop playing when separate samples, FM6 patches or SYN kits are replaced; saved notes and sound settings remain"
     },
     {
      "object": "working music kept by autosave",
      "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) [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 confirm a DX7 bank being sent to the FM-1 (asks first which bank to replace) [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 enter power-on hardware calibration (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 erase a sample from the editor (the computer asks first) [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 erase user samples or restore an empty sample slot in Jangada with a computer tool, without the web editor (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 learn or clear MIDI CC mappings (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 restore a backup from the editor (the computer asks once before restoring the whole backup) [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 restore a backup to Jangada with a computer tool, without the web editor (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 send a DX7 bank directly with a MIDI tool (without asking; writes the whole bank) [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 send or erase FM6 sounds in Jangada with a computer tool, without the web editor (without asking; writes the whole bank) [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 send user samples to Jangada with a computer tool, without the web editor (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 send user samples to the FM-1 from the web editor (the computer asks first) [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 set screen colours from the USB console (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 store an FM6 sound from the editor (without asking; writes the whole bank) [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": "settings, calibration, song order, SYN1-SYN4 kits and MIDI preferences",
      "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": "USER sounds U01-U16",
      "effect": "lost",
      "ways": [
       {
        "way": "when you confirm a DX7 bank being sent to the FM-1 (asks first which bank to replace) [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 erase a sample from the editor (the computer asks first) [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 erase user samples or restore an empty sample slot in Jangada with a computer tool, without the web editor (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 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": "lost"
       },
       {
        "way": "when you send a DX7 bank directly with a MIDI tool (without asking; writes the whole bank) [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 send a user sound from the editor (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) [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 send user samples to Jangada with a computer tool, without the web editor (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 send user samples to the FM-1 from the web editor (the computer asks first) [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 send user sounds to Jangada with a computer tool, without the web editor (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you store a user sound from the 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) [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"
       }
      ],
      "first_way_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": "lost",
      "ways": [
       {
        "way": "when you confirm a DX7 bank being sent to the FM-1 (asks first which bank to replace) [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 erase a sample from the editor (the computer asks first) [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 erase user samples or restore an empty sample slot in Jangada with a computer tool, without the web editor (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 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": "lost"
       },
       {
        "way": "when you send a DX7 bank directly with a MIDI tool (without asking; writes the whole bank) [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 send a user sound from the editor (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) [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 send user samples to Jangada with a computer tool, without the web editor (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 send user samples to the FM-1 from the web editor (the computer asks first) [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 send user sounds to Jangada with a computer tool, without the web editor (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you store a user sound from the 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) [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"
       }
      ],
      "first_way_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 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": "sample slot USR4",
      "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": "sample slot USR1",
      "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": "sample slot USR2",
      "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": "sample slot USR3",
      "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 cannot use user sounds last saved by Orbit 0.7.0 or later. Normal sound saves refuse to write over those banks; restoring a backup can replace them. If the sounds were last saved before Orbit 0.7.0, or still use an older format from another firmware, Jangada imports only version 1 sounds. Saving, erasing or sending a user sound writes all sixteen sounds in that group in a format Orbit cannot read when you return. Sounds Jangada could not import are lost. For that older format, the web editor asks before replacing a sound Jangada shows.",
     "Jangada reads sample slot USR1 until you write over the saved data.",
     "Jangada reads sample slot USR2 until you write over the saved data.",
     "Jangada reads sample slot USR3 until you write over the saved data."
    ],
    "owner_text": "At risk by itself: 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; other writes can also erase it); 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; other writes can also erase it); 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; other writes can also erase it); 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; other writes can also erase it); working music kept by autosave; settings, calibration, song order, SYN1-SYN4 kits and MIDI preferences. At risk when you act: 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; other writes can also erase it); 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; other writes can also erase it); FM6 bank B1-B27; sample slot USR4; sample slot USR1; sample slot USR2; sample slot USR3. Jangada cannot use user sounds last saved by Orbit 0.7.0 or later. Normal sound saves refuse to write over those banks; restoring a backup can replace them. If the sounds were last saved before Orbit 0.7.0, or still use an older format from another firmware, Jangada imports only version 1 sounds. Saving, erasing or sending a user sound writes all sixteen sounds in that group in a format Orbit cannot read when you return. Sounds Jangada could not import are lost. For that older format, the web editor asks before replacing a sound Jangada shows. Jangada reads sample slot USR1 until you write over the saved data. Jangada reads sample slot USR2 until you write over the saved data. Jangada reads sample slot USR3 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": "saved section A",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use [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": "automatically during use, from its second start, after five seconds with playback stopped, no sound and no music changes",
        "effect": "lost"
       },
       {
        "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 [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": "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 [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 calibrate the buttons and knob at power-on; cancelling also requests a settings save (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 change a favourite mark or the filter for favourites (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 edit sample slice markers (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 erase a sample from the editor (the computer asks first) [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 erase a starred user sound, which also removes its favourite mark (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 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) [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 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"
       },
       {
        "way": "when you send MENU settings, display preferences or favourite changes from the editor (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 send a sample to the FM-1 from the editor (the computer asks first) [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 upload or erase a sample with the computer tool (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"
       }
      ],
      "first_way_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": "lost",
      "ways": [
       {
        "way": "automatically during use [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": "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 [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": "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 calibrate the buttons and knob at power-on; cancelling also requests a settings save (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 change a favourite mark or the filter for favourites (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 edit sample slice markers (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 erase a sample from the editor (the computer asks first) [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 erase a starred user sound, which also removes its favourite mark (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 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) [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 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"
       },
       {
        "way": "when you send MENU settings, display preferences or favourite changes from the editor (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 send a sample to the FM-1 from the editor (the computer asks first) [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 upload or erase a sample with the computer tool (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"
       }
      ],
      "first_way_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": "lost",
      "ways": [
       {
        "way": "automatically during use [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": "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 [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": "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 calibrate the buttons and knob at power-on; cancelling also requests a settings save (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 change a favourite mark or the filter for favourites (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 edit sample slice markers (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 erase a sample from the editor (the computer asks first) [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 erase a starred user sound, which also removes its favourite mark (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 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) [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 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"
       },
       {
        "way": "when you send MENU settings, display preferences or favourite changes from the editor (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 send a sample to the FM-1 from the editor (the computer asks first) [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 upload or erase a sample with the computer tool (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"
       }
      ],
      "first_way_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": "lost",
      "ways": [
       {
        "way": "automatically at its first start, after five seconds with playback stopped, no sound and no music changes",
        "effect": "lost"
       },
       {
        "way": "automatically during use [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": "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 [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": "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 [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 calibrate the buttons and knob at power-on; cancelling also requests a settings save (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 change a favourite mark or the filter for favourites (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 edit sample slice markers (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 erase a sample from the editor (the computer asks first) [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 erase a starred user sound, which also removes its favourite mark (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 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) [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 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"
       },
       {
        "way": "when you send MENU settings, display preferences or favourite changes from the editor (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 send a sample to the FM-1 from the editor (the computer asks first) [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 upload or erase a sample with the computer tool (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": "working music kept by autosave",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use [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": "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 [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": "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 [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 calibrate the buttons and knob at power-on; cancelling also requests a settings save (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 change a favourite mark or the filter for favourites (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 edit sample slice markers (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 erase a sample from the editor (the computer asks first) [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 erase a starred user sound, which also removes its favourite mark (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 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) [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 save an FM6 or DRUM user sound (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you save or rename this song from the panel while playback has stopped (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 save this song or rename it from the editor (the computer asks first) [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 send MENU settings, display preferences or favourite changes from the editor (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 send a sample to the FM-1 from the editor (the computer asks first) [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 send an FM6 user sound from the editor (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you store the current FM6 or DRUM sound from the editor (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you upload or erase a sample with the computer tool (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"
       }
      ],
      "first_way_effect": "sounds can change or stop playing when separate samples, FM6 patches or SYN kits are replaced; saved notes and sound settings remain"
     },
     {
      "object": "settings, calibration, song order, SYN1-SYN4 kits and MIDI preferences",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use",
        "effect": "lost"
       },
       {
        "way": "when you calibrate the buttons and knob at power-on; cancelling also requests a settings save (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you change a favourite mark or the filter for favourites (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you erase a starred user sound, which also removes its favourite mark (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 run MENU calibration, then close MENU (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you send MENU settings, display preferences or favourite changes from the editor (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "sample slot USR3",
      "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": "USER sounds U01-U16",
      "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 [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": "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 [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 edit sample slice markers (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 erase a sample from the editor (the computer asks first) [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 restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save a user sound (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you save or rename this song from the panel while playback has stopped (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 save this song or rename it from the editor (the computer asks first) [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 send a sample to the FM-1 from the editor (the computer asks first) [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 send a user sound from the editor (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you store the current sound from the editor (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you upload or erase a sample with the computer tool (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"
       }
      ],
      "first_way_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": "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 [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": "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 [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 edit sample slice markers (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 erase a sample from the editor (the computer asks first) [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 restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save a user sound (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you save or rename this song from the panel while playback has stopped (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 save this song or rename it from the editor (the computer asks first) [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 send a sample to the FM-1 from the editor (the computer asks first) [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 send a user sound from the editor (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you store the current sound from the editor (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you upload or erase a sample with the computer tool (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"
       }
      ],
      "first_way_effect": "sounds can change or stop playing when separate samples, FM6 patches or SYN kits are replaced; saved notes and sound settings remain"
     },
     {
      "object": "sample slot USR1",
      "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": "sample slot USR2",
      "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"
       }
      ]
     }
    ],
    "possibly_at_risk": [],
    "carried_over": [],
    "kept_unseen": [],
    "notes": [
     "WaveLoop FM-1 reads sample slot USR1 until you write over the saved data. Only data in this sample slot is read. Other saved work is separate. Saved samples may have no slice positions set by you.",
     "WaveLoop FM-1 reads sample slot USR2 until you write over the saved data. Only data in this sample slot is read. Other saved work is separate. Saved samples may have no slice positions set by you."
    ],
    "owner_text": "At risk by itself: 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; other writes can also erase it); 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; other writes can also erase it); 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; other writes can also erase it); saved section D; working music 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; other writes can also erase it); settings, calibration, song order, SYN1-SYN4 kits and MIDI preferences. At risk by itself, under a condition: sample slot USR3; 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; other writes can also erase it); 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; other writes can also erase it). At risk when you act: sample slot USR1; sample slot USR2. WaveLoop FM-1 reads sample slot USR1 until you write over the saved data. Only data in this sample slot is read. Other saved work is separate. Saved samples may have no slice positions set by you. WaveLoop FM-1 reads sample slot USR2 until you write over the saved data. Only data in this sample slot is read. Other saved work is separate. Saved samples may have no slice positions set by you.",
    "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": "saved section A",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use [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 calibrate the controls from HOME and close the menu (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 erase a sample from the editor (the computer asks first) [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 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"
       },
       {
        "way": "when you save the song order (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 send a sample from the editor (the computer asks first) [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 start calibrating the controls at power-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 upload or erase a sample with the computer tool (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"
       }
      ],
      "first_way_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": "lost",
      "ways": [
       {
        "way": "automatically during use [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 calibrate the controls from HOME and close the menu (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 erase a sample from the editor (the computer asks first) [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 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"
       },
       {
        "way": "when you save the song order (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 send a sample from the editor (the computer asks first) [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 start calibrating the controls at power-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 upload or erase a sample with the computer tool (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"
       }
      ],
      "first_way_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": "lost",
      "ways": [
       {
        "way": "automatically during use [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 calibrate the controls from HOME and close the menu (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 erase a sample from the editor (the computer asks first) [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 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"
       },
       {
        "way": "when you save the song order (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 send a sample from the editor (the computer asks first) [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 start calibrating the controls at power-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 upload or erase a sample with the computer tool (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"
       }
      ],
      "first_way_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": "lost",
      "ways": [
       {
        "way": "automatically during use [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 calibrate the controls from HOME and close the menu (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 erase a sample from the editor (the computer asks first) [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 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"
       },
       {
        "way": "when you save the song order (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 send a sample from the editor (the computer asks first) [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 start calibrating the controls at power-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 upload or erase a sample with the computer tool (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"
       }
      ],
      "first_way_effect": "sounds can change or stop playing when separate samples, FM6 patches or SYN kits are replaced; saved notes and sound settings remain"
     },
     {
      "object": "working music kept by autosave",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start",
        "effect": "lost"
       },
       {
        "way": "automatically during use",
        "effect": "lost"
       },
       {
        "way": "when you calibrate the controls from HOME and close the menu (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 erase a sample from the editor (the computer asks first) [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 press REC on the SONG screen to save a section and the song order (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 save the song order (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 send a sample from the editor (the computer asks first) [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 start calibrating the controls at power-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 upload or erase a sample with the computer tool (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": "settings, calibration, song order, SYN1-SYN4 kits and MIDI preferences",
      "effect": "changed to the new format: Saving settings keeps only the older colour, display, calibration and song-order choices. The saved copy lacks newer light options, drum kits, MIDI controls and separately saved options",
      "ways": [
       {
        "way": "automatically during use",
        "effect": "changed to the new format: Saving settings keeps only the older colour, display, calibration and song-order choices. The saved copy lacks newer light options, drum kits, MIDI controls and separately saved options"
       },
       {
        "way": "when you calibrate the controls from HOME and close the menu (without asking)",
        "effect": "changed to the new format: Saving settings keeps only the older colour, display, calibration and song-order choices. The saved copy lacks newer light options, drum kits, MIDI controls and separately saved options"
       },
       {
        "way": "when you press REC on the SONG screen to save a section and the song order (without asking)",
        "effect": "changed to the new format: Saving settings keeps only the older colour, display, calibration and song-order choices. The saved copy lacks newer light options, drum kits, MIDI controls and separately saved options"
       },
       {
        "way": "when you save the song order (without asking)",
        "effect": "changed to the new format: Saving settings keeps only the older colour, display, calibration and song-order choices. The saved copy lacks newer light options, drum kits, MIDI controls and separately saved options"
       },
       {
        "way": "when you start calibrating the controls at power-on (without asking)",
        "effect": "changed to the new format: Saving settings keeps only the older colour, display, calibration and song-order choices. The saved copy lacks newer light options, drum kits, MIDI controls and separately saved options"
       }
      ]
     },
     {
      "object": "USER sounds U01-U16",
      "effect": "lost",
      "ways": [
       {
        "way": "when you erase a sample from the editor (the computer asks first) [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 save or erase a user sound (asks or waits for you to turn again for that slot only; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you save the current sound from the editor (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you send a sample from the editor (the computer asks first) [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 send a user sound from the editor (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you upload or erase a sample with the computer tool (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"
       }
      ],
      "first_way_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": "lost",
      "ways": [
       {
        "way": "when you erase a sample from the editor (the computer asks first) [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 save or erase a user sound (asks or waits for you to turn again for that slot only; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you save the current sound from the editor (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you send a sample from the editor (the computer asks first) [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 send a user sound from the editor (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you upload or erase a sample with the computer tool (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"
       }
      ],
      "first_way_effect": "sounds can change or stop playing when separate samples, FM6 patches or SYN kits are replaced; saved notes and sound settings remain"
     },
     {
      "object": "sample slot USR1",
      "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": "sample slot USR2",
      "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": "sample slot USR3",
      "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": [],
    "notes": [
     "SLOOP Floyd FM reads sample slot USR1 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 sample slot USR2 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 sample slot USR3 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: 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; other writes can also erase it); 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; other writes can also erase it); 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; other writes can also erase it); 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; other writes can also erase it); working music kept by autosave; settings, calibration, song order, SYN1-SYN4 kits and MIDI preferences (changed to the new format: Saving settings keeps only the older colour, display, calibration and song-order choices. The saved copy lacks newer light options, drum kits, MIDI controls and separately saved options). At risk when you act: 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; other writes can also erase it); 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; other writes can also erase it); sample slot USR1; sample slot USR2; sample slot USR3. SLOOP Floyd FM reads sample slot USR1 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 sample slot USR2 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 sample slot USR3 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": "saved section A",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use [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": "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 [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": "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 hold REC in IMPORTER to erase USR1 (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 in IMPORTER to erase USR2 (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 in IMPORTER to erase USR3 (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 in IMPORTER to erase USR4 (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 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) [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 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 save the song order (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 store section A (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you store, erase or restore FM6 patches directly with a MIDI tool (without asking; writes the whole bank) [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 upload or erase USR1 with a MIDI tool (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 upload or erase USR2 with a MIDI tool (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 upload or erase USR3 with a MIDI tool (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 upload or erase USR4 with a MIDI tool (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"
       }
      ],
      "first_way_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": "lost",
      "ways": [
       {
        "way": "automatically during use [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": "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 [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": "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 hold REC in IMPORTER to erase USR1 (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 in IMPORTER to erase USR2 (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 in IMPORTER to erase USR3 (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 in IMPORTER to erase USR4 (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 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) [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 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 save the song order (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 store section B (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you store, erase or restore FM6 patches directly with a MIDI tool (without asking; writes the whole bank) [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 upload or erase USR1 with a MIDI tool (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 upload or erase USR2 with a MIDI tool (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 upload or erase USR3 with a MIDI tool (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 upload or erase USR4 with a MIDI tool (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"
       }
      ],
      "first_way_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": "lost",
      "ways": [
       {
        "way": "automatically during use [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": "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 [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": "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 hold REC in IMPORTER to erase USR1 (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 in IMPORTER to erase USR2 (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 in IMPORTER to erase USR3 (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 in IMPORTER to erase USR4 (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 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) [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 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 save the song order (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 store section C (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you store, erase or restore FM6 patches directly with a MIDI tool (without asking; writes the whole bank) [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 upload or erase USR1 with a MIDI tool (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 upload or erase USR2 with a MIDI tool (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 upload or erase USR3 with a MIDI tool (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 upload or erase USR4 with a MIDI tool (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"
       }
      ],
      "first_way_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": "lost",
      "ways": [
       {
        "way": "automatically during use [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": "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 [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": "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 hold REC in IMPORTER to erase USR1 (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 in IMPORTER to erase USR2 (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 in IMPORTER to erase USR3 (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 in IMPORTER to erase USR4 (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 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) [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 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 save the song order (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 store section D (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you store, erase or restore FM6 patches directly with a MIDI tool (without asking; writes the whole bank) [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 upload or erase USR1 with a MIDI tool (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 upload or erase USR2 with a MIDI tool (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 upload or erase USR3 with a MIDI tool (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 upload or erase USR4 with a MIDI tool (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"
       }
      ],
      "first_way_effect": "sounds can change or stop playing when separate samples, FM6 patches or SYN kits are replaced; saved notes and sound settings remain"
     },
     {
      "object": "working music kept by autosave",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start",
        "effect": "lost"
       },
       {
        "way": "automatically during use [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": "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 [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 enter update mode, start a firmware update or restart from the computer",
        "effect": "lost"
       },
       {
        "way": "when you hold REC in IMPORTER to erase USR1 (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 in IMPORTER to erase USR2 (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 in IMPORTER to erase USR3 (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 in IMPORTER to erase USR4 (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 record the current music into the selected song section (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 restore preferences or store SYN drum kits directly with a MIDI tool (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 save the song order (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 store, erase or restore FM6 patches directly with a MIDI tool (without asking; writes the whole bank) [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 upload or erase USR1 with a MIDI tool (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 upload or erase USR2 with a MIDI tool (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 upload or erase USR3 with a MIDI tool (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 upload or erase USR4 with a MIDI tool (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": "settings, calibration, song order, SYN1-SYN4 kits and MIDI preferences",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use",
        "effect": "changed automatically: an automatic settings save can replace shared settings with this firmware's song, kit, MIDI and other settings. Calibration and shared preferences can load, but choices have different meanings. Song, kit, MIDI, theme or favourites settings this firmware cannot use can be lost at the next settings save"
       },
       {
        "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": "changed automatically: an automatic settings save can replace shared settings with this firmware's song, kit, MIDI and other settings. Calibration and shared preferences can load, but choices have different meanings. Song, kit, MIDI, theme or favourites settings this firmware cannot use can be lost at the next settings save"
       },
       {
        "way": "when you enter update mode, start a firmware update or restart from the computer",
        "effect": "changed automatically: an automatic settings save can replace shared settings with this firmware's song, kit, MIDI and other settings. Calibration and shared preferences can load, but choices have different meanings. Song, kit, MIDI, theme or favourites settings this firmware cannot use can be lost at the next settings save"
       },
       {
        "way": "when you record the current music into the selected song section (without asking)",
        "effect": "changed automatically: an automatic settings save can replace shared settings with this firmware's song, kit, MIDI and other settings. Calibration and shared preferences can load, but choices have different meanings. Song, kit, MIDI, theme or favourites settings this firmware cannot use can be lost at the next settings save"
       },
       {
        "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": "changed automatically: an automatic settings save can replace shared settings with this firmware's song, kit, MIDI and other settings. Calibration and shared preferences can load, but choices have different meanings. Song, kit, MIDI, theme or favourites settings this firmware cannot use can be lost at the next settings save"
       }
      ]
     },
     {
      "object": "USER sounds U01-U16",
      "effect": "lost",
      "ways": [
       {
        "way": "when you hold REC in IMPORTER to erase USR1 (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 in IMPORTER to erase USR2 (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 in IMPORTER to erase USR3 (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 in IMPORTER to erase USR4 (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 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": "lost"
       },
       {
        "way": "when you send, store or erase a user sound directly with a MIDI tool (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you store, erase or restore FM6 patches directly with a MIDI tool (without asking; writes the whole bank) [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 upload or erase USR1 with a MIDI tool (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 upload or erase USR2 with a MIDI tool (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 upload or erase USR3 with a MIDI tool (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 upload or erase USR4 with a MIDI tool (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"
       }
      ],
      "first_way_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": "lost",
      "ways": [
       {
        "way": "when you hold REC in IMPORTER to erase USR1 (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 in IMPORTER to erase USR2 (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 in IMPORTER to erase USR3 (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 in IMPORTER to erase USR4 (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 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": "lost"
       },
       {
        "way": "when you send, store or erase a user sound directly with a MIDI tool (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you store, erase or restore FM6 patches directly with a MIDI tool (without asking; writes the whole bank) [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 upload or erase USR1 with a MIDI tool (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 upload or erase USR2 with a MIDI tool (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 upload or erase USR3 with a MIDI tool (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 upload or erase USR4 with a MIDI tool (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"
       }
      ],
      "first_way_effect": "sounds can change or stop playing when separate samples, FM6 patches or SYN kits are replaced; saved notes and sound settings remain"
     },
     {
      "object": "sample slot USR1",
      "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": "sample slot USR2",
      "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": "sample slot USR3",
      "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": "FM6 bank B1-B27",
      "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": "sample slot USR4",
      "effect": "lost",
      "ways": [
       {
        "way": "when you hold REC in IMPORTER to erase USR4 (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you upload or erase USR4 with a MIDI tool (without asking)",
        "effect": "lost"
       }
      ]
     }
    ],
    "possibly_at_risk": [],
    "carried_over": [],
    "kept_unseen": [],
    "notes": [
     "winampFM Synth reads sample slot USR1 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 sample slot USR2 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 sample slot USR3 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 FM6 bank B1-B27 until you write over the saved data. The FM6 patch bank is shared. The project and its links to user sounds are not transferred.",
     "winampFM Synth reads sample slot USR4 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: 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; other writes can also erase it); 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; other writes can also erase it); 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; other writes can also erase it); 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; other writes can also erase it); working music kept by autosave; settings, calibration, song order, SYN1-SYN4 kits and MIDI preferences. At risk when you act: 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; other writes can also erase it); 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; other writes can also erase it); sample slot USR1; sample slot USR2; sample slot USR3; FM6 bank B1-B27; sample slot USR4. winampFM Synth reads sample slot USR1 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 sample slot USR2 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 sample slot USR3 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 FM6 bank B1-B27 until you write over the saved data. The FM6 patch bank is shared. The project and its links to user sounds are not transferred. winampFM Synth reads sample slot USR4 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": "bubba",
    "name": "Bubba Machine (beta)",
    "flags": "ACS?",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "saved section 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 a new recording finishes and playback is stopped [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": "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 load or remove a screen language pack (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 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) [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 upload a take from the control page or with the computer tool (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": "at an unknown time (the chip maker's code that does this is not public) [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": "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 a new recording finishes and playback is stopped [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": "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 load or remove a screen language pack (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 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) [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 upload a take from the control page or with the computer tool (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": "at an unknown time (the chip maker's code that does this is not public) [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": "lost",
      "ways": [
       {
        "way": "automatically at first start [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": "automatically during use (its autosave is on by default)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when a new recording finishes and playback is stopped [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": "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 load or remove a screen language pack (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 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) [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 upload a take from the control page or with the computer tool (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": "at an unknown time (the chip maker's code that does this is not public) [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"
       }
      ],
      "first_way_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": "lost",
      "ways": [
       {
        "way": "automatically at first start [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": "automatically during use (its autosave is on by default)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when a new recording finishes and playback is stopped [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": "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 load or remove a screen language pack (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 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) [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 upload a take from the control page or with the computer tool (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": "at an unknown time (the chip maker's code that does this is not public) [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"
       }
      ],
      "first_way_effect": "sounds can change or stop playing when separate samples, FM6 patches or SYN kits are replaced; saved notes and sound settings remain"
     },
     {
      "object": "working music kept by autosave",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start [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": "automatically during use (its autosave is on by default)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when a new recording finishes and playback is stopped [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": "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 load or remove a screen language pack (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 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) [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 upload a take from the control page or with the computer tool (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": "at an unknown time (the chip maker's code that does this is not public) [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"
       }
      ],
      "first_way_effect": "sounds can change or stop playing when separate samples, FM6 patches or SYN kits are replaced; saved notes and sound settings remain"
     },
     {
      "object": "sample slot USR1",
      "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": "sample slot USR2",
      "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": "USER sounds U01-U16",
      "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 a new recording finishes and playback is stopped [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": "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 [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 copy to another pattern (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 load or remove a screen language pack (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save a pattern or Save As (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 save song and scenes (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 send a sound or DX7 bank from the control page or with the computer tool (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 upload a take from the control page or with the computer tool (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": "at an unknown time (the chip maker's code that does this is not public) [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": "lost",
      "ways": [
       {
        "way": "automatically at first start [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": "automatically during use (its autosave is on by default)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when a new recording finishes and playback is stopped [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": "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 [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 copy to another pattern (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 load or remove a screen language pack (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 save a pattern or Save As (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 save song and scenes (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 send a sound or DX7 bank from the control page or with the computer tool (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 upload a take from the control page or with the computer tool (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": "at an unknown time (the chip maker's code that does this is not public) [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"
       }
      ],
      "first_way_effect": "sounds can change or stop playing when separate samples, FM6 patches or SYN kits are replaced; saved notes and sound settings remain"
     },
     {
      "object": "sample slot USR3",
      "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": "FM6 bank B1-B27",
      "effect": "lost",
      "ways": [
       {
        "way": "at an unknown time (the chip maker's code that does this is not public)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "sample slot USR4",
      "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: saved section A; saved section B; 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; other writes can also erase it); 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; other writes can also erase it); working music 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; other writes can also erase it); sample slot USR1; sample slot USR2; USER sounds U01-U16; 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; other writes can also erase it). At risk by itself, under a condition: sample slot USR3. At risk when you act: FM6 bank B1-B27; sample slot USR4.",
    "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": "saved section A",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use [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 erase a sample slot from the editor (the computer asks first) [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 erase a user sound (asks first or waits for you to turn again) [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 run hardware calibration (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 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 send display or favourite changes from the editor (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 send samples to the FM-1 from the editor (the computer asks first) [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 upload or erase a sample with the computer tool (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"
       }
      ],
      "first_way_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": "lost",
      "ways": [
       {
        "way": "automatically during use [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 erase a sample slot from the editor (the computer asks first) [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 erase a user sound (asks first or waits for you to turn again) [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 run hardware calibration (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 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 send display or favourite changes from the editor (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 send samples to the FM-1 from the editor (the computer asks first) [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 upload or erase a sample with the computer tool (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"
       }
      ],
      "first_way_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": "lost",
      "ways": [
       {
        "way": "automatically during use [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 erase a sample slot from the editor (the computer asks first) [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 erase a user sound (asks first or waits for you to turn again) [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 run hardware calibration (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 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 send display or favourite changes from the editor (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 send samples to the FM-1 from the editor (the computer asks first) [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 upload or erase a sample with the computer tool (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"
       }
      ],
      "first_way_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": "lost",
      "ways": [
       {
        "way": "automatically during use [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 erase a sample slot from the editor (the computer asks first) [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 erase a user sound (asks first or waits for you to turn again) [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 run hardware calibration (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 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 send display or favourite changes from the editor (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 send samples to the FM-1 from the editor (the computer asks first) [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 upload or erase a sample with the computer tool (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"
       }
      ],
      "first_way_effect": "sounds can change or stop playing when separate samples, FM6 patches or SYN kits are replaced; saved notes and sound settings remain"
     },
     {
      "object": "settings, calibration, song order, SYN1-SYN4 kits and MIDI preferences",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use",
        "effect": "lost"
       },
       {
        "way": "when you erase a user sound (asks first or waits for you to turn again)",
        "effect": "lost"
       },
       {
        "way": "when you run hardware calibration (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you send display or favourite changes from the editor (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "working music 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": "automatically during use [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 erase a sample slot from the editor (the computer asks first) [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 erase a user sound (asks first or waits for you to turn again) [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 run hardware calibration (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 send display or favourite changes from the editor (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 send samples to the FM-1 from the editor (the computer asks first) [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 upload or erase a sample with the computer tool (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": "lost",
      "ways": [
       {
        "way": "when you erase a sample slot from the editor (the computer asks first) [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 save a user sound (asks or waits for you to turn again for that slot only; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you send a user sound from the editor (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you send samples to the FM-1 from the editor (the computer asks first) [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 store the current sound from the editor (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you upload or erase a sample with the computer tool (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"
       }
      ],
      "first_way_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": "lost",
      "ways": [
       {
        "way": "when you erase a sample slot from the editor (the computer asks first) [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 save a user sound (asks or waits for you to turn again for that slot only; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you send a user sound from the editor (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you send samples to the FM-1 from the editor (the computer asks first) [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 store the current sound from the editor (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you upload or erase a sample with the computer tool (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"
       }
      ],
      "first_way_effect": "sounds can change or stop playing when separate samples, FM6 patches or SYN kits are replaced; saved notes and sound settings remain"
     },
     {
      "object": "sample slot USR1",
      "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": "sample slot USR2",
      "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": "sample slot USR3",
      "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": [],
    "notes": [
     "Felucca [Salt] reads sample slot USR1 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 sample slot USR2 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 sample slot USR3 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: 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; other writes can also erase it); 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; other writes can also erase it); 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; other writes can also erase it); 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; other writes can also erase it); settings, calibration, song order, SYN1-SYN4 kits and MIDI preferences; working music 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). At risk when you act: 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; other writes can also erase it); 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; other writes can also erase it); sample slot USR1; sample slot USR2; sample slot USR3. Felucca [Salt] reads sample slot USR1 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 sample slot USR2 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 sample slot USR3 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": "ACSK",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "saved section A",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start [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": "automatically during use [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": "automatically, only when playback stops after you learn or clear a MIDI mapping [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": "automatically, only when you edit the sampler and its matching sample leaves room to save those edits [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 calibrate the panel (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 erase a sample in USR1 in the older format directly with a MIDI tool (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 erase a sample in USR1 in the older format from the editor (the computer asks first) [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 erase a sample in USR2 in the older format directly with a MIDI tool (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 erase a sample in USR2 in the older format from the editor (the computer asks first) [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 erase a sample in USR3 in the older format directly with a MIDI tool (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 erase a sample in USR3 in the older format from the editor (the computer asks first) [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 erase the PIGEON bank with the bank tool (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 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": "lost"
       },
       {
        "way": "when you save a project from the editor (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you save or paste the selected pattern (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you send a PIGEON bank from the editor (the computer asks first) [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 send a PIGEON bank with the bank tool (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 send a sample in USR1 in the older format directly with a MIDI tool (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 send a sample in USR2 in the older format directly with a MIDI tool (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 send a sample in USR3 in the older format directly with a MIDI tool (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 send preferences from the web editor (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 upload a PIGEON bank with the library tool (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 upload a sample in USR1 in the older format from the editor (the computer asks first) [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 upload a sample in USR2 in the older format from the editor (the computer asks first) [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 upload a sample in USR3 in the older format from the editor (the computer asks first) [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"
       }
      ],
      "first_way_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": "lost",
      "ways": [
       {
        "way": "automatically at first start [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": "automatically during use [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": "automatically, only when playback stops after you learn or clear a MIDI mapping [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": "automatically, only when you edit the sampler and its matching sample leaves room to save those edits [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 calibrate the panel (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 erase a sample in USR1 in the older format directly with a MIDI tool (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 erase a sample in USR1 in the older format from the editor (the computer asks first) [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 erase a sample in USR2 in the older format directly with a MIDI tool (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 erase a sample in USR2 in the older format from the editor (the computer asks first) [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 erase a sample in USR3 in the older format directly with a MIDI tool (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 erase a sample in USR3 in the older format from the editor (the computer asks first) [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 erase the PIGEON bank with the bank tool (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 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": "lost"
       },
       {
        "way": "when you save a project from the editor (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you save or paste the selected pattern (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you send a PIGEON bank from the editor (the computer asks first) [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 send a PIGEON bank with the bank tool (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 send a sample in USR1 in the older format directly with a MIDI tool (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 send a sample in USR2 in the older format directly with a MIDI tool (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 send a sample in USR3 in the older format directly with a MIDI tool (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 send preferences from the web editor (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 upload a PIGEON bank with the library tool (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 upload a sample in USR1 in the older format from the editor (the computer asks first) [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 upload a sample in USR2 in the older format from the editor (the computer asks first) [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 upload a sample in USR3 in the older format from the editor (the computer asks first) [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"
       }
      ],
      "first_way_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": "lost",
      "ways": [
       {
        "way": "automatically at first start [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": "automatically during use [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": "automatically, only when playback stops after you learn or clear a MIDI mapping [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": "automatically, only when you edit the sampler and its matching sample leaves room to save those edits [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 calibrate the panel (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 erase a sample in USR1 in the older format directly with a MIDI tool (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 erase a sample in USR1 in the older format from the editor (the computer asks first) [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 erase a sample in USR2 in the older format directly with a MIDI tool (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 erase a sample in USR2 in the older format from the editor (the computer asks first) [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 erase a sample in USR3 in the older format directly with a MIDI tool (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 erase a sample in USR3 in the older format from the editor (the computer asks first) [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 erase the PIGEON bank with the bank tool (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 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": "lost"
       },
       {
        "way": "when you save a project from the editor (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you save or paste the selected pattern (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you send a PIGEON bank from the editor (the computer asks first) [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 send a PIGEON bank with the bank tool (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 send a sample in USR1 in the older format directly with a MIDI tool (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 send a sample in USR2 in the older format directly with a MIDI tool (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 send a sample in USR3 in the older format directly with a MIDI tool (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 send preferences from the web editor (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 upload a PIGEON bank with the library tool (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 upload a sample in USR1 in the older format from the editor (the computer asks first) [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 upload a sample in USR2 in the older format from the editor (the computer asks first) [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 upload a sample in USR3 in the older format from the editor (the computer asks first) [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"
       }
      ],
      "first_way_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": "lost",
      "ways": [
       {
        "way": "automatically at first start [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": "automatically during use [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": "automatically, only when playback stops after you learn or clear a MIDI mapping [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": "automatically, only when you edit the sampler and its matching sample leaves room to save those edits [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 calibrate the panel (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 erase a sample in USR1 in the older format directly with a MIDI tool (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 erase a sample in USR1 in the older format from the editor (the computer asks first) [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 erase a sample in USR2 in the older format directly with a MIDI tool (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 erase a sample in USR2 in the older format from the editor (the computer asks first) [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 erase a sample in USR3 in the older format directly with a MIDI tool (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 erase a sample in USR3 in the older format from the editor (the computer asks first) [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 erase the PIGEON bank with the bank tool (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 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": "lost"
       },
       {
        "way": "when you save a project from the editor (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you save or paste the selected pattern (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you send a PIGEON bank from the editor (the computer asks first) [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 send a PIGEON bank with the bank tool (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 send a sample in USR1 in the older format directly with a MIDI tool (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 send a sample in USR2 in the older format directly with a MIDI tool (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 send a sample in USR3 in the older format directly with a MIDI tool (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 send preferences from the web editor (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 upload a PIGEON bank with the library tool (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 upload a sample in USR1 in the older format from the editor (the computer asks first) [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 upload a sample in USR2 in the older format from the editor (the computer asks first) [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 upload a sample in USR3 in the older format from the editor (the computer asks first) [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"
       }
      ],
      "first_way_effect": "sounds can change or stop playing when separate samples, FM6 patches or SYN kits are replaced; saved notes and sound settings remain"
     },
     {
      "object": "working music kept by autosave",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start [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": "automatically during use [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": "automatically, only when playback stops after you learn or clear a MIDI mapping [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": "automatically, only when you edit the sampler and its matching sample leaves room to save those edits [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 calibrate the panel (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 erase a sample in USR1 in the older format directly with a MIDI tool (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 erase a sample in USR1 in the older format from the editor (the computer asks first) [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 erase a sample in USR2 in the older format directly with a MIDI tool (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 erase a sample in USR2 in the older format from the editor (the computer asks first) [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 erase a sample in USR3 in the older format directly with a MIDI tool (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 erase a sample in USR3 in the older format from the editor (the computer asks first) [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 erase the PIGEON bank with the bank tool (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 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 a PIGEON bank from the editor (the computer asks first) [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 send a PIGEON bank with the bank tool (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 send a sample in USR1 in the older format directly with a MIDI tool (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 send a sample in USR2 in the older format directly with a MIDI tool (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 send a sample in USR3 in the older format directly with a MIDI tool (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 send preferences from the web editor (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 upload a PIGEON bank with the library tool (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 upload a sample in USR1 in the older format from the editor (the computer asks first) [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 upload a sample in USR2 in the older format from the editor (the computer asks first) [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 upload a sample in USR3 in the older format from the editor (the computer asks first) [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"
       }
      ],
      "first_way_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": "lost",
      "ways": [
       {
        "way": "automatically at first start [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": "automatically, only when you edit the sampler and its matching sample leaves room to save those edits [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 erase a sample in USR1 in the older format directly with a MIDI tool (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 erase a sample in USR1 in the older format from the editor (the computer asks first) [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 erase a sample in USR2 in the older format directly with a MIDI tool (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 erase a sample in USR2 in the older format from the editor (the computer asks first) [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 erase a sample in USR3 in the older format directly with a MIDI tool (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 erase a sample in USR3 in the older format from the editor (the computer asks first) [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 erase the PIGEON bank with the bank tool (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 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 a PIGEON bank from the editor (the computer asks first) [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 send a PIGEON bank with the bank tool (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 send a sample in USR1 in the older format directly with a MIDI tool (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 send a sample in USR2 in the older format directly with a MIDI tool (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 send a sample in USR3 in the older format directly with a MIDI tool (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 upload a PIGEON bank with the library tool (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 upload a sample in USR1 in the older format from the editor (the computer asks first) [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 upload a sample in USR2 in the older format from the editor (the computer asks first) [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 upload a sample in USR3 in the older format from the editor (the computer asks first) [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"
       }
      ],
      "first_way_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": "lost",
      "ways": [
       {
        "way": "automatically at first start [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": "automatically, only when you edit the sampler and its matching sample leaves room to save those edits [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 erase a sample in USR1 in the older format directly with a MIDI tool (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 erase a sample in USR1 in the older format from the editor (the computer asks first) [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 erase a sample in USR2 in the older format directly with a MIDI tool (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 erase a sample in USR2 in the older format from the editor (the computer asks first) [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 erase a sample in USR3 in the older format directly with a MIDI tool (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 erase a sample in USR3 in the older format from the editor (the computer asks first) [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 erase the PIGEON bank with the bank tool (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 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 a PIGEON bank from the editor (the computer asks first) [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 send a PIGEON bank with the bank tool (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 send a sample in USR1 in the older format directly with a MIDI tool (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 send a sample in USR2 in the older format directly with a MIDI tool (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 send a sample in USR3 in the older format directly with a MIDI tool (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 upload a PIGEON bank with the library tool (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 upload a sample in USR1 in the older format from the editor (the computer asks first) [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 upload a sample in USR2 in the older format from the editor (the computer asks first) [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 upload a sample in USR3 in the older format from the editor (the computer asks first) [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"
       }
      ],
      "first_way_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": "automatically at first start",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "settings, calibration, song order, SYN1-SYN4 kits and MIDI preferences",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use",
        "effect": "lost"
       },
       {
        "way": "automatically, only when playback stops after you learn or clear a MIDI mapping",
        "effect": "lost"
       },
       {
        "way": "when you calibrate the panel (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 restore compatible backup data with another MIDI tool (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you send preferences from the web editor (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "sample slot USR1",
      "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": "sample slot USR2",
      "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": "sample slot USR3",
      "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": "sample slot USR4",
      "effect": "damaged (part written over)",
      "ways": [
       {
        "way": "when you erase the PIGEON bank with the bank tool (without asking)",
        "effect": "damaged (part written over)"
       },
       {
        "way": "when you restore a PIGEON archive with the library tool (without asking)",
        "effect": "damaged (part written over)"
       },
       {
        "way": "when you restore a PIGEON session in its editor (the computer asks once before restoring the whole backup)",
        "effect": "damaged (part written over)"
       },
       {
        "way": "when you send a PIGEON bank from the editor (the computer asks first)",
        "effect": "damaged (part written over)"
       },
       {
        "way": "when you send a PIGEON bank with the bank tool (without asking)",
        "effect": "damaged (part written over)"
       },
       {
        "way": "when you upload a PIGEON bank with the library tool (without asking)",
        "effect": "damaged (part written over)"
       }
      ]
     }
    ],
    "possibly_at_risk": [],
    "carried_over": [],
    "kept_unseen": [],
    "notes": [
     "PIGEON reads sample slot USR1 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 sample slot USR2 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 sample slot USR3 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."
    ],
    "owner_text": "At risk by itself: 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; other writes can also erase it); 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; other writes can also erase it); 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; other writes can also erase it); 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; other writes can also erase it); working music 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; other writes can also erase it); 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; other writes can also erase it); 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; other writes can also erase it); FM6 bank B1-B27; settings, calibration, song order, SYN1-SYN4 kits and MIDI preferences. At risk by itself, under a condition: sample slot USR1. At risk when you act: sample slot USR2; sample slot USR3; sample slot USR4 (damaged (part written over)). PIGEON reads sample slot USR1 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 sample slot USR2 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 sample slot USR3 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.",
    "source": "flash-atlas derived/matrix.json (generated by apply_to_maps.py; do not edit by hand)"
   },
   {
    "to": "fm1move",
    "name": "FM1 Move",
    "flags": "CSK",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "USER sounds U01-U16",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically, only at first start or on later autosaves after working music changes, unless a sample remains in the old fourth slot [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": "automatically, only when the device page's Projects tab shows a Working project size greater than 3,824 B and no sample remains in the old fourth slot [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": "automatically, only when the device page's Projects tab shows a Working project size greater than 7,648 B and no sample remains in the old fourth slot [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 clear a project with a MIDI tool (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 erase a sample directly with a MIDI tool (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 erase a sample from the device page (the computer asks first) [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 erase an FM6 sound from the device page (the computer asks first for that slot only; writes the whole bank) [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 import a preset file from the device page (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you import a project from the device page (the computer asks first) [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 press SAVE on PROJECT or choose Save here in the device page, after removing any old fourth sample (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 restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you send a project directly with a MIDI tool (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 send a sample directly with a MIDI tool (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 send or clear a user-sound bank directly with a MIDI tool (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you send or clear an FM6 bank directly with a MIDI tool (without asking; writes the whole bank) [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 send, store, rename or erase a user sound directly with a MIDI tool (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you store a user sound from the device page (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) [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 store selected DX7 voices from the device page (the computer asks first about the slots it fills; writes the whole bank) [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 upload a sample from the device page (the computer asks first) [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"
       }
      ],
      "first_way_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": "lost",
      "ways": [
       {
        "way": "automatically, only at first start or on later autosaves after working music changes, unless a sample remains in the old fourth slot [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": "automatically, only when the device page's Projects tab shows a Working project size greater than 3,824 B and no sample remains in the old fourth slot [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": "automatically, only when the device page's Projects tab shows a Working project size greater than 7,648 B and no sample remains in the old fourth slot [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 clear a project with a MIDI tool (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 erase a sample directly with a MIDI tool (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 erase a sample from the device page (the computer asks first) [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 erase an FM6 sound from the device page (the computer asks first for that slot only; writes the whole bank) [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 import a preset file from the device page (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you import a project from the device page (the computer asks first) [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 press SAVE on PROJECT or choose Save here in the device page, after removing any old fourth sample (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 restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you send a project directly with a MIDI tool (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 send a sample directly with a MIDI tool (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 send or clear a user-sound bank directly with a MIDI tool (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you send or clear an FM6 bank directly with a MIDI tool (without asking; writes the whole bank) [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 send, store, rename or erase a user sound directly with a MIDI tool (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you store a user sound from the device page (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) [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 store selected DX7 voices from the device page (the computer asks first about the slots it fills; writes the whole bank) [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 upload a sample from the device page (the computer asks first) [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"
       }
      ],
      "first_way_effect": "sounds can change or stop playing when separate samples, FM6 patches or SYN kits are replaced; saved notes and sound settings remain"
     },
     {
      "object": "sample slot USR4",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically, only at first start or on later autosaves after working music changes, unless a sample remains in the old fourth slot",
        "effect": "damaged (part written over)"
       },
       {
        "way": "automatically, only when the device page's Projects tab shows a Working project size greater than 3,824 B and no sample remains in the old fourth slot",
        "effect": "damaged (part written over)"
       },
       {
        "way": "automatically, only when the device page's Projects tab shows a Working project size greater than 7,648 B and no sample remains in the old fourth slot",
        "effect": "damaged (part written over)"
       },
       {
        "way": "when you clear a project with a MIDI tool (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you import a project from the device page (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you press SAVE on PROJECT or choose Save here in the device page, after removing any old fourth sample (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 project directly with a MIDI tool (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": "automatically, only at first start or on later autosaves after working music changes, unless a sample remains in the old fourth slot [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": "automatically, only when the device page's Projects tab shows a Working project size greater than 3,824 B and no sample remains in the old fourth slot [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": "automatically, only when the device page's Projects tab shows a Working project size greater than 7,648 B and no sample remains in the old fourth slot [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 clear a project with a MIDI tool (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 erase a sample directly with a MIDI tool (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 erase a sample from the device page (the computer asks first) [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 erase an FM6 sound from the device page (the computer asks first for that slot only; writes the whole bank) [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 finish calibration or let it time out after holding both OCT buttons as you turn it 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 import a project from the device page (the computer asks first) [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 press SAVE on PROJECT or choose Save here in the device page, after removing any old fourth sample (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 restore a backup from the editor (the computer asks once before restoring the whole backup) [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 send a project directly with a MIDI tool (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 send a sample directly with a MIDI tool (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 send or clear an FM6 bank directly with a MIDI tool (without asking; writes the whole bank) [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 send settings or MIDI control assignments with a computer tool or store SYN kits from the web editor (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 store or erase an FM6 sound directly with a MIDI tool (without asking; writes the whole bank) [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 store selected DX7 voices from the device page (the computer asks first about the slots it fills; writes the whole bank) [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 upload a sample from the device page (the computer asks first) [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": "automatically, only at first start or on later autosaves after working music changes, unless a sample remains in the old fourth slot [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": "automatically, only when the device page's Projects tab shows a Working project size greater than 3,824 B and no sample remains in the old fourth slot [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": "automatically, only when the device page's Projects tab shows a Working project size greater than 7,648 B and no sample remains in the old fourth slot [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 clear a project with a MIDI tool (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 erase a sample directly with a MIDI tool (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 erase a sample from the device page (the computer asks first) [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 erase an FM6 sound from the device page (the computer asks first for that slot only; writes the whole bank) [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 finish calibration or let it time out after holding both OCT buttons as you turn it 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 import a project from the device page (the computer asks first) [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 press SAVE on PROJECT or choose Save here in the device page, after removing any old fourth sample (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 restore a backup from the editor (the computer asks once before restoring the whole backup) [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 send a project directly with a MIDI tool (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 send a sample directly with a MIDI tool (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 send or clear an FM6 bank directly with a MIDI tool (without asking; writes the whole bank) [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 send settings or MIDI control assignments with a computer tool or store SYN kits from the web editor (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 store or erase an FM6 sound directly with a MIDI tool (without asking; writes the whole bank) [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 store selected DX7 voices from the device page (the computer asks first about the slots it fills; writes the whole bank) [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 upload a sample from the device page (the computer asks first) [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": "automatically, only at first start or on later autosaves after working music changes, unless a sample remains in the old fourth slot [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": "automatically, only when the device page's Projects tab shows a Working project size greater than 3,824 B and no sample remains in the old fourth slot [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": "automatically, only when the device page's Projects tab shows a Working project size greater than 7,648 B and no sample remains in the old fourth slot [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 clear a project with a MIDI tool (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 erase a sample directly with a MIDI tool (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 erase a sample from the device page (the computer asks first) [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 erase an FM6 sound from the device page (the computer asks first for that slot only; writes the whole bank) [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 finish calibration or let it time out after holding both OCT buttons as you turn it 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 import a project from the device page (the computer asks first) [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 press SAVE on PROJECT or choose Save here in the device page, after removing any old fourth sample (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 restore a backup from the editor (the computer asks once before restoring the whole backup) [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 send a project directly with a MIDI tool (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 send a sample directly with a MIDI tool (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 send or clear an FM6 bank directly with a MIDI tool (without asking; writes the whole bank) [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 send settings or MIDI control assignments with a computer tool or store SYN kits from the web editor (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 store or erase an FM6 sound directly with a MIDI tool (without asking; writes the whole bank) [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 store selected DX7 voices from the device page (the computer asks first about the slots it fills; writes the whole bank) [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 upload a sample from the device page (the computer asks first) [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": "automatically, only at first start or on later autosaves after working music changes, unless a sample remains in the old fourth slot [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": "automatically, only when the device page's Projects tab shows a Working project size greater than 3,824 B and no sample remains in the old fourth slot [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": "automatically, only when the device page's Projects tab shows a Working project size greater than 7,648 B and no sample remains in the old fourth slot [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 clear a project with a MIDI tool (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 erase a sample directly with a MIDI tool (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 erase a sample from the device page (the computer asks first) [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 erase an FM6 sound from the device page (the computer asks first for that slot only; writes the whole bank) [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 finish calibration or let it time out after holding both OCT buttons as you turn it 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 import a project from the device page (the computer asks first) [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 press SAVE on PROJECT or choose Save here in the device page, after removing any old fourth sample (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 restore a backup from the editor (the computer asks once before restoring the whole backup) [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 send a project directly with a MIDI tool (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 send a sample directly with a MIDI tool (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 send or clear an FM6 bank directly with a MIDI tool (without asking; writes the whole bank) [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 send settings or MIDI control assignments with a computer tool or store SYN kits from the web editor (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 store or erase an FM6 sound directly with a MIDI tool (without asking; writes the whole bank) [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 store selected DX7 voices from the device page (the computer asks first about the slots it fills; writes the whole bank) [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 upload a sample from the device page (the computer asks first) [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": "working music 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": "automatically, only at first start or on later autosaves after working music changes, unless a sample remains in the old fourth slot [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": "automatically, only when the device page's Projects tab shows a Working project size greater than 3,824 B and no sample remains in the old fourth slot [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": "automatically, only when the device page's Projects tab shows a Working project size greater than 7,648 B and no sample remains in the old fourth slot [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 clear a project with a MIDI tool (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 erase a sample directly with a MIDI tool (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 erase a sample from the device page (the computer asks first) [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 erase an FM6 sound from the device page (the computer asks first for that slot only; writes the whole bank) [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 finish calibration or let it time out after holding both OCT buttons as you turn it 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 import a project from the device page (the computer asks first) [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 press SAVE on PROJECT or choose Save here in the device page, after removing any old fourth sample (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 restore a backup from the editor (the computer asks once before restoring the whole backup) [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 send a project directly with a MIDI tool (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 send a sample directly with a MIDI tool (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 send or clear an FM6 bank directly with a MIDI tool (without asking; writes the whole bank) [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 send settings or MIDI control assignments with a computer tool or store SYN kits from the web editor (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 store or erase an FM6 sound directly with a MIDI tool (without asking; writes the whole bank) [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 store selected DX7 voices from the device page (the computer asks first about the slots it fills; writes the whole bank) [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 upload a sample from the device page (the computer asks first) [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": "settings, calibration, song order, SYN1-SYN4 kits and MIDI preferences",
      "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": "sample slot USR1",
      "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": "sample slot USR2",
      "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": "sample slot USR3",
      "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": "FM6 bank B1-B27",
      "effect": "lost",
      "ways": [
       {
        "way": "when you erase an FM6 sound from the device page (the computer asks first for that slot only; writes the whole bank)",
        "effect": "partly lost (only that patch)"
       },
       {
        "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": "partly lost (only that patch)"
       },
       {
        "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": "some or all lost"
       }
      ]
     }
    ],
    "possibly_at_risk": [],
    "carried_over": [],
    "kept_unseen": [],
    "notes": [
     "Move blocks ordinary project saves and autosaves while it still recognizes the old fourth sample. Direct project restores and clear commands can still erase it. Move's normal sample backup does not include that fourth sample.",
     "FM1 Move reads sample slot USR1 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 sample slot USR2 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 sample slot USR3 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 FM6 bank B1-B27 until you write over the saved data. The FM6 patch bank is shared. The project and its links to user sounds are not transferred.",
     "FM1 Move reads sample slot USR4 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, under a condition: 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; other writes can also erase it); 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; other writes can also erase it); sample slot USR4; 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); working music 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). At risk when you act: settings, calibration, song order, SYN1-SYN4 kits and MIDI preferences; sample slot USR1; sample slot USR2; sample slot USR3; FM6 bank B1-B27. Move blocks ordinary project saves and autosaves while it still recognizes the old fourth sample. Direct project restores and clear commands can still erase it. Move's normal sample backup does not include that fourth sample. FM1 Move reads sample slot USR1 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 sample slot USR2 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 sample slot USR3 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 FM6 bank B1-B27 until you write over the saved data. The FM6 patch bank is shared. The project and its links to user sounds are not transferred. FM1 Move reads sample slot USR4 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": "fm1quest",
    "name": "FM1 Quest",
    "flags": "ASK",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "saved section A",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use [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 enter update mode with settings waiting to be saved [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 erase a sample from the editor (the computer asks first) [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 erase a sample with computer commands (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 erase sample USR1 by holding REC on it in IMPORTER (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 erase sample USR2 by holding REC on it in IMPORTER (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 erase sample USR3 by holding REC on it in IMPORTER (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 press SAVE on the SONG screen (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 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 section B from SONG (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 save section C from SONG (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 save section D from SONG (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 save the current music as section A (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you send a sample from the editor (the computer asks first) [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 send a sample with computer commands (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 send or clear a section with computer commands (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you send or erase training song H1 (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 send or erase training song H2 (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 send or erase training song H3 (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 send or erase training song H4 (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 send or erase training song H5 (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 send or erase training song H6 (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 send or erase training song P1 (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 send or erase training song P2 (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 send or erase training song P3 (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 send or erase training song P4 (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 send or erase training song P5 (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 send or erase training song P6 (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 send settings with computer commands (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"
       }
      ],
      "first_way_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": "lost",
      "ways": [
       {
        "way": "automatically during use [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 enter update mode with settings waiting to be saved [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 erase a sample from the editor (the computer asks first) [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 erase a sample with computer commands (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 erase sample USR1 by holding REC on it in IMPORTER (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 erase sample USR2 by holding REC on it in IMPORTER (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 erase sample USR3 by holding REC on it in IMPORTER (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 press SAVE on the SONG screen (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 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 A from SONG (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 save section B from SONG (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save section C from SONG (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 save section D from SONG (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 save the current music as section B (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you send a sample from the editor (the computer asks first) [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 send a sample with computer commands (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 send or clear a section with computer commands (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you send or erase training song H1 (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 send or erase training song H2 (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 send or erase training song H3 (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 send or erase training song H4 (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 send or erase training song H5 (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 send or erase training song H6 (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 send or erase training song P1 (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 send or erase training song P2 (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 send or erase training song P3 (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 send or erase training song P4 (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 send or erase training song P5 (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 send or erase training song P6 (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 send settings with computer commands (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"
       }
      ],
      "first_way_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": "lost",
      "ways": [
       {
        "way": "automatically during use [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 enter update mode with settings waiting to be saved [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 erase a sample from the editor (the computer asks first) [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 erase a sample with computer commands (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 erase sample USR1 by holding REC on it in IMPORTER (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 erase sample USR2 by holding REC on it in IMPORTER (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 erase sample USR3 by holding REC on it in IMPORTER (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 press SAVE on the SONG screen (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 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 A from SONG (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 save section B from SONG (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 save section C from SONG (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save section D from SONG (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 save the current music as section C (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you send a sample from the editor (the computer asks first) [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 send a sample with computer commands (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 send or clear a section with computer commands (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you send or erase training song H1 (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 send or erase training song H2 (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 send or erase training song H3 (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 send or erase training song H4 (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 send or erase training song H5 (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 send or erase training song H6 (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 send or erase training song P1 (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 send or erase training song P2 (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 send or erase training song P3 (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 send or erase training song P4 (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 send or erase training song P5 (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 send or erase training song P6 (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 send settings with computer commands (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"
       }
      ],
      "first_way_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": "lost",
      "ways": [
       {
        "way": "automatically during use [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 enter update mode with settings waiting to be saved [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 erase a sample from the editor (the computer asks first) [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 erase a sample with computer commands (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 erase sample USR1 by holding REC on it in IMPORTER (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 erase sample USR2 by holding REC on it in IMPORTER (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 erase sample USR3 by holding REC on it in IMPORTER (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 press SAVE on the SONG screen (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 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 A from SONG (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 save section B from SONG (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 save section C from SONG (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 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 a sample from the editor (the computer asks first) [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 send a sample with computer commands (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 send or clear a section with computer commands (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you send or erase training song H1 (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 send or erase training song H2 (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 send or erase training song H3 (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 send or erase training song H4 (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 send or erase training song H5 (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 send or erase training song H6 (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 send or erase training song P1 (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 send or erase training song P2 (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 send or erase training song P3 (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 send or erase training song P4 (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 send or erase training song P5 (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 send or erase training song P6 (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 send settings with computer commands (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"
       }
      ],
      "first_way_effect": "sounds can change or stop playing when separate samples, FM6 patches or SYN kits are replaced; saved notes and sound settings remain"
     },
     {
      "object": "working music kept by autosave",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start",
        "effect": "lost"
       },
       {
        "way": "automatically during use [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 enter update mode or receive a firmware update",
        "effect": "lost"
       },
       {
        "way": "when you enter update mode with settings waiting to be saved [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 erase a sample from the editor (the computer asks first) [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 erase a sample with computer commands (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 erase sample USR1 by holding REC on it in IMPORTER (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 erase sample USR2 by holding REC on it in IMPORTER (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 erase sample USR3 by holding REC on it in IMPORTER (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 press SAVE on the SONG screen (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 restore a backup from the editor (the computer asks once before restoring the whole backup) [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 save section A from SONG (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 save section B from SONG (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 save section C from SONG (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 save section D from SONG (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 send a sample from the editor (the computer asks first) [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 send a sample with computer commands (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 send or erase training song H1 (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 send or erase training song H2 (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 send or erase training song H3 (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 send or erase training song H4 (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 send or erase training song H5 (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 send or erase training song H6 (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 send or erase training song P1 (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 send or erase training song P2 (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 send or erase training song P3 (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 send or erase training song P4 (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 send or erase training song P5 (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 send or erase training song P6 (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 send settings with computer commands (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": "settings, calibration, song order, SYN1-SYN4 kits and MIDI preferences",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use",
        "effect": "changed to the new format: A settings save keeps Quest’s calibration and song-order format while dropping the source firmware’s extra drum kits, MIDI controls or theme and favourites. Quest can read saved playing options as game preferences or progress"
       },
       {
        "way": "when you enter update mode with settings waiting to be saved",
        "effect": "changed to the new format: A settings save keeps Quest’s calibration and song-order format while dropping the source firmware’s extra drum kits, MIDI controls or theme and favourites. Quest can read saved playing options as game preferences or progress"
       },
       {
        "way": "when you press SAVE on the SONG screen (without asking)",
        "effect": "changed to the new format: A settings save keeps Quest’s calibration and song-order format while dropping the source firmware’s extra drum kits, MIDI controls or theme and favourites. Quest can read saved playing options as game preferences or progress"
       },
       {
        "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": "changed to the new format: A settings save keeps Quest’s calibration and song-order format while dropping the source firmware’s extra drum kits, MIDI controls or theme and favourites. Quest can read saved playing options as game preferences or progress"
       },
       {
        "way": "when you save section B from SONG (without asking)",
        "effect": "changed to the new format: A settings save keeps Quest’s calibration and song-order format while dropping the source firmware’s extra drum kits, MIDI controls or theme and favourites. Quest can read saved playing options as game preferences or progress"
       },
       {
        "way": "when you save section C from SONG (without asking)",
        "effect": "changed to the new format: A settings save keeps Quest’s calibration and song-order format while dropping the source firmware’s extra drum kits, MIDI controls or theme and favourites. Quest can read saved playing options as game preferences or progress"
       },
       {
        "way": "when you save section D from SONG (without asking)",
        "effect": "changed to the new format: A settings save keeps Quest’s calibration and song-order format while dropping the source firmware’s extra drum kits, MIDI controls or theme and favourites. Quest can read saved playing options as game preferences or progress"
       },
       {
        "way": "when you send settings with computer commands (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "sample slot USR1",
      "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": "sample slot USR2",
      "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": "sample slot USR3",
      "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": "USER sounds U01-U16",
      "effect": "lost",
      "ways": [
       {
        "way": "when you erase a sample from the editor (the computer asks first) [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 erase a sample with computer commands (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 erase sample USR1 by holding REC on it in IMPORTER (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 erase sample USR2 by holding REC on it in IMPORTER (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 erase sample USR3 by holding REC on it in IMPORTER (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 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": "lost"
       },
       {
        "way": "when you save the current sound from the editor (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you send a sample from the editor (the computer asks first) [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 send a sample with computer commands (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 send a user sound from the editor (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you send or erase training song H1 (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 send or erase training song H2 (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 send or erase training song H3 (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 send or erase training song H4 (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 send or erase training song H5 (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 send or erase training song H6 (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 send or erase training song P1 (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 send or erase training song P2 (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 send or erase training song P3 (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 send or erase training song P4 (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 send or erase training song P5 (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 send or erase training song P6 (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 send, save or erase a user sound with computer commands (without asking; writes the whole bank)",
        "effect": "lost"
       }
      ],
      "first_way_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": "lost",
      "ways": [
       {
        "way": "when you erase a sample from the editor (the computer asks first) [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 erase a sample with computer commands (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 erase sample USR1 by holding REC on it in IMPORTER (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 erase sample USR2 by holding REC on it in IMPORTER (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 erase sample USR3 by holding REC on it in IMPORTER (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 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": "lost"
       },
       {
        "way": "when you save the current sound from the editor (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you send a sample from the editor (the computer asks first) [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 send a sample with computer commands (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 send a user sound from the editor (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you send or erase training song H1 (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 send or erase training song H2 (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 send or erase training song H3 (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 send or erase training song H4 (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 send or erase training song H5 (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 send or erase training song H6 (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 send or erase training song P1 (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 send or erase training song P2 (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 send or erase training song P3 (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 send or erase training song P4 (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 send or erase training song P5 (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 send or erase training song P6 (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 send, save or erase a user sound with computer commands (without asking; writes the whole bank)",
        "effect": "lost"
       }
      ],
      "first_way_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": [
     "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."
    ],
    "owner_text": "At risk by itself: 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; other writes can also erase it); 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; other writes can also erase it); 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; other writes can also erase it); 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; other writes can also erase it); working music kept by autosave; settings, calibration, song order, SYN1-SYN4 kits and MIDI preferences. At risk when you act: sample slot USR1; sample slot USR2; sample slot USR3; 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; other writes can also erase it); 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; other writes can also erase it). 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.",
    "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, calibration, song order, SYN1-SYN4 kits and MIDI preferences",
     "saved section A",
     "saved section B",
     "saved section C",
     "saved section D",
     "USER sounds U01-U16",
     "USER sounds U17-U32",
     "working music kept by autosave",
     "FM6 bank B1-B27",
     "sample slot USR1",
     "sample slot USR2",
     "sample slot USR3",
     "sample slot USR4"
    ],
    "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, calibration, song order, SYN1-SYN4 kits and MIDI preferences; saved section A; saved section B; saved section C; saved section D; USER sounds U01-U16; USER sounds U17-U32; working music kept by autosave; FM6 bank B1-B27; sample slot USR1; sample slot USR2; sample slot USR3; sample slot USR4. 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)"
   }
  ],
  "evidence": "read-in-source",
  "foreign_overlap_evidence": "inferred from ORBIT source write ranges joined with the supplied atlas and twelve checked storage fragments; no device switch tested",
  "source": [
   {
    "kind": "source",
    "repo": "dspaudio/orbit",
    "ref": "v0.7.1",
    "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
    "path": "firmware/src/storage.c",
    "lines": "52-63",
    "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/storage.c#L52-L63"
   },
   {
    "kind": "source",
    "repo": "dspaudio/orbit",
    "ref": "v0.7.1",
    "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
    "path": "firmware/src/storage.c",
    "lines": "127-169",
    "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/storage.c#L127-L169"
   },
   {
    "kind": "source",
    "repo": "dspaudio/orbit",
    "ref": "v0.7.1",
    "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
    "path": "firmware/src/project.c",
    "lines": "687-745",
    "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/project.c#L687-L745"
   },
   {
    "kind": "source",
    "repo": "dspaudio/orbit",
    "ref": "v0.7.1",
    "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
    "path": "firmware/src/project.c",
    "lines": "993-1007",
    "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/project.c#L993-L1007"
   },
   {
    "kind": "source",
    "repo": "dspaudio/orbit",
    "ref": "v0.7.1",
    "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
    "path": "firmware/src/project.c",
    "lines": "1129-1224",
    "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/project.c#L1129-L1224"
   },
   {
    "kind": "source",
    "repo": "dspaudio/orbit",
    "ref": "v0.7.1",
    "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
    "path": "firmware/src/editor.c",
    "lines": "407-476",
    "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/editor.c#L407-L476"
   },
   {
    "kind": "source",
    "repo": "dspaudio/orbit",
    "ref": "v0.7.1",
    "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
    "path": "firmware/src/editor_fm6.c",
    "lines": "63-70",
    "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/editor_fm6.c#L63-L70"
   },
   {
    "kind": "source",
    "repo": "dspaudio/orbit",
    "ref": "v0.7.1",
    "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
    "path": "firmware/src/project.c",
    "lines": "474-512",
    "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/project.c#L474-L512"
   },
   {
    "kind": "source",
    "repo": "dspaudio/orbit",
    "ref": "v0.7.1",
    "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
    "path": "firmware/src/ota.c",
    "lines": "342-346",
    "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ota.c#L342-L346"
   },
   {
    "kind": "source",
    "repo": "dspaudio/orbit",
    "ref": "v0.7.1",
    "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
    "path": "firmware/src/ota.c",
    "lines": "395-407",
    "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ota.c#L395-L407"
   },
   {
    "kind": "source",
    "repo": "dspaudio/orbit",
    "ref": "v0.7.1",
    "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
    "path": "firmware/loader/ldr_core.c",
    "lines": "91-102",
    "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/loader/ldr_core.c#L91-L102"
   },
   {
    "kind": "source",
    "repo": "dspaudio/orbit",
    "ref": "v0.7.1",
    "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
    "path": "firmware/loader/ldr_core.c",
    "lines": "133-175",
    "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/loader/ldr_core.c#L133-L175"
   },
   {
    "kind": "source",
    "repo": "dspaudio/orbit",
    "ref": "v0.7.1",
    "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
    "path": "web/editor.html",
    "lines": "1808-1881",
    "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/web/editor.html#L1808-L1881"
   },
   {
    "kind": "source",
    "repo": "dspaudio/orbit",
    "ref": "v0.7.1",
    "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
    "path": "web/editor.html",
    "lines": "1902-1959",
    "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/web/editor.html#L1902-L1959"
   },
   {
    "kind": "source",
    "repo": "dspaudio/orbit",
    "ref": "v0.7.1",
    "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
    "path": "firmware/src/ui_input.c",
    "lines": "724-726",
    "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L724-L726"
   },
   {
    "kind": "source",
    "repo": "dspaudio/orbit",
    "ref": "v0.7.1",
    "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
    "path": "firmware/src/ui_song.c",
    "lines": "123-131",
    "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_song.c#L123-L131"
   },
   {
    "kind": "source",
    "repo": "dspaudio/orbit",
    "ref": "v0.7.1",
    "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
    "path": "firmware/src/editor_dsyn.c",
    "lines": "14-26",
    "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/editor_dsyn.c#L14-L26"
   },
   {
    "kind": "source",
    "repo": "dspaudio/orbit",
    "ref": "v0.7.1",
    "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
    "path": "firmware/src/editor.c",
    "lines": "478-538",
    "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/editor.c#L478-L538"
   },
   {
    "kind": "source",
    "repo": "dspaudio/orbit",
    "ref": "v0.7.1",
    "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
    "path": "firmware/src/editor.c",
    "lines": "122-135",
    "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/editor.c#L122-L135"
   },
   {
    "kind": "source",
    "repo": "dspaudio/orbit",
    "ref": "v0.7.1",
    "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
    "path": "firmware/src/editor.c",
    "lines": "796-835",
    "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/editor.c#L796-L835"
   },
   {
    "kind": "source",
    "repo": "dspaudio/orbit",
    "ref": "v0.7.1",
    "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
    "path": "firmware/src/eng_sample.c",
    "lines": "41-45",
    "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_sample.c#L41-L45"
   },
   {
    "kind": "source",
    "repo": "dspaudio/orbit",
    "ref": "v0.7.1",
    "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
    "path": "firmware/src/ui_vis.c",
    "lines": "655-661",
    "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_vis.c#L655-L661"
   }
  ],
  "foreign_layouts": [
   "flash-atlas/atlas.json",
   "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",
   "refresh/work/sloopdx.storage.json",
   "refresh/work/zp12.storage.json",
   "refresh/work/rainbow.storage.json",
   "refresh/work/duell.storage.json",
   "refresh/work/fimba.storage.json",
   "refresh/work/maku.storage.json",
   "refresh/work/fart.storage.json"
  ],
  "owner_overwrite_groups": [
   {
    "trigger": "At first start",
    "note": "A normal start can clear the whole temporary update area without asking if either update check finds occupied memory. See the switching advice in this section for the affected saved work. X0X’s and Polly’s restore journals do not trigger this cleanup by themselves, but are erased too when either checked update trace triggers it, preventing those journals from completing their interrupted restores."
   },
   {
    "trigger": "Settings saves",
    "note": "The first HOME-menu close can write even without an edit if settings differ from the saved state; later automatic settings writes follow Visualizer style changes, MIDI or recording choices and song-order changes. Calibration at power-on calls settings saving even after a timeout, while menu calibration saves on menu close; timeout restores the old button map, but other changed or default settings can still be written. Deliberate writers also include SAVE on SONG, a REC section store on SONG, the editor’s SYN-kit Store, and settings, SYN-kit or MIDI restore. See the switching advice in this section for the affected saved work. There is no separate question about this other firmware’s work; any section-overwrite or backup-restore question concerns the ORBIT operation. On return to X0X, an unreadable newer settings copy can make its whole sound, pattern, song and motion project reset to factory values instead of using the older copy."
   },
   {
    "trigger": "Working autosave",
    "note": "The first eligible working autosave can happen without an edit after the startup interval, and later idle autosaves or an update-mode flush write the same space. See the switching advice in this section for the affected saved work. On return to SLOOP, its last loop can fail to restore because the newer ORBIT working save is unreadable and SLOOP does not retry the older copy."
   },
   {
    "trigger": "Section storage",
    "note": "Saving, erasing or restoring an ORBIT section, or flushing a section captured with SAVE and a key, writes its saved section. See the switching advice in this section for the affected saved work. Panel PROJECT actions require two action turns; live section storage and SONG REC ask again only for a section ORBIT reports as occupied, while the browser confirms project saves. The captured live section writes after stop and quiet inactivity; direct PROJECT saves write while stopped. No question separately names foreign work. Returning to Felucca, SLOOP, sloopDX, JIANT, Skiff or Rainbow Mode can show a section as empty when a newer ORBIT copy is selected and rejected, even if an older readable copy remains. ORBIT’s section saves, section erases (SAVE > PROJECT > ERASE or clearing a section with a MIDI tool), section restores, section writes after a quiet stop or warm reset, section writes before updates or USB update mode, USER sound bank writes and sample writes can also replace ChoralRoot’s legacy sounds and patches, kept for returning to ChoralRoot 0.21 or older."
   },
   {
    "trigger": "USER sound banks",
    "note": "Each saved, erased, renamed or restored USER sound bank rewrites sixteen records, including imported records and records that decoded as empty. See the switching advice in this section for the affected saved work. The panel’s save and erase actions need two positive turns. The browser asks before overwriting a used USER slot and before erasing one; its cartridge-store and full-backup restore paths have their own questions, while direct commands can write without one. Foreign work that ORBIT shows as empty receives no occupied-slot question. Returning to SLOOP or sloopDX can hide its older sounds because the newer ORBIT bank shape is rejected without retrying an older readable bank."
   },
   {
    "trigger": "FM6 bank",
    "note": "An FM6-bank write, erase, cartridge store or restore rewrites all 27 bank slots. See the switching advice in this section for the affected saved work. The browser asks before overwriting a used slot, erasing a used slot, storing a cartridge or restoring a backup; direct commands have no device question. Other firmware’s work receives no separate warning, and loss of an unfinished bank send can remove its recovery copy."
   },
   {
    "trigger": "Samples",
    "note": "A sample upload makes the old slot unusable as soon as it begins and replaces more audio as it proceeds; a sample erase or an explicitly empty sample restore clears the whole slot, with no sample undo. See the switching advice in this section for the affected saved work. Browser sample, CHOP and drum-kit sends ask first, with one question for a kit slot pair; browser erase and full-backup restore also ask, while direct commands do not. These questions do not identify foreign work. OberVave pattern 8 is outside ORBIT’s sample-upload slots. Its notes stay, but ORBIT’s settings writes, including automatic ones, can replace the saved program its B-track uses, so it can sound different."
   },
   {
    "trigger": "Installer",
    "note": "Installing through the supplied loader replaces changed program areas. See the switching advice in this section for the affected saved work. The following conditional cleanup and outgoing-update behavior are separate from this program write."
   },
   {
    "trigger": "Installer cleanup",
    "note": "The included loader also erases a sector that ends in a valid leftover update record. Saved projects, sounds and samples are not update records, so this cleanup does not touch saved work."
   },
   {
    "trigger": "Starting an update from ORBIT",
    "note": "Staging an incoming updater, or clearing it after a failed attempt, can erase the temporary update area without a separate device question. See the switching advice in this section for the affected saved work. This can erase X0X’s or Polly’s pending-restore information even when their journals alone would not have triggered ordinary startup cleanup."
   }
  ],
  "backup_exceptions": "Felucca’s FM6 bank B1–B32 is absent from its full backup, and GHOULBOX’s B1–B32 bank is absent from its musical archive. Retain their original .syx bank files separately; if you cannot reconstruct a bank, leave it untouched rather than relying on the normal backup.",
  "own_write_precautions": "Back up with the firmware that made the work before ORBIT’s first normal start. See the switching advice in this section. The risks below concern overlapping saved work and can affect some or all of it, depending on occupied memory and the write target; another surviving copy is not a recovery guarantee. A normal start can clear the whole temporary update area without asking if either update check finds occupied memory. See the switching advice in this section for the affected saved work. X0X’s and Polly’s restore journals do not trigger this cleanup by themselves, but are erased too when either checked update trace triggers it, preventing those journals from completing their interrupted restores. The first HOME-menu close can write even without an edit if settings differ from the saved state; later automatic settings writes follow Visualizer style changes, MIDI or recording choices and song-order changes. Calibration at power-on calls settings saving even after a timeout, while menu calibration saves on menu close; timeout restores the old button map, but other changed or default settings can still be written. Deliberate writers also include SAVE on SONG, a REC section store on SONG, the editor’s SYN-kit Store, and settings, SYN-kit or MIDI restore. See the switching advice in this section for the affected saved work. There is no separate question about this other firmware’s work; any section-overwrite or backup-restore question concerns the ORBIT operation. On return to X0X, an unreadable newer settings copy can make its whole sound, pattern, song and motion project reset to factory values instead of using the older copy. The first eligible working autosave can happen without an edit after the startup interval, and later idle autosaves or an update-mode flush write the same space. See the switching advice in this section for the affected saved work. On return to SLOOP, its last loop can fail to restore because the newer ORBIT working save is unreadable and SLOOP does not retry the older copy. Saving, erasing or restoring an ORBIT section, or flushing a section captured with SAVE and a key, writes its saved section. See the switching advice in this section for the affected saved work. Panel PROJECT actions require two action turns; live section storage and SONG REC ask again only for a section ORBIT reports as occupied, while the browser confirms project saves. The captured live section writes after stop and quiet inactivity; direct PROJECT saves write while stopped. No question separately names foreign work. Returning to Felucca, SLOOP, sloopDX, JIANT, Skiff or Rainbow Mode can show a section as empty when a newer ORBIT copy is selected and rejected, even if an older readable copy remains. ORBIT’s section saves, section erases (SAVE > PROJECT > ERASE or clearing a section with a MIDI tool), section restores, section writes after a quiet stop or warm reset, section writes before updates or USB update mode, USER sound bank writes and sample writes can also replace ChoralRoot’s legacy sounds and patches, kept for returning to ChoralRoot 0.21 or older. Each saved, erased, renamed or restored USER sound bank rewrites sixteen records, including imported records and records that decoded as empty. See the switching advice in this section for the affected saved work. The panel’s save and erase actions need two positive turns. The browser asks before overwriting a used USER slot and before erasing one; its cartridge-store and full-backup restore paths have their own questions, while direct commands can write without one. Foreign work that ORBIT shows as empty receives no occupied-slot question. Returning to SLOOP or sloopDX can hide its older sounds because the newer ORBIT bank shape is rejected without retrying an older readable bank. An FM6-bank write, erase, cartridge store or restore rewrites all 27 bank slots. See the switching advice in this section for the affected saved work. The browser asks before overwriting a used slot, erasing a used slot, storing a cartridge or restoring a backup; direct commands have no device question. Other firmware’s work receives no separate warning, and loss of an unfinished bank send can remove its recovery copy. A sample upload makes the old slot unusable as soon as it begins and replaces more audio as it proceeds; a sample erase or an explicitly empty sample restore clears the whole slot, with no sample undo. See the switching advice in this section for the affected saved work. Browser sample, CHOP and drum-kit sends ask first, with one question for a kit slot pair; browser erase and full-backup restore also ask, while direct commands do not. These questions do not identify foreign work. OberVave pattern 8 is outside ORBIT’s sample-upload slots. Its notes stay, but ORBIT’s settings writes, including automatic ones, can replace the saved program its B-track uses, so it can sound different. Installing through the supplied loader replaces changed program areas. See the switching advice in this section for the affected saved work. The following conditional cleanup and outgoing-update behavior are separate from this program write. The included loader also erases a sector that ends in a valid leftover update record. Saved projects, sounds and samples are not update records, so this cleanup does not touch saved work. Staging an incoming updater, or clearing it after a failed attempt, can erase the temporary update area without a separate device question. See the switching advice in this section for the affected saved work. This can erase X0X’s or Polly’s pending-restore information even when their journals alone would not have triggered ordinary startup cleanup.",
  "before_leaving": "See the switching advice in this section. Back up before switching, using the firmware that made the work before ORBIT’s first normal start. Other firmwares can overwrite ORBIT data at their startup or automatically during use, as well as when you save; keep an off-device ORBIT backup before leaving it."
 },
 "disagreements": [
  {
   "topic": "SELECT cannot enter SONG",
   "docs_say": "The guide includes SONG among the screens reached with SELECT from STEP.",
   "source_says": "SELECT explicitly skips SONG; cycle SEQ taps to reach it, or use SAVE from Tape, Mixer or DRUMS.",
   "docs_ref": {
    "kind": "doc",
    "repo": "dspaudio/orbit",
    "ref": "v0.7.1",
    "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
    "path": "GUIDE.md",
    "lines": "84",
    "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/GUIDE.md#L84"
   },
   "source_ref": {
    "kind": "source",
    "repo": "dspaudio/orbit",
    "ref": "v0.7.1",
    "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
    "path": "firmware/src/ui.c",
    "lines": "328-351",
    "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui.c#L328-L351"
   }
  },
  {
   "topic": "HOME from Mixer",
   "docs_say": "The panel summary describes HOME as returning to Tape except when already on Tape.",
   "source_says": "Mixer is also treated as a home-like screen: a first HOME tap opens Visualizer and the next returns to Tape.",
   "docs_ref": {
    "kind": "doc",
    "repo": "dspaudio/orbit",
    "ref": "v0.7.1",
    "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
    "path": "GUIDE.md",
    "lines": "28",
    "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/GUIDE.md#L28"
   },
   "source_ref": {
    "kind": "source",
    "repo": "dspaudio/orbit",
    "ref": "v0.7.1",
    "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
    "path": "firmware/src/ui_input.c",
    "lines": "1071-1077",
    "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L1071-L1077"
   }
  },
  {
   "topic": "Guide release heading",
   "docs_say": "The main guide calls itself 0.7.0 at this 0.7.1 tag.",
   "source_says": "The application version string at this release says ORBIT 0.7.1; this map follows the tagged code.",
   "docs_ref": {
    "kind": "doc",
    "repo": "dspaudio/orbit",
    "ref": "v0.7.1",
    "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
    "path": "GUIDE.md",
    "lines": "1",
    "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/GUIDE.md#L1"
   },
   "source_ref": {
    "kind": "source",
    "repo": "dspaudio/orbit",
    "ref": "v0.7.1",
    "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
    "path": "firmware/src/ui.c",
    "lines": "5-6",
    "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui.c#L5-L6"
   }
  }
 ],
 "not_mapped": [
  "No physical FM-1 was tested; USB audio, LED timing, installer recovery and power-loss behavior are source interpretations.",
  "The optional SLICE engine is excluded from the default release build; browser CHOP and drum-synth editors are described as computer tools, not invented as hardware pages.",
  "Proprietary stock update stages and exact Baud Girl flash geometry cannot be proven from this source; the storage fragment preserves those supplied layout limits."
 ],
 "automation_note": {
  "action": "During playback with REC on the selected track, a supported page knob or PERFORM destination records its value at the playing step; the 24-lock table replaces an existing step/destination pair, and at capacity a new pair is refused while its live value still changes; globals, macro assignments, Mixer and KIT are not recorded as locks.",
  "evidence": "read-in-source",
  "source": [
   {
    "kind": "source",
    "repo": "dspaudio/orbit",
    "ref": "v0.7.1",
    "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
    "path": "firmware/src/ui_input.c",
    "lines": "472-490",
    "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L472-L490"
   },
   {
    "kind": "source",
    "repo": "dspaudio/orbit",
    "ref": "v0.7.1",
    "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
    "path": "firmware/src/ui_input.c",
    "lines": "273-299",
    "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L273-L299"
   },
   {
    "kind": "source",
    "repo": "dspaudio/orbit",
    "ref": "v0.7.1",
    "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
    "path": "firmware/src/ui_studio.c",
    "lines": "612-617",
    "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_studio.c#L612-L617"
   }
  ]
 },
 "navigation_note": {
  "action": "Held layers take precedence over page controls; a locked layer is dismissed by another page or layer button, consuming that press, while PLAY, REC and OCT buttons retain their layer-specific jobs; menu and SONG override ordinary page navigation, and no page knob writes on power-off.",
  "evidence": "read-in-source",
  "source": [
   {
    "kind": "source",
    "repo": "dspaudio/orbit",
    "ref": "v0.7.1",
    "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
    "path": "firmware/src/ui_input.c",
    "lines": "739-776",
    "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L739-L776"
   },
   {
    "kind": "source",
    "repo": "dspaudio/orbit",
    "ref": "v0.7.1",
    "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
    "path": "firmware/src/ui_input.c",
    "lines": "1003-1068",
    "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L1003-L1068"
   },
   {
    "kind": "source",
    "repo": "dspaudio/orbit",
    "ref": "v0.7.1",
    "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
    "path": "firmware/src/main.c",
    "lines": "181-201",
    "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/main.c#L181-L201"
   }
  ]
 },
 "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"
  ]
 },
 "saving_note": {
  "working_project": "The working loop saves itself when its snapshot differs, stopped with no pending transport, recording arm, free take or menu, after 2.5 seconds of panel inactivity and at least 20 seconds since the previous save attempt, checked at most once each second; all synth and drum voices must be inactive, but effect tails, background texture and held controls are not separately checked. With no readable working save at boot, even the default project can be written without an edit. Power-off itself writes nothing.",
  "sections": "A section snapshots all four working tracks, sounds and macro maps, patterns, locks, nudges, fill rules and project mix/texture. SAVE plus white keys 5–8 always captures into RAM first, whether playing or stopped; flash follows once stopped, voices inactive, 1.5 seconds of panel inactivity and the five-second retry gap. PROJECT page saves write immediately while stopped. Working autosave is separate from numbered sections.",
  "settings": "Device settings include calibration, display/lights, recording start choices, MIDI assignments and channels, song order and user drum synth kits. Closing HOME settings can save even with no edit if the loaded/default state differs from its saved mirror; playing defers the write. Power-on calibration calls settings saving after completion or cancellation. Pending changes flush when stopped with quiet voices, after 1.5 seconds of panel inactivity and the five-second retry gap.",
  "user_sounds": "Each USER save, erase or rename rewrites its whole bank of sixteen sound records, including any imported records or slots that decoded as empty. Saved sections keep snapshots rather than looking the USER sound up later. Flash actions have no undo.",
  "source": [
   {
    "kind": "source",
    "repo": "dspaudio/orbit",
    "ref": "v0.7.1",
    "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
    "path": "firmware/src/project.c",
    "lines": "602-684",
    "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/project.c#L602-L684"
   },
   {
    "kind": "source",
    "repo": "dspaudio/orbit",
    "ref": "v0.7.1",
    "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
    "path": "firmware/src/project.c",
    "lines": "687-745",
    "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/project.c#L687-L745"
   },
   {
    "kind": "source",
    "repo": "dspaudio/orbit",
    "ref": "v0.7.1",
    "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
    "path": "firmware/src/project.c",
    "lines": "993-1007",
    "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/project.c#L993-L1007"
   },
   {
    "kind": "source",
    "repo": "dspaudio/orbit",
    "ref": "v0.7.1",
    "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
    "path": "firmware/src/project.c",
    "lines": "1129-1224",
    "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/project.c#L1129-L1224"
   },
   {
    "kind": "source",
    "repo": "dspaudio/orbit",
    "ref": "v0.7.1",
    "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
    "path": "firmware/src/upreset.c",
    "lines": "290-312",
    "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/upreset.c#L290-L312"
   },
   {
    "kind": "source",
    "repo": "dspaudio/orbit",
    "ref": "v0.7.1",
    "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
    "path": "firmware/src/ui_menu.c",
    "lines": "162-171",
    "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_menu.c#L162-L171"
   },
   {
    "kind": "source",
    "repo": "dspaudio/orbit",
    "ref": "v0.7.1",
    "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
    "path": "firmware/src/main.c",
    "lines": "173-175",
    "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/main.c#L173-L175"
   }
  ],
  "evidence": "read-in-source"
 },
 "source_comment_disagreements": [
  {
   "topic": "FM6 pitch envelope",
   "comment_says": "The FM6 header says ENV destinations have no effect.",
   "source_says": "Amplitude ADSR and filter/shape envelope depth are bypassed, but the separate short pitch envelope still reaches FM6 pitch.",
   "source": [
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/eng_fm6.c",
     "lines": "13-24",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/eng_fm6.c#L13-L24"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/voice.c",
     "lines": "746-799",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/voice.c#L746-L799"
    }
   ]
  },
  {
   "topic": "MIDI channel OFF",
   "comment_says": "An older parameter comment says channel OFF still sends notes on its old channel.",
   "source_says": "The routing helper returns a disabled channel, so outgoing track notes are disabled too.",
   "source": [
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/params.c",
     "lines": "186-189",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/params.c#L186-L189"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/seq.c",
     "lines": "76-85",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L76-L85"
    }
   ]
  }
 ],
 "editor_note": {
  "action": "The computer editor handles sound and macro editing, piano-roll and event edits, MIDI files, arrangement, DX7 files and FM6-bank storage, WAV chopping and user sample/kit uploads, SYN1–SYN4 editing, browser-local sound libraries and full backup/restore; these are computer tools rather than extra panel pages.",
  "evidence": "vendor-doc",
  "source": [
   {
    "kind": "doc",
    "repo": "dspaudio/orbit",
    "ref": "v0.7.1",
    "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
    "path": "GUIDE.md",
    "lines": "180-190",
    "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/GUIDE.md#L180-L190"
   }
  ]
 },
 "evidence_note": "Read-only interpretation of the v0.7.1 source and supplied layout evidence; nothing was run from the firmware tree and nothing was tested on a unit.",
 "licence_notes": {
  "note": "The release README also identifies the msfa exception and separately held asset rights.",
  "source": [
   {
    "kind": "doc",
    "repo": "dspaudio/orbit",
    "ref": "v0.7.1",
    "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
    "path": "README.md",
    "lines": "97-103",
    "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/README.md#L97-L103"
   },
   {
    "kind": "doc",
    "repo": "dspaudio/orbit",
    "ref": "v0.7.1",
    "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
    "path": "LICENSING.md",
    "lines": "1-21",
    "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/LICENSING.md#L1-L21"
   }
  ]
 },
 "status": "Independently checked: zero errors in round 4 (2026-10-17). No device testing.",
 "refresh_check_fixes": [
  {
   "round": 1,
   "error": "3 F-sharp chord modifier",
   "fixed": "Renamed the modifier THIRD FLIP and described both directions and the SUS4/POWER exceptions.",
   "at": "controls.key_fs3[2], key_fs4[2], key_fs5[2] and matching release labels; owner table"
  },
  {
   "round": 1,
   "error": "4 MIDI Program Change",
   "fixed": "Appended sourced input entries on both MIDI connectors and explained sound/kit replacement, numbering and routing.",
   "at": "controls.jack_midi_in[1], controls.jack_usb_c[1]; shared-controls table"
  },
  {
   "round": 1,
   "error": "5 False USER-load disagreement",
   "fixed": "Removed the disagreement: the guide limits the stop instruction to saving and flash writes, not sound loading.",
   "at": "disagreements former [3]; docs-disagreements paragraph"
  },
  {
   "round": 1,
   "error": "8 SLOOP authorship",
   "fixed": "Attributed SLOOP to isod89 and kept the separate Felucca credit.",
   "at": "author"
  },
  {
   "round": 1,
   "error": "9 Drum SELECT no-op directions",
   "fixed": "Changed left on GRID and right on KIT to no-op entries with the label -.",
   "at": "controls.encoder_select[15-16]; drum editing table"
  },
  {
   "round": 1,
   "error": "10 Empty step wording",
   "fixed": "Explained that an empty step is filled with a synth note/chord or the chosen drum hit.",
   "at": "controls.key_* SEQ press entries; step table"
  },
  {
   "round": 1,
   "error": "11 Doubled layer word",
   "fixed": "Removed the duplicated word from the GLO hold and HOME lock descriptions.",
   "at": "controls.button_glo[1], controls.button_home[5]; shared-controls table"
  },
  {
   "round": 1,
   "error": "12 Cancelled calibration",
   "fixed": "Separated restoration of the old map on timeout from the conditional settings write on menu close.",
   "at": "controls.button_oct_up[14]; device-settings table"
  },
  {
   "round": 1,
   "error": "13 Remembered SEQ page",
   "fixed": "Explained that SEQ reopens the last page and may need more taps to reach STEP.",
   "at": "modes[13].how_to_get_there; modes table"
  },
  {
   "round": 1,
   "error": "14 Erase-layer mode description",
   "fixed": "Explained that a drum black key changes the white-key jobs, rather than muting a lane itself.",
   "at": "modes[20].what_it_is; modes table"
  },
  {
   "round": 1,
   "error": "Coverage REC arm and installer",
   "fixed": "Recorded the song-to-loop switch when arming and added the release-documented browser installer.",
   "at": "controls.button_rec[0]; install.browser; owner guide"
  },
  {
   "round": 1,
   "error": "1 Sample writes and FM6-bank backup gap",
   "fixed": "Added both B1–B32 banks to sample loss warnings and explained that ordinary Felucca/GHOULBOX backups omit them.",
   "at": "switching_note.back_up_first, backup_exceptions, owner_overwrite_groups.Samples; owner guide"
  },
  {
   "round": 1,
   "error": "2 Settings writer coverage",
   "fixed": "Named SONG SAVE/REC and editor SYN-kit/settings/MIDI commits alongside automatic, calibration and menu-close writes, with their common loss list.",
   "at": "switching_note.owner_overwrite_groups.Settings saves; owner guide"
  },
  {
   "round": 1,
   "error": "6 Power-off losses in guide",
   "fixed": "Included unsaved edits, clipboard, selection and sequence undo losses in the switching section.",
   "at": "switching_note.lost; owner guide Before you switch firmware"
  },
  {
   "round": 1,
   "error": "7 Conditional journal cleanup",
   "fixed": "Named X0X and Polly pending restores when cleanup actually fires, and retained the fact that their journals alone are not its trigger.",
   "at": "switching_note.owner_overwrite_groups.At first start and Starting an update from ORBIT; owner guide"
  },
  {
   "round": 1,
   "error": "15 Browser confirmations and list coverage",
   "fixed": "Updated browser-vs-direct-command warnings and generated trigger lists from all 312 foreign rows using the real owner object names; included return-trip rejection risks and removed atlas referrals.",
   "at": "switching_note.owner_overwrite_groups, overwrites_previous, when_you_leave; storage.owner_warning_coverage; owner guide"
  },
  {
   "round": 2,
   "error": "1 ChoralRoot legacy sounds and recovery loader",
   "fixed": "Named each overlapping legacy sound bank and the recovery loader/install request in all six affected trigger warnings; explained that legacy sounds can be current owner sounds on ChoralRoot 0.21 or older, and limited the no-extra-copy statement to actual startup footprints and unused Melodee storage. Mirrored every corrected warning in the owner guide and storage fragment.",
   "at": "switching_note.overwrites_previous; switching_note.owner_overwrite_groups; orbit.md Before you switch firmware; orbit.storage.json owner_warning_coverage, owner_switching_fact, owner_warning_basis"
  },
  {
   "round": 3,
   "error": "1 Installer cleanup exclusivity",
   "fixed": "Dropped Only from the sentence about ChoralRoot startup work areas and Melodee unused former project storage, in all mirrored owner warnings.",
   "at": "switching_note.owner_overwrite_groups[Installer cleanup].note; switching_note.overwrites_previous; orbit.md Before you switch firmware; orbit.storage.json owner_switching_fact"
  },
  {
   "round": "overlay-fix-r1",
   "at": "controls.button_glo[7]",
   "old": null,
   "new": {
    "mode": "tape",
    "gesture": "release",
    "short_label": "MIXER",
    "action": "A short tap from Tape opens the Mixer.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "dspaudio/orbit",
      "ref": "v0.7.1",
      "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
      "path": "firmware/src/ui_input.c",
      "lines": "718-722",
      "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L718-L722"
     }
    ]
   },
   "why": "firmware/src/ui_input.c:718-722@c07bd1d87dcb1e90180d1765d96b834c3dc68479"
  },
  {
   "round": "index-fix-r1",
   "at": "version_note",
   "old": null,
   "new": "The community hub marks v0.7.1 as beta in its 2026-10-22 catalogue.",
   "why": "https://thefirmwarehub.com/catalog.json, updated 2026-10-22 23:02 UTC; saved response: scratchpad/w34r/index-r1/web/catalog.json; refresh/targets_new.json orbit.delta_note also records the beta flag on 2026-10-17"
  },
  {
   "round": "index-fix-r1",
   "at": "control-maps/orbit.md:3",
   "old": "Mapped release [v0.7.1](https://github.com/dspaudio/orbit/releases/tag/v0.7.1), commit c07bd1d87dcb1e90180d1765d96b834c3dc68479, 2026-10-17. Read from the release source; no unit tested.",
   "new": "Mapped release [v0.7.1](https://github.com/dspaudio/orbit/releases/tag/v0.7.1) (beta), commit c07bd1d87dcb1e90180d1765d96b834c3dc68479, 2026-10-17. Read from the release source; no unit tested.\n\nThe community hub marks v0.7.1 as beta in its 2026-10-22 catalogue.",
   "why": "https://thefirmwarehub.com/catalog.json, updated 2026-10-22 23:02 UTC; saved response: scratchpad/w34r/index-r1/web/catalog.json; refresh/targets_new.json orbit.delta_note also records the beta flag on 2026-10-17"
  },
  {
   "round": "overlay-fix-r2",
   "at": "controls.button_glo[7].source[0]",
   "old": {
    "kind": "source",
    "repo": "https://github.com/dspaudio/orbit",
    "ref": "v0.7.1",
    "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
    "path": "firmware/src/ui_input.c",
    "lines": "718-722",
    "url": "https://github.com/https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L718-L722"
   },
   "new": {
    "kind": "source",
    "repo": "dspaudio/orbit",
    "ref": "v0.7.1",
    "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
    "path": "firmware/src/ui_input.c",
    "lines": "718-722",
    "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L718-L722"
   },
   "why": "firmware/src/ui_input.c:718-722@c07bd1d87dcb1e90180d1765d96b834c3dc68479"
  },
  {
   "round": "overlay-fix-r2",
   "at": "refresh_check_fixes[18].new.source[0]",
   "old": {
    "kind": "source",
    "repo": "https://github.com/dspaudio/orbit",
    "ref": "v0.7.1",
    "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
    "path": "firmware/src/ui_input.c",
    "lines": "718-722",
    "url": "https://github.com/https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L718-L722"
   },
   "new": {
    "kind": "source",
    "repo": "dspaudio/orbit",
    "ref": "v0.7.1",
    "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
    "path": "firmware/src/ui_input.c",
    "lines": "718-722",
    "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L718-L722"
   },
   "why": "firmware/src/ui_input.c:718-722@c07bd1d87dcb1e90180d1765d96b834c3dc68479"
  }
 ],
 "checker_disputes_refresh": [
  {
   "round": 1,
   "error": "Coverage: PLAY light stays on during a free take",
   "why": "The steady-light branch also requires transport playing and no track recording. Normal free takes start only while transport is stopped; closing the take clears the free-take flag before starting playback. It therefore does not establish a steady PLAY light during an ordinary free take.",
   "evidence": [
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/ui_input.c",
     "lines": "224-229",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/ui_input.c#L224-L229"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/seq.c",
     "lines": "1195-1200",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L1195-L1200"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/seq.c",
     "lines": "862-869",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L862-L869"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/seq.c",
     "lines": "893-898",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L893-L898"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/seq.c",
     "lines": "932-938",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L932-L938"
    },
    {
     "kind": "source",
     "repo": "dspaudio/orbit",
     "ref": "v0.7.1",
     "commit": "c07bd1d87dcb1e90180d1765d96b834c3dc68479",
     "path": "firmware/src/seq.c",
     "lines": "2406-2412",
     "url": "https://github.com/dspaudio/orbit/blob/c07bd1d87dcb1e90180d1765d96b834c3dc68479/firmware/src/seq.c#L2406-L2412"
    }
   ]
  }
 ],
 "version_note": "The community hub marks v0.7.1 as beta in its 2026-10-22 catalogue."
}